Why AI Coding Ran Up a $349 Hosting Bill (and the Two-Setting Fix)
In June 2026 I opened a Vercel bill for $349 and did not understand a single line of it. I am not a software engineer - I run go-to-market for a living. But I had spent weeks building StackSwap with Claude Code - describe a change, watch it edit the files, ship it - and somewhere in there I had quietly turned a side project into a $349-a-month hosting habit without sending a single customer email. Here is the part that matters if you are doing the same thing: $347 of that $349 was a single line item - "Build CPU Minutes." Not bandwidth. Not storage. Not traffic. Compute spent rebuilding the site over and over, because every time the AI and I saved our work, the host rebuilt the entire application from scratch. I was paying by the build, and I did not know I was generating builds. This is the operator teardown of how that happens, why it hits people who let AI write their code especially hard, and the two settings that took the projected bill from $347 down to somewhere around $30-80 a month. No computer science degree required - I did not have one when I started.
The bill: $349, and 99% of it was one line item
When the invoice arrived I did what any non-engineer does: I looked for the biggest number and tried to make it smaller. So I opened the usage breakdown, and this is what it actually said. Build CPU Minutes: about $347 - roughly 1,650 CPU-hours in a single month. Everything else combined came to under two dollars: function calls at sixty cents, active compute at twenty-two cents, bandwidth and image optimization in literal pennies. The thing I assumed I was paying for - people visiting the site - was effectively free. The thing I was actually paying for was the act of building the site, which I did not even know was a metered event. That is the first lesson, and it is a mindset lesson before it is a technical one: on a modern host you are not billed mainly for visitors, you are billed for compute. And the single biggest compute event in most small projects is the build - the step where your host takes your code and turns it into the thing it serves. If something is triggering builds you do not need, you are lighting money on fire in a category you were not even watching. This is the AI-era version of the hidden costs of a tool beyond its subscription, except the tool is your own app and the hidden cost is self-inflicted.
Why an AI-built app quietly runs up build minutes
Here is the mechanism in plain language, because nobody explains it to the person who just wants their idea to exist. When you build software with an AI tool - Claude Code, Cursor, Copilot, any of them - you generate an enormous number of tiny saves. The AI makes a change, you save it, you push it up so it is backed up and visible. Do that a few dozen times a day for a few weeks and you get what I had: 417 of those saves across 59 working copies in thirty days. That is not unusual for AI-assisted building - it is the normal texture of it. The whole appeal is that you iterate fast. The problem is what my host did with each one. It was configured by default - by me, unknowingly - to rebuild the entire application every single time anything got pushed, on any working copy. A change to a paragraph of documentation? Full build. A half-finished experiment on a side branch I would throw away? Full build. Roughly a quarter of my pushes touched nothing the live site even ships - notes, audits, config - and every one of them still ran a complete, metered build. There was a second multiplier hiding underneath. Each build was also re-running a full battery of tests and code-quality checks on that same metered compute - the exact checks a separate, free service (GitHub Actions) was already running on every push. I was paying premium build rates to redo work that was already being done for free somewhere else. Two multipliers stacked: building too often, and doing too much inside each build. Multiply a high per-build cost by hundreds of unnecessary builds and you arrive, as I did, at $347.
The two-setting fix (what actually moved the bill)
The fix was two changes, and neither required me to become an engineer. It required me to understand what a build is for. Setting one: stop doing redundant work inside each build. I overrode the build command so it does only what shipping actually needs - generate the pages and compile - and nothing else. The tests and quality checks that were padding every build got cut from it, because they already run for free on GitHub Actions every time I push. Same safety, half the work, on the meter that matters. This one change roughly halved the per-build cost. Setting two, the big one: only build the version that ships. Hosts like Vercel give you a setting - Vercel calls it the "Ignored Build Step" - that decides, per push, whether a build should run at all. The rule I gave it is the rule almost every small project should use: only build the production branch. Every experiment, every side branch, every half-finished idea is skipped - no build, zero cost. And even on the production branch, skip pushes that only touch things the live site does not ship, like documentation. Builds went from "every push, every branch" to "only the pushes that change what visitors actually see." Those two settings together took the projected bill from $347 to somewhere around $30-80 a month - call it an 80 to 90 percent cut - without losing anything. I still ship as often as I want. I just stopped paying to build versions of the site no one would ever see. One honest caveat: the production-only rule usually lives in a dashboard setting your host controls, not in your code, so you have to flip it once by hand and confirm it took. The payoff is worth the ninety seconds.
The mental model: a commit is free, a build is not
If you take one thing from this, take the vocabulary, because the bill is really a vocabulary problem in disguise. Three words get used interchangeably by people who are not engineers, and the difference between them is the difference between free and not free. A commit is a save point on your own machine. It is local. It costs nothing and triggers nothing. You can make a hundred a day. A push uploads your commits to the cloud - to GitHub - so they are backed up and shareable. By default, this is often what wakes up your host. A deploy is when your host builds a version into the live site. This is the metered event. This is the one that costs money. The trap for AI-assisted builders is that the tools make committing and pushing feel like one frictionless motion, so you do it constantly - and if every push triggers a deploy, you have wired your fast-iteration habit straight to your wallet. The fix above is really just inserting a gate between "I pushed" and "the host built," so builds happen when something is genuinely ready, not every time the AI and I twitch. Commit freely. Build deliberately.
What this is really about: owning the thing you built
There is a bigger point here than a hosting setting, and it is the reason I think every operator should learn this rather than outsource it. When the system runs on your own keys, the bill is yours - and that sounds like a downside until you see the alternative. With a rented black box, a surprise cost is a support ticket and a shrug: you cannot see inside the meter, and you certainly cannot change it. On your own keys, a surprise cost is a problem you can walk up to and fix in an afternoon, because every setting is yours. The $349 bill was alarming. It was also entirely within my power to fix, line by line, the moment I understood it. That is the trade running it on your own keys never puts on the slide: the failures are yours, but so are the fixes. This is the same reason I built GTM OS - one control center that runs an operator's whole go-to-market from one place - and the same reason this cost discipline matters. The point is not that any of it is free; it is that nothing is hidden from you. Running it on your own AI keys means the meter, the logic, the data, and the bill are all yours to see - you pay the underlying vendors at cost, with no markup buried in a platform meter. It is the same literacy a consolidated stack rewards, and the same muscle behind the cockpit built on headless connectors: not a CS degree, just the willingness to understand what you are running.
The operator's pre-deploy checklist
If you are building something with AI and you do not want a surprise bill, here is the whole checklist. It is five things, and a non-engineer can do all of them. 1. Learn the three words. Commit, push, and deploy are not synonyms. Only the last one reliably costs money. 2. Gate production builds to your main branch. Find your host setting for skipping builds - Vercel's "Ignored Build Step," Netlify's equivalent - and tell it to build only the branch that is actually live. This is the single highest-leverage change. 3. Slim your build command. Make each build do only what shipping requires. If tests and checks already run somewhere free on every push, do not pay to run them again inside the build. 4. Check your build-machine tier. Hosts let you pick faster, more powerful build machines, which burn metered minutes faster. The default is usually fine for a small project - do not pay for an enhanced tier you are not using. 5. Watch the first week. After any change, open the usage dashboard a few days later and look at the one number that bit me: build compute. If it is still climbing, something is still building that should not be. None of this is engineering. It is operating - the same instinct you already use to catch a SaaS line item that crept up at renewal, pointed at infrastructure you happen to own.
Where this leaves you
I shipped my first lines of production code this year by describing what I wanted to an AI and reviewing what it wrote. That is genuinely new, genuinely powerful, and it comes with exactly one piece of fine print nobody hands you: the thing you build runs somewhere, and somewhere costs money in ways you have to learn to see. The good news is that learning to see them took me one bad invoice and an afternoon - and now it is a checklist. If you want the system rather than the lessons, GTM OS is the operator go-to-market platform I am building on exactly these principles: own the logic, control the bill, hide nothing. If you want the building blocks, the Operator Playbook is the set of Claude skills that build this kind of tooling without renting a platform for it. Either way - build as fast as the AI lets you. Just put a gate between the building and the bill.
Frequently asked questions
Why is my Vercel bill so high after building a site with AI?
Almost always one line item: Build CPU Minutes. AI-assisted building generates a lot of pushes, and if your host is set to rebuild the whole site on every push to every branch, you pay for hundreds of builds you do not need. In my case it was 99 percent of a $349 bill. The fix is to build only your production branch and to slim what each build does.
Do AI coding tools like Claude Code or Cursor cost money to deploy?
The AI tool and the hosting are two separate bills. The tool charges for usage or a subscription; your host - Vercel, Netlify, and the rest - charges to build and serve what you make. The surprise bill is usually the host, not the AI, and specifically build compute triggered by how often you deploy.
How do I stop my host from building on every push?
Most hosts have a setting that decides whether a given push should build at all - Vercel calls it the Ignored Build Step. Configure it to build only your production branch and skip every feature or experiment branch. It is a one-time dashboard change and it is the highest-leverage fix.
What is the difference between a commit, a push, and a deploy?
A commit is a save point on your own machine - free and local. A push uploads your commits to the cloud (GitHub) - also free, but often what wakes up your host. A deploy is when your host builds your code into the live site - the metered step that costs money. Treat them as three different things and you stop paying for the wrong one.
Will this happen on Netlify or other hosts too?
Yes. Any host that builds your project off a stream of pushes can run up build minutes the same way. Netlify meters build minutes against a monthly allotment; the same discipline applies - build only the branch that ships, and keep each build lean.
I am not an engineer - can I really fix this myself?
Yes - I am not one either. The whole fix is two settings (build only production, slim the build command) plus a five-item checklist, all done from a dashboard and a config file the AI can edit for you. It is operating, not engineering: closer to catching a creeping SaaS renewal than to writing code.