Fast Finance

I was looking for an all-in-one accounting and financial projections software for my own ventures — so that I could make data-based decisions about my future. I wanted to keep possession of my sensitive data, not handing over to the tech giants. It's gone through a few iterations, but the app has finally settled into it's own.

  • Aug 23, 2026

    Render from cached source content before the network fetch resolves

    Every load blocked the whole main view on a fresh git clone -- even though the previous fetch's content is already sitting in local storage as source.raw (persisted in _saveIdentity, restored on boot, but never used for anything until now).…

  • Aug 23, 2026

    Convert Assets into the default currency too, and fix overview-chart

    assets-summary-chart.vue converted Liabilities/Income/Expenses into the default currency but left the Assets tiles always split per-unit, even with a default set -- inconsistent with everything else on the page. overview-chart.vue (the Portfolio/Y2Y overview…

  • Aug 23, 2026

    Index postings by account once instead of rescanning per account

    detectAccountCurrency, calculateYearlyBalancesForAccount, calculateYearlyBalancesConverted, and the current-balance computeds each flatMapped and filtered the entire transaction list separately for every account -- O(accounts x transactions). Benchmarked…

  • Aug 23, 2026

    Cut initial load ~83% (raw) / ~64% (gzip): scope aws-sdk, lazy routes

    Initial JS payload was 4.3 MiB (636 KiB gzip) in one vendor chunk, no code splitting at all -- everything downloaded and parsed before the app could render regardless of which page a session actually needed. The aws-sdk import pulled in the entire SDK (every…

  • Aug 23, 2026

    Convert currencies via ledger-recorded rates; fix currency-mixing bugs

    The ledger already carries exchange rates via "@@ " price annotations (e.g. a USD invoice settled by a CAD deposit), but the parser discarded them. Posting now captures value/valueCurrency from both @@ (total price) and @ (unit price) forms, and a shared…

  • Aug 23, 2026

    Retry git clone fetches, wiping to a fresh filesystem on each attempt

    The home-hosted git-cors proxy and the underlying WAN link have both shown intermittent failures; retrying with backoff (3 attempts, 2s/4s delay) rides out transient drops instead of failing the whole fetch on one bad connection. Each retry gets a fresh…

  • Jul 10, 2026

    Replace hardcoded API token with environment variable

  • Jan 30, 2026

    Fix source dropdown showing empty names in staging view

    Use getSourceName query instead of non-existent source.name property. Co-Authored-By: Claude Opus 4.5

  • Jan 30, 2026

    Add balance account pattern for regex-based account matching

    Allows sources to specify a regex pattern that matches accounts across different hierarchies for balance comparison, fixing discrepancies when the same bank account posts to multiple target accounts. Also fixes flaky recurring spec by using fixed date values.…

  • Jan 30, 2026

    Add PC Financial Mastercard fetcher

    - Add pc-mastercard account type to API - Automated login via username/password form - Navigate to dashboard then Transactions page Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Add checkbox to toggle cleared transactions in staging balances

    Allows viewing committed-only balances vs projected balances including cleared staged transactions. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Truncate posting categories in staging view

    Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Show bank-reported balance vs computed balance in staging sidebar

    Displays each source's target balance alongside computed balance with checkmark when they match. Frontend handles new API response format that includes balance alongside transactions. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Move hover styles to base class for staged transaction rows

    Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Skip rules for staged transactions that have been edited

    When a user manually edits a staged transaction, it now gets marked with an `edited` flag. The recategorization logic skips these transactions, preserving user modifications even when rules are added or changed. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Display staging balances as hierarchical tree with zoom on click

    Balances sidebar now shows accounts in tree format with indentation and parent totals. Clicking an account opens the transaction panel showing staged transactions for that account. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Include amount in skipped transactions when copying

    Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Add source filter and show full original details on staged transactions

    - Staging view: dropdown to filter by bank account source - Edit view: show source name, date, payee, and amount from original import Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Include all account names in category autocomplete

    Previously only explicitly declared accounts were shown. Now also includes account names from transaction postings. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Truncate accounts and align amounts in staging table

    Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Show all postings in staging table with comment support

    Display each posting's account, amount, and optional comment in PTA format. Add comment field to staged transaction edit form. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Exclude pending staged transactions from balances

    Only cleared staged transactions count toward sidebar balances since pending amounts may change (e.g., currency conversions). Copy Staged now only exports cleared transactions. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Update staging balances to exclude ignored transactions

    Sidebar balances now reactively update when toggling transaction status. Ignored staged transactions are excluded from balance calculation while pending/cleared ones are included. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Add job queue to process fetches sequentially

    Jobs are now queued and processed one at a time. Each queued job shows its position in the queue. This prevents multiple browser instances from running simultaneously. Co-Authored-By: Claude Opus 4.5

  • Jan 19, 2026

    Return account balance alongside transactions

    Each parser now extracts the current balance from the page and returns it in the response as { transactions, balance }. Liabilities (credit cards, LOC) are returned as negative values. Co-Authored-By: Claude Opus 4.5