Case studyFinancial Finesse2026v1 solo · v2 and v3 with engineering

Built before anyone asked. Now going global in 70 countries.

Our CEO wanted to go global, and translation alone couldn't take a US library abroad. Nobody had asked for a tool. I saw the gap, built one, and rebuilt it twice with engineering. 25 markets are live today.

70
Countries planned by the end of 2026
25
Markets live today, Sep 2026
8,118
Localized pieces in the index, Sep 8, 2026
4 wk
First commit to launch QA
v1 in production, native speedThe accuracy check has flagged seven claims on a Canadian draft, each with the figure to confirm and where, while the next draft streams.
01 · At a glance

The short version

Nobody asked for this. I named the risk, built the first version myself, and carried it through two rebuilds as the company made it part of its platform.

The problem

Writers drafted on personal AI tools. Drafts drifted off-voice, and nobody recorded which claims had been checked. Then the company set its sights on new markets.

The bet

A studio that already knows our voice, our compliance rules, and each market's facts, with a person signing off on everything.

My role

I designed and coded the first version (493 of its 524 commits). After that, I designed and built the review screens while engineers rebuilt the engine.

Team

v1 solo · v2 and v3 with two engineers · localizers reviewing the output

Built with

TypeScript · Lit · React · Python · a Cloudflare Worker · Azure · Anthropic and Gemini APIs · built with Claude Code

Status

Live in 25 markets · 8,118 localized pieces across 28 locales in the index, Sep 8, 2026

02 · v1, built by me

I built the first version and had it in launch QA in four weeks

Every draft starts with our voice, our compliance rules, and the right format. If the AI can't point to a source for a fact, it flags it for a person.

The authoring studio drafting a Korean quiz about saving for a home, with an Accuracy Check panel listing five claims to confirm, each with the figure in question and the official source to check
Uncertainty shown, not hiddenFive facts the AI couldn't tie to a source, each with the exact figure and the government page to check. "5 to review" is a to-do, not a score.
03 · Going global

Translating wasn't enough, so we rewrite for each country

"Contribute to your 401(k)" in French is still wrong when every word is right. So each article gets checked for fit, researched locally, rewritten, double-checked, and signed off by a local reviewer.

US sourceCanadaUnited Kingdom
401(k)RRSPWorkplace pension
Roth IRATFSAISA
IRS · FDICCRA, and in Québec Revenu QuébecHMRC · FSCS
Three localized Life Event articles side by side: Starting a Family in English for Ireland, the same Life Event in Simplified Chinese, and Caring for Parents in Czech
A rewrite, next to a translationThe Irish Starting a Family opens on a care scheme that exists only in Ireland; the Chinese version opens on urban employee medical insurance.
Localize QA: 1,816 pieces awaiting review across 26 locales, one card per locale with need-review, approved, and flagged counts
The localizer's front doorMid-run, with 1,816 pieces waiting. Each market shows what's left, approved, and flagged.
3,512

Pieces localized in four days, June 1–4, 2026, bringing ten new markets live

1,575

On the peak day, June 3

5

Careful passes per article: check fit, research, write, double-check, redo

04 · Decisions

Four calls I'd make again

Our own fact library, not the open web

Financial facts have to be ours. The web can add to the library, but it never replaces it.

Five careful passes, not one fast one

One quick pass kept US habits no check could catch. Five passes cost more and caught them.

The AI's score doesn't decide what ships

It only decides what a reviewer sees first. There's no auto-publish setting, on purpose.

Approved means approved

Once a person approves an article, the tool won't touch it again unless someone asks for that article by name.

05 · What broke

It worked, until it didn't

A tool one person built hit its limits. I wrote down four problems, and they became the plan for the next version.

01Lost edits

A re-run replaced work a localizer had corrected. On three reviewed articles, none of the reviewed sentences survived.

02Flags hard to act on

One Bulgarian run raised 630 flags on 445 articles, 78% of them "check this number", in a separate tab with no action.

03No audit trail

A name prompt in the browser stood in for sign-in. Nobody could say who approved what.

04Slow at scale

Every request read a 3.5 MB file, and the server ran out of time.

06 · Moving in

Then we moved it into our CMS, so there's one login

Engineers rebuilt the engine behind it, and I designed and built the review screens. Then we brought the whole thing into the CMS our team already uses, so reviewers sign in once, with the same roles as everything else.

The Locales screen inside the company's CMS: the CMS sidebar on the left, summary counts for live hubs, in-flight markets, open flags and stale items, and a table of every market with its reviewer, status, progress, flags, and last update
Every market, one screenWho reviews each country, where it stands, and what still needs a person. Prototype, demo content.
The review screen inside the company's CMS: the CMS sidebar on the left, a Spanish article for Mexico in an editor with highlighted flags, a featured-image check, and a blocking flag explaining that a high-yield savings account is not a product category in Mexico, with a suggested fix
One article, start to finishSame sidebar, same sign-in. Flags sit right in the text, each with a suggested fix. Prototype, demo content.

Lost editsYour edits are safe

A reviewer's text is saved on its own, and an out-of-date save can't overwrite it.

FlagsPlain words, clear actions

"verification:freshness" became "Check this number", with Apply, Fix myself, and Dismiss.

Who did whatOne sign-in, real roles

Reviewers use their work sign-in and only see their country. Only a publisher can release, and every article keeps its history.

SpeedLoad what's on screen

50 items at a time, with counts stored ahead.

07 · Designing the AI

A person always makes the final call

We never trained a model. The AI writes from a fact library we keep for each market, a second pass checks its work, and a person approves it.

A second read

A second AI pass reads each draft like a local would and sends it back if something's off. A simple check then removes US-only links and terms.

Photos too

Every header photo is checked for the country, and a reviewer's "Flag for redo" beats any score.

Tested

221 automated tests (September 2026). Of 75 articles the tool held back from the UK, 62 truly didn't apply there.

08 · Impact

Live in 25 markets, and a person checks every article

25

Markets with published or approved content. Sep 8, 2026

8,118

Localized pieces, from 592 English originals

43

Market fact libraries the tool writes from

221

Automated tests in the first version, Sep 2026

A localized article, The £100 Rule and Your Child's Tax-Free Allowance, published and live in the Financial Finesse member product for the UK market
The finished resultA UK article, live in the member product. The £100 rule is HMRC's, not a translated IRS figure.

Counts come from the live content index and the repos; the code is Financial Finesse's and private.

I saw a gap nobody owned, built the first answer myself, then wrote down where it failed and rebuilt it twice with engineers. The product shows what AI unlocks for a content team. The way I built it shows the same for design.