Firefly III
FreeSelf-hosted personal finance manager with double-entry bookkeeping
About Firefly III
Firefly III is the most feature-complete open-source personal finance manager with 16,000+ GitHub stars, built on PHP and Laravel and designed for self-hosting via Docker or a standard web server. The system uses double-entry bookkeeping — every transaction has both a source and destination account, making the ledger accurate and auditable. Budgets, categories, piggy banks, and tags organize spending in multiple dimensions simultaneously. Recurring transactions automate regular bills and income entries. The rule engine automatically categorizes transactions based on description patterns, eliminating manual categorization for known merchants. Bank imports work through the Spectre API or GoCardless for European banks, though setup complexity varies by country and provider. The reporting engine generates income versus expense charts, budget adherence graphs, category breakdowns, and net worth tracking over time. Multi-currency support handles international accounts correctly. Founded in 2015 by James Cole, Firefly III has become the standard r/selfhosted recommendation for personal finance. The main friction points are bank import setup complexity and the absence of a native mobile app. The web interface works on mobile browsers but is not optimized for small screens. For users in countries where Actual Budget lacks bank sync support, Firefly III via GoCardless is often the better choice.
Key Features
Pricing Plans
Free
- Open-source and self-hosted
- All features included
- Community support
Pros
- Double-entry bookkeeping keeps financial records accurate and auditable
- Completely free — all financial data stays on your server
- Bank import via Spectre API and GoCardless for European banks
- Rule engine automatically categorizes transactions by description patterns
- Multi-currency support handles international accounts correctly
- Comprehensive reporting: income vs expense, budgets, net worth over time
Cons
- Bank import setup is complex and varies significantly by country
- No native mobile app — web UI works on mobile but not optimized for small screens
- PHP/Laravel stack requires more server resources than lighter alternatives
- Steeper learning curve than commercial apps like YNAB
- Community support smaller than commercial personal finance tools
- GoCardless integration has transaction limits and potential costs
Best For
- Privacy-conscious individuals wanting full control over their financial data
- Self-hosters replacing Mint or YNAB with something they own
- Users in countries where Actual Budget bank sync does not work
Not Ideal For
- Users wanting automatic bank sync without technical setup
- People who prefer mobile-first budgeting apps
Potential Deal Breakers
- Bank import requires third-party API setup that varies by country
- No native mobile app — web UI works on mobile but is not optimized
- PHP/Laravel stack requires more resources than lighter alternatives
Data & Privacy
Self-hosted personal finance — all transaction data, bank connections, and budgets stay on your server. No telemetry, no cloud dependency. Financial data never leaves your infrastructure. GDPR compliant by design.
Who Is This For?
Hands-on tested May 2026
Signup Experience
No account needed. Self-hosted via Docker or a web server running PHP. The installation guide is thorough and the setup wizard handles the initial configuration. Import existing transactions via CSV or OFX files from your bank.
For Home Users
The most rigorous personal finance tracker available for free. Double-entry bookkeeping gives a complete picture of where money actually goes. CSV import from bank exports works reliably. Requires comfort with self-hosting — not a plug-and-play solution.
For Business Users
Not designed for business use. Purpose-built for personal and household finance tracking. Teams needing business accounting should look at self-hosted ERPNext or commercial options.
Our Verdict
Firefly III is the most complete self-hosted personal finance tool available. The double-entry system is proper accounting and the reporting is genuinely useful. Bank import setup is the main friction point but once configured it works well.