# Actual Budget — Local-First Personal Finance App > Actual is an open-source personal finance app with envelope budgeting, bank sync, multi-device sync, and local-first architecture — a YNAB alternative. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash docker run -d --name actual -p 5006:5006 -v actual-data:/data actualbudget/actual-server:latest ``` Open `http://localhost:5006` — create your budget and start tracking expenses. ## Intro **Actual** is a local-first personal finance app built for privacy-conscious budgeters. Using an envelope budgeting method (similar to YNAB), it helps you track every dollar, plan ahead, and stay on top of your finances — all while keeping your data encrypted and under your control. With 25.9K+ GitHub stars and MIT license, Actual is the most popular open-source budgeting app, valued for its fast performance, beautiful UI, and local-first sync architecture that works offline. ## What Actual Does Actual provides a comprehensive budgeting experience: - **Envelope Budgeting**: Allocate every dollar to a category, carry forward or roll over between months - **Transaction Management**: Manual entry or import from bank (QIF, OFX, CSV) with smart categorization - **Bank Sync**: Optional automated bank connection via GoCardless/SimpleFIN for transaction import - **Multi-device Sync**: Encrypted sync between devices via self-hosted server - **Reports**: Spending by category, net worth tracking, cash flow analysis - **Rules**: Auto-categorize transactions based on payee, amount, or notes - **Split Transactions**: Split a single transaction across multiple categories - **Scheduled Transactions**: Recurring bills and income with reminders ## Architecture ``` ┌──────────────┐ ┌──────────────┐ │ Browser │────▶│ Actual │ │ (React PWA) │ │ Server │ │ Local SQLite│ │ (Node.js) │ └──────────────┘ │ Sync Engine │ └──────────────┘ ``` Key design: Data lives in a local SQLite database in your browser (IndexedDB). The server is only needed for multi-device sync. You can use Actual entirely offline. ## Self-Hosting ### Docker Compose ```yaml services: actual: image: actualbudget/actual-server:latest ports: - "5006:5006" volumes: - actual-data:/data restart: unless-stopped volumes: actual-data: ``` That's it — no database to configure, no dependencies. The server just handles sync. ### With Bank Sync ```yaml services: actual: image: actualbudget/actual-server:latest ports: - "5006:5006" environment: ACTUAL_NORDIGEN_SECRET_ID: your-gocardless-id ACTUAL_NORDIGEN_SECRET_KEY: your-gocardless-key # Or SimpleFIN: # ACTUAL_SIMPLEFIN_TOKEN: your-simplefin-token volumes: - actual-data:/data volumes: actual-data: ``` ## Key Features ### Envelope Budgeting ``` Income: $5,000 ├── Housing: $1,500 (assigned) ├── Groceries: $600 (assigned) ├── Transport: $300 (assigned) ├── Savings: $1,000 (assigned) ├── Entertainment: $200 (assigned) ├── Utilities: $200 (assigned) └── Unassigned: $1,200 (left to budget) ``` Every dollar of income gets assigned to a category. Overspending in one category borrows from another, keeping you accountable. ### Smart Rules Auto-categorize transactions: ``` If payee contains "Starbucks" → Category: Coffee If payee contains "Amazon" and amount > $50 → Category: Shopping If payee contains "Netflix" → Category: Subscriptions ``` ### Reports - **Net Worth**: Track assets vs liabilities over time - **Spending by Category**: Monthly and yearly breakdowns with trends - **Cash Flow**: Income vs expenses visualization - **Custom date ranges**: Compare any time periods ### Local-First Benefits - **Speed**: Instant UI — no waiting for server responses - **Offline**: Works without internet connection - **Privacy**: Data stays on your device, encrypted at rest - **Resilience**: No server downtime affects your access ## Actual vs Alternatives | Feature | Actual | YNAB | Mint | Monarch | |---------|--------|------|------|---------| | Open Source | Yes (MIT) | No | No | No | | Self-hosted | Yes | No | No | No | | Offline | Yes (local-first) | No | No | No | | Bank sync | GoCardless/SimpleFIN | Plaid | Plaid | Plaid | | Pricing | Free (self-host) | $14.99/mo | Free (discontinued) | $9.99/mo | | Envelope budgeting | Yes | Yes | No | Yes | ## FAQ **Q: How does Actual compare to YNAB?** A: Actual implements YNAB's core envelope-budgeting methodology with a very similar UI and UX. Main differences: Actual is free, open source, and self-hostable; YNAB is a SaaS subscription. YNAB has richer bank connections and community tutorials; Actual is stronger on privacy and autonomy. **Q: Does it support Chinese banks?** A: Automatic bank sync (GoCardless/SimpleFIN) mainly covers European and U.S. banks. Chinese users can import bank statements manually (CSV format). **Q: Is my data safe?** A: Yes. Data is stored locally in your browser, and sync uses end-to-end encryption. Even if a self-hosted server is compromised, attackers cannot read your financial data. ## Source & Thanks - GitHub: [actualbudget/actual](https://github.com/actualbudget/actual) — 25.9K+ ⭐ | MIT - Website: [actualbudget.org](https://actualbudget.org) --- Source: https://tokrepo.com/en/workflows/actual-budget-local-first-personal-finance-app-791dd19e Author: AI Open Source