Dinero
An expense tracker where the numbers add up
Dinero is our own product. It is an expense tracker you install on your phone, and the main example of the custom software we build for clients.
Role
Product design and development
Timeline
10 weeks
Stack
Next.js, React, TypeScript, Supabase, Tailwind, TanStack Query, Recharts, Vitest
Industry
Personal finance
The Challenge
A balance that is off by one dinar costs an expense tracker the trust of the people who use it. We built Dinero to the standard of a client product: exact money handling, private data and a layout that works on a phone.
The Approach
We store money as whole numbers in minor units, so nothing drifts through rounding. We never store a balance. Dinero adds the opening balance to every transaction each time it shows one, and setting a balance adds an adjustment transaction. Row level security on every table limits people to their own data. We record credit card payments as transfers, so they never count as spending twice. Recurring transactions carry a unique key in the database, so a rule cannot create the same transaction twice. Around 40 test files cover the money calculations and the database rules, and some of them run against a real database.
What We Delivered
Money stored as integers in minor units, with every conversion in one place
Balances calculated from transactions and never stored
Row level security on every table
Shared spaces with owner, editor and viewer roles, joined by invite link
Accounts in RSD, EUR, USD and AED
Credit card accounts that show the limit and how much of it is used
Recurring transactions that cannot be created twice
Receipt photos attached to transactions
CSV import and export
Budgets, tags and monthly reports with charts
Installable PWA with an offline page
Around 40 test files, including integration tests against a real database
Inside the app






Dinero is free to use. Open the app and try it.
Open DineroReady to Start Your Project?
Tell us about your project and get a fixed quote within 2 working days. No commitment.
