ComingUp ComingUp
F

FinanceFlow

A private, offline personal finance app for macOS. Data never leaves the Mac.

Aug 21, 2026 Finance & Accounting
local ai macos offline personal finance privacy

About

FinanceFlow is a personal finance desktop app for macOS built around a single principle: your financial data never leaves your machine. There is no server, no account to sign up for, and no telemetry. The database is encrypted at rest with SQLCipher, and the AI features run against a local Ollama model by default.WHAT IT DOESImport — drop in a CSV, PDF or photo of a statement or receipt. It is parsed by a language model into structured transactions, shown as a preview, and nothing is written to the ledger until you confirm. Every import can be undone as a batch.Transactions — inline editing, bulk categorisation, filtering by type and category, full-text and AI-assisted search.Budgets — per-category budgets with live spend pacing.Forecast — a 30-day cash-flow projection built from recurring bills and a 60-day historical burn rate, on a calendar view.Analytics — spend by category, burn velocity, long-term averages and savings goals.Recurring bills — detects subscriptions and recurring payments from your own transaction history and offers them for review.Voice entry — add a transaction by speaking it.Multi-profile — several isolated profiles on one machine, each with its own encrypted data, 2FA, login PIN and BIP39 recovery phrase.TECHNOLOGYElectron 31 shell, Next.js 16 static export as the renderer.FastAPI (Python 3.14) backend compiled to a standalone binary with PyInstaller and shipped inside the app bundle, so the user needs no Python install.SQLite via SQLAlchemy, encrypted with SQLCipher, Alembic migrations.Local Ollama by default; Google Gemini supported as an alternative.Roughly 11,300 lines of Python and 12,200 lines of TypeScript/React, across 89 REST endpoints.TESTINGUnusually thorough for a project this size, and the numbers are current as of listing:774 backend tests. These include generated sweeps that derive their cases from the route table, so a new endpoint is covered the moment it registers: no route may serve an anonymous caller, none may act on another profile's data, and none may return a 5xx for a malformed body.453 frontend unit tests, run across three timezones.44 end-to-end journeys driving the real packaged, signed application.An automated visual audit that measures WCAG contrast from painted pixels across every screen in both light and dark themes, at two extra window widths, plus five modals.An axe-core accessibility sweep over those same screens and modals, scoped to the WCAG 2.0/2.1 A and AA rules, reporting zero violations. Contrast is deliberately excluded there because the visual audit above measures it more accurately through the app's translucent surfaces.GitHub Actions CI runs the backend matrix, the frontend checks and the packaged macOS app suites.WHAT THE BUYER RECEIVESThe complete source as a clean single-commit repository, including the build scripts that produce a signed macOS .app and .dmg and the full test suite, plus the app icon.Not included: no domain, no developer or app-store account, and no post-sale support commitment.WHAT I WOULD WANT TO KNOW IF I WERE BUYINGPre-revenue, never launched. There are no users, no traffic and no income to transfer. What is for sale is the codebase.macOS and Apple Silicon only. No Windows, Linux or Intel build exists.Not on the App Store. It is distributed as a signed DMG, and the buyer needs their own Apple Developer certificate to notarise it under their own name.One end-to-end test currently fails on CI and passes locally: profile registration inside the packaged app on a hosted macOS runner. The cause is not yet understood and it is documented rather than hidden. The other 43 journeys pass on the same runner.AI import quality depends entirely on the local model the user chooses to run. A small model produces worse categorisation than a large one.The recurring-bills detection feature is functionally complete and tested but was never tagged as a release.The app has been exercised heavily by its test suite and by me, but it has never been used day to day by anyone else. Expect the rough edges of software that has not met real users.

Comments (3)

Evert Larkin Evert Larkin 1 month ago

whats the local storage layer, core data or sqlite

Dagmar Tremblay Dagmar Tremblay 1 month ago

mac-only offline with no sync severely limits addressable market

Casey Pfeffer Casey Pfeffer 1 month ago

no mobile or sync kinda kills the addressable market