Actual Budget: The Local-First Finance App That Keeps Your Money Data on Your Own Disk

Actual Budget: The Local-First Finance App That Keeps Your Money Data on Your Own Disk

Actual Budget: The Local-First Finance App That Keeps Your Money Data on Your Own Disk

"Mint shut down and took everyone's financial history with it. Actual Budget's answer is simpler than any policy: your budget is a file on your own disk."
Personal finance software has a trust problem. To use it at all, you hand over the most revealing dataset that exists about you — where you shop, what you earn, what you owe, what you spend on healthcare at 2 a.m. Mint built a business on that data and then shut down. YNAB does it honourably but charges ~$99/year and holds your data in its cloud. Actual Budget (GitHub: actualbudget/actual) takes the third path: a local-first envelope budgeting app where your data lives in a file on your own machine, with an optional self-hosted sync server for multi-device access — end-to-end encrypted. As of August 2026 it carries roughly 28,000 stars, ships under MIT, and is at v26.8.1 (released August 7, 2026), with a genuinely active community behind it. For a blog about software you run on your own hardware, it's the most personal entry yet: this is the software you'd least want reading your data back to you. This is the honest breakdown — how envelope budgeting works, the two deployment modes, what self-hosting actually costs, and the limits (no investment tracking, US-only bank sync, and an encryption boundary that doesn't cover everything) that decide whether it fits. Actual Budget's envelope budgeting interface

1. What Actual Budget Is (and Isn't)

Actual Budget is a personal budgeting app built around the envelope method. You give every unit of money a job before you spend it, then reconcile against reality as transactions arrive. It runs as a desktop app on Windows, macOS, and Linux, or as a self-hosted server reachable from a browser and a mobile PWA. What it is not is accounting software. There's no invoicing, no accounts payable or receivable, no tax filing, no multi-user business workflows. It's built for households and individuals, and comparing it to QuickBooks or Xero is a category error. It's also not an investment tracker — a point worth dwelling on, because it's the most common disappointment. The data model is local-first: your budget is a SQLite database living on your own machine. Sync is optional, and when you use it, it's end-to-end encrypted. The sync server never sees your financial data in the clear. That's the architectural difference from every cloud budgeting app, and it's why the privacy argument here is structural rather than promised.

2. Envelope Budgeting: Decide Before You Spend

If you've used YNAB, the methodology will be familiar. If you haven't, the idea is worth stating plainly because it's the whole value of the app: **Instead of recording what you spent and reviewing it at month end, you allocate the money you have right now into categories — rent, groceries, transport, savings — before you spend it.** Each category is a virtual envelope with a balance. When you buy groceries, that envelope gets smaller. When the month rolls over, what's left stays. The shift is from reporting to deciding. Traditional budgeting tells you what happened; envelope budgeting forces a decision before the money moves. People who commit to it consistently report that it changes spending behaviour, which is the only reason to use any budgeting app. Actual implements this well: category balances roll over, you can move money between envelopes when reality intrudes (this is normal, not failure), and the interface makes "how much is left for eating out" a glance rather than a calculation. Supporting features — rules for auto-categorising recurring transactions, scheduled transactions, split transactions, undo/redo — reduce the manual work to near zero after the first month. Envelope method: allocate first, spend from the envelope

3. Why Local-First Matters Most for Financial Data

Every self-hosting pitch claims privacy. This one has a sharper edge, because of what the data is. Think about what a budgeting app contains: your income, your employer's name via direct deposits, your landlord or mortgage, every merchant you patronise, medical expenses, subscriptions you'd rather not list, and your savings rate. Aggregated over years it's a remarkably intimate portrait — arguably more sensitive than your photo library or your messages, because it's structured, timestamped, and directly monetisable. Handing that to a SaaS means trusting their security, their retention policy, their business model, and their continued existence. The Mint shutdown demonstrated the last of those concretely: when a free service built on your data ends, your history goes with it. With Actual, none of that applies. Your budget is a file. It's on your disk, in a format you can copy, back up, export, and open years from now regardless of what happens to the project. No telemetry, no data selling, no AI training on your purchases. If the project disappeared tomorrow, your financial history would still be sitting in your backup folder — which is precisely the outcome that "trust us with your data" can never promise.

4. Two Modes: Desktop-Only vs Self-Hosted Server

Understanding the two deployment modes prevents a lot of confusion: Mode A — Desktop only. Download the app, create a budget file, done. Fully offline, automatic local backups, no server required. Perfect if you budget from one machine. This is the simplest possible setup and it works completely standalone — the server is not a hard requirement for the core budgeting features. Mode B — Desktop plus self-hosted sync server. Run the Actual server in a single container, and your budget file syncs across devices — desktop app, browser, and mobile PWA. Sync is end-to-end encrypted, so the server stores ciphertext it cannot read. This is the mode most people want once they've used it on a phone. There's also a browser-only path (server plus web UI) and one-click hosted options (PikaPods around $1.40/month, Fly.io around $1.50/month) for people who'd rather not run a server at all — though at that point you're trusting someone else's box again, which rather defeats the purpose for this audience.

5. Getting Data In (and the Bank Sync Caveat)

Actual supports importing from the formats banks actually give you: QIF, OFX, QFX, CAMT.053, and CSV, plus dedicated importers for YNAB4 and nYNAB — which makes migrating from YNAB genuinely painless rather than a spreadsheet exercise. Automatic bank sync exists via SimpleFIN, a paid bridge (~$1.25/month) that works with US and Canadian banks only. Two honest caveats, and the second is important: 1. If you're outside the US/Canada, there's no native automatic sync. You'll be importing files periodically. For many people that's a feature — manual import means you actually look at your transactions — but it is more work than YNAB's auto-import. 2. Bank sync tokens are not covered by the end-to-end encryption. The E2E encryption protects your budget data; the SimpleFIN credentials tying your instance to your bank live outside that protection. If you enable bank sync, secure the server accordingly — restrict access, don't expose it publicly, and understand that this is the one part of the system where a credential is in play.

6. The Cost, Honestly

Software: $0, MIT. Every feature is included in the self-hosted version — there's no "free tier" because there's no paid tier for the software itself. Hosting (optional): if you want multi-device sync, it's one small container on hardware you already run. Call it $0 marginal, or $4–6/month for a VPS if you need it off-site. Optional extras: SimpleFIN bridge ~$1.25/month (US/Canada); one-click hosting ~$1.40–1.50/month if you don't want to self-host. Your time: moderate setup, low ongoing. Initial account and category setup takes an evening; after that, rules handle most categorisation and you're reconciling in minutes a week. Against YNAB at roughly $99/year, Actual saves real money — but as always, the stronger argument is ownership. You're not comparing prices, you're comparing "my data is a file I control" against "my data is in someone's database."

7. Honest Limitations

  • No investment or portfolio tracking. This is the big one. Reports cover net worth and cash flow based on your account balances, but there's no holdings tracking, no tickers, no market values. If your primary need is tracking a portfolio, this isn't the tool.
  • Bank sync is US/Canada only, and its tokens sit outside the E2E encryption boundary.
  • The mobile app story changed. The React Native apps were deprecated in favour of a web app / PWA. It works, and it syncs, but it's not as polished as a native YNAB client.
  • Not for business accounting. No invoicing, no AP/AR, no multi-user business workflows, no tax reporting.
  • Credit card handling assumes you pay in full. The envelope model treats credit spending as immediately assigned; carrying revolving debt needs mental adjustments that the app doesn't model natively.
  • A plugin/extension system has been anticipated but not shipped, so deep customisation is limited to the developer API for importers.
  • Community-maintained since the original company shut down — healthy and active today, but worth knowing (see the story in section 14).

8. Getting Started

``yaml services: actual-server: image: actualbudget/actual-server:latest container_name: actual-server restart: unless-stopped ports: - "5006:5006" volumes: - ./actual-data:/data `` Then: (1) open the server URL and create a password, (2) download the desktop app and create your budget file, (3) enable sync and upload the file to your server — note the E2E encryption key, because losing it means losing access, (4) add accounts with correct opening balances, (5) import recent transactions, (6) build your categories and assign what you have. Two early habits that matter: don't import years of history on day one — start from correct current balances and recent transactions, then go back if you want the archaeology. And write down your encryption key somewhere safe but separate from the budget file itself.

9. Actual Budget vs the Alternatives

| | Actual Budget | YNAB | GnuCash | Firefly III | |---|---|---|---|---| | Methodology | envelope | envelope | double-entry accounting | envelope / rules | | Data location | your disk (self-hosted sync) | YNAB cloud | your disk | self-hosted | | License | MIT | proprietary | GPL | AGPL-3.0 | | Cost | $0 | ~$99/yr | free | free | | Auto bank sync | US/CA only | ✅ broad | via OFX | via importers | | Investment tracking | ❌ | limited | ✅ | ✅ | | Mobile | PWA | native, polished | limited | third-party | The short version: Actual is the best self-hosted choice for envelope budgeting and the natural home for YNAB refugees who want the same methodology without the subscription or the cloud. GnuCash is better if you want true double-entry accounting and investment tracking. Firefly III is the other serious self-hosted option with more investment features and a steeper setup.

10. Who Should Run It

Run it if: you want envelope budgeting without a subscription, you're fleeing YNAB's price or Mint's shutdown, you want your financial data as a file you control, or you're comfortable with periodic manual imports (or you're in the US/Canada and want SimpleFIN). Skip it if: you need investment and portfolio tracking, you require polished native mobile apps, you want fully automatic bank sync outside North America, or you need business accounting features. For this blog's readers — already running Immich for photos, Paperless NGX for documents, Vaultwarden for passwords — Actual Budget completes something meaningful: photos, paperwork, credentials, and now money, all on hardware you own, with none of it in someone else's database.

11. A Real Setup Walkthrough

Step 1 — start desktop-only. Use it on one machine for a week before introducing a server. You'll learn the methodology without also debugging sync. Step 2 — set up categories from your real spending, not an idealised template. Look at last month's bank statement and build categories that match how you actually spend. Step 3 — create rules early. Rules auto-categorise recurring transactions by payee, and they're what reduce weekly work to minutes. The supermarket, the utility company, the subscription — three rules cover a surprising share of your transactions. Step 4 — reconcile weekly, not monthly. Five minutes on Sunday is the whole maintenance burden. Monthly reconciliation means untangling a month of ambiguity. Step 5 — then add sync and mobile. Once the habit exists on desktop, multi-device access makes it stick.

12. Troubleshooting & Gotchas

  • Sync won't connect — usually the server URL or the E2E encryption key. The key is generated when you create the budget file; all your devices need the same one.
  • "I lost my encryption key" — this is unrecoverable by design. The server can't help you because it can't read your data. Back the key up separately from the file.
  • Categories show negative and won't reset — envelope balances roll over by design; negative means you overspent and need to cover it from another category.
  • Imported transactions are duplicated — import formats vary; check date ranges and de-duplicate during import.
  • Reports look wrong — almost always incorrect opening balances or uncategorised transactions. Fix those two and the reports follow.
  • Mobile PWA not updating — force refresh; PWAs cache aggressively.

13. Data Sovereignty and Backup

The pleasant thing about a local-first app is that backup is almost boring. Your entire financial history is:
  • The budget file (SQLite), synced or stored locally.
  • The encryption key — small, critical, and easy to forget.
Copy both to a backup you control, encrypted, in at least one place that isn't the same machine. Because the sync server only holds ciphertext, even a hosted sync server compromise exposes nothing readable without your key — a genuinely strong position that no cloud budgeting service can offer. And the exit is trivial: the data is exportable, the format is open, and the file is yours. You are one copy-paste away from never depending on this project again — which is, not coincidentally, the same reason it's safe to depend on it today.

14. The Story Behind It

One detail worth knowing, because it explains the project's character: Actual began as a paid product. When the original company (Actual HQ) shut down in 2022, it released the code as open source rather than letting it die with the business. The community picked it up and has maintained and extended it since — 400+ contributors, active releases, a Discord community, translations via Weblate. That history is relevant for two reasons. It's a concrete counter-example to the Mint story: when the business failed, users kept their software instead of losing it. And it's a reminder to treat this as community infrastructure rather than a vendor product — no SLA, no support contract, and continuity resting on volunteers. The project is demonstrably healthy (releases through August 2026, commits ongoing), but go in knowing which kind of project you're adopting.

15. Rules and Schedules: Automating the Boring Part

The difference between a budgeting app you abandon in March and one you're still using in December is almost entirely rules. A rule says: when a transaction arrives with this payee (or matching this pattern), set its category — and optionally its notes or a flag. Your supermarket, your utility provider, your rent, your streaming subscriptions: four or five rules cover the overwhelming majority of recurring transactions. After that, reconciliation becomes confirming rather than typing. Scheduled transactions are the other half. Rent, salary, subscriptions, and loan payments repeat on a predictable schedule. Enter them once as schedules and Actual will project them forward, so you can see next month's obligations before they land. That forward view is what makes envelope budgeting actually work — you're allocating against money you know is already committed. A practical tip for building rules: don't try to write them all up front. Use the app for two weeks, categorising manually, then look at what you repeatedly typed and write rules for exactly those. Rules derived from real behaviour match your life; rules invented on day one match an imagined one.

16. Migrating From YNAB or Mint

Two migration paths are well-trodden, and both are easier than people fear. From YNAB: Actual ships dedicated importers for both YNAB4 and nYNAB, so your categories, accounts, and transaction history come across largely intact. Export your YNAB data, import it, and spend an evening checking that category structures and balances match. Most people report this as the least painful part of the whole switch. From Mint (or any CSV/OFX source): export your transactions as CSV, OFX, QFX, or QIF and import them. The friction here is category mapping — Mint's categories won't match yours, so you'll do some consolidation. This is actually an opportunity: most people discover they had forty categories where twelve would do. A principle that applies to both: start from correct current balances. Don't import five years of history in pursuit of perfect records, because mismatched historical balances will make every report misleading and every reconciliation a chore. Import recent transactions, confirm your accounts are accurate as of today, and only go back further if you genuinely want the archaeology. The value of a budget is in the decisions it informs now, not in the completeness of its archive.

Related

Comments (0)

No comments yet. Be the first to comment!

Leave a Comment