~/projects/kalmo-money
Beta on TestFlight

Kalmo Money

The money app that never asks for your bank login.

What
iPhone app in 7 languages, plus website
Built by
Me, after hours
Stack
Expo · React Native · TypeScript · SQLite
Started
July 2026
Kalmo Money home screen: month spend, budget and latest purchases Kalmo Money insights: ask a question, six-month trend and budgets Kalmo Money privacy receipt: 0 bytes sent since install
Home · Insights · Privacy receipt
01 What it is

Log a purchase in three seconds.

Kalmo Money is a personal finance app for iPhone. Type a purchase the way you would say it, snap the receipt, or import the statement file your bank already gives you. Everything stays on your phone: no account, no bank login. Then ask questions like “How much did I spend on coffee in June?”

02 Why I built it

The apps I tried were missing something.

Every budgeting and money-tracking app I tried lacked something I needed. Kalmo is my answer to that. It is also the project I am learning to code through, one feature at a time.

03 How it works

Private by design.

AI runs on the phone first. Your data lives in a local database and receipts are read on the device. Cloud AI is opt-in: switch it on and only the text of a note, a receipt or a question travels through a small serverless function to Mistral AI in the EU. A privacy receipt in the app counts every byte that has ever left the phone.

On your iPhone Kalmo app On-device AI first
SQLite, receipts read on the phone
In the cloud Netlify function A thin proxy, only when cloud AI is on
No account, no bank login
Only if you opt in Mistral AI, EU Understands notes and receipts
Answers questions in plain language
04 What I learned
  1. 01 Ask better, get better. The quality of what came out tracked the quality of what I asked for. "Build me a page" became a real brief: behaviour, constraints, scope, and how I will check it.
  2. 02 One builds, another attacks. One AI agent writes the code, a different one tries to break it. Nothing ships until I have seen it running and accepted it. That is the one step I never automate.
  3. 03 Green is not the same as working. Every automated check passed, and three of them could not fail: they had been written by the same thing they were checking. "All fixed" is a claim, not a result.