// the find
actualbudget/actual
A local-first personal finance app
Actual is a local-first envelope budgeting app built on Node.js with CRDT-based sync across devices. Your data lives in SQLite on your own hardware (or a self-hosted server), not in anyone's cloud. It is the most technically serious open-source personal finance tool available right now.
CRDT sync is the right call here — it means concurrent edits from phone and desktop resolve without a central arbiter, and the implementation is mature enough to have its own versioning workflow in CI. The public API package lets you script against your budget data, which almost no personal finance tool offers. Multiple deployment targets are genuinely supported: desktop Electron apps, Docker, and hosted options, not just aspirationally listed. The CI pipeline is serious — E2E tests, VRT, CodeQL, nightly builds, bundle size comparisons — this is not a hobby project.
Multi-device sync requires running actual-server as a separate process; the README buries this and 'local-first' becomes misleading for anyone expecting zero server setup. No native mobile app — the web UI works on phones but was clearly designed for desktop. The monorepo uses lage + yarn 4 + multiple build configs, and getting a working dev environment is non-trivial; contributing has a steep onboarding cliff. Migration tooling from YNAB, Mint, etc. is community-maintained and quality varies — if you have years of transaction history to import, treat it as a weekend project, not an afternoon.