{
    "archive_path": "archive/1791410788.797126",
    "base_url": "sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast",
    "basename": "what-it-costs-to-vibe-code-broadcast",
    "bookmarked_date": "2026-10-07 22:06",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=sendbroadcast.net",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": "sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast.html"
    },
    "domain": "sendbroadcast.net",
    "extension": "",
    "hash": "6WBBF3X4HSPRE2FE77QQ",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.google.com/s2/favicons?domain=sendbroadcast.net"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-07T22:06:56.832926+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1791410788.797126",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-07T22:06:56.212178+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-07T22:06:57.971917+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1791410788.797126",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-07T22:06:56.841768+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-10-07T22:07:10.997835+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1791410788.797126",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-07T22:07:05.764897+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmpgdvdvip2",
                    "https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-10-07T22:07:05.755536+00:00",
                "index_texts": [
                    "This week Antoine Minoux, who runs a SaaS called Fernand, wrote on X that half of his recent churn reasons are a version of \u201cI love you guys, but I\u2019m rolling my own.\u201d 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.\n\n\n\nHe 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.\n\nThe product\n\nBroadcast 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.\n\nHere is what the git history says, from the first commit to today:\n\n\n\n\n\n\n\n\nFirst commit\nSeptember 7, 2024\n\n\nCommits\n3,032\n\n\nReleases\n265\n\n\nDays with at least one commit\n410\n\n\nLines of code added\nabout 520,000\n\n\nLines of code deleted\nabout 104,000\n\n\nLines of code today\nabout 327,000, roughly half of it tests\n\n\n\nI left out vendored libraries, lockfiles, translations and generated files. These are the lines that somebody, or something, had to write.\n\n\n  Lines of code added per month\n  \n    \n      \n        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.\n      \n      \n\n        \n        0\n        \n        35k\n        \n        70k\n        \n        105k\n        \n        140k\n        Sep 2024\n        Jan 2025\n        Jul 2025\n        Jan 2026\n        Jul 2026\n\n          \n          v1.0\n          \n          v2.0\n          \n            Sep 2024: 11,449 lines added\n            \n            \n          \n          \n            Oct 2024: 16,693 lines added\n            \n            \n          \n          \n            Nov 2024: 6,780 lines added\n            \n            \n          \n          \n            Dec 2024: 5,954 lines added\n            \n            \n          \n          \n            Jan 2025: 2,744 lines added\n            \n            \n          \n          \n            Feb 2025: 2,041 lines added\n            \n            \n          \n          \n            Mar 2025: 2,445 lines added\n            \n            \n          \n          \n            Apr 2025: 4,179 lines added\n            \n            \n          \n          \n            May 2025: 486 lines added\n            \n            \n          \n          \n            Jun 2025: 7,232 lines added\n            \n            \n          \n          \n            Jul 2025: 34,191 lines added\n            \n            \n          \n          \n            Aug 2025: 17,779 lines added\n            \n            \n          \n          \n            Sep 2025: 9,344 lines added\n            \n            \n          \n          \n            Oct 2025: 5,508 lines added\n            \n            \n          \n          \n            Nov 2025: 3,204 lines added\n            \n            \n          \n          \n            Dec 2025: 53,362 lines added\n            \n            \n          \n          \n            Jan 2026: 137,098 lines added\n            \n            \n          \n          \n            Feb 2026: 13,880 lines added\n            \n            \n          \n          \n            Mar 2026: 28,442 lines added\n            \n            \n          \n          \n            Apr 2026: 7,028 lines added\n            \n            \n          \n          \n            May 2026: 16,537 lines added\n            \n            \n          \n          \n            Jun 2026: 2,879 lines added\n            \n            \n          \n          \n            Jul 2026: 48,782 lines added\n            \n            \n          \n          \n            Aug 2026: 22,912 lines added\n            \n            \n          \n          \n            Sep 2026: 38,355 lines added\n            \n            \n          \n          \n            Oct 2026: 21,167 lines added (through Oct 7)\n            \n            \n          \n        137,098 lines\n    \n  \n  \n    Show the numbers\n    \n      MonthLines addedRunning token bill\n      \n          Sep 202411,449$70\n          Oct 202416,693$160\n          Nov 20246,780$200\n          Dec 20245,954$240\n          Jan 20252,744$250\n          Feb 20252,041$260\n          Mar 20252,445$280\n          Apr 20254,179$300\n          May 2025486$300\n          Jun 20257,232$350\n          Jul 202534,191$540\n          Aug 202517,779$650\n          Sep 20259,344$700\n          Oct 20255,508$730\n          Nov 20253,204$750\n          Dec 202553,362$1,060\n          Jan 2026137,098$1,850\n          Feb 202613,880$1,930\n          Mar 202628,442$2,090\n          Apr 20267,028$2,130\n          May 202616,537$2,230\n          Jun 20262,879$2,240\n          Jul 202648,782$2,520\n          Aug 202622,912$2,660\n          Sep 202638,355$2,880\n          Oct 202621,167$3,000\n      \n    \n  \n  \n    Authored code only, from the Broadcast git history. October 2026 runs through October 7. Hover a bar for the exact number.\n  \n\n\nOne 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.\n\nThe 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.\n\nThe token bill\n\nI 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.\n\n520,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.\n\nThe 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.\n\nI 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.\n\nBoth 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.\n\n\n  Running token bill, Claude Opus 5.5 at API rates\n  \n    \n      \n        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.\n      \n      \n\n        \n        $0\n        \n        $1,000\n        \n        $2,000\n        \n        $3,000\n        Sep 2024\n        Jan 2025\n        Jul 2025\n        Jan 2026\n        Jul 2026\n\n        \n        Broadcast Regular License: $250, once\n        \n          \n            Sep 2024: about $70 so far\n            \n            \n          \n          \n            Oct 2024: about $160 so far\n            \n            \n          \n          \n            Nov 2024: about $200 so far\n            \n            \n          \n          \n            Dec 2024: about $240 so far\n            \n            \n          \n          \n            Jan 2025: about $250 so far\n            \n            \n          \n          \n            Feb 2025: about $260 so far\n            \n            \n          \n          \n            Mar 2025: about $280 so far\n            \n            \n          \n          \n            Apr 2025: about $300 so far\n            \n            \n          \n          \n            May 2025: about $300 so far\n            \n            \n          \n          \n            Jun 2025: about $350 so far\n            \n            \n          \n          \n            Jul 2025: about $540 so far\n            \n            \n          \n          \n            Aug 2025: about $650 so far\n            \n            \n          \n          \n            Sep 2025: about $700 so far\n            \n            \n          \n          \n            Oct 2025: about $730 so far\n            \n            \n          \n          \n            Nov 2025: about $750 so far\n            \n            \n          \n          \n            Dec 2025: about $1,060 so far\n            \n            \n          \n          \n            Jan 2026: about $1,850 so far\n            \n            \n          \n          \n            Feb 2026: about $1,930 so far\n            \n            \n          \n          \n            Mar 2026: about $2,090 so far\n            \n            \n          \n          \n            Apr 2026: about $2,130 so far\n            \n            \n          \n          \n            May 2026: about $2,230 so far\n            \n            \n          \n          \n            Jun 2026: about $2,240 so far\n            \n            \n          \n          \n            Jul 2026: about $2,520 so far\n            \n            \n          \n          \n            Aug 2026: about $2,660 so far\n            \n            \n          \n          \n            Sep 2026: about $2,880 so far\n            \n            \n          \n          \n            Oct 2026: about $3,000 so far\n            \n            \n          \n        About $3,000\n    \n  \n  \n    Show the numbers\n    \n      MonthLines addedRunning token bill\n      \n          Sep 202411,449$70\n          Oct 202416,693$160\n          Nov 20246,780$200\n          Dec 20245,954$240\n          Jan 20252,744$250\n          Feb 20252,041$260\n          Mar 20252,445$280\n          Apr 20254,179$300\n          May 2025486$300\n          Jun 20257,232$350\n          Jul 202534,191$540\n          Aug 202517,779$650\n          Sep 20259,344$700\n          Oct 20255,508$730\n          Nov 20253,204$750\n          Dec 202553,362$1,060\n          Jan 2026137,098$1,850\n          Feb 202613,880$1,930\n          Mar 202628,442$2,090\n          Apr 20267,028$2,130\n          May 202616,537$2,230\n          Jun 20262,879$2,240\n          Jul 202648,782$2,520\n          Aug 202622,912$2,660\n          Sep 202638,355$2,880\n          Oct 202621,167$3,000\n      \n    \n  \n  \n    The ~$3,000 estimate from this post, spread over the months in proportion to the code added. Hover a point for the running total.\n  \n\n\nNobody pays API rates, though\n\nIf 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.\n\nSpread over the 26 months Broadcast actually took, the work fits inside Max 5x. That is $2,600, about the same as the API.\n\nThe 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.\n\nSo here is the honest comparison:\n\n\n\n\nCost\n\n\n\nBroadcast Regular License\n$250, or $150 during the promo\n\n\nOne month of Claude Max 20x\n$200\n\n\nA fast rebuild on Claude Max\n$200 to $600\n\n\nRebuilding it the way it was built\nabout $3,000 in tokens\n\n\n\nAt $250, the license costs about the same as the cheapest possible rebuild. At $150, it costs less than one month of Max 20x.\n\nIf you already pay for Max\n\nIf 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.\n\nAnd time is where the number gets big. The tokens were never the expensive part.\n\nThose 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:\n\n\n\u201cOne-click unsubscribe from Gmail and Yahoo actually unsubscribes.\u201d That was September 16. Gmail\u2019s 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.\n\u201cStop one bad recipient from dooming a whole broadcast.\u201d One address that failed permanently could burn hours of retries and then halt the send for everyone else.\n\u201cAccept bare p= DKIM records (Amazon SES style).\u201d Every SES domain showed \u201cNo DKIM record found\u201d in our DNS check, with correct DNS. The DKIM standard makes the other tags optional, and SES leaves them out.\nA customer in Germany needed proof of consent for every email to every contact. That became subscriber topics in 2.41.\n\n\nSome 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\u2019s 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.\n\nYou can\u2019t prompt for these. You don\u2019t know they exist until real people send real email. A weekend build works fine until it sends. Email doesn\u2019t fail with an error page. It fails in the spam folder, and you find out from your open rates a week later.\n\nThen 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.\n\nI 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.\n\nWhen you should build your own\n\nIf 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.\n\nBuy 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.\n\nAntoine 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\u2019s production mistakes for $250 clears that bar. If it doesn\u2019t for you, there is a 30-day money-back guarantee.\n\n\n\nHow 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.\n\nDisclaimer: 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."
                ],
                "output": "readability",
                "pwd": "/data/archive/1791410788.797126",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-07T22:07:03.386599+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-07T22:07:03.378732+00:00",
                "index_texts": null,
                "output": "What It Costs to Vibe-Code an Email Marketing App | Broadcast",
                "pwd": "/data/archive/1791410788.797126",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-07T22:07:03.337030+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--reject=js,mjs,woff,woff2,ttf,otf,eot,mp4,m4v,mov,webm,ogv,mkv,avi,flv",
                    "--timeout=120",
                    "--restrict-file-names=windows",
                    "--page-requisites",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) wget/GNU Wget 1.21.3",
                    "--compression=auto",
                    "--timestamping",
                    "https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-10-07T22:07:03.327845+00:00",
                "index_texts": null,
                "output": "sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast.html",
                "pwd": "/data/archive/1791410788.797126",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-07T22:06:57.982069+00:00",
                "status": "succeeded"
            }
        ]
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": null,
        "dom": null,
        "favicon": "favicon.ico",
        "git": null,
        "media": null,
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "What It Costs to Vibe-Code an Email Marketing App | Broadcast",
        "warc": null,
        "wget": "sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast.html"
    },
    "link_dir": "/data/archive/1791410788.797126",
    "newest_archive_date": "2026-10-07T22:07:05.764897+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-10-07T22:06:56.212178+00:00",
    "path": "/blog/what-it-costs-to-vibe-code-broadcast",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "8d022d2e-f800-448f-81d9-1b68d0c4640a",
    "sources": [
        "/data/sources/1791410788-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1791410788.797126",
    "title": "What It Costs to Vibe-Code an Email Marketing App | Broadcast",
    "updated": "2026-10-07T22:06:56.211629+00:00",
    "updated_date": "2026-10-07 22:06",
    "url": "https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast"
}