90° Angle 90° Angle 90° Angle 90° Angle Angle · Studio
DWG-01 · Web app · 2025

Meridian Ledger

Double-entry bookkeeping for freelancers, rebuilt from a fragile spreadsheet into a product people renew.

Client
Meridian (solo founder)
Engagement
Web app · fixed price
Timeline
4 weeks, brief to live
Stack
TypeScript · Go · Postgres
01 / Brief

A spreadsheet that finally broke.

Meridian ran their whole freelance accounting practice on one heroic spreadsheet — 14 tabs, a dozen named ranges, and a macro nobody dared touch. It worked until it didn't: one wrong paste and a quarter's reconciliation was gone.

The brief was narrow on purpose: keep the mental model of the spreadsheet, lose the fragility. No "platform," no roadmap fantasy. One job — double-entry that can't silently corrupt itself — done in a month.

02 / Build

One ledger, two sides, no surprises.

I modelled the core as an append-only journal: every entry is two balanced postings, nothing is ever edited in place, corrections are new entries. The UI hides the theory — it still looks like rows you type into — but the data underneath can be audited line by line.

Fig. 2 — Entry view. Debits left, credits right, running balance pinned.

Payments and bank imports came in week three; week four was reconciliation and the dull, important work of making errors impossible rather than merely unlikely.

03 / Detail

The unglamorous parts.

Most of the value lived in the parts nobody demos: idempotent imports, a reconciliation diff that highlights only what changed, and exports that an accountant opens without complaint.

Fig. 3 — Reconciliation. Only the deltas, nothing else.
"It feels like the spreadsheet, minus the dread."
— Founder, Meridian
4 wks
Brief to live, fixed price. No overrun, no change orders.
0
Silent data-corruption incidents since launch.
71%
Of trial users converted to a paid plan in month one.

Have something narrow and real?

That's exactly the kind of brief I like. Two slots open for Q3.

Start a project