420 hours → 78 hours: rebuilding bitnoise.pl with Claude Code and Figma MCPBack to all insightsPublished on 9 Jun 2026<br>AI<br>420 hours → 78 hours: rebuilding bitnoise.pl with<br>Claude Code and Figma MCP
Łukasz Roth<br>CTO & Co-founder
19 minutes read
Back to the startBack
Table of content
An honest accounting of where the speed came from, where it didn't, and which parts of the work we'd never hand to a machine.
Not a single line of code on the website you're reading was typed by a human.
Every .tsx file, every animation curve, every Strapi fetcher, every piece of SEO scaffolding — 24,296 lines of it across 120 React components — came out of a Claude Code session. We wrote zero of it by hand. We reviewed all of it by hand.
And it still took us eight weeks.
That second number is the one we want to talk about. The story the industry keeps telling itself right now is "AI writes the code, the developer goes for coffee." That isn't what happened here. What happened is that the 15% of the project that used to be typing got compressed by about 5×, and the other 85% — strategy, copy, design, motion prototyping, code review, QA, SEO — got exactly the attention it always needed. The keyboard stopped being the bottleneck. Everything else stayed expensive.
This post is the honest accounting. The numbers come straight from git log . The comparison points come from time reports of the previous bitnoise.pl build. We're sharing both because we think the interesting question for any team considering this stack isn't "can the model code?" — it obviously can — but "what does the rest of the team have to do for the model's output to be worth shipping?"
TL;DR — the numbers, up front
~5.4× less developer time on the dev portion alone — and the new site has more pages, more animation, full Strapi integration for blog and case studies, and SEO/GEO scaffolding the old one never had.
The repo itself, audited from git log between 2026-04-08 (first commit) and 2026-06-02 (launch-ready):
Calendar span: 56 days (~8 weeks).
Active development days: 25. The other 31 were design, copy, review, QA, and waiting on decisions — all the work the model doesn't do.
Total commits: 181. Every one of them generated by Claude Code, reviewed by Claude Code in a fresh-context pass, signed off by a human.
Lines added / removed: 47,173 inserted, 5,676 deleted, across 857 file-changes.
Codebase shape today: 24,296 LOC across 120 .tsx files, 47 .ts files, and a single .css file (Tailwind v4 — yes, one stylesheet).
Focused coding time: ~78 hours across 53 discrete sessions. (Method: sum the wall-clock intervals between commits within a session; a gap longer than 90 minutes starts a new session. It's not a billing-grade figure, but it's the right shape.)
Average commit: ~26 minutes of attention. Most diffs are small enough to read in under a minute. That's deliberate.
Tooling, named explicitly so you can replicate the setup:
Claude Code — for code generation and for the code review pass.
Figma MCP — the design system, components, frames, variables, and motion prototypes live in Figma and the model reads them directly. No "implement from screenshot" guesswork.
Stack: TanStack Start + Vite 7 + React 19 + Motion 12 + Tailwind v4. Strapi as the CMS. Resend for the contact form.
Tokens and cost (rough):
52,800 changed lines × 70 chars ÷ 4 chars-per-token = 925k output tokens of shipped code.
With read context, retries, and review passes, end-to-end usage was roughly ~10–20 million tokens.
We actually paid for this with a Claude Max plan, but if you're estimating for your own team on pay-as-you-go API rates with prompt caching, the equivalent cost lands roughly $90–$180 depending on your Opus/Sonnet mix — Opus-heavy with effective caching sits near the top of that, a Sonnet-leaning mix near the bottom. Budget $200 and you'll almost certainly come in under it.
420 hours of typing replaced by 78 hours of judgment. The judgment is the part you can't outsource.
The legacy migration that took one day<br>If we had to pick the single moment that justified the whole approach, it would be May 20, 2026 — the day we ported the entire blog and case-studies sections off the old site and onto the new stack, with Strapi behind both.
Here's the actual timeline, straight from the commit log — timestamps and all:
From empty route to live, SEO-clean, Strapi-backed blog and case-studies sections: about eight and a half hours of one working day. Eight commits. One developer. Each commit small enough to review in a couple of minutes.
A few things we want to be honest about, because this is the part of the post that's easiest to over-sell:
The Strapi schemas weren't designed that morning. The content model — collections, components, relations — was decided ahead of time by the team that knew the content best. Claude Code wired the frontend to a schema that already existed.
The content itself didn't have to be migrated at all. Strapi was already the headless CMS...