Personal Finance Stack
Firefly III, Actual Budget, Maybe, Lago, Invoice Ninja — own your money tooling end to end, AI receipt parser included.
What's in this pack
This pack collects the six self-hostable finance applications that, together, replace YNAB, Mint, QuickBooks Self-Employed, Stripe Billing, and your shoebox of receipts. Every entry is open source and runs from a Docker image. The AI receipt parser is the glue: it takes a phone-camera photo and emits a structured transaction that the other tools accept.
| # | App | Replaces |
|---|---|---|
| 1 | Firefly III | Mint / Personal Capital |
| 2 | Actual Budget | YNAB |
| 3 | Maybe | Personal Capital net-worth tracker |
| 4 | Lago | Stripe Billing for usage-based pricing |
| 5 | Invoice Ninja | QuickBooks Self-Employed invoicing |
| 6 | AI Receipt Parser | manual paper sorting |
Firefly III is the load-bearing entry: it runs double-entry accounting, supports multi-currency, and accepts CSV imports from every major bank. The other five plug into it.
Why own your finance tooling
Money apps are the longest-lived software you'll keep. A receipt from 2018 might matter in a 2026 audit; a SaaS app you used in 2018 might be dead, acquired, or paywalled today. Self-hosting your money stack is about three things:
- Long retention without vendor risk. Your transactions live in Postgres on your disk. Ten years from now they will still open.
- Privacy. Mint and Personal Capital sell aggregate data to advertisers. Your bank already knows what you bought; the analytics vendor doesn't have to.
- Custom rules. Firefly III's rules engine is more flexible than Mint's category mapper. You can categorize a transaction by merchant + amount + date pattern, not just by a single string match.
The cost: you operate a small Postgres + Redis + Docker stack and back it up. Firefly III alone has 5 years of stable releases, so the operational burden after first install is low.
Install in one command
# Install the entire pack
tokrepo install pack/personal-finance-stack
# Or pick the apps you need
tokrepo install firefly-iii
tokrepo install actual-budget
tokrepo install ai-receipt-parser
The TokRepo manifest provides a single Docker Compose with shared Postgres, the AI receipt parser pre-wired to Firefly III's import API, and a backup script that runs pg_dump nightly to a local rclone-friendly directory.
Common pitfalls
- Bank CSV format drift. Banks change their CSV column order without notice. Pin your Firefly III importer profile to a specific format and re-test after every quarterly statement download.
- Multi-currency ambiguity. Firefly III handles multi-currency well, but you must set the base currency on first install and cannot change it later without a manual data migration. Pick the currency you'll file taxes in.
- AI receipt parser hallucination. Even a tuned model occasionally invents a vendor name from a blurry receipt. Always route parser output through a human review queue before posting to Firefly III. Don't auto-commit.
- Lago for personal use is overkill. Lago is built for usage-based SaaS billing. If you don't sell metered software, skip it. We left it in the pack because freelancers selling per-hour or per-API-call services need it.
- Invoice Ninja's tax engine needs configuration per region. Default install assumes a US sales-tax model. EU VAT and India GST are supported but require explicit setup before sending the first invoice.
Common misconceptions
People often think a self-hosted finance stack means giving up bank syncing. It doesn't. Firefly III imports CSV from all major banks. Power users add nordigen / GoCardless Bank Account Data, Plaid via firefly-iii-data-importer, or scheduled scrapes — depending on country. The model is closer to "every other day, batch import" than "real-time as in Mint." For most households that's a feature, not a bug: you actually look at your transactions.
Another misconception is that you need accounting expertise to run Firefly III. You don't. The double-entry model surfaces only when you choose to look. Day-to-day usage looks like Mint: a transaction list, a category picker, a few dashboards. The double-entry rigor matters when you go to file taxes, transfer between accounts, or reconcile a credit-card statement — those flows that single-entry apps quietly get wrong. Treat the first two weeks as bank import + categorization muscle memory; the accounting depth waits for when you need it.
6 assets in this pack
Frequently asked questions
Is the personal finance stack free?
All six apps are open source and self-hostable. Firefly III, Actual Budget, Maybe, Lago, and Invoice Ninja have no per-seat fees. The AI receipt parser uses your existing OpenAI / Claude / local LLM key — there's no separate subscription. Total cost is hardware (a 5 USD/month VPS handles a household) plus your LLM token budget for receipt parsing, typically under 1 USD per 100 receipts.
How does this compare to YNAB or Mint?
YNAB is one product with one philosophy (envelope budgeting); this pack is six tools you can mix. Actual Budget is a pixel-close YNAB clone if you want just that. Mint is dead — Intuit shut it down — so the comparison is now Mint's successor Credit Karma or Personal Capital. Maybe replaces Personal Capital's net-worth view; Firefly III replaces transaction categorization. The pack is more setup but lasts forever.
Can Claude Code or Cursor work with this stack?
Yes. Firefly III has a comprehensive REST API; Actual Budget has a published API; Invoice Ninja has both REST and GraphQL. Pair this pack with our MCP Server Stack to expose those APIs as MCP tools, then your AI agent can answer 'how much did I spend on AWS last quarter' from your real data instead of hallucinating from training data.
Difference vs running QuickBooks?
QuickBooks is for businesses; this pack is for individuals and freelancers. Firefly III's double-entry accounting is technically capable of business books but lacks payroll, sales-tax filing automation, and accountant collaboration features. If you have employees or need to file payroll taxes, run QuickBooks. If you're a solo freelancer or household, this pack is a better fit and significantly cheaper.
Operational gotcha?
Backup test cadence. Most people run pg_dump nightly and never test restoration. The first time you discover the dump is corrupt is during an actual data-loss event. Restore the backup to a staging container quarterly and run a sample query to verify integrity. Also keep at least one off-site copy via rclone — a single-machine backup loses everything in a disk failure.
12 packs · 80+ hand-picked assets
Browse every curated bundle on the home page
Back to all packs