I Priced Out Vibe-Coding a Copy of My $250 App
This week Antoine Minoux, who runs a SaaS called Fernand, wrote on X that half of his recent churn reasons are a version of “I love you guys, but I’m rolling my own.” His customers like the product. They leave anyway, because a coding model can now build a working copy in an afternoon for about $20 in tokens.
He also predicted that infrastructure products, email included, will hold on longer. I sell an email product, so I wanted that to be true. Wanting it is not a reason to believe it. So I did the math on my own product.
The product
Broadcast is self-hosted email marketing. You buy a license once, run it on your own server, and send through Amazon SES or any SMTP provider. The Regular License is $250. During the current promo it is $150.
Here is what the git history says, from the first commit to today:
| First commit | September 7, 2024 |
| Commits | 3,032 |
| Releases | 265 |
| Days with at least one commit | 410 |
| Lines of code added | about 520,000 |
| Lines of code deleted | about 104,000 |
| Lines of code today | about 327,000, roughly half of it tests |
I left out vendored libraries, lockfiles, translations and generated files. These are the lines that somebody, or something, had to write.
Lines of code added per month
Show the numbers
| Month | Lines added | Running token bill |
|---|---|---|
| Sep 2024 | 11,449 | $70 |
| Oct 2024 | 16,693 | $160 |
| Nov 2024 | 6,780 | $200 |
| Dec 2024 | 5,954 | $240 |
| Jan 2025 | 2,744 | $250 |
| Feb 2025 | 2,041 | $260 |
| Mar 2025 | 2,445 | $280 |
| Apr 2025 | 4,179 | $300 |
| May 2025 | 486 | $300 |
| Jun 2025 | 7,232 | $350 |
| Jul 2025 | 34,191 | $540 |
| Aug 2025 | 17,779 | $650 |
| Sep 2025 | 9,344 | $700 |
| Oct 2025 | 5,508 | $730 |
| Nov 2025 | 3,204 | $750 |
| Dec 2025 | 53,362 | $1,060 |
| Jan 2026 | 137,098 | $1,850 |
| Feb 2026 | 13,880 | $1,930 |
| Mar 2026 | 28,442 | $2,090 |
| Apr 2026 | 7,028 | $2,130 |
| May 2026 | 16,537 | $2,230 |
| Jun 2026 | 2,879 | $2,240 |
| Jul 2026 | 48,782 | $2,520 |
| Aug 2026 | 22,912 | $2,660 |
| Sep 2026 | 38,355 | $2,880 |
| Oct 2026 | 21,167 | $3,000 |
One more fact, so you know who is doing the math. I wrote the first version of Broadcast by hand. For version 2 I started to use AI, mostly by copying code between a chat window and my editor. Recent releases are much more AI-assisted. I build with Claude Code now, and 877 of those commits came out of a Claude session.
The AI writes a lot of the code. I decide what to build, how it gets tested, and whether it is right, and I do the QA by hand. Those decisions come from years of work on email deliverability. I am not guessing how good these tools are. I use them every day, and I know where they need a person.
The token bill
I priced it with Claude Opus 5.5 at current API rates: $4 per million input tokens, $20 per million output tokens, and $0.20 per million cached input tokens.
520,000 lines is about 6 million tokens of finished code. A coding agent writes a lot more than the code that survives. It thinks, writes an edit, runs the tests, reads the failure and writes it again. I assumed it writes 3 to 5 times the final code. That is 18 to 30 million output tokens, or $360 to $600.
The bigger cost is reading. On every task the agent reads the files it needs, and on a codebase this size it reads them again and again inside one session. Cached reads and cache writes add roughly $1,000 to $2,000.
I checked it from the other direction too. One commit on a codebase this size costs somewhere between $0.75 and $1.50 in an agent session. Times 3,032 commits, that lands between $2,300 and $4,500.
Both methods meet in the same place. Rebuilding Broadcast the way it was built would cost about $3,000 in tokens. The honest range is $1,500 to $5,000. These are estimates, not a receipt. The biggest unknown is how much an agent re-reads per session, and that depends a lot on how you work.
Running token bill, Claude Opus 5.5 at API rates
Show the numbers
| Month | Lines added | Running token bill |
|---|---|---|
| Sep 2024 | 11,449 | $70 |
| Oct 2024 | 16,693 | $160 |
| Nov 2024 | 6,780 | $200 |
| Dec 2024 | 5,954 | $240 |
| Jan 2025 | 2,744 | $250 |
| Feb 2025 | 2,041 | $260 |
| Mar 2025 | 2,445 | $280 |
| Apr 2025 | 4,179 | $300 |
| May 2025 | 486 | $300 |
| Jun 2025 | 7,232 | $350 |
| Jul 2025 | 34,191 | $540 |
| Aug 2025 | 17,779 | $650 |
| Sep 2025 | 9,344 | $700 |
| Oct 2025 | 5,508 | $730 |
| Nov 2025 | 3,204 | $750 |
| Dec 2025 | 53,362 | $1,060 |
| Jan 2026 | 137,098 | $1,850 |
| Feb 2026 | 13,880 | $1,930 |
| Mar 2026 | 28,442 | $2,090 |
| Apr 2026 | 7,028 | $2,130 |
| May 2026 | 16,537 | $2,230 |
| Jun 2026 | 2,879 | $2,240 |
| Jul 2026 | 48,782 | $2,520 |
| Aug 2026 | 22,912 | $2,660 |
| Sep 2026 | 38,355 | $2,880 |
| Oct 2026 | 21,167 | $3,000 |
Nobody pays API rates, though
If you build with Claude Code, you probably have a Claude Max plan. That is $100 a month for Max 5x or $200 a month for Max 20x. The token bill turns into a time bill.
Spread over the 26 months Broadcast actually took, the work fits inside Max 5x. That is $2,600, about the same as the API.
The interesting case is the fast copy. You start today, you know exactly what you want, and you point Claude at a finished product and its documentation. My guess is one to three months on Max 20x, or two to four on Max 5x. That is $200 to $600.
So here is the honest comparison:
| Cost | |
|---|---|
| Broadcast Regular License | $250, or $150 during the promo |
| One month of Claude Max 20x | $200 |
| A fast rebuild on Claude Max | $200 to $600 |
| Rebuilding it the way it was built | about $3,000 in tokens |
At $250, the license costs about the same as the cheapest possible rebuild. At $150, it costs less than one month of Max 20x.
If you already pay for Max
If you already pay for Max for your day job, the extra token cost of building your own is close to zero. But the real price is your time.
And time is where the number gets big. The tokens were never the expensive part.
Those 3,032 commits did not come from a spec. Most of them exist because something happened in production. A few real ones from the last few months:
- “One-click unsubscribe from Gmail and Yahoo actually unsubscribes.” That was September 16. Gmail’s Unsubscribe button sends a request without the security token that a normal form sends, so Broadcast refused it and the subscriber stayed subscribed. Nobody sees an error when that breaks. The person who clicked just keeps getting email, and then marks you as spam.
- “Stop one bad recipient from dooming a whole broadcast.” One address that failed permanently could burn hours of retries and then halt the send for everyone else.
- “Accept bare p= DKIM records (Amazon SES style).” Every SES domain showed “No DKIM record found” in our DNS check, with correct DNS. The DKIM standard makes the other tags optional, and SES leaves them out.
- A customer in Germany needed proof of consent for every email to every contact. That became subscriber topics in 2.41.
Some problems Claude could not fix at all. A few customers ran into performance problems that only showed up on their servers, with their lists. In August, one customer’s install stopped responding during sends. Claude did not find the cause. It took a lot of manual diagnosis on that one install. Amazon SES reports deliveries and bounces back in bursts. That customer got 1,253 reports in 21 seconds, and each one did its database work while Amazon waited for an answer. The connections filled up and the server stopped answering. Broadcast now puts each report in a queue and handles it a moment later, so a burst just waits its turn. The fix shipped three days after the incident, and most of that time went into finding the cause.
You can’t prompt for these. You don’t know they exist until real people send real email. A weekend build works fine until it sends. Email doesn’t fail with an error page. It fails in the spam folder, and you find out from your open rates a week later.
Then there is maintenance. 265 releases in 26 months is about one release every three days. Mailbox providers change their rules, and the software has to change with them.
I send my own newsletters with Broadcast, and I ask customers for feedback all the time. When one customer hits a problem, I fix it once, and every customer gets the fix in the next update. The SES fix above went to everyone, including people who never saw the problem. The license includes every 2.x update. Your own build only gets the fixes for the problems you find yourself.
When you should build your own
If you need a signup form, one list and a send button for a couple of thousand people, build it. A weekend and a Max plan you already pay for is a fine deal. I would do the same. Send through SES, add one-click unsubscribe, and process bounces and complaints from day one.
Buy something when email is part of the business and a bad week in the spam folder costs you real money. That is who Broadcast is for.
Antoine is right that the bar went up. Software for developers now has to be worth more than the tokens it takes to copy it. I think 26 months of someone else’s production mistakes for $250 clears that bar. If it doesn’t for you, there is a 30-day money-back guarantee.
How I got the numbers: commit and line counts come from git log --numstat on the Broadcast repository, without vendored code, lockfiles, translations and generated files. Token prices are the current Claude Opus 5.5 API rates. The multipliers for agent overhead and re-reading are my estimates, so treat the totals as a range. For what you pay to run Broadcast itself, see pricing and the true cost of email marketing at scale.
Disclaimer: I wrote this post with the help of AI. Then I edited it about 30 times, to save you, the reader, from my verbose writing style.
