Vibe-to-Production · Deployment

One Deploy From Disaster: Could You Put Yesterday's Version Back?

You shipped a change — or your AI tool did — and the app broke for real users. The minutes that followed taught you something worse than the bug: there was no undo. Now every deploy feels like defusing something, and you've started avoiding changes entirely, which is its own kind of broken.

72 hours
01 / TO FINDINGS
2–6 weeks
02 / TYPICAL FIX WINDOW
500+
03 / ENGINEERS
92%
04 / ON-TIME DELIVERY
DeploymentProblem guide

When a deploy breaks an AI-built app and there is no way back, it is because the app has only one environment — production — and changes go straight onto it with no saved, restorable version behind them. You can establish tonight, without touching anything, whether a rollback path exists, and building a real release pipeline is standard, fast engineering.

How to recognise it

The signs show up before the incident does.

None of these proves you have the problem. Each one raises the odds — and every one of them is checkable in the twenty-minute protocol below.

  • Every change goes straight to the real appThere is nowhere to try anything first. The place you test and the place your customers live are the same place, so every experiment has an audience.
  • Going back means fixing forwardWhen a release goes wrong, the only path is another change on top — made faster, under more pressure, with less checking than the one that caused the problem.
  • Customers are your monitoringThe last few incidents were reported by users, not by an alert. However long it took them to complain is how long the app was broken without anyone knowing.
  • Nobody can say what changedWhen something breaks, there's no dated list of what shipped recently to check it against. Diagnosis starts from memory — whose, depends on who's awake.
  • Deploys wait for one personOnly one person — maybe you, maybe a contractor — knows the steps. When they're unreachable, fixes wait, no matter how urgent.
  • You've started fearing releasesShipping used to be the fun part. Now changes get batched up and postponed because every deploy is a gamble — and the batching makes each gamble bigger.
Why this happens

One missing layer explains every symptom above.

There is exactly one copy of the app — production — and every change is applied directly to it.

With no second environment and no restorable saved version, every deploy is an experiment run on live customers, and 'undo' does not exist as an operation. The severity of any mistake is no longer bounded by the mistake — it's bounded by how fast someone can write a second change under pressure.

This is not a defect of any one tool — it follows from how prompt-built apps come to exist, and the platform guides show how the same gap surfaces on each stack.

What is actually at stake

It isn't a bug count. It's an open door.

The real cost isn't the outage — it's what the fear of the next one does to your product. Releases get batched, postponed, avoided; each deploy grows bigger and riskier because the last one was frightening; and the pace that made an AI-built product worth building evaporates. A team that can't ship safely soon stops shipping, and the product freezes exactly where it stands.

If something has already gone wrong, the first-response guide covers the first hour. If nothing has — that is exactly the moment this is cheap to fix.

Check it yourself

Run the audit yourself — tonight.

No developer, no tooling, no permission needed — this is your own app. Work through the sheet in order; if a check fails, do it once more before believing it. What you find is yours to act on, with us or without us.

Diagnostic protocolAbout 20 minutesTwo browser windowsNo code required
  1. Can you put yesterday's version back, right now?

    Run it

    Don't hypothesise — go look. Open your platform's dashboard and find the release or deploy history. Check three things: are past versions listed with dates, is there a visible restore or rollback control next to them, and has anyone ever actually used it?

    What the result means

    Dated versions with a restore control someone has exercised is a pass. If there's no history, or a button nobody has dared press, then in a real incident your only option is writing new code under pressure — the exact condition that causes second outages.

  2. Is there anywhere to try a change that isn't production?

    Run it

    Ask for the address of the test version of your app. If one exists, open it and check two things: does it have its own separate data, and can your real customers stumble into it?

    What the result means

    A separate test environment with its own data is a pass. If the only place to see a change running is the live app, every experiment has an audience — and 'testing' means testing on customers.

  3. Would you know it was down before a customer told you?

    Run it

    Answer from evidence, not hope: search your email and phone for any automated alert about downtime — ever. Then recall the last three incidents and who reported each one.

    What the result means

    Alerts that have actually fired, before customers noticed, are a pass. If every incident arrived via a user, your monitoring is your customers' patience, and your outage duration is however long they stay quiet.

  4. Can you list what changed last Tuesday?

    Run it

    Pick a recent date — ideally one where something glitched — and try to produce the list of exactly what was deployed that day: what changed, when, by whom.

    What the result means

    A dated history that answers in a minute is a pass. If the answer lives in someone's memory, then every diagnosis starts with archaeology, and incidents take hours that should take minutes.

  5. If your deployer vanished for a week, could anyone ship a fix?

    Run it

    A thought experiment with sharp edges: name the person who deploys. Now assume they're unreachable for a week and something urgent breaks. Write down, step by step, what the rest of you would actually do.

    What the result means

    Documented steps someone else has executed at least once is a pass. If the honest answer is 'wait for them', your incident response time includes another person's holiday.

Each of these maps to a scored item in the production-readiness framework. A pass on all of them rules out the loudest failure class — the full audit covers what a browser can't reach, at a fixed price.

How it gets fixed

Sealed from the data layer up.

The order matters more than the effort: enforcement first, credentials second, proof third. Done in the wrong order, the work gets done twice while the exposure stays open. The same discipline runs through everything we deliver.

Get my scorecard
  1. 01

    Version everything, first

    Every deployable piece of the app goes under version control with a dated history — the precondition for every other step, because you cannot restore a version that was never saved. The audit maps what's versioned and what isn't within 72 hours.

  2. 02

    Stand up a real staging environment

    A separate copy of the app with its own data, where changes run before customers meet them. From this point on, 'testing in production' stops being the only option.

  3. 03

    Make deploys boring and reversible

    Releases become one repeatable, automated step from a versioned commit — and rollback becomes one step too, exercised on purpose at least once, so the first time is never during an incident.

  4. 04

    Put tests on the door

    Automated checks run on every change and a failure blocks the release. The pipeline now catches the class of mistake that caused your bad deploy — before customers do.

  5. 05

    Wire up the alarm bell

    Uptime and error monitoring that pages a human, plus structured logs retained long enough to investigate — so the next incident is measured in minutes of response, not hours of discovery.

Where it sits in the framework

The framework's heaviest weights sit exactly here.

30 / 100

points of the production-readiness score sit in the categories this problem touches.

See every check and weight
0The full 100-point framework100
  • 15 ptsAutomated testingTests are what make the next change safe. Without them, every improvement carries the risk of a regression nobody notices until a customer does.
  • 15 ptsDeployment & operationsThis is the category prototypes skip entirely, and the one that decides whether a bad release costs you ten minutes or a weekend.
Our honest read
Ask one question tonight — can we put yesterday's version back, right now? — and if the answer is no, treat the pipeline as the most urgent thing you don't have, because it is the difference between a bad deploy costing ten minutes and costing a weekend.
FAQ

The questions that follow.

QMy platform deploys automatically when I publish. Isn't that CI/CD?
It's the CD half — continuous deployment — without the CI half that makes it safe: the automated checks standing between a change and your customers. One-click publishing is genuinely good; the question is what happens between the click and the customer. If the answer is 'nothing', you have a very fast way to ship mistakes. The fix isn't to slow publishing down — it's to put automated verification inside that gap.
QWe're tiny — isn't a full pipeline overkill for a team like ours?
Small teams need this more, not less, because there's no bench: nobody whose job is watching production, nobody spare to firefight while someone else ships the fix. The minimum that changes your life is genuinely small — version history, one staging environment, one-step rollback, tests on the critical path — and it's mostly configuration of things your platform already offers, not an infrastructure project.
QThe app is broken right now after a deploy. What do I do first?
Resist the reflex to immediately ship another change — the second, faster fix is how one outage becomes two. First check whether any restore-previous-version control exists in your platform's dashboard; if it does, that's your move, because yesterday's version is a known-good state and your new fix isn't. If it doesn't, make the smallest possible correcting change, write down everything you observed, and treat building a rollback path as this week's priority — the first-response guide covers the first hour in detail.
QWhat's the difference between staging and just testing carefully before I publish?
Where the change runs while you look at it. Careful testing on your machine exercises the change in an environment that differs from production in a dozen quiet ways — data volume, configuration, other users' actions. Staging is a genuine copy of the production setup where the change runs as it actually will, against realistic data, before anyone real sees it. Most 'but it worked when I tried it' incidents live precisely in that gap.
QCan the AI tool set up the pipeline itself?
It can generate much of the configuration competently — pipelines are well-trodden ground. What it can't do is verify the result end to end: deliberately break staging and confirm the alert fires, roll back a real release and confirm the app survives it, prove a failing test actually blocks a deploy. A pipeline that has never been exercised is a diagram, not a safety net. Generate with the tool by all means; the drills are the part that requires someone to actually run them.
QWhat does building this properly cost, and how long does it take?
The audit ($2K – $5K) maps your current deployment reality — what's versioned, what's monitored, whether any rollback path exists — within 72 hours. Standing up the full pipeline is usually the fastest engagement on this site, at the short end of 2–6 weeks, because it's configuration and discipline more than construction — and it pays back on the very next release.
Before you share anything
Your IP · 100% yours, in writing

Nobody has ever regretted sending us their repository.

Handing private code to anyone is a real decision, so everything below is settled before the audit starts rather than on request.

  1. An NDA is signed and returned before you send a linkStep one, every time
  2. Access is read-only, scoped to one repository, and time-boxedRevoked on delivery
  3. Our copy of your code is deleted when the report landsNothing retained
  4. We build for clients and never launch anything that competes with themNever has happened
No-obligation diagnosis

Send us the repository. We'll tell you what's missing.

Fixed price, 72 hours to findings, and a report you can act on with or without us. Nothing is committed until you have read it.

NDA signed before you send anything · read-only access, revoked when the report lands · our copy deleted on delivery.