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