dtymoszenko/FlyBudget

An Open Source Budgeting App

TypeScript

8

269 commits

updated Oct 3, 2026

See the code

See what people are saying

SourceMessageScoreDate

I spent the last couple months building an open-source budgeting app, finally at a point where I’m happy with the UI! (r/webdev)

I’ve been using budgeting and personal finance apps for years, and I’ve always liked tracking where my money is going. Over time I ended up trying a bunch of different tools and kept wishing I could combine the parts I liked from each of them into one app. So for the past couple months I’ve been…

0

Oct 3, 2026

README

FlyBudget

FlyBudget

Plan your money. Keep it private.

A free, open-source budgeting app. Plan every dollar, track every account, and keep your financial data on your own computer or server.
No subscription. No account. No tracking.

Try the demo in your browser Download for Windows, macOS and Linux Self-host with Docker

CI CodeQL OpenSSF Scorecard License: AGPL-3.0 Latest release GitHub stars

Website · Tour · User guide · Security · Roadmap · Contributing

The FlyBudget dashboard: net worth, left to spend, income and expenses, spending and upcoming bills

✨ Why FlyBudget?

🔒 Your data stays yoursEverything lives in one file on your computer or your own server. There's no FlyBudget cloud, account, telemetry or crash reporting.
💸 Free, for goodNo subscription and no premium tier. FlyBudget is AGPL-3.0 open source, so anyone can read, check and improve the code.
🧭 Every dollar gets a planZero-based budgeting with carry-over, rules that sort transactions for you, recurring bills, goals and reports you arrange yourself.
💻 On every device you useA desktop app for Windows, macOS and Linux, or a self-hosted server you open from any browser, with a layout made for phones and a copy that works offline.
🏦 Bring your bank with youImport CSV files from any bank, or sync automatically with SimpleFIN or Plaid.

🚀 Get started in a minute

1. Try it without installing anything. The live demo runs the real app in your browser with a sample budget. Nothing leaves your browser, and closing the tab wipes it.

2. Install the desktop app.

PlatformDownloadRequires
WindowsInstaller (.exe)Windows 10 or 11, 64-bit
macOSApple silicon (.dmg) · Intel (.dmg)macOS 12 Monterey or later
Linux.deb · .AppImage · ARM64-bit, x86 or ARM

The installers aren't signed with a paid Windows or Apple certificate yet, so your computer may ask you to confirm the first time you open FlyBudget. The installing guide shows what to click, and every download can be verified against the build that made it.

3. Follow the checklist. A new budget opens on a short setup, and the dashboard's Getting started checklist walks you through adding accounts, importing transactions and planning your first month. The user guide covers every feature.

🐳 Self-host with Docker

Run FlyBudget on your own server, protected by a password, and open it from any browser, including your phone:

curl -O https://raw.githubusercontent.com/dtymoszenko/FlyBudget/main/docker-compose.yml
openssl rand -base64 32 > flybudget_data_key.txt   # encryption key for bank credentials
sudo chown 1000:1000 flybudget_data_key.txt && sudo chmod 400 flybudget_data_key.txt
docker compose up -d
docker logs flybudget                              # prints the one-time setup code

Open http://<your-server>:3001, enter the setup code and choose your password. Images are published for amd64 and arm64 as ghcr.io/dtymoszenko/flybudget. The self-hosting guide covers HTTPS, backups and updates.

📸 A look inside

Give every dollar a job

Planned, actual and remaining for every category. Bars turn amber near the plan and red when you go over, and whatever you don't plan carries into next month.

The budget for the month

Sort transactions once

Write a rule in plain words and see which past transactions it matches as you type. Rules rename, categorize and split everything that comes in after.

Editing a rule, with the transactions it matches

Reports you arrange yourself

Dashboards of net worth, spending, trends and a transaction calendar, plus a custom report builder for anything else.

Report dashboards

See where it all flows

Income sources on one side, spending on the other, and what's left over in between.

The cash flow diagram

Never miss a bill

Bills, subscriptions and paychecks for the month, as a list or a calendar. FlyBudget can even find them in your past transactions.

This month's recurring transactions

Every account in one place

Checking, credit cards, loans, investments, property and more, with your net worth across all of them and reconciliation when you need it.

The accounts page

📱 Made for your phone, too

Every page has a layout for small screens, and transactions you add without a connection are saved as soon as it's back.

The dashboard on a phone    The budget on a phone    Transactions on a phone

Take the full tour →

🧰 Everything included

  • Budgeting: zero-based planning by category, carry-over between months, and each category's history
  • Accounts: 17 account types across cash, credit, investments, property and loans, with net worth, reconciliation and value updates
  • Transactions: splits, transfers, search and filters, CSV import with duplicate detection, and bank sync through SimpleFIN or Plaid
  • Rules: conditions on payee, amount, date, account and more; actions that rename, categorize, add notes or split; run them on past transactions with a preview
  • Recurring: bills and paychecks by month or calendar, automatic detection, and transactions created for you
  • Reports: dashboards with movable widgets, a custom report builder, cash flow and a transaction calendar
  • Goals for savings targets, payees with logos and default categories, and backups you can restore in one step
  • Light and dark themes, and a phone layout for every page

🛡️ Security you can check

A budgeting app holds some of the most personal data you have, so FlyBudget treats security as a feature, not an afterthought:

  • ✅ Local-first. No FlyBudget servers, accounts, telemetry or crash reports. Your data only leaves your machine when bank sync talks to Plaid or SimpleFIN for you.

  • ✅ Encrypted bank credentials. Plaid and SimpleFIN secrets are stored with AES-256-GCM, under a key protected by your operating system (Windows DPAPI, macOS Keychain, Linux secret service). A copied database gives no bank access.

  • ✅ A locked-down app. The built-in API answers only the app's own window, with a new secret every launch; other websites and programs are turned away. The window is sandboxed under a strict Content Security Policy.

  • ✅ A hardened server. Self-hosted installs use a scrypt-hashed password, a one-time setup code, rate-limited sign-in, signed-in device management and a read-only, unprivileged container.

  • ✅ Verifiable releases. Every download and Docker image comes with signed build provenance from GitHub Actions. Check that a file was built from this repository:

    gh attestation verify FlyBudget-Windows-Setup.exe -R dtymoszenko/FlyBudget
    
  • ✅ A careful supply chain. Dependency install scripts never run, npm registry signatures are checked in CI, and new dependency versions wait a week before they're proposed.

Read the full model in SECURITY.md or on the security page. Found a problem? Please report it privately.

💙 Built with care

  • Tested on every change: property-based tests check the budget math, rules engine and recurrence dates against hundreds of generated cases, and Playwright end-to-end tests drive the desktop app, the self-hosted server, a phone-sized screen and the demo.
  • Never locks you out: if the server drops, FlyBudget keeps showing your budget, queues new transactions and reconnects on its own.
  • Your data is portable: download a full backup or CSV export whenever you like.
  • Documented: a user guide for every feature, a tour of every page and an FAQ.
🛠️ Run it from source

You'll need Node.js and npm.

git clone https://github.com/dtymoszenko/FlyBudget.git
cd FlyBudget
npm ci && npm ci --prefix client && npm ci --prefix server
npm run dev          # opens on http://localhost:5173
npm run electron:dev # or run it as the desktop app

Built with React 19, Vite, Tailwind CSS, TanStack Query, Express 5, SQLite (Drizzle ORM) and Electron. See CONTRIBUTING.md for the checks to run before a pull request.

🗺️ Roadmap

Ideas we're considering (not promises):

  • Imports from YNAB and other budgeting apps
  • Investment projections and forecasting, and a FIRE calculator
  • Envelope budgeting
  • Syncing one budget between devices that also work offline
  • MCP support
  • Bank connections for European banks
  • Multiple currencies

Have an idea? Open an issue.

🤝 Contributing

Contributions are welcome, from bug reports to pull requests. See CONTRIBUTING.md for setup, the checks to run and commit conventions. Before your first pull request is merged, you'll be asked to accept the Contributor License Agreement with a one-line comment.

📄 License

FlyBudget is free software under the GNU Affero General Public License v3.0 (AGPL-3.0-only). You can use, study, share and modify it. If you run a modified version for other people over a network, you must share your source code with them too.


If FlyBudget helps you, a ⭐ helps other people find it.

budget-app
budgeting
finance-application
local-first
money-management
money-manager
open-source
personal-finance
privacy

dtymoszenko/FlyBudget

An Open Source Budgeting App

TypeScript

8

269 commits

updated Oct 3, 2026

See the code

See what people are saying

SourceMessageScoreDate

I spent the last couple months building an open-source budgeting app, finally at a point where I’m happy with the UI! (r/webdev)

I’ve been using budgeting and personal finance apps for years, and I’ve always liked tracking where my money is going. Over time I ended up trying a bunch of different tools and kept wishing I could combine the parts I liked from each of them into one app. So for the past couple months I’ve been…

0

Oct 3, 2026

README

FlyBudget

FlyBudget

Plan your money. Keep it private.

A free, open-source budgeting app. Plan every dollar, track every account, and keep your financial data on your own computer or server.
No subscription. No account. No tracking.

Try the demo in your browser Download for Windows, macOS and Linux Self-host with Docker

CI CodeQL OpenSSF Scorecard License: AGPL-3.0 Latest release GitHub stars

Website · Tour · User guide · Security · Roadmap · Contributing

The FlyBudget dashboard: net worth, left to spend, income and expenses, spending and upcoming bills

✨ Why FlyBudget?

🔒 Your data stays yoursEverything lives in one file on your computer or your own server. There's no FlyBudget cloud, account, telemetry or crash reporting.
💸 Free, for goodNo subscription and no premium tier. FlyBudget is AGPL-3.0 open source, so anyone can read, check and improve the code.
🧭 Every dollar gets a planZero-based budgeting with carry-over, rules that sort transactions for you, recurring bills, goals and reports you arrange yourself.
💻 On every device you useA desktop app for Windows, macOS and Linux, or a self-hosted server you open from any browser, with a layout made for phones and a copy that works offline.
🏦 Bring your bank with youImport CSV files from any bank, or sync automatically with SimpleFIN or Plaid.

🚀 Get started in a minute

1. Try it without installing anything. The live demo runs the real app in your browser with a sample budget. Nothing leaves your browser, and closing the tab wipes it.

2. Install the desktop app.

PlatformDownloadRequires
WindowsInstaller (.exe)Windows 10 or 11, 64-bit
macOSApple silicon (.dmg) · Intel (.dmg)macOS 12 Monterey or later
Linux.deb · .AppImage · ARM64-bit, x86 or ARM

The installers aren't signed with a paid Windows or Apple certificate yet, so your computer may ask you to confirm the first time you open FlyBudget. The installing guide shows what to click, and every download can be verified against the build that made it.

3. Follow the checklist. A new budget opens on a short setup, and the dashboard's Getting started checklist walks you through adding accounts, importing transactions and planning your first month. The user guide covers every feature.

🐳 Self-host with Docker

Run FlyBudget on your own server, protected by a password, and open it from any browser, including your phone:

curl -O https://raw.githubusercontent.com/dtymoszenko/FlyBudget/main/docker-compose.yml
openssl rand -base64 32 > flybudget_data_key.txt   # encryption key for bank credentials
sudo chown 1000:1000 flybudget_data_key.txt && sudo chmod 400 flybudget_data_key.txt
docker compose up -d
docker logs flybudget                              # prints the one-time setup code

Open http://<your-server>:3001, enter the setup code and choose your password. Images are published for amd64 and arm64 as ghcr.io/dtymoszenko/flybudget. The self-hosting guide covers HTTPS, backups and updates.

📸 A look inside

Give every dollar a job

Planned, actual and remaining for every category. Bars turn amber near the plan and red when you go over, and whatever you don't plan carries into next month.

The budget for the month

Sort transactions once

Write a rule in plain words and see which past transactions it matches as you type. Rules rename, categorize and split everything that comes in after.

Editing a rule, with the transactions it matches

Reports you arrange yourself

Dashboards of net worth, spending, trends and a transaction calendar, plus a custom report builder for anything else.

Report dashboards

See where it all flows

Income sources on one side, spending on the other, and what's left over in between.

The cash flow diagram

Never miss a bill

Bills, subscriptions and paychecks for the month, as a list or a calendar. FlyBudget can even find them in your past transactions.

This month's recurring transactions

Every account in one place

Checking, credit cards, loans, investments, property and more, with your net worth across all of them and reconciliation when you need it.

The accounts page

📱 Made for your phone, too

Every page has a layout for small screens, and transactions you add without a connection are saved as soon as it's back.

The dashboard on a phone    The budget on a phone    Transactions on a phone

Take the full tour →

🧰 Everything included

  • Budgeting: zero-based planning by category, carry-over between months, and each category's history
  • Accounts: 17 account types across cash, credit, investments, property and loans, with net worth, reconciliation and value updates
  • Transactions: splits, transfers, search and filters, CSV import with duplicate detection, and bank sync through SimpleFIN or Plaid
  • Rules: conditions on payee, amount, date, account and more; actions that rename, categorize, add notes or split; run them on past transactions with a preview
  • Recurring: bills and paychecks by month or calendar, automatic detection, and transactions created for you
  • Reports: dashboards with movable widgets, a custom report builder, cash flow and a transaction calendar
  • Goals for savings targets, payees with logos and default categories, and backups you can restore in one step
  • Light and dark themes, and a phone layout for every page

🛡️ Security you can check

A budgeting app holds some of the most personal data you have, so FlyBudget treats security as a feature, not an afterthought:

  • ✅ Local-first. No FlyBudget servers, accounts, telemetry or crash reports. Your data only leaves your machine when bank sync talks to Plaid or SimpleFIN for you.

  • ✅ Encrypted bank credentials. Plaid and SimpleFIN secrets are stored with AES-256-GCM, under a key protected by your operating system (Windows DPAPI, macOS Keychain, Linux secret service). A copied database gives no bank access.

  • ✅ A locked-down app. The built-in API answers only the app's own window, with a new secret every launch; other websites and programs are turned away. The window is sandboxed under a strict Content Security Policy.

  • ✅ A hardened server. Self-hosted installs use a scrypt-hashed password, a one-time setup code, rate-limited sign-in, signed-in device management and a read-only, unprivileged container.

  • ✅ Verifiable releases. Every download and Docker image comes with signed build provenance from GitHub Actions. Check that a file was built from this repository:

    gh attestation verify FlyBudget-Windows-Setup.exe -R dtymoszenko/FlyBudget
    
  • ✅ A careful supply chain. Dependency install scripts never run, npm registry signatures are checked in CI, and new dependency versions wait a week before they're proposed.

Read the full model in SECURITY.md or on the security page. Found a problem? Please report it privately.

💙 Built with care

  • Tested on every change: property-based tests check the budget math, rules engine and recurrence dates against hundreds of generated cases, and Playwright end-to-end tests drive the desktop app, the self-hosted server, a phone-sized screen and the demo.
  • Never locks you out: if the server drops, FlyBudget keeps showing your budget, queues new transactions and reconnects on its own.
  • Your data is portable: download a full backup or CSV export whenever you like.
  • Documented: a user guide for every feature, a tour of every page and an FAQ.
🛠️ Run it from source

You'll need Node.js and npm.

git clone https://github.com/dtymoszenko/FlyBudget.git
cd FlyBudget
npm ci && npm ci --prefix client && npm ci --prefix server
npm run dev          # opens on http://localhost:5173
npm run electron:dev # or run it as the desktop app

Built with React 19, Vite, Tailwind CSS, TanStack Query, Express 5, SQLite (Drizzle ORM) and Electron. See CONTRIBUTING.md for the checks to run before a pull request.

🗺️ Roadmap

Ideas we're considering (not promises):

  • Imports from YNAB and other budgeting apps
  • Investment projections and forecasting, and a FIRE calculator
  • Envelope budgeting
  • Syncing one budget between devices that also work offline
  • MCP support
  • Bank connections for European banks
  • Multiple currencies

Have an idea? Open an issue.

🤝 Contributing

Contributions are welcome, from bug reports to pull requests. See CONTRIBUTING.md for setup, the checks to run and commit conventions. Before your first pull request is merged, you'll be asked to accept the Contributor License Agreement with a one-line comment.

📄 License

FlyBudget is free software under the GNU Affero General Public License v3.0 (AGPL-3.0-only). You can use, study, share and modify it. If you run a modified version for other people over a network, you must share your source code with them too.


If FlyBudget helps you, a ⭐ helps other people find it.

budget-app
budgeting
finance-application
local-first
money-management
money-manager
open-source
personal-finance
privacy

Languages

TypeScript

93.0%

MDX

5.2%

CSS

1.2%