← Creative

Case study 02 · Concept · Product design · AI direction

A finance app doesn’t have to feel like a tax form.

A private, offline personal-finance ledger in a single HTML file — no cloud, no account, no network. I run my own money on it. It’s here because taste without shipping ability is a mood board.

The mark proofs — three rounds, in order

The executions, proofed

The system

Eleven themes, full palettes at verified parity. A finance app doesn’t have to feel like a tax form. Making it something you’d want to open is a retention decision, not decoration — and it’s the same eye, pointed at a spreadsheet’s job.

They divide into two kinds, and the difference is where the color comes from. Gulf, Riviera and Ocean were generated, proofed and selected — each one a candidate set narrowed to a shipped cut, and the palette is taken from the image. Ledger, Terminal and Matrix are references rather than photographs: a paper ledger, a monospace console, cascading green code.

The other five are my own photographs, and they behave differently. Wings, City and Route are monochrome by nature rather than by filter — the frames carry no color at all, so the accent has to be chosen rather than taken. Clouds and Landscape sit between: two hues pulled from one set and given opposite jobs, money in and money out. That constraint is the interesting half. A palette derived from a colorful photograph is a pipeline doing its work; a palette for frames that have no color is a decision, and it has to be defended against ten other themes doing the same job.

The MoneyLedger appearance picker: eleven themes, each a card showing the same balance component in that palette, each with a name and a written rationale.
Eleven, each with its reasoning. Ledger — warm paper, ruled lines, ink green, closest to the spreadsheet it came from. Terminal — near-black, hairline grid, monospace, dense and fast to scan. Wings — my own photographs, monochrome by nature rather than by filter, so the accent is chosen rather than taken.

One decision, two framings

The Gulf theme takes its palette from a photograph. How that photograph is framed decides whether a viewer can tell. The interface is identical in both — the same figures, the same donut, the same bars. Only the ground moves.

The MoneyLedger dashboard in the Gulf theme, the sidebar photograph framed on the car's rear quarter.
The source is unmistakable. The blue and the orange in the interface are its paint.
The same dashboard with the sidebar photograph framed on sky and horizon, nearly abstract.
The palette survives; the source does not. Beautiful, and it reads as a gradient.

When the photograph has no color

Wings, City and Landscape run on my own frames, and those frames are monochrome by nature rather than by filter. There is nothing in them to take a palette from — so the accent is a decision, and it has to hold against ten other themes doing the same job. Same dashboard, same figures, same month as the Gulf frames above; only the theme changes.

The MoneyLedger dashboard in the Wings theme: a monochrome aircraft tail in the sidebar, pale blue accents.
An aircraft tail. Pale blue in, orange out.
The MoneyLedger dashboard in the City theme: monochrome riveted metal plates in the sidebar, red and green accents.
Riveted plates. The same photograph ships as Insulator’s default skin — one frame, two products, two palettes.
The MoneyLedger dashboard in the Landscape theme: a monochrome birch stand in the sidebar, silver and orange accents.
A birch stand. Silver in, the sky’s own orange out.
The same Landscape theme showing a different frame: monochrome sand dunes in the sidebar.
Dunes, same theme. The set rotates; the accent stays decided.

My role — concept, product design, UX, functionality, branding, AI direction.
Status — daily use on real finances, 1,595 transactions.
Built with Claude — authored, not just used. I set the product’s principles and directed the build against them.

The product-side case study → — where the decision this app turns on lives: never write after a failed read.