Today we're releasing zBudget, our open source personal finance application. After months of development, zBudget is ready for anyone who wants full control over their financial data — no cloud accounts, no subscriptions, no third-party servers.
Why Self-Hosted Finance?
Most budgeting apps require you to link your bank accounts to their servers. Your financial data passes through their infrastructure, stored in their databases, governed by their privacy policies. zBudget flips this model: everything runs on your machine. Your data never leaves your Docker containers.
What You Get
zBudget includes everything you'd expect from a modern finance app and more:
- Dashboard — Monthly net balance, spending charts, budget health indicators, and upcoming recurring transactions at a glance
- Transactions — Add expenses and income, bulk import from OFX/CSV with automatic deduplication, inline category and account editing
- Auto-Categorize Rules — Set rules based on payee name patterns and let zBudget categorize imported transactions automatically
- Budgets — Set spending limits per category with progress bars that turn from green to red as you approach your limits
- Accounts — Track checking, savings, credit cards, and investment accounts with color-coded cards and drag-to-reorder
- Reports — Monthly income vs. expenses bar charts, spending breakdowns, top payees, and PDF export
- Backup & Restore — Export your entire database as a JSON file and restore it anywhere
Tech Stack
zBudget runs on React 19 + TypeScript for the frontend, FastAPI with PostgreSQL for the backend, all orchestrated with Docker Compose. The frontend uses Tailwind CSS v4, Zustand for state management, and Recharts for visualizations.
Getting Started
It takes about five minutes to get up and running. Clone the repo, create your .env file, and run docker compose up -d. The app is available at localhost:3000. Seed default categories with one click and start tracking your spending.
zBudget is released under the MIT license. The source code is available on CodeVault.