Field notes

Your AI app's first six months, on a schedule.

Nobody puts these in the launch tutorial. But they arrive so reliably you can put dates on them — so here they are, in order of appearance, each with the boring fix.

Day 1

Your key leaks.

Not "might" — an .ipa is a zip file, a web bundle is view-source. A June study caught 282 apps shipping exploitable LLM keys. That's the base rate, and you're in it.

The fixShip a key that's allowed to leak: scoped to two endpoints, $5/day budget, 60 req/min. The leak still happens — it stops mattering.

receipt: 19% raw keys · 33% unauthenticated proxies · 48% replayable tokens

Month 1

Three users are half your bill.

AI cost isn't like server cost. One enthusiast can out-spend fifty casual users — and on a flat $4.99 tier, your best fan is your worst customer.

The fixAttribution. When every session carries a user id, the whale has a name — and a whale with a name isn't a cost problem, it's a Pro tier you haven't priced yet.

receipt: you cannot upsell users you cannot see

Month 2

Your model changes price overnight.

Last quarter alone: one flagship line doubled its output price on release; another's launch discount quietly expires in August. If your app is welded to one provider's SDK, that's a migration project with a deadline you didn't set.

The fixMake the model a string, not an architecture. Swap it from the couch. Pick the replacement with receipts.

receipt: gpt-5.5 output = 2× gpt-5.4 · sonnet-5 intro pricing ends Aug 31

Any Tuesday

The model refuses to do its job.

Models don't just fail wrong — they fail weird. We benchmarked a frontier model that flatly refused a benign parsing task most of the time. To your user, that's "the app is broken." Without transcripts, to you it's nothing at all.

The fixKeep every exchange. A weird Tuesday becomes something you can read, reproduce, and route around — with a one-string model swap.

receipt: we watched it refuse "parse a date string"

Some night

Your provider has a bad night.

429s don't announce themselves. A single-provider app just goes dark — and if it's native, the fix ships through app review, in days.

The fixA gateway that speaks every provider through one API. The emergency plan is changing a string in a config, tonight, not a release.

receipt: "one 429 away from an existential crisis" — every AI forum, weekly

Month 3

You don't know what users actually ask.

Downloads and DAUs can't tell you that half your espresso-coach users are asking about milk texturing. The product you should build next is sitting in the conversations — if you kept them.

The fixSessions that persist by construction. Your transcripts are your analytics, your evals, and your roadmap — for free.

receipt: most apps throw this away. yours doesn't have to.

None of these are exotic. That's the point — they're so predictable they have dates. The builds that survive them aren't the careful ones, they're the ones whose architecture made the problems boring: a capped key, a user id on every session, a model that's a string, transcripts that persist. That's the whole Cerver pitch, and it fits in one sentence because the problems do too.

Want the working example? The iOS tutorial builds an app that pre-solves all six — with a copy button that hands the whole spec to your coding agent.

Make the problems boring before they arrive.

Open a project, mint a capped key, stamp your user ids. No card, $5 free tier.