Guide

From vibe-coded prototype to production

You have a working prototype from a no-code tool or a coding assistant, and it does the thing. Turning that into a product people can depend on is a real piece of work. Here is what is usually missing, and how we help you close it.

Tools like v0, Lovable, Bolt, Cursor and Replit have made the first ninety percent fast. You can go from an idea to something clickable in an afternoon, and that is genuinely useful. The idea is proven, the shape is right, and everyone can see it.

The last ten percent is where the effort moved. A prototype is optimised to show that something could work. A product is built so it keeps working when a stranger uses it in a way you did not expect, on a slow connection, with a full database, at two in the morning when nobody is watching. That gap is normal, and it is the part we do.

What is usually missing

The happy path is the only path

Prototypes are built to demo. They assume good input, a signed-in user and a working network. Production has none of those guarantees. Every form needs validation, every request needs a failure state, and every screen needs to handle empty, loading and error.

Auth is missing or improvised

A lot of generated apps either skip authentication or wire up something that looks right but leaks. Real auth means sessions, password resets, rate limiting and a clear line between what a logged-out visitor can see and what they cannot.

The database trusts the UI

If the only thing stopping bad data is a check in a React component, bad data will get in. Production databases enforce their own rules, and someone has thought about backups and about changing the schema without downtime.

Nothing tells you when it breaks

Prototypes have no tests and no error tracking, so a failure in production is invisible until a user complains. The critical flows need automated tests that run before a deploy, and exceptions need to reach a person.

It has only ever seen demo data

Ten records look fine. Ten thousand can bring a page to a crawl. Performance has to be checked with realistic volumes, on a normal phone and a normal connection, not just on the machine it was built on.

Deploys are manual and scary

Shipping should be a push, not an event. That means a pipeline, separate environments for testing and live, and a rollback that takes one click when something slips through.

How we take it there

We start by reading the prototype and running it hard: bad input, no network, an empty account, a full one. That gives us a list, ordered by what would hurt most. Then we work through it in vertical slices you can see, keeping the app deployable the whole way rather than disappearing for a month.

Typically that means lifting the core logic out of the UI so it can be tested, putting real authentication and access control in, moving rules into the database, adding tests and error tracking for the flows that matter, checking performance with production-scale data, and setting up a pipeline so deploys stop being a risk. What we do not do is throw the prototype away. The thinking in it is worth keeping.

Free, no sign-up

Production-readiness scorecard

Answer twelve questions about your prototype and get a score, a plain-English read on where it stands, and the specific things to fix first.

  1. Architecture and code

    A new developer can open the repo and work out where a feature lives without a guided tour.
    Business logic sits in its own layer, not spread through UI components and copied between screens.
  2. Authentication and security

    Sign-in is handled by a real auth provider or a maintained library, not hand-rolled or left open.
    API keys and secrets are kept out of the browser bundle and out of the repo history.
  3. Data

    The database enforces its own rules: types, required fields, relationships, uniqueness.
    There is a plan for backups and for changing the schema without taking the app down.
  4. Testing and error handling

    The paths that would hurt most if they broke have automated tests that run before every deploy.
    When something fails in production, someone is told: error tracking and alerts are in place.
  5. Performance

    Load time and bundle size have been checked on a mid-range phone and a normal connection.
    The app stays quick with realistic data volumes, not just the handful of demo records.
  6. Operations and delivery

    A push to the main branch deploys on its own, and there is a clear way to roll back.
    There are separate environments for testing and for live, each with its own data.

12 questions, about two minutes. Nothing is sent anywhere until you choose to email us.

Rather just talk it through?

Send us the link to your prototype and a line about what it is for. We will come back with an honest read and a rough plan.

Send us your prototype

Or write to us directly at [email protected].

Have a prototype that needs to become a product?

Tell us what you are building. We will come back within 48 hours with a plan and a cost estimate, free.