All projects

Project

Ctrl+Cash

A finance app that starts from one rule: what is left over in a month is wealth.

  • Personal finance
  • React Native
  • Open source

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.

  1. Register

    You add income, bills, installments and card purchases once. Fixed items repeat by themselves.

  2. Project

    Two lines for the next months: what is planned, and what your habits usually cost.

  3. Score

    Wealth, debt and spending quality become one score from 0 to 1000.

  4. 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 GitHub

Contact

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.

Or send a message from here