· by Simon Chiu

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.

Antoine Minoux on X: Half our churn reasons at Fernand lately are a version of "I love you guys, but I'm rolling my own." New coding models made it so easy that you can one-shot a SaaS you can self-host in about 3 hours, for less than $20 worth of tokens. His prediction: infrastructure products like email hold on longer.

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

Bar chart of lines of code added to Broadcast each month from September 2024 to October 2026. The peak is January 2026 with 137,098 lines. Version 1.0 shipped in July 2025 and version 2.0 in March 2026. 0 35k 70k 105k 140k Sep 2024 Jan 2025 Jul 2025 Jan 2026 Jul 2026 v1.0 v2.0 Sep 2024: 11,449 lines added Oct 2024: 16,693 lines added Nov 2024: 6,780 lines added Dec 2024: 5,954 lines added Jan 2025: 2,744 lines added Feb 2025: 2,041 lines added Mar 2025: 2,445 lines added Apr 2025: 4,179 lines added May 2025: 486 lines added Jun 2025: 7,232 lines added Jul 2025: 34,191 lines added Aug 2025: 17,779 lines added Sep 2025: 9,344 lines added Oct 2025: 5,508 lines added Nov 2025: 3,204 lines added Dec 2025: 53,362 lines added Jan 2026: 137,098 lines added Feb 2026: 13,880 lines added Mar 2026: 28,442 lines added Apr 2026: 7,028 lines added May 2026: 16,537 lines added Jun 2026: 2,879 lines added Jul 2026: 48,782 lines added Aug 2026: 22,912 lines added Sep 2026: 38,355 lines added Oct 2026: 21,167 lines added (through Oct 7) 137,098 lines
Show the numbers
MonthLines addedRunning token bill
Sep 202411,449$70
Oct 202416,693$160
Nov 20246,780$200
Dec 20245,954$240
Jan 20252,744$250
Feb 20252,041$260
Mar 20252,445$280
Apr 20254,179$300
May 2025486$300
Jun 20257,232$350
Jul 202534,191$540
Aug 202517,779$650
Sep 20259,344$700
Oct 20255,508$730
Nov 20253,204$750
Dec 202553,362$1,060
Jan 2026137,098$1,850
Feb 202613,880$1,930
Mar 202628,442$2,090
Apr 20267,028$2,130
May 202616,537$2,230
Jun 20262,879$2,240
Jul 202648,782$2,520
Aug 202622,912$2,660
Sep 202638,355$2,880
Oct 202621,167$3,000
Authored code only, from the Broadcast git history. October 2026 runs through October 7. Hover a bar for the exact number.

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

Line chart of the estimated running token bill to rebuild Broadcast with Claude Opus 5.5, rising from $0 in September 2024 to about $3,000 in October 2026, compared with the $250 license price, which the bill passes in January 2025. $0 $1,000 $2,000 $3,000 Sep 2024 Jan 2025 Jul 2025 Jan 2026 Jul 2026 Broadcast Regular License: $250, once Sep 2024: about $70 so far Oct 2024: about $160 so far Nov 2024: about $200 so far Dec 2024: about $240 so far Jan 2025: about $250 so far Feb 2025: about $260 so far Mar 2025: about $280 so far Apr 2025: about $300 so far May 2025: about $300 so far Jun 2025: about $350 so far Jul 2025: about $540 so far Aug 2025: about $650 so far Sep 2025: about $700 so far Oct 2025: about $730 so far Nov 2025: about $750 so far Dec 2025: about $1,060 so far Jan 2026: about $1,850 so far Feb 2026: about $1,930 so far Mar 2026: about $2,090 so far Apr 2026: about $2,130 so far May 2026: about $2,230 so far Jun 2026: about $2,240 so far Jul 2026: about $2,520 so far Aug 2026: about $2,660 so far Sep 2026: about $2,880 so far Oct 2026: about $3,000 so far About $3,000
Show the numbers
MonthLines addedRunning token bill
Sep 202411,449$70
Oct 202416,693$160
Nov 20246,780$200
Dec 20245,954$240
Jan 20252,744$250
Feb 20252,041$260
Mar 20252,445$280
Apr 20254,179$300
May 2025486$300
Jun 20257,232$350
Jul 202534,191$540
Aug 202517,779$650
Sep 20259,344$700
Oct 20255,508$730
Nov 20253,204$750
Dec 202553,362$1,060
Jan 2026137,098$1,850
Feb 202613,880$1,930
Mar 202628,442$2,090
Apr 20267,028$2,130
May 202616,537$2,230
Jun 20262,879$2,240
Jul 202648,782$2,520
Aug 202622,912$2,660
Sep 202638,355$2,880
Oct 202621,167$3,000
The ~$3,000 estimate from this post, spread over the months in proportion to the code added. Hover a point for the running total.

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.