03 of 13
Monarch
A fintech that wanted to look as trustworthy as it is. We built the identity and the product surface it lives on — one voice, top to bottom.
- Year
- 2026
- Disciplines
- Brand, Web
- Platform
- Web
- Brief
- Sample client

01Context
Monarch had the licence and the ambition but a look that undersold both. We built a complete identity — type, colour, voice — and the marketing product it needed to launch on.
02Problem
Money is trust. The brand had to feel established on day one without pretending to a history it did not have — confident, not costume.
- An identity that reads as safe and modern
- A system that scales from favicon to billboard
- A site that converts without shouting
- Motion that feels engineered, not animated
03Strategy
Identity and interface were designed by the same people, in the same weeks, so nothing was lost in a handoff.
- A tight type and colour system, documented
- A component library shared by brand and web
- Copy and motion drafted together
- A build fast enough to feel premium
04Design


05Engineering
A NestJS core models ledgers double-entry style on PostgreSQL; Plaid links accounts, Stripe Issuing powers the card, and every money movement is an idempotent, audited command behind a Next.js front end.
- Double-entry ledger — balances derived, never stored
- Idempotency keys on all mutation endpoints
- Plaid + Stripe webhooks verified and replay-protected
- Terraform-managed AWS with least-privilege IAM
Also considered. Firebase would have shipped faster; a relational ledger and typed migrations mattered more for money.
06Details
The mechanism underneath, as a working model. Press the buttons.
lab / data / double-entry ledger
Balances are derived from postings, never stored. Money can't be created or lost, only moved.
Loading the model
lab / reliability / idempotent money movement
Every mutation carries a key. Retry the same request a hundred times, the transfer happens once.
Loading the model
Figures inside a model are simulated to show how the mechanism behaves. They are not production measurements.
07What shipped
9 modules are in the build below. Each one works.
- 01Balance derived from postings, never stored
- 02Idempotent send: spam the button, it moves once
- 03Card controls and freeze
- 04Budgets, scheduled payments and insights
- 05CSV statement
- 06Accounts and pots
- 07Physical and virtual cards with limits
- 08Payees, investments and SIPs
- 09Support tickets and disputes
08Technology
This is the kind of work we do under Websites & Web Apps.
Now use it.
This is Monarch, the whole application. Continue as the sample user, change things, reload. Your data stays in this browser and resets from Settings, then Data.

A full application, not a recording. Sign in as the sample user; your data stays in this browser.
