About this project

Florin is an open-source personal finance application focused on keeping financial data on the user's own devices. It provides native iPhone and macOS apps as well as a self-hostable web version, all sharing core budgeting, bank synchronization, and wealth tracking features. The app supports real bank sync through PSD2 access to over 2,000 European banks via Enable Banking, using the user's own credentials rather than a shared key. It also offers CSV/OFX import, manual entry, and transfers between accounts. Budgeting features include monthly category plans, a review queue that learns from filing history, and month-end projections. For wealth tracking, Florin handles loans with real amortization schedules, investment holdings with cost basis and optional live quotes, and net worth over time. Privacy is a central design principle: there is no Florin account, no Florin server, no analytics, and no tracking SDK. The iPhone app stores data in a local SQLite ledger included in iCloud backups, while the Mac app uses a local SQLite database. The self-hosted web version runs as a single-admin Next.js and Postgres stack deployable via Docker, installable as a PWA. The project is licensed under AGPL-3.0, with the name and logo excluded from the license grant. The codebase is organized into separate iOS (SwiftUI), desktop (Electron + Next.js), and web (Next.js 15 + Postgres) applications, with shared packages for UI, i18n, bank client, and categorization logic.