Skip to content
Alex ALAVO.

Case study 01 · Full-stack · AI · FinTech

MesSous

A mobile money coach to track spending in CFA francs, plan a budget and decide before buying.

Role
Design, full-stack development, AI integration and testing
Category
Full-stack · AI · FinTech
Stack
Next.js 16 · React 19 · PostgreSQL
Quality
172 tests
MesSous monthly review: saved, spent, put towards goals and trends
Mobile purchase simulation: balance after purchase and budget impact

01 — Context

MesSous is built for students, workers, parents and freelancers in French-speaking Africa. Designed phone-first for the Beninese context, it brings declared transactions in CFA francs, the budget and financial goals together in an experience that works for people unfamiliar with financial tools.

02 — Problem

Money is spread across cash, mobile money, bank accounts and savings circles: no overall view is possible.

03 — Solution

Users declare where they keep their money, then record income, expenses and savings. MesSous computes estimated balances, compares spending with the budget and shows trends. The coach explains the situation, prepares proposals and compares purchase scenarios; every proposal is reviewed and confirmed by the user. The app never moves money: everything stays declarative.

04 — Features

  • Several money spaces

    Cash, MTN, Moov, bank, savings circle: available and locked money kept apart.

  • Transactions and search

    Income, expenses and transfers filterable by period, category and amount.

  • Evolving budget

    50/30/20 or irregular-income strategies, with dated versions.

  • Goals

    Target amount, priority and deadline, with computed progress.

  • Purchase simulation

    Balance after purchase and budget impact, before deciding.

  • Conversational coach

    In French: understand spending, build a budget, save for a purchase.

06 — Architecture

  1. React interfacemobile first
  2. Next.js Server Actionssession · Zod
  3. Domain servicesrules ↔ AI coach
  4. Repositories · Prismadata access
  5. PostgreSQLsource of truth

Expenses, income, wallets, goals, budget, simulations and coach: each domain owns its components, validation, services and data access.

The AI only proposes. Its structured proposals go back through domain actions, validation and ownership checks before anything is saved.

07 — Technical challenges

  • Challenge

    Make the AI useful without letting it touch the data.

    Solution

    Function calls limited to proposals, structured validation, identifier checks and user confirmation.

  • Challenge

    Accurate balances despite transfers, goals and locked money.

    Solution

    Dedicated calculation rules, integer amounts and estimated balance kept apart from available money, covered by tests.

  • Challenge

    Keep past months readable after a budget revision.

    Solution

    Dated budget versions: each month is compared with the budget in force at the time.

  • Challenge

    Prevent a proposal from being confirmed twice.

    Solution

    Atomic reservation of coach cards and simulations before they are saved.

08 — My contribution

  • Domain-based architecture and business rules
  • Data model and migrations
  • Full-stack declaration and planning flows
  • Mobile-first interfaces and reusable components
  • Financial calculations, aggregations and charts
  • AI coach integration
  • Administration, permissions and audit log
  • Unit and integration tests, automated demo videos

09 — Stack

Frontend
React 19, TypeScript, Tailwind CSS v4, React Hook Form, Recharts
Backend
Next.js 16 (App Router, Server Components, Server Actions), Zod
Data
PostgreSQL, Prisma ORM 7
Authentication
Better Auth, double authentification TOTP (admin), Nodemailer
AI
OpenRouter, appels de fonctions structurés, repli heuristique
Testing
Vitest, Testcontainers, Playwright, FFmpeg

10 — Results

  • 172

    passing unit tests across 22 files

  • 3

    automatically generated demo video formats: mobile, tablet, desktop

  • 0

    money moved: the app stays declarative and the user stays in control

Next case studySparkMeter Data AutomationCollects smart-meter readings, keeps a history of corrections and feeds reports, charts and Google Sheets.