Send in your ideas. Deadline October 1, 2025
Grant
Theme fund: NGI0 Commons Fund
Start: 2025-06
More projects like this
Services + Applications

The Ultimate Bookkeeping System

Bookkeeping but in a portable, offline-first and privacy-friendly way

Bookkeeping systems, databases, and computer systems in general, tend to act as a "System of Record" (SOR) in which only one truth can exist. This project will develop tools for interconnecting such "Systems of Record", for instance to copy data from one API to another), and a schema transformation library. It will develop a set of domain-specific data set containers called "tubs", between which reflectors can form the tubing that make sure the data state in one tub is eventually converging to the data state in each connected tub - in particular aimed at the domain of bookkeeping and business documents (invoices).

Apart from providing these generic data-portability tools and domain-specific tubs, a start will be made with an actual live network of SORs, where data is continuously mirrored through reflectors, even over multi-hop routes, with schema translations, and over various transports. Just like the World Wide Web was started with a single HTML page, this first live dataset of invoices, transactions, tasks and timesheets will be the start of TUBS - a network of computer systems that feels like a single system when a user interacts with it through one of the connected SORs.

Why does this actually matter to end users?

Recent trends in local-first software development, as well as traditional distributed computation theory study networks in which "Systems of Record" act as nodes that send each other updates. Data in such a network of SORs is fundamentally multi-homed: it does not live "at" a URL in the way Linked Data does, but in multiple places at the same time.

If we were to design such a distributed system, we would probably use a content-addressable data storage architecture, such as git, tahoe-lafs, IPFS, etc. But the real world consists of SORs that generally offer REST and Webhook APIs. Furthermore, each SOR has technical sovereignty in that it can define its own data model and schema. So schema transformations are also necessary when moving data between SORs.

Logo NLnet: abstract logo of four people seen from above Logo NGI Zero: letterlogo shaped like a tag

This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429. Additional funding is made available by the Swiss State Secretariat for Education, Research and Innovation (SERI).