About FinanceFlow
A private, offline personal finance app for macOS. Data never leaves the Mac.
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 DOES Import — 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. TECHNOLOGY Electron 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. TESTING Unusually 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 RECEIVES The 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 BUYING Pre-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.
Project details
Next step: <p>These are opportunities visible in the code, not work that has been started.</p><p>Launch it. The biggest gap is that it has never been in front of users: a finished product with no audience.</p><p>Windows and Linux builds. The renderer is a standard Next.js static export and the backend is a FastAPI binary, so the Electron shell is the only macOS-specific part. Neither has been attempted.</p><p>Notarisation and distribution. It ships as an ad-hoc signed DMG today. A buyer with an Apple Developer account could notarise it, and the App Store is a possible route.</p><p>Monetisation. There is no billing code at all, so a licence key, a paid tier or a one-off purchase would all be greenfield.</p><p>Broader import support. Parsing is model-driven rather than per-bank, so supporting more statement formats is mostly prompt and validation work.</p><p>Optional encrypted sync. Local-first with no server is the product's selling point, so this needs care, but multi-device is the obvious next feature.</p>
For sale
Asking price: $5,000 USD
What's included
Source code, All related design work
Included: the complete source code as a clean single-commit repository, the build scripts that produce a signed macOS .app and .dmg, the full test suite and CI configuration, and the app icon. Not included, to be explicit: no domain name, no Apple Developer or app-store account, no social or email accounts, and no user data of any kind — the app has never been launched, so none exists. No ongoing support is promised.
Reason for selling
I feel that the project requires skills that I do not necessarily have and would like to see someone else take over.