The starting situation
Keeping a budget together happens in a shared spreadsheet, or not at all. Someone fronts an expense, nobody knows where the month stands, and the conversation always comes back to the same place: who paid for what.
What was delivered
An app where everyone logs their spending and everyone sees the same amount left. Category budgets that warn before you overshoot, recurring costs entered once, and several households in one account, the flatshare, the family, the trip with friends.
What it changes
The project as the people using it every day see it.
01
The budget stops being a discussion
Everyone logs, everyone sees the same figure. What's left this month is no longer an estimate someone announces, it's a number everyone reads.
02
Several households, one account
The flatshare, the family, the trip with friends: separate budgets, each in its own currency, without switching accounts or reinstalling anything.
03
What comes back is entered once
Subscriptions, rent, bills: declared once, they appear on the calendar and count themselves into the month.
The screens, one by one
Each screen stays put while you read what it demonstrates. In an app the screen is the product, so it takes the whole space.

01 / 03
The month, in one screen
What's left to spend, large, then each category with its share used. You see in three seconds whether the month holds, without reading a single figure in detail.
Under the hood
Household data is loaded once and shared across screens by the query cache; adding an expense invalidates the affected views rather than reloading everything.

02 / 03
Habits, not just totals
Month-by-month trends and the category split. It's no longer “we spent 3,146” but “we always spend more in January, and housing is half of it”.
Under the hood
Curves and pie chart are drawn in the app from data already in memory.

03 / 03
One account, several lives
The main household in euros, the trip with friends in dollars, each with its members and its budget. You switch between them without signing out.
Under the hood
Currency belongs to the household, not the account: amounts are never converted on the fly, which avoids showing a wrong total the day a rate moves.
On a phone
The screens as they appear on a phone.
The decisions, and why
Each decision carries its reason, then what would break without it.
01
An app cut into layers
Domain, use cases, infrastructure, presentation. The budget rules know neither the screen that displays them nor the database that stores them.
Without it: On mobile the temptation is to put everything in the screen. Six months later, changing one calculation means reopening five screens and retesting them all by hand.
02
Session tokens in the system vault
The session identifier is kept in the phone's secure storage, the one backed by the dedicated chip, rather than in the app's ordinary storage.
Without it: Ordinary storage can be read in clear on an unlocked or jailbroken device. A leaked token opens a whole household's spending.
03
The app speaks the phone's language
Text is kept out of the code and the language follows the system setting, with no selection screen. Amounts and dates follow the same rule.
Without it: A budgeting app showing American date formats to a French user loses its credibility in one screen.
04
Charts are computed on the phone
Monthly trends and category breakdowns are drawn in the app from data already loaded. No server round trip to show a curve.
Without it: Server-generated charts are images you wait for, can't explore, and can't read on a poor connection.
05
A pending invitation survives installation
When you join a household before having the app, the invitation is kept locally and picked up again after install and sign-in.
Without it: Without it, the invitee lands in an empty app and has to ask for the link again. That's where you lose half the households.
- Our role
- Product, architecture, development, release
- Type
- Mobile app
- Technologies
- React Native 0.81
- Expo SDK 54
- TypeScript
- Supabase
- TanStack Query
- i18next
- Clean Architecture
Tell us what you are trying to build.
Message us on WhatsAppOther work

Bahia Renov Pro
Business software · Spain
Sites were run on a shared spreadsheet and the phone. Three people typed the same information, and every subsidy file had to reach the scheme operator with the right papers in the right order, or be rejected.
Read the case study

Terres de Villas
Luxury real estate · France
A young agency in a market where credibility is decided before the first appointment. Facing names established for twenty years, it had to look settled from day one, and exist in English without doubling the typing.
Read the case study

Regarde-moi
Vocational training · France
A Qualiopi-certified beauty training centre near Avignon whose visibility rested on Instagram and word of mouth. Someone searching for “eyelash extension training Avignon” didn't find it, and her first question, how to pay for it, was answered nowhere.
Read the case study

