Features
What Financy does today, and what comes next
Financy is being rebuilt. What works today: accounts in any currency, and the ground under them: sign-in, shared access with roles, live updates, an offline app, export, nine languages and your own server. Each section links to its code.
By Anton ShubinUpdated
Transactions and budgets are not built yet. See where the rebuild stands.
Works today
The ground your household's money will sit on
These parts work and are tested in CI. Accounts in any currency and their categories are here; transactions come next.
Works todayGoogle and GitHub sign-in need the server's own keys, so a fresh self-hosted copy starts with email sign-in.
Every account in its own currency
Cash, bank accounts, cards, savings, assets and debts, each in its own currency, grouped by kind, with one default. Everyone in the household sees a change at once.
For developers
- The server works each balance out when it is read and never stores it, so it cannot drift
- Amounts are whole numbers in the currency's smallest unit: a yen has none, a dinar has three
- A viewer reads the accounts; only an editor or above changes them, checked on the server
Categories, one level deep
Sort spending and income into categories, each with an icon and a colour. Put Groceries and Eating out under Food. A new household starts with a short list in its own language.
For developers
- A category is never deleted: archiving hides it from the pickers, and its past entries keep it
- A subcategory has its parent's kind, and a parent cannot have a parent, checked on the server
- A viewer reads the categories; only an editor or above changes them
Sign-in, done
Sign up with an email and password, and confirm it with a code. Reset a forgotten password, continue with Google or GitHub, use a passkey, or get a sign-in code by email. An authenticator app adds two-factor authentication (2FA), and you can see every device you're signed in on and sign the others out.
For developers
- Passwords hashed with PBKDF2-SHA-256 through Web Crypto, 600,000 rounds by default
- Signed session cookies, and an audit trail of every sign-in event
- Personal API tokens, stored only as keyed hashes
One household, each person with their own login
A household (called a group in the app) is the people who share money. Invite your partner or family, give each a role from viewer to owner, and hand ownership over when you need to. A deleted household can be restored within 30 days, and the activity log shows who changed what.
For developers
- The household is the one boundary every piece of data is checked against
- Each person sees only the households they belong to
- Invitations, role changes and ownership transfer, each with its own tests
Changes show up on every device without a reload
When one person in the household changes something, everyone else sees it at once, on every open device. A laptop that wakes from sleep catches up on what it missed.
For developers
- A standard WebSocket, with a sequence number on every change
- A device that reconnects pulls what it missed
An app that opens with no network
Install Financy on your phone or computer, and it opens with no network, showing what it last saw.
For developers
- A local copy of each list in IndexedDB, and a write queue with idempotency keys
- “Keep mine” or “Use the server's” for each conflict
Your data leaves with you
The owner can export a household to an open JSON file at any time, and import it later as a new household. Importing never overwrites the original.
For developers
- The whole file is checked before anything is written, then imported in one step
- Every record gets a new id, so an import never collides with what is there
In nine languages
The app and this website speak English, Russian, Spanish, German, Brazilian Portuguese, Arabic, French, Japanese, and Simplified Chinese. Each person picks their language in the app, so a household can use more than one.
For developers
- One catalog per language, checked by a test that names every missing message
- Numbers and dates through the browser's own Intl
- Arabic pages read right to left
Runs on your own server
Financy runs on any Linux server you rent or own, with Docker Compose. Self-hosting is free under the AGPL‑3.0 licence, and your household's data stays on your server.
For developers
- Traefik in front, with automatic certificates
- Postgres and Valkey beside the apps
- Metrics, logs and alerts with VictoriaMetrics, VictoriaLogs and Grafana
- An opt-in daily encrypted backup of the database, with written restore steps
- Traefik
- Postgres
- Valkey
- VictoriaMetrics
- VictoriaLogs
- Grafana
- Alertmanager
- Garage file store
- restic backups
Questions
Can Financy do that?
Can I run Financy on shared hosting or serverless?
No. Financy runs as long-lived containers with Docker Compose on one Linux server, because the API keeps WebSocket connections open and a worker drains a queue.
Which database does Financy use?
Postgres. Its migrations, queries and integration tests assume it.
Is there a phone app?
Not in a store yet. Today the web app installs from the browser on phones and computers and opens with no network.