Receipts first, argument second.
From the first commit on 2025-12-07 to 2026-07-20 -- 224 days -- one person, no team, nights and weekends around a full-time job:
| Metric | Count |
|---|---|
| Commits | 1,529 |
| Lines of TypeScript/TSX | 310,360 |
| Test cases | 6,701 |
| Test files | 289 |
| Route files | 378 |
| REST API v1 endpoints | 126 |
| Modules shipped | 13 |
That's 6.8 commits per day, every day, for seven and a half months, including the days I didn't touch it at all.
Now the honest part, because a table like that is worthless without the shape underneath it.
The Distribution Is The Real Story
Commits by month:
| Month | Commits |
|---|---|
| 2025-12 | 35 |
| 2026-01 | 122 |
| 2026-02 | 282 |
| 2026-03 | 373 |
| 2026-04 | 112 |
| 2026-05 | 0 |
| 2026-06 | 499 |
| 2026-07 | 106 |
Look at May. Zero. Not one commit.
Then June: 499 commits in 30 days. That's 16.6 a day.
Anyone selling you a smooth "10x developer" narrative is selling you the average and hiding the variance. The real pattern is spikes and dead months. March and June did 872 commits between them -- 57% of the entire project -- in two months out of eight. The multiplier isn't a steady-state rate. It's a burst capacity you can only spend when the rest of your life lets you.
That matters because the thing AI actually multiplies is throughput during a session, not the number of sessions you get. It can't give you a free Saturday. It can only make the Saturday you have worth four.
Where The Multiplier Is Real
Three places, specifically, and they're all the same shape: work where the thinking is done and the typing is the bottleneck.
1. Mechanical breadth. 126 API endpoints all follow one contract -- auth check, Zod validation, typed data function, audit log, error mapping. The first one took a design conversation. Endpoints 2 through 126 were pattern application. That's where 8-10x is not an exaggeration, it's conservative. A human typing correct boilerplate is a human being used as a very expensive printer.
2. Tests. 6,701 test cases across 289 files is not a number a solo developer hits by hand while also shipping features. Not because tests are hard -- because they're tedious, and tedious is where solo projects quietly decide to skip them. Removing the tedium tax is the entire reason coverage exists here at all.
3. Refactors that touch everything. Splitting one column into nine tables and cutting a 530-line component nobody could read are both jobs where the hard part is finding all 40 call sites without missing one. That's search-and-transform, not insight.
Where It Absolutely Is Not
I'd be lying by omission if I stopped there.
Architecture decisions don't speed up. Choosing React Router 7 on Cloudflare Workers with Supabase took the same amount of thinking it would have taken in 2019. AI is a great sparring partner for it and a terrible decider. Ask it to choose and it'll agree with whatever you leaned toward in the question.
Debugging your own bad model gets slower. If the mental model is wrong, AI will confidently help you build more code on top of the wrong model, faster. I've watched it generate 200 correct lines implementing a fundamentally broken idea. Speed with a bad premise isn't productivity, it's velocity toward a wall.
Verification doesn't compress at all. This is the real tax and nobody prices it. Generated code has to be read. Every line. The 8-10x on output becomes maybe 3x on shipped-and-trusted output once you account for review time. I wrote a whole piece on file size specifically because of this -- an 800-line ceiling exists so the review step stays humanly possible.
And it doesn't ship for you. Which brings me to the part of this table I don't like.
The Number That Indicts Me
Last commit: 2026-07-20. That was 63 days ago.
The same log that proves 499 commits in June proves 0 in the 63 days since. Two dead months out of eight. My best month and my worst months came out of the same setup, the same tooling, the same person.
So whatever the multiplier is, it multiplies something you supply. Show up, it's 10x. Don't, it's 10 times zero, and the tooling has nothing to say about it. The bottleneck was never how fast I can produce code. It was always whether I sat down.
That's not a tooling problem. It's the exact problem forcing functions exist to solve, and the honest read on this commit log is that I have one built for my money and never built one for my output.
The Actual Claim
8-10x on mechanical work. Roughly 1x on judgment. Call it 3-4x blended on anything real, and 0x on the days you don't open the laptop.
That's still the largest single change to how I build in fifteen years. It's also not the thing standing between me and shipping, which is a more uncomfortable finding than any benchmark.
Every number in this post is reproducible. Clone the repo, run git rev-list --count HEAD, count the test files. I'd rather publish the zero month than the average.
Averages are how people lie with real data.