Prototype to production

Take a vibe-coded app to production

Your app works locally. Production is another story.

A prototype has to work once, for you. A production app has to keep working for people you'll never talk to, with their data, on their devices, while you're asleep.

What changes between prototype and production

  • Accounts. Password reset, email verification, sessions that expire, and a way to delete an account.
  • Data. Each user sees only their own records. Backups run. Schema changes don't wipe what's already there.
  • Money. Live payments, webhooks that keep your database in step with Stripe, and failed cards, refunds and cancellations.
  • Configuration. Secrets in environment variables, separate test and live keys, and a deploy you can repeat and roll back.
  • Failures. Error tracking and logs, so you hear about a bug before a customer emails you.
  • Abuse. Rate limits on sign-up and on anything that costs you money per call, like AI models or text messages.

The production checklist goes through each of these in detail.

You probably don't need to start over

A rewrite feels clean, and it usually takes longer than planned. A prototype that people already want to use often has a workable core. We keep what works, fix what's fragile, and add what's missing.

Sometimes one part does need replacing, like a data model that can't represent what the product now does. When that's the case, we say which part and why.

How we approach it

  1. We read the code and use the app as a new user would.
  2. We list what blocks launch and what can wait.
  3. We agree the scope and a fixed price with you.
  4. We do the work in your repository with coding agents, and test the flows that matter: sign-up, sign-in, payment, and the core feature.
  5. We deploy it and help you through launch.

AI can write the code. It still helps to have one person responsible for deciding what should happen next. More about how we work.

Tell us what you built and what “ready” means for it.