Comfy Money - Private Multi-Currency Ledger

Comfy Money is a private money tracker I built for myself and my family. It handles wallets in different currencies, income, expenses, transfers, budgets and debts, with automatically updated exchange rates and a mobile interface that installs as a PWA.

Comfy Money - Private Multi-Currency Ledger dashboard
Comfy Money - Private Multi-Currency Ledger dashboard

About Comfy Money - Private Multi-Currency Ledger

The story behind it is very simple: I got annoyed with ledger apps.

I tried plenty of them. Each had something I liked, something missing, and another workaround I was apparently supposed to accept. After a while, finding an app to keep track of my money had become its own ongoing project.

Currency transfers were a particular headache. I might move USD into THB, or convert USDT into CAD. I want to record what left one wallet, what arrived in the other, and see my balances make sense afterwards. That is a fairly ordinary part of how I use money, but getting the apps I tried to handle it comfortably was another matter.

So I built the ledger around that.

A transfer keeps the actual amount sent and the actual amount received, linked together. Wallets retain their own currencies, while the overview uses cached exchange rates to show an approximate total in my chosen base currency. Moving money between my own wallets stays a transfer, with both sides accounted for.

Then there’s the everyday stuff: recording expenses and income, organising categories, setting monthly budgets, tracking money owed or owing, and seeing where the money went. There’s also a Money Lover import for bringing existing records across.

And yes, I wanted it to look nice. I open this thing all the time. Clear wallet balances, readable charts, sensible forms and a comfortable mobile layout matter when you’re adding another transaction while doing something else. It installs on the phone as a PWA, with light and dark modes and interfaces in English, Thai and Russian.

My girlfriend and my mom use it too. That gives the project a very practical definition of "working": the people it was built for need to be comfortable using it.

Underneath, it’s a Go application serving a React frontend, with PostgreSQL on Neon. Money is stored in integer units, and transfers write both sides together. Those are the parts I want to be boring and predictable.

Running it has been pleasantly boring too. For our usage, Bunny Magic Containers costs around $0.20–$0.25 a month, and the database still fits within Neon’s free tier. Over the last 30 days, Bunny reported average memory usage of 34.46 MB and average CPU usage of 0.01%.

About twenty cents a month for the ledger I actually wanted. I can live with that.

This is a private app that I use every day. I’ve deleted Money Lover and the other ledger apps, and my family has something that works for them too. Finally, I can spend more time recording where my money went than looking for another app to record where my money went.

Comfy.

Release history

Version 0.14.5