Is my AI app production ready?

Production ready isn't a judgement about code quality. It's a short list of concrete properties: you can recover from a mistake, users can't reach each other's data, secrets aren't public, and you find out about failures before your customers do. Most prototypes fail two of those four.

The four that are genuinely blocking

If any of these is missing, the risk isn't inconvenience — it's the kind of incident you don't fully recover from.

  • A backup you have actually restored from at least once
  • Authorization checks, not just authentication — can user A fetch user B's record?
  • No secrets in the client bundle or anywhere in git history
  • Error tracking that reaches a human when something breaks

Authentication is not authorization

This distinction accounts for more serious findings in AI-built apps than everything else combined, and it's worth stating plainly. Authentication establishes who someone is. Authorization establishes whether they're allowed to touch this particular record.

Generated code reliably implements the first and frequently omits the second, because the prompt asked for a login system rather than for an ownership check on every endpoint. The result is an app where changing a number in a URL returns somebody else's data.

It takes about ten minutes to test: log in as one user, take a record ID belonging to another, and request it directly.

The eight you can knowingly launch without

These matter, but not every launch needs them on day one. What matters is that you've decided, rather than never considered them.

  • Rate limits on login, signup, uploads and anything calling a paid API
  • Server-side validation, since client-side validation is only a courtesy
  • Database indexes on the columns you filter and sort by
  • A rollback path you've practised before you need it
  • Timeouts on every outbound call to a third party
  • HTTPS enforced, plus basic security headers
  • External uptime monitoring
  • A staging environment that isn't production

Knowing about a gap is most of the work

The difference between a team that gets away with a thin launch and one that doesn't is rarely the number of gaps. It's whether the gaps are written down with owners and dates, or discovered during an incident at the worst possible moment.

Deciding not to fix something yet is engineering. Not knowing about it isn't.

Common questions

Can you review AI-generated code before launch?

Yes, and it’s a good moment to ask. A pre-launch review covers architecture, security, performance, dependencies and maintainability, and comes back as a prioritized list rather than a wall of comments.

Can you help with deployment?

Yes, and it’s one of the most common reasons people get in touch. "It works locally" is almost always an environment, configuration or build problem rather than a code problem, and those are findable.

Can you review security?

Yes, as an engineering review rather than a formal audit or certification. I look at authentication, authorization, exposed secrets, input handling, dependency risk and what your deployment leaves open. If you need a certified penetration test, I’ll tell you that instead of pretending otherwise.

The service

Production Readiness

It works when you use it. Production means it has to work when a stranger uses it, at 3am, on a bad connection, while something upstream is down — and you have to find out when it doesn't.

Further reading

Your AI-built app doesn’t need another prompt.

Sometimes it needs an engineer.

Send the messy version. That’s usually the useful version.

Show me what’s stuck.

Don’t spend another six hours fighting the same bug. Send me what you’ve got — the messy version is usually the useful version.

Both open with a short template already filled in.