Skip to content
Craft Solution Tech
All work
Mobile app2026Personal finance · Studio product

SAVY

SAVY

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.

  1. 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.

  2. 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.

  3. 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.

The month, in one screen

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.

Habits, not just totals

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.

One account, several lives

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.

  1. 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.

  2. 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.

  3. 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.

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

  5. 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 WhatsApp

Other work

Bahia Renov Pro
Business software2026

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
Website2026

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
Website2026

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