Actual Budget
4 points by pyfisch
4 points by pyfisch
We have been happy user sof Actual for close to three years, excellent application.
I use plain text accounting (hledger) for my own accounts. We use it for our household budget as the user interface is excellent for less techy users. Great alternative to YNAB.
The recently shared story about ledger plain text accounting reminded me of Actual, the budgeting software I use regularly.
Actual budget is an offline-first browser app, on a technical level the most interesting aspect is the synchronization based on a simple table CRDT. (There is also a presentation about this on YouTube by the original developer.) Right now the software is developed by the community.
I'd be interested in learning more about their CRDT.
CRDTs feel like a weird choice for financial software: my naive impression is that 99.9% of the time they work exactly as you would expect, but the edge cases are weird and surprising. (It's a different thing, but it feels a little bit like floating point numbers—they mostly behave like real numbers, except sometimes they're slightly off, so don't use them for money.)
But maybe for the specific data they're modeling, there's a small CRDT that's simple enough to be more intuitive?
The most important data structure in actual is the transaction - "I spent X money on date Y at Z. The spending category is C". This can be represented as a single row in a relational database. For the CRDT there are three events: insert, update, delete and logical clocks to sort them. The fields can be updated individually so one user could change the category while another changes the the item before a sync happens, resulting in a transaction neither intended after the sync happens. Still the database is consistent and no money is missing from the ledger.
Actual Budget is great. It's the good parts of old YNAB plus some really nerdy things like a DSL for monthly budget templates.
It just works, which is uncommon praise for a budget app.