Project
Ctrl+Cash
A finance app that starts from one rule: what is left over in a month is wealth.
What it is
A personal finance app for the web and phones, built with React Native and a Fastify API on PostgreSQL. You register what comes in and what goes out, and it projects your net worth for the next months, treats cards as debt and scores your financial health from 0 to 1000. A card then explains the score in plain words: what pulls it down and what pushes it up. Sign-in is handled by Firebase.
The problem
Most finance apps are ledgers. They tell you where the money went. I wanted one that tells you where it is going, and that does not count a credit card as extra income.
See it running
Desktop and phone, with a demo account.
The path of a month
From the first entry to the score, in four steps.
-
Register
You add income, bills, installments and card purchases once. Fixed items repeat by themselves.
-
Project
Two lines for the next months: what is planned, and what your habits usually cost.
-
Score
Wealth, debt and spending quality become one score from 0 to 1000.
-
Explain
A card lists what pulls the score down or up, each with its impact, in plain words.
Architecture decisions
-
Nothing is ever deleted
Removing something archives it. The API has no delete route, so past records are never damaged.
-
Each account sees only its own
The API checks the Firebase token on every request and scopes every query to it. Tests cover isolation and atomic writes.
-
Money in whole cents
Amounts are stored as integers, never as decimals, so every sum is exact.
-
Cards are debt
A card purchase only counts when its invoice is paid, and what you owe is subtracted from your net worth.
-
A calm screen
Explanations sit behind a small question mark and the score is told in words, so the screen stays quiet.
-
On its own server
It runs with Docker on a small server behind a tunnel, and a self-hosted runner updates it after the tests pass.
Technologies
- React Native
- Expo
- TypeScript
- Fastify
- PostgreSQL
- Firebase Auth
- Three.js
- Docker Compose
- Caddy
- GitHub Actions
See the code
The whole project is open, under the MIT license, with the API tests and the deploy setup included.
View on GitHubContact
Shall we talk?
A role, an opportunity or just a technical question. Tell me what you have in mind and I'll reply by email.