← Writing

Putting AI Into Production Without the Hype: A Checklist

The gap between “the AI demo worked” and “the AI feature is live and safe” is where most projects quietly die. The demo is the fun 20%. The other 80% is unglamorous engineering that nobody films for the launch video — and it’s the part that determines whether your feature helps users or embarrasses you in public.

Here’s the checklist I run before any AI feature ships, in my own products and in client work.

Build an eval set before you tune anything

The first thing that separates production from prototype is a way to know if a change made things better or worse.

Model outputs aren’t deterministic, so you can’t write a normal assertion. Instead you build an evaluation set: a fixed collection of representative inputs, each paired with what a good answer looks like. Every time you change the prompt, swap the model, or adjust the temperature, you score against the set. Quality went up, down, or held — now you know, instead of guessing from user complaints.

You don’t need a fancy framework to start. A spreadsheet of thirty hard inputs and a rubric beats nothing by a mile, and thirty hard inputs beats three hundred easy ones. The point of an eval set is to hold onto the edge cases the demo let you ignore.

Plan for the model failing

In a demo, the API always responds. In production, it times out, rate-limits you, returns malformed output, or goes down entirely. Every one of these will happen. The question is whether your feature degrades gracefully or throws an error into your user’s face.

Every AI call needs an answer to “what happens when this fails?” Sometimes that’s a retry with backoff. Sometimes it’s a cached previous result. Sometimes it’s falling back to a simpler non-AI path — a keyword match instead of a semantic one. The specific fallback matters less than having decided on one before a user finds the gap for you.

Put a ceiling on cost

AI features have a failure mode traditional features don’t: they can get expensive fast, silently, in a way that scales with usage or abuse.

Keep AI costs from surprising you

  1. Cache identical requests

    The same input should never hit the model twice. Caching is the highest-leverage cost control there is, and it also makes the feature faster.

  2. Use the smallest model that passes evals

    The demo probably used the biggest model because it was easy. Once the prompt is tuned, a smaller, cheaper model often scores the same on your eval set — test it.

  3. Cap tokens per request

    Set a hard maximum on input and output length so one pathological request can't cost a hundred times a normal one.

  4. Set a hard spending limit with alerts

    Put a ceiling on the account and alert well before it. This is the difference between a bad day and a bad month.

The trap is shipping a feature that calls the largest model on every request, with no cache and no ceiling, and finding out how that scales from the invoice.

Version your prompts like code

A prompt is code. It’s the logic that turns input into behavior, and when you change it, behavior changes — sometimes in ways your eval set didn’t cover.

So prompts live in version control, not pasted into a dashboard where you can’t see what changed or roll back. When a prompt change ships and quality drops, you want to revert it in one commit, the same way you’d revert any other bad deploy. Teams that keep prompts outside their codebase lose this, and debugging “the AI got worse last Tuesday” becomes archaeology.

Size the human checkpoint to the risk

I wrote a whole framework on evaluating AI use cases, and the through-line applies here: the amount of human oversight should match the cost of a wrong answer. Drafting content a person reviews needs almost none. Taking an irreversible action — money, messages, records — needs a checkpoint, every time.

The mistake is removing the human to make the feature feel more autonomous and impressive. Autonomy is not the goal. A feature that quietly keeps a human on the expensive decisions is not less sophisticated; it’s more responsibly built.

The unglamorous truth

None of this is exciting. Eval sets, fallbacks, cost ceilings, prompt versioning, human checkpoints — it’s the plumbing, not the magic. But it’s exactly the plumbing that separates AI features that run reliably for years from demos that impressed everyone once and then embarrassed someone in production.

If you’ve got a promising AI demo and you’re staring down that 80%, that’s the part we help teams with.

Frequently asked questions

What's the difference between an AI demo and an AI feature in production?
A demo proves the model can do the task on good inputs. A production feature handles the bad inputs too: it has evaluations that catch regressions, fallbacks for when the model or API fails, cost controls so a spike doesn't bankrupt you, and human checkpoints sized to the risk. The demo is maybe 20% of the work; the other 80% is what nobody films.
How do you test an AI feature when the output isn't deterministic?
You build an evaluation set: a fixed collection of inputs paired with what a good answer looks like, and you score every prompt or model change against it. You're not checking for one exact string — you're checking that quality didn't drop. Without an eval set, every change is a guess and you find out it was wrong from users.
How do you control the cost of an AI feature?
Cache aggressively, use the smallest model that passes your evals, cap tokens per request, and put a hard spending limit with alerts on the account. Costs blow up when a feature calls a large model on every request with no cache and no ceiling. Most production features can use a smaller, cheaper model than the demo did once the prompt is tuned.

Related posts