Actual Budget

Actual Budget

★ 28,6312,961 forks2,961 contributorsUpdated 9/7/2026

Actual Budget is an open-source, local-first personal finance app built around zero-based (envelope) budgeting, and a self-hosted alternative to YNAB. Every budget is a local file that works fully offline, with optional end-to-end encrypted sync across devices. It imports transactions by file or bank-sync integrations and includes rules, scheduled transactions, and reporting.


Overview

Description

Actual Budget is an open-source, local-first personal finance application, and a self-hosted alternative to YNAB. It uses the zero-based "envelope" method: every dollar of available money is assigned to a category before it is spent. Budgets are stored as local files that work fully offline; an optional sync server propagates end-to-end encrypted changes between devices without putting your financial data on someone else's cloud.

Features

  • Envelope budgeting: Assign every dollar a job, roll balances over, and cover overspending explicitly.
  • Local-first: Full offline use; optional self-hosted sync with end-to-end encryption.
  • Bank import: OFX/QFX/CSV import plus GoCardless and SimpleFIN bank-sync integrations.
  • Rules engine: Automatically categorize, rename, and split transactions on import.
  • Scheduled transactions: Track upcoming bills and recurring income inside the budget.
  • Reports: Net worth, cash flow, and customizable spending reports.

Technology Stack

  • TypeScript across the app and sync server
  • React web client, packaged as desktop (Electron) and mobile apps
  • Local SQLite budget files with a CRDT-based sync protocol
  • Node.js sync server; Docker image for self-hosting

Requirements

  • Docker (or Node.js) for the optional sync server
  • Any modern browser, or the desktop / mobile apps, for the client
  • Minimal resources: the sync server runs comfortably in ~256 MB RAM

Learning resources