Skip to content
All posts
4 min read

The AI bubble, read from my commit log

One hundred and nine commits in this repo carry an AI co-author's name. Whether that is a bubble is a question about prices; the chores are real either way.

AIPersonal

There are one hundred and nine commits in this site's repository with an AI's name in the trailer. Forty-seven more in the Discord bot that makes our game thumbnails. I know because I counted this morning, with grep, before sitting down to write about the bubble.

The bubble question is everywhere right now, and I am not going to pretend I can answer it. I am nineteen. My confident macro opinions have a shelf life of about a month. What I have instead is a workbench that keeps records, so instead of a take, here is an inventory of what the machines actually do around here, what it costs, and where I keep the leash.

The code first. Those commits are pair-written: I steer, a model types faster than I ever will, I read every line before it lands, and the trailer says Co-Authored-By: Claude because that is what happened. Somewhere in the middle of the project the name in the trailer changed, Claude Opus 4.8 one month, Claude Fable 5 the next, a whole model generation swapped out underneath the work. The codebase did not notice. That detail matters more than it looks, and I will come back to it.

The writing next, since you are reading some of it. Every third morning at nine, a scheduled Claude task wakes up, reads two files, and writes. One file is a topic queue. The other is a contract called voice.md: banned words, banned dash, five tests a draft has to pass before it is allowed to exist. The task files exactly one draft into an inbox that is physically unable to publish; the API behind it rejects em dashes with a 422 and pings my Discord when a draft lands. Publishing is my click, every time. The drafts are good, and occasionally they are too smooth, which is exactly why the contract exists. Smooth is the failure mode.

Then the money, which is where opinions get honest. The thumbnail bot wraps Google's image model, and friends' servers use it for their own games, which means the bot spends actual dollars on other people's requests. So every workspace has a monthly cap, every generation pre-authorizes its worst case before it runs and settles to the actual cost after, and a brand-new server's cap is zero until I type a number. My realest position on AI economics is a database column called capUsd, and its default is zero.

There is even a password in the env file that exists only so an agent can sign into the admin panel and test what it built. Production ignores it. I did not plan on becoming the kind of landlord who keeps a key for nonhuman guests; it just turned out to be the practical thing to do.

My day job is Style.it, where the product is an AI with opinions about jackets, so I am aware I am not a neutral witness here.

Now the bubble. A bubble is a claim about prices, and I do not control any prices. Capability and valuation can be wrong about each other for years, in both directions: the dot-com crash deleted companies by the hundreds and did not delete the internet, which kept quietly compounding in the rubble. Both things were true at once. I expect the same shape here, and I hold that boring middle position with real discomfort, because the boring middle position never gets to feel smart.

Here is the part I will argue about. Most AI features shipping right now would not survive a budget line. Free-tier magic and demo-day magic are easy; magic with a cap column staring at it is rare. When a feature cannot justify pre-authorizing its worst-case cost against someone's real money, what you have is a demo running on venture electricity, and electricity bills come due on their own schedule, not the roadmap's. The products that survive a pop, if a pop comes, will be the ones where the model is already doing chores someone would grudgingly pay for in a bad quarter. Thumbnails count. Drafts count. The rest, we will find out.

And the molting. Models change names every few months; my own trailers prove it. So I try not to build on a model's personality, because the personality is a tenant. The contracts are the building: voice.md, the 422, the drafts-only inbox, the capUsd column, my click at the end. When the new model moved in this month, none of the leases changed. It read the same contract, and its drafts had to pass the same five tests. That is the only future-proofing I actually believe in.

If the prices pop someday, here is what changes on this desk that afternoon: nothing. A draft still lands at nine. The caps still hold at zero until I say otherwise. The trailer on the next commit still gets a name, whatever the name is by then. The internet outlived its bubble by doing chores. My bet, the only one I am qualified to place, is that this does too.

Remiel Shirazi

CTO & Co-founder | AI, Roblox & Piano