Firefly III review: a free, open-source, self-hosted personal finance manager with double-entry bookkeeping, budgets, rules, and a REST API.
Firefly III is a free, open-source personal finance manager that you install and run on your own server instead of using as a hosted cloud product. Built by developer James Cole (JC5) in PHP on the Laravel framework, it implements a genuine double-entry bookkeeping system, meaning every transaction is recorded as money moving between two accounts, which gives it more rigor than typical consumer budgeting apps.
The project is released under the GNU Affero General Public License v3 (AGPL-3.0), with its source code hosted publicly on GitHub (and mirrored on Codeberg). It is aimed at technically comfortable users, including self-hosters, homelab operators, and privacy-conscious individuals who want to keep their financial data off third-party servers entirely.
Firefly III lets users create monthly budgets, organize transactions with categories and tags, and set up recurring transactions for bills and subscriptions. A rules engine automatically categorizes, tags, or routes incoming transactions based on user-defined conditions, reducing manual bookkeeping work over time.
Additional capabilities include piggy banks for tracking progress toward savings goals, support for any currency (including multiple currencies across different accounts at once), two-factor authentication, detailed income and expense reports with charts, and a comprehensive REST JSON API that exposes nearly every part of the application for custom integrations, scripts, and the official data importer.
Transaction data can be brought in manually via CSV or automatically through the companion Firefly III Data Importer, which connects to Nordigen/GoCardless and SaltEdge to pull transactions from thousands of PSD2-compliant banks across the EU and UK, subject to free registration with those providers.
Firefly III is entirely free to self-host, with no paid tiers, no premium feature gate, and no usage limits on transactions, accounts, budgets, or API calls. Because it is self-hosted, the only real cost is whatever server or hosting infrastructure (a small VPS, a Docker host, a home NAS, and so on) you choose to run it on.
The project itself is sustained through voluntary donations to James Cole via Patreon, GitHub Sponsors, Ko-fi, and Liberapay. Per the project's own documentation, this funding covers costs like hosting the public demo instance and gives the developer more time to work on Firefly III, but it does not unlock any additional features for sponsors.
Yes. Firefly III is free and open-source software (AGPL-3.0) with no paid tiers, premium features, or usage limits. The developer accepts optional donations via Patreon, GitHub Sponsors, Ko-fi, and Liberapay, but the software is fully functional without paying anything.
Yes. Firefly III is self-hosted, so you need to run it yourself, typically via the official Docker image, on a VPS, home server, NAS, or Kubernetes cluster. There is no first-party hosted cloud version offered by the project.
The current release line requires PHP 8.4 and supports MySQL, PostgreSQL, or SQLite as the database. It can run on a standard LAMP or LEMP stack, WAMP on Windows, via Docker, or via Kubernetes.
You can upload CSV files manually, or use the companion Firefly III Data Importer, which connects to Nordigen/GoCardless and SaltEdge to automatically pull transactions from thousands of PSD2-compliant banks across the EU and UK after free registration with those providers.
No, there is no official first-party mobile app. The project's API is used by community-built clients such as Abacus (iOS and Android) and Waterfly III and Photuris III (Android).
Firefly III combines a true double-entry ledger, a scriptable rules engine, and a full REST API in a self-hosted package. GnuCash is an older desktop accounting app without native web or API access; YNAB is a paid cloud subscription with no self-hosting option; Actual Budget is an open-source, MIT-licensed alternative focused on zero-based envelope budgeting rather than double-entry bookkeeping.