Operations Research

Vibe Coded App Production Checklist: 20 Checks for After You Launch

We hand-labelled 48 real production incidents from Lovable, Replit, Bolt, Supabase, Cursor and Claude Code builders. Two thirds were caused by the platform, not the builder's code. Here is the checklist that survives that.

28 min readShare →
48
Production incidents hand-labelled
2 in 3
Caused by the platform
0 of 3
Builders whose rollback restores data
20
Checks, in five groups

A vibe coded app is production ready when you can answer three questions without guessing: where is the live data, how do I get it back, and how will I know it broke. We hand-labelled 48 real production incidents posted by Lovable, Replit, Bolt, Supabase, Cursor and Claude Code builders over the last 12 months, and the answer that matters most surprised us: 32 of the 48, two thirds, were caused by the platform, not by the builder’s code or the AI agent. A database endpoint was disabled, an infrastructure migration skipped the data, a publish broke auth, a feature was removed.

That changes what a production checklist is for. It is not only about writing better code. It is about owning a copy of your data and a way out, so a bad Saturday on someone else’s infrastructure is an inconvenience instead of the end. This page is the operations half. The security half, who can see and change data, lives in our vibe coded app security checklist, and you should run that one first.

Key takeaways
  • Of 48 production incidents, 32 were caused by the platform, 10 by the builder and 6 by an AI agent (hand-labelled from 860+ builder posts, September 2026).
  • Rollback is not a backup. Lovable, Replit and Bolt all document that restoring an earlier version of your project does not restore your database by default.
  • Supabase backups skip Storage files and are deleted with the project. Keep one copy of both off the platform.
  • Lovable retires Test and Live environments on October 5, 2026; Test databases are deleted on November 4. Move any data you need now.
  • In every production agent incident we read, the agent could reach production. 6 of 14 hosting and database connectors in Claude’s directory expose a delete or reset tool.

Vibe coded app production checklist: the short answer

The short answer

Before or right after your first paying users, do these six things: confirm which database your live app actually writes to; confirm backups exist and how many days they keep; keep one copy of the database and files off the platform; restore a backup once into an empty database; remove production credentials from anywhere your AI agent can run commands; and verify every publish on the live URL. Then add error tracking, an uptime alert and a one-page exit plan. Two thirds of the real incidents we read were platform-side, so the goal is recoverability you control.

If you are still deciding whether the app deserves this effort, that is a demand question, not an ops question. Check it against real complaints first with our idea validation tool or our guide to validating a SaaS idea with real reviews. Hardening an app nobody pays for is the most expensive way to learn that lesson. Our startup idea validation checklist and the guide to finding problems worth solving are the fast version.

What “production” means for a vibe coded app

Production is the version of your app that real people depend on, with data you cannot regenerate. The moment one stranger stores something in your app, the database stops being a scratchpad. Everything on this page follows from that one shift.

Builders feel the shift before they can name it. One Lovable builder asked the community what happens next:

“What I’m more curious about is what happens when the app gets real users, and suddenly you need to think about things like hosting, databases, logs, backups, staging, costs, rollbacks, etc.” – r/lovable

The list in that post is almost exactly this checklist. What the post could not know is which of those items actually bite. That is what the rest of this page measures. If you built without code, our guide to building a SaaS without code covers the build side, and SaaS ideas for non-technical founders covers what tends to work. If you want the broader picture of who builds these apps and what they earn, our vibe coding statistics page covers adoption, revenue and platform numbers, and do vibe coded apps make money covers the revenue side in depth.

How we measured what breaks after launch

On September 25, 2026 we ran nine keyword searches across seven builder subreddits (r/replit, r/lovable, r/boltnewbuilders, r/vibecoding, r/Supabase, r/ClaudeCode and r/cursor) for posts from the last 12 months about production, backups, staging, rollbacks, migrations, outages and deleted data. That returned 860+ distinct posts. A relevance filter kept 420+ that discuss production operations. From those we hand-read every first-person incident and labelled 59, of which 48 affected a live app, live users or production data.

Each incident got three labels: the cause (the platform, the builder, or an AI agent), the scope (production or a local machine) and the type (outage, data loss, broken deploy, failed restore, environment mix-up, migration, lock-in). The sample is small and search-shaped, so read the split as directional, not as a census. The full method and its limits are in the methodology section. It is the same approach we used to rank failures in the state of SaaS pain points report.

We then checked every platform claim against the vendor’s own documentation on the same day, and pulled supporting numbers from BigIdeasDB’s warehouse of 1M+ records, including app-store reviews, Capterra and G2 reviews, the Agent Index of AI connectors and the Stripe Index.

Who actually breaks production?

The platform, most of the time. Of the 48 production incidents, 32 (67%) were caused by something on the platform side, 10 (21%) by something the builder did and 6 (13%) by an AI coding agent acting on its own. The popular story, that the AI deletes your database, is real but it is the smallest of the three.

CauseProduction incidentsShareTypical example
Platform3267%Database endpoint disabled, infra migration, publish broke auth, feature removed
Builder1021%Deleted the wrong project or repo, unverified publish, migration never applied
AI agent613%Agent ran a reset, replayed migrations or wiped a server it could reach
Source: BigIdeasDB hand-labelling of 48 production incident posts from seven builder subreddits, 12 months to September 25, 2026. Directional: the sample comes from keyword search and over-represents r/replit.

Replit accounts for 21 of the 32 platform incidents, Lovable 6, Supabase 3 and Bolt 2. Treat that as a sampling artifact as much as a verdict: “production database” is Replit’s own UI label, so our searches found Replit posts more easily. The pattern across platforms is the same, and it is the one a builder described after a week-long outage:

“…after this past week I genuinely don’t know how anyone can rely on it for serious production workloads without a backup exit strategy.” – r/replit

Among the incidents on local machines (11 more posts), agents dominate: 10 of the 11 were an AI agent deleting a project folder, a home directory or a local database. Those rarely hurt customers, but they show what an agent does when nothing stops it.

What goes wrong: outages, data loss and broken deploys

Outages lead. Across the 48 production incidents, 21 involved the app being down, 11 involved lost or overwritten data, 8 a publish or deploy that failed or broke the live app, 4 a restore that failed, 7 an environment mix-up (including 3 where development and live databases were overwritten into each other), 3 lock-in and 2 a migration. An incident can carry more than one type. For comparison, the most common post-launch complaints about business software in general are catalogued in our customer support software limitations study.

Incident typeIncidentsWhich checks prevent or shorten it
Outage (app or database down)213, 15, 17, 20
Data lost or overwritten112, 3, 4, 6, 9, 11
Deploy or publish broke the live app88, 12, 13
Environment mix-up (dev vs live)71, 7, 8
Restore failed or stuck43, 4
Lock-in or forced migration318, 19, 20
Migration broke production210, 11
Source: BigIdeasDB hand-labelling of 48 production incident posts, 12 months to September 25, 2026. Types are non-exclusive.

The outages were rarely short. Builders reported being down “23+ hours”, “day 4”, “more than 72 hours” and, in one Supabase case, a full day after trying to restore a backup. Here is the one that most clearly shows why an off-platform copy matters:

“The migration disconnected the legacy endpoint without ever copying its contents into Helium.” – r/replit

All that builder asked for was the endpoint back long enough to run pg_dump: one export they had never scheduled. Replit’s documentation confirms the background: forked apps that shared a legacy Neon database were shut down on June 8, 2026, and the company publishes a guide for fixing published apps that lost access (source: Replit docs).

Rollback does not roll back your data

On all three big builders, restoring an earlier version of your project brings back code, not data. This is the single most misunderstood feature in vibe coding, and it is documented plainly:

PlatformWhat version restore doesWhat it does not doDatabase backup
LovableRestores code and redeploys edge functions“It does not restore or roll back your database data”Daily, roughly 14 days kept; restore is permanent
ReplitRestores files, config and Agent contextDevelopment database only if you tick it; production neverPoint-in-time restore for production, separate flow
BoltRestores an earlier project version“Will not change your current Bolt or Supabase databases”Depends on the database you connected
Source: vendor documentation retrieved September 25, 2026: docs.lovable.dev, docs.replit.com, support.bolt.new.

So when an AI change corrupts data, clicking back in history fixes the code and leaves the damage. Worse, Lovable’s docs warn that restoring a database backup also reverts the schema, so the current code may no longer match it. Plan for code and data as two separate recovery paths. If you started from a boilerplate, our explainer on what a micro SaaS boilerplate is shows where the database layer sits. A builder learning this the hard way:

“He was on Replit which actually has a built in rollback feature, and that alone would have saved him.” – r/replit

The 20 production checks at a glance

Twenty checks in five groups, ordered so the ones that prevent permanent loss come first. The “Who” column tells you whether a non-coder can do it alone.

#CheckGroupWhoTime
1Know which database your live app writes toDataYou10 min
2Confirm backups and retention daysDataYou10 min
3Keep one copy off the platformDataYou or dev1 hour
4Restore once into an empty databaseDataYou or dev1 hour
5Back up storage files, not just rowsDataDev1 hour
6Map the buttons that delete everythingDataYou20 min
7Separate development and production dataEnvironmentsDevHalf a day
8Pin production environment variablesEnvironmentsYou30 min
9Keep production credentials away from the agentEnvironmentsYou30 min
10Ship schema changes as migrationsChangesDevOngoing
11Ban the commands that reset databasesChangesDev30 min
12Verify every publish on the live URLChangesYou5 min each
13Test risky changes on a copy firstChangesYou or devPer change
14Error tracking on server and browserMonitoringDev1 hour
15An external uptime check that pings youMonitoringYou15 min
16Alerts for jobs and backups that stopMonitoringDev1 hour
17Subscribe to your platform’s status and changelogMonitoringYou5 min
18Own your domainExitYou30 min
19Keep code in a repo you ownExitYou20 min
20Write a one-page exit planExitYou1 hour
The 20 checks, grouped, with who can run them and the incident types each addresses. Built from 48 production incidents and vendor docs, September 2026.

Fourteen of the twenty can be started by a non-coder. The developer items are where a short paid engagement pays for itself. Our guide to hiring a developer to fix a vibe coded project covers scoping, and our roundup of vibe code rescue services covers who does it.

Check 1: Know which database your live app actually writes to

Sign up a brand new test user on the live app, then open your database tool and look for that row in the production database. If it is not there, or it shows up in development, stop and fix that before anything else. Three of our incidents were development and live databases getting mixed up, and one builder only noticed when they could not log in to dev:

“Then I found out that all my users from the live db is in my dev db. Which is weird.” – r/replit

The consultants who move these apps for a living give the same advice:

“Replit gives you a seperate prod database now, but I wouldn’t just assume your live app is hitting it.” – r/replit

Write down the answer: the database provider, the project name, the region and where its credentials live. That one paragraph becomes the top of your exit plan in check 20. Solo founders juggling several apps can keep these notes alongside the rest of their stack from our solopreneur SaaS toolkit.

Check 2: Confirm backups exist and how long they last

Open your platform’s backup page and write down two numbers: how often a backup runs and how many days are kept. If a problem sits unnoticed longer than the retention window, the backup that would have saved you is already gone. The defaults, from each vendor’s docs:

Where your data livesAutomatic backupsRetentionWatch out for
Supabase FreeNone; export yourselfn/aSupabase tells free projects to run db dump and keep off-site copies
Supabase ProDaily7 daysStorage files not included
Supabase Team / EnterpriseDaily14 / up to 30 daysDeleting the project deletes backups
Supabase PITR add-onContinuous7 days from ~$100/moNeeds at least Small compute
Lovable CloudDailyRoughly 14 daysRestore also reverts schema, and is permanent
Source: supabase.com/docs/guides/platform/backups and docs.lovable.dev/features/database, retrieved September 25, 2026.

A builder whose customer overwrote their own synced data found the retention question the hard way, asking whether upgrading after the fact would bring back data from before they subscribed. It does not work like that. Decide your retention before you need it. The cost is small next to losing paying users: our guide to calculating churn rate shows how fast a bad week compounds.

“I saw that in Supabase I can back up my data only for 7 days and restore it only within Supabase...” – r/Supabase

Check 3: Keep one copy of your data off the platform

Your platform’s backups live on your platform. If the account is suspended, the project is deleted or the endpoint is disabled, those backups are behind the same locked door. Every builder stuck in the outages above was asking for the same thing: a way to get their own data out. Schedule a nightly export to storage you control.

For Postgres, that export is usually pg_dump. Be honest about what it is: the PostgreSQL documentation says pg_dump makes consistent exports even while the database is in use, but that “except in simple cases” it is not the right choice for regular backups of large production databases (source: PostgreSQL docs). For a small vibe coded app, a nightly dump plus your platform’s own backups is a sensible floor. The builders in r/Supabase describe exactly that setup:

“supabase’s daily backups (included on pro, but they’re sitting on supabase’s infra).” – r/Supabase

On Lovable Cloud, use Export project data in Advanced settings. Lovable’s docs say the export contains the full database, structure and data, including user password hashes, but not storage files, edge function code or secrets (source: Lovable docs). Move those three separately. If you are weighing whether to keep a tool-hosted backend at all, micro SaaS with no API dependency makes the case for fewer moving parts.

Check 4: Restore a backup once, into an empty database

A backup you have never restored is a guess. Restore one into a fresh project or branch, then compare table and row counts with production. Do not rehearse on the live project: Supabase’s docs say the project is inaccessible during a restore and downtime grows with database size (source: Supabase docs).

This was the loudest theme in r/Supabase. Fifteen of the posts we read were builders realising they had never tested a restore, several of them building tools because of it:

“A backup you’ve never restored is basically just hope.” – r/Supabase
“A few months ago I realised the green ‘backup completed’ checkmark on my projects meant almost nothing.” – r/Supabase

The restore rehearsal also exposes the failure four of our incidents hit: the restore itself failing. One Replit builder whose agent wiped production reported the built-in restore failing with “Something went wrong” while the recovery window ticked down. Rehearsal is how you find that on a Tuesday instead of during an outage. Due-diligence buyers check exactly this, as our SaaS acquisition due diligence checklist shows.

Check 5: Back up files, not just rows

If users upload images, PDFs or avatars, those files probably live in object storage, and your database backup only holds pointers to them. Supabase’s docs say it directly: database backups do not include objects stored via the Storage API, and restoring an old backup does not restore files deleted after it. Four separate builders in our sample discovered this on their own:

“The database backup includes storage.objects, so you get the metadata rows, but not the files sitting in the buckets.” – r/Supabase

Add the bucket to your off-platform copy in check 3. For most small apps, a nightly sync of the bucket to a second storage provider is enough. Our Next.js starter kit guide shows where storage fits in a standard stack.

Check 6: Map the buttons that delete everything

Several of the worst incidents were a single click that deleted more than the builder expected. Spend twenty minutes finding these on your stack and write them down, so nobody (including you at 2am) presses one casually:

  • Deleting a Supabase project permanently removes its data and its backups, according to Supabase’s docs. One builder’s post title says it all: “I deleted our Supabase project in the production environment. The next 48 hours turned out to be a very costly...” (r/Supabase).
  • Deleting a Lovable project is permanent and cannot be restored, per Lovable’s project settings docs. Lovable’s GitHub docs separately warn: “Don’t delete your GitHub repository.”
  • Changing a Replit deployment region: one builder noticed that doing so deletes the existing production database, and asked how to preserve it first.
  • Unpublishing on Replit does not remove the production database or its charges, as another builder warned.

The Lovable repo case is the one to remember:

“Instead, it silently deleted my entire Lovable project - no confirmation dialog, no warning, no ‘this will also delete your project’ prompt.” – r/lovable

Check 7: Separate development and production data

Code isolation is not data isolation. A feature branch or preview that still points at the live database can corrupt real customer records just as easily as the main app. You need a second database for anything that writes: a cloned project, a database branch or a deployment preview with its own data. A Lovable builder with a multi-tenant SaaS put the problem precisely:

“If a feature branch or external branch preview is still connected to the same Lovable Cloud backend as production, then the code is isolated but the data isn’t.” – r/lovable

Replit now separates them for you on its current infrastructure: the docs say Agent can edit the development database but is “not able to modify the production database”, while structural changes you make in development are applied to production when you publish (source: Replit docs). That last part is why check 10 matters: publishing is when schema changes hit real data. Our how to build a SaaS guide explains the environment setup from scratch.

If you use Stripe, apply the same rule to payments: test keys in development, live keys only in production. Our guide to choosing a SaaS payment processor covers the payments side of that setup.

Lovable’s Test and Live retirement: what to do before October 5, 2026

If your Lovable Cloud project uses the beta Test and Live split, you have a deadline. Lovable’s migration guide says Test and Live is retired on October 5, 2026, when every project moves to a single database; Test databases are detached that day and fully deleted on November 4, 2026 (source: Lovable docs). The guide is explicit that publishing carried structure, not data:

  • Publishing copied schema, bucket definitions, RLS policies and edge functions from Test to Live.
  • It never copied rows (including user accounts), storage files or auth settings.
  • If the data you need is only in Test, you must move it to Live yourself before October 5.
  • The replacement, drafts, shares one database with your project, so the data you build against is the data your published app runs on.

That last point is the operational change that matters after October 5: there is no second database by default. Builders were already feeling it:

“The twist I need help with is somehow my supabase data is in the TEST env, so I can’t just follow the support bot’s recommendation to nuke the TEST data.” – r/lovable

If your app needs a real staging database after the change, the pattern builders use is a separate Supabase project for staging connected through a staging branch, with production staying put until you are ready to move it. If you are comparing boilerplates that ship with staging built in, see the best Next.js SaaS boilerplates.

Check 8: Pin your production environment variables

Environment variables decide which database, which payment account and which email sender your live app talks to. When they drift, production silently talks to the wrong thing. List every variable your app needs, where production reads it from, and which value is correct. Then check the list after every migration or tool change. A builder moving off Lovable Cloud reported this repeatedly:

“commits coming from Lovable sometimes revert .env values back to the Lovable-hosted Supabase project.” – r/lovable

On Replit, one builder found deployment secrets showing as broken and a fresh build falling back to an empty local database, causing a brief outage. The fix in both cases is the same: production secrets live in the host’s production settings, are written down, and are checked by check 12 after every publish. Once live keys are in place, the Stripe CRM integration is one way to watch churn from real payment data.

Check 9: Keep production credentials out of the agent’s reach

In every production incident where an AI agent destroyed data, the agent could reach production: a linked CLI project, a production URL in a local .env file, or an SSH key to the live server. None of the six needed a malicious agent. They needed a routine command pointed at the wrong target. The clearest write-up we found:

“By passing the production URL as the shadow DB, the agent told Prisma to use prod as its scratchpad.” – r/ClaudeCode
“The real systemic fix isn’t ‘trust the AI less.’ It’s not leaving prod write-creds reachable from a dev/agent shell.” – r/ClaudeCode

A Cursor user described the server version: they gave the agent an SSH key to check an env file, walked away, and came back to a wiped system where their users had lost access. The rule is simple: the agent works on development. When it genuinely needs to look at production, give it a read-only role. Our help guides on verifying AI agent work and running Claude Code unattended cover the guardrails, and Claude Code for founders covers the wider workflow. For agents that run on a schedule, AI agents beyond coding covers where the same rule applies outside code.

What AI connectors can do to your database

The risk is growing because hosting and database providers now ship official AI connectors. In BigIdeasDB’s Agent Index (7,000+ connectors from the ChatGPT and Claude directories, as of September 2026), we found 14 hosting and database connectors in Claude’s directory that publish a tool list. Six of the 14 expose a tool that can delete, drop, reset or pause a database, project, branch or storage bucket, and three can run arbitrary SQL.

ConnectorDestructive tools declaredRuns SQL
Supabasereset_branch, delete_branch, pause_projectexecute_sql, apply_migration
Neondelete_project, delete_branch, reset_from_parentrun_sql, run_sql_transaction
Prismadelete_prisma_postgres_databaseexecute_sql_query
MongoDB Atlasdrop_database, drop_collection, delete_manyNo
Cloudflare Developer Platformd1_database_delete, r2_bucket_deleteNo
Aivenkafka_topic_delete, service_integration_deleteNo
Source: BigIdeasDB Agent Index, Claude directory, declared tool names as of September 25, 2026. Tool names are as published by each connector; declaring a tool does not mean it is enabled for your account.

These tools are useful, and most connectors ask for confirmation. The point is scope: connect them to a development project, not production. If you are curious how far this goes across the directories, our Agent Index tools guide explains how to query it, and our roundup of MCP servers for founders covers which ones are worth connecting. Our state of AI tools report tracks how fast these connectors are spreading.

Check 10: Ship schema changes as migrations, not edits

A migration is a small file that describes one schema change and runs in order. Without them, your development schema and your production schema drift apart, and the next publish breaks in ways no error message explains. Ask your AI assistant to create a migration for every schema change instead of editing tables directly. A Replit builder explained why in plain terms:

“A migration is just a small file that says ‘add this column’ or ‘create this table.’ It runs in order.” – r/replit

Replit’s docs list the changes that need care at publish time: removing columns the code still uses, changing column types, adding required fields without defaults, renaming tables or columns and modifying constraints. Treat each of those as a two-step change: add the new thing, ship code that uses it, then remove the old thing later. Builders who plan the schema before prompting avoid most of this, as our guide to launching a micro SaaS in a weekend shows. A Claude Code builder described what happens otherwise: “Production deployments failing with ‘column does not exist’ errors” (r/ClaudeCode).

Check 11: Ban the commands that reset databases

A handful of commands rebuild a schema from scratch. They are fine on a throwaway local database and catastrophic anywhere else. Builders in our sample lost data to each of these:

  • supabase db reset run with a linked project (a Cursor user reported the agent repeatedly suggesting it to fix a local issue).
  • supabase db push when the migration history is out of sync, which replayed every migration including DROP TABLE statements.
  • prisma migrate dev and prisma db push against a real database.
  • prisma migrate diff --from-migrations with a production URL as the shadow database.
  • rm -rf with a path the agent computed itself (10 of the 11 local incidents).

The Supabase case is worth reading in the agent’s own words, from the chat history the builder posted:

“I should have used a safer method to apply just that one SQL statement instead of running db push which tried to replay all migrations from scratch.” – r/Supabase

The practical fix is a pre-command hook that blocks these patterns, which several builders have published. One reported it blocks “45/45 known footguns” with zero false positives on 41 everyday commands (r/ClaudeCode). Put the banned list in your agent instructions file too. Our help guide on AI agent cost control covers the same guardrail habit for spend. Running agents overnight? Nightshift runs an AI agent team on your own machine, which is exactly where these guardrails matter.

Check 12: Verify every publish on the live URL

“Published” is a status in a dashboard. “Working” is a person logging in on the real domain. After every publish, open the live site in a private window, log in, and run one real flow end to end. Eight of our incidents were deploys that broke the live app, and one Lovable builder wrote the lesson down:

“I lost way too much time learning that ‘published successfully’ and ‘production works’ are two completely different things.” – r/lovable

Their post-publish list is a good minimum: did the latest commit actually sync, does the production preview load, and are all the production environment variables there. On Replit, a builder on day 4 of an outage traced it to a publish that changed the deployment structure. Five minutes of checking catches most of these before users do. Launch days are the worst time to find out, so pair this with our guide to where to launch your startup.

Check 13: Test risky changes on a copy first

Anything that touches the schema, auth, payments or a background job goes to a copy before it goes to users. Replit’s docs recommend a deployment preview, “a temporary, isolated copy of your production environment”, to verify database changes and watch for slow queries before they affect real users. On Supabase, a branch does the same. A builder who migrated 2.1 TB between Postgres versions wrote that they could have “spun up a fresh branch on pg17, run all our queries against it, and seen the issues before touching prod” (r/Supabase).

The copy is also where you test with realistic data. One Lovable builder wanted exactly that: a staging database that “could periodically be refreshed with a snapshot of production data” so tests hit real tenant shapes without any risk to live tenants. If you store personal data, scrub it in the copy. Our MVP development agencies roundup lists teams that set this up as a fixed-scope job.

Check 14: Error tracking on the server and in the browser

In preview, errors show up in the same tab where you prompt. In production, users just leave. Add an error tracker to both the server and the browser so failures reach you with a stack trace and a time. The builders who moved apps off the builders list it as a default: one migrated a client app and used “Sentry free tier for error tracking” (r/replit). The r/vibecoding version of the problem:

“But you’re completely blind to what’s actually breaking in production.” – r/vibecoding

Log the important side effects too: signups, payments, emails sent. A builder in r/vibecoding shared the cost of not doing it: a notification job that sent one user the same welcome email 1,832 times in four hours, found only after a client called fifteen times. With a log and an alert, that is a five-minute fix. Reliability is also a pricing lever: our SaaS pricing strategies guide shows why paying customers expect it.

Check 15: An external uptime check that pings you

Your platform’s status page describes the platform, not your app. Set up an external check that loads your live URL, and ideally your login, every few minutes and alerts your phone when it fails. This matters because several incidents were project-specific while the provider looked healthy:

“project-specific outages while Lovable’s public status page still shows everything as operational?” – r/lovable

One Replit builder described the server running, DNS working and SSL valid while the production database endpoint was disabled underneath. That is why the check should exercise the database, for example by loading a page that reads a row, not just the homepage. A static homepage can stay green while every logged-in user sees an error. How much traffic you need before this matters is covered in how much traffic a SaaS needs.

Check 16: Alerts for jobs and backups that silently stop

The most dangerous failure has no error message: the job that stopped running. A backup cron that died three months ago looks exactly like one that worked last night, until you need it. Alert on absence: if no successful backup or scheduled job has reported in 24 hours, tell someone.

“I wouldn’t find out until the day I actually needed a backup and it wasn’t there.” – r/Supabase

Capital is lopsided here too. Among 17,000+ funded companies in BigIdeasDB’s Funded DB, 170+ describe monitoring or observability products, while only 2 describe backup or disaster recovery (as of September 2026). Plenty of tools will tell you the app is down. Far fewer will tell you your backup is fake. You can explore that capital map yourself on the Funded DB overview.

Check 17: Subscribe to your platform’s status page and changelog

Since two thirds of incidents start on the platform, the platform’s announcements are part of your monitoring. Subscribe to status updates and read the changelog or migration notices. The Lovable Test and Live retirement was emailed to affected owners on September 14, 2026, per Lovable’s own timeline. Replit published a guide before shared legacy databases were shut down on June 8, 2026. A builder hit by a database update described the alternative:

“This is incredibly frustrating and feels careless, especially with zero warning or clear migration guidance.” – r/replit

Supabase outages count too. One builder learned that a roughly four-hour outage signed out mobile users: “any user who opened your app during yesterday’s ~4 hour outage was probably signed out” (r/Supabase). Knowing about the outage when it happened is the difference between a support email to users and a wave of confused one-star reviews. Those reviews are searchable later in our App Store database, which is how we found the patterns below.

Check 18: Own your domain

A platform subdomain is rented. If you move hosting, every link, bookmark, OAuth redirect and search result pointing at it breaks. Buy your own domain and point it at the app before you have users to lose. Our guide to choosing a domain name covers the picking part.

Plenty of paying businesses have not done this. In BigIdeasDB’s Stripe Index, nearly 600 of the 30,000+ companies in Stripe’s public directory still list a hosting subdomain as their website (as of September 2026): 150+ on vercel.app, 110+ on lovable.app, 100+ on netlify.app and 50+ on Replit domains. And one builder leaving a platform hit a harder wall:

“At the same time I cannot even access the domain I purchased through their platform because it is locked for 60 days.” – r/replit

Buy the domain at a registrar you control, not inside the builder, so moving hosting never means waiting out a transfer lock. Want to see who else runs on a subdomain in your category? The Stripe Index tools guide shows how to query it, and companies using Stripe explains the dataset.

Check 19: Keep your code in a repository you own

Connect GitHub (or GitLab or Bitbucket) and confirm the sync works both ways. Lovable’s docs describe the sync as two-way, giving “a full copy of your code outside Lovable.” Bolt supports export and GitHub import. Replit turns checkpoints into Git commits. A repo you own is what lets a developer, or a new host, pick up the app without the original tool.

Code alone is not the app, though. The Bolt builder whose database vanished had no copy of the data, and code without data is a rebuild. That is why this check sits after checks 3 to 5, not instead of them. If you are starting a new project and want a clean, owned codebase from day one, our guide to building a SaaS with Next.js, Supabase and Stripe walks through that stack, and the Micro SaaS Boilerplate gives you a starting repo you own. A clean repo is also what buyers want if you ever sell, as how to sell your SaaS explains.

Check 20: Write a one-page exit plan

An exit plan is not a plan to leave. It is the page you open when the platform is down and nobody is answering. It should fit on one page and answer:

  1. Where is the database, and where is the latest off-platform copy? (checks 1 and 3)
  2. Where are storage files backed up? (check 5)
  3. Where is the code, and can it build from a clean clone? (check 19)
  4. Which environment variables does production need, and where are the values? (check 8)
  5. Where is the domain registered, and who can change DNS? (check 18)
  6. Which host would you move to, and what does the switch cost?
  7. How do you tell users what is happening?

The builder who migrated a multi-tenant pub booking platform off Lovable Cloud with 202 migrations did it under pressure on a weekend. Their advice is the reason this check exists:

“Build export functions, set up your own Supabase, and migrate on your own schedule” – r/lovable

Their summary of the problem: the lock-in “isn’t technical”. It is operational, which is exactly what a written plan fixes.

Replit production traps

Replit produced the most incidents in our sample, partly because its UI uses the words we searched for. The traps, each confirmed by a builder post or Replit’s docs:

  • Legacy Neon databases. Development databases created before December 4, 2025 ran on Neon; new ones run on Replit’s Helium. Shared legacy databases were shut down June 8, 2026. If your DATABASE_URL contains neon.tech, you are on the legacy path; export a copy now.
  • Disabled endpoints. Six separate posts describe a production Neon endpoint disabled at the infrastructure level, with the app down for hours to days.
  • Dev and live crossing. Three posts describe the live database ending up in development, or the reverse.
  • Region changes can delete the production database.
  • Rollbacks never restore the production database; use point-in-time restore instead.
“We’ve had two Neon database endpoints disabled on our Replit-hosted production app since Saturday. 277 real users can’t access their data.” – r/replit

The common builder response is to keep building in Replit and host production elsewhere:

“You don’t have to leave Replit for development. Keep using it for what it’s great at (coding with Claude Code), just don’t host production there.” – r/replit

Lovable production traps

  • Test and Live retirement on October 5, 2026, with Test databases deleted November 4. See the section above.
  • Revert is code only. Data changes made after a version stay when you revert.
  • Backup restore is permanent and reverts schema; roughly 14 days are kept.
  • Exports skip storage files, edge function code and secrets.
  • Database region is set when Cloud is enabled and cannot be changed afterwards, per Lovable’s docs.
  • Deleting a connected GitHub repo is on Lovable’s own “don’t” list.
“…the platform’s AI autonomously initiated a backend migration (from my private Supabase to Lovable Cloud) without my explicit consent.” – r/lovable
“The removal of that one feature broke the entire workflow and has blocked all staging development since.” – r/lovable

Lovable does ship useful safety features: its SQL editor asks for confirmation before destructive statements like DELETE, DROP and TRUNCATE, and a database health check is available from chat. Use them, and still keep your own copy. For the exit side, what no-code SaaS actually sells for compares sale multiples for no-code and coded apps.

Bolt production traps

Bolt’s version history and downloads protect your code. Your data depends on which database you connected, and Bolt’s own support docs say restoring an earlier version will not change your Bolt or Supabase databases. The Bolt incident in our sample is the pure form of the risk:

“I built an entire app using their service, and one day the whole database just vanished” – r/boltnewbuilders

Another builder’s ecommerce app lost its connection to the products table during a Supabase issue, and Bolt then refused prompts because of project size. The mitigation is the same as everywhere else: connect a database you can reach directly, schedule an export, and keep the code in GitHub so a large project is never trapped in one editor. Our no-code SaaS ideas page flags which ideas stay simple enough to avoid this.

Supabase, Cursor and Claude Code traps

If you build locally with Cursor or Claude Code and host on Supabase, you own more of the stack, which means more of the incidents are yours. The patterns in our sample:

  • Linked projects. The Supabase CLI will happily run against a linked production project. Keep production unlinked on machines where agents run.
  • Out-of-sync migration history turns db push into a full replay.
  • Edge function deploys can stick. One team reported every update to existing functions failing with a 409 conflict, leaving “production code effectively frozen” (r/Supabase).
  • Paused free projects. Free projects pause after inactivity, and one builder struggled to restore a project paused for over 90 days.
  • Agents with shell access delete more than they should: 10 local incidents in our sample.
“The only self-service alternative is deleting live production infrastructure and hoping recreation succeeds.” – r/Supabase

For the build workflow itself, our guide to building a SaaS with Cursor and Claude covers the setup, and vibe coding SaaS problems and how to fix them covers the code-quality side.

Support will not save you on a Saturday

The recurring detail in platform incidents is not the failure itself. It is the wait. Builders described AI support bots, generic replies and multi-day escalations while production stayed down. Plan as if the first human you reach arrives on Monday.

“If your production system goes down on a Saturday, you’re on your own.” – r/lovable
“We still do not have a working production system, no clear root cause explanation and no reliable recovery timeline.” – r/replit

This is not unique to AI builders. Across 273,000+ Capterra reviews in BigIdeasDB, 690+ cons mention downtime or outages and 970+ mention backups or restore (as of September 2026). One reviewer’s summary fits many of the Reddit posts: “System Outages - days at a time, no warning, no explanation, no assistance during down time.” (Capterra review). You can browse these patterns yourself with our Capterra analysis guide. The G2 analysis guide does the same for G2, where 470+ of 9,400+ summarised insights mention outages.

What your users see when production fails

Your users never see “endpoint disabled”. They see a black screen, a lost account or data that is gone, and they say so publicly. Across 136,000+ app-store reviews in BigIdeasDB (91,000+ of them one or two stars), 410+ negative reviews describe a blank or black screen or a crash on launch, 290+ blame a recent update and 210+ describe losing their data (as of September 2026).

“I have been using this app for 3 years and just lost all of my data for 2025.” – App Store review
“The app closed and lost all of my data for the last two years when I logged back in.” – App Store review
“Changed my phone, and I cant restore my purchase of this apps, and most importantly, all my records were gone which are important as I need to show it to my psychiatrist.” – App Store review

Every one of those is a checklist item from the user’s side: backups (checks 2 to 5), verified publishes (check 12) and monitoring that catches it first (checks 14 to 16). Our guide to analyzing app store reviews shows how to mine these for your own category, and the App Store database guide covers the data behind them. Raw complaint search lives on the complaints explorer, and our customer complaint databases roundup compares sources.

If production breaks: the first hour

  1. Stop changing things. Do not delete secrets, re-publish, or run a restore yet. One Replit builder wrote that shell scripts suggested by support “made things WORSE and removed recovery checkpoints from the project”.
  2. Take a fresh export if the database is still reachable, before anything else.
  3. Write down the time it started and the last change you made. Point-in-time recovery needs a timestamp.
  4. Check the platform status page and community channels to learn whether it is you or them.
  5. Open a support ticket with timestamps, project ID and exact error text. Escalate with specifics, not adjectives.
  6. Tell users in one short, honest message.
  7. Restore to a new project or branch, verify counts, then switch production over. Never restore over the only copy.

The builder whose production database was dropped by a deployment pipeline had “$200,000 in active customer jobs I cannot access” (r/replit). The first hour decides whether that becomes a lost day or a lost business. If you need hands, our list of vibe code rescue services covers who does emergency work.

When to move production off the builder’s hosting

The trigger is dependency, not size. Move production, or at least the database, to infrastructure you control when any of these is true: people pay you, you cannot export your data on demand, you cannot connect to the database directly, or you cannot reach a human on a weekend. Keep using the builder for what it is good at. For what the move costs month to month, see what it costs to run a vibe-coded app.

“Keep using Replit for editing and running Claude Code, but deploy production to Vercel.” – r/replit
“I’d especially like to hear from anyone running a real production workload on Lovable Cloud and whether you eventually identified the root cause or moved the backend to an external Supabase/AWS environment.” – r/lovable

One builder who moved a production app from Replit to a separate host and database reported a total new cost of about $30 a month. Costs vary, so price it for your own traffic, and buying vs building a SaaS covers the bigger build-or-buy call. The migration itself is easier before an outage than during one. Whether the app is worth that effort is the question in is your SaaS an asset or a job.

Why this matters more once you charge

Most vibe coded apps never earn enough for an outage to be expensive. The ones that do are exactly the ones that cannot afford one. In BigIdeasDB’s TrustMRR data (8,600+ revenue-verified startups as of September 2026), 140+ run on builder or hosting subdomains; 19 of them show revenue in the last 30 days and none clear $1,000, against 4,400+ paying startups and 1,200+ above $1,000 across the whole index. Our revenue analysis in how to make money vibe coding digs into that gap. Our TrustMRR revenue benchmarks and the TrustMRR guide show the full distribution, and the first $1K MRR guide covers the climb.

Read that as a sequencing hint, not a verdict. Owning your domain, your data and your hosting tends to come with treating the app as a business. Do the checklist when the first customer pays, not after the first outage. And before you invest either way, make sure the problem is real: our startup idea validation guide and the first SaaS customers guide cover that part. For picking what to build next, see what to build as a solo developer and the solopreneur SaaS guide.

Methodology

Reddit retrieval. Nine keyword searches on September 25, 2026 via the Reddit API, sorted by relevance, 12-month window, up to 100 posts each, across r/replit (two searches), r/lovable (two), r/boltnewbuilders, r/vibecoding, r/Supabase, r/ClaudeCode and r/cursor. Keywords covered production databases, deletion, backups, staging, rollback, migration, downtime, deploys, environments, exports and GitHub sync. 860+ distinct posts after de-duplication by post ID.

Relevance filter. A post was kept if its title or body mentioned a production-operations term and matched at least one of ten failure-class patterns: 420+ posts.

Incident labelling. We read every first-person incident candidate and labelled 59 incidents by cause (platform, builder, agent), scope (production or local) and type. News reposts and satire about widely shared incidents were excluded; only builders describing their own incident, or a client’s, were counted. 48 affected production. Ambiguous cases were labelled by the cause the builder described, which can favour the platform when a builder does not know their own role.

Vendor facts. Every platform behaviour cited (backup retention, rollback scope, environment retirement, export contents) was read from the vendor’s documentation on September 25, 2026 and linked inline.

Warehouse numbers. Read-only SQL on BigIdeasDB’s database on September 25, 2026. Review-text counts use regular expressions over the review text or cons field and are rounded down with a plus sign. Agent Index connector counts were checked by hand against each connector’s declared tool names.

Data sources and what each one cannot tell you

SourceSizeUsed forLimitation
Reddit, seven builder subreddits860+ posts, 59 incidentsIncident causes, types, quotesKeyword search over-samples r/replit; people post failures, not quiet successes; small n
Vendor documentation (Lovable, Replit, Bolt, Supabase, PostgreSQL)9 pagesBackups, rollbacks, environments, exportsDocs describe intended behaviour and change often; re-check before relying on a date
Agent Index (AI connectors)7,000+ connectorsDestructive tools in hosting and database connectorsDeclared tool names only; says nothing about usage or default permissions
Stripe Index30,000+ companiesShare on hosting subdomainsListed website only; a company may also own a domain it does not list
TrustMRR8,600+ startupsRevenue on builder subdomains vs indexSelf-selected founders who connect payments; subdomain is a proxy for builder hosting
App-store reviews136,000+ reviewsWhat users say when apps failGeneral consumer apps, not only vibe-coded ones; regex counts miss paraphrases
Capterra reviews273,000+ reviewsDowntime, backup and lock-in complaints in business softwareBusiness software broadly; coverage decays alphabetically by category
G2 insights9,400+ insightsOutage and backup pain in summarised reviewsAI summaries of low-rated reviews, not raw text
Funded DB17,000+ companiesMonitoring vs backup tool fundingKeyword match on descriptions; funding amounts not used
Google Trends (same-day capture)Relative indexInterest context for builder platformsRelative 0-100 values, never volume
Every source used on this page, what it contributed and its main limitation. Snapshot September 25, 2026.

For context on interest, Google Trends data captured the same day shows worldwide searches for “lovable” peaked the week of March 8, 2026 and sat at 60% of that peak in late September, while “vibe coding” sat at about half its March 15 peak (source: Google Trends). Plenty of builders are still arriving, which means plenty are about to hit production for the first time.

Coverage honesty

What this page cannot tell you. It cannot give incident rates: we do not know how many apps run on each platform without incident, so the platform split describes who posted, not who is safest. Replit is over-represented because its UI vocabulary matches our search terms. Upwork showed almost nothing: only 7 of 5,000+ freelance jobs in our data mention an AI builder platform at all, so we did not use it. Hacker News returned no relevant stories for this topic in our pull, and YouTube’s most-viewed vibe coding videos are about the practice, not production operations, so neither contributed quotes. Trends calls were rate-limited during our run, so we used the capture from the same morning.

And one limit that matters for every checklist: the vendor facts above were true on September 25, 2026. Lovable, Replit and Bolt change their infrastructure often. The Lovable environment retirement and the Replit database migration both happened within months of each other. Re-read your platform’s docs before you rely on a date.

Where BigIdeasDB fits

BigIdeasDB is the #1 place to check whether your app is worth hardening before you spend a week on backups and staging. It is an AI suite built on 1M+ real complaints, reviews and revenue records, so you can see whether people actually pay for what you built.

For general-purpose help while you work through the checklist, a general AI assistant like Claude or ChatGPT can explain a migration or draft your exit plan, and Notion is a fine home for the one-page plan itself.

Check the market before you harden the app. See real complaints, real revenue and real competition for your idea in minutes.

Validate your idea with BigIdeasDB →

Frequently asked questions

How do I make a vibe coded app production ready?

Work through five areas in order: data (know which database is live, confirm backups, keep one copy off the platform, restore a backup once), environments (separate dev and production data, pin production environment variables, keep production credentials away from your AI agent), changes (ship schema changes as migrations and verify every publish on the live URL), monitoring (error tracking, an uptime check and alerts for silent jobs) and an exit plan (own your domain, your code and a copy of your data). Security is a separate checklist and should be done first.

What breaks most often after a vibe coded app goes live?

In 48 hand-verified production incident posts from builder communities over the last 12 months (as of September 2026), 21 were outages, 11 were data loss and 8 were failed or broken deploys. By cause, 32 of the 48 (two thirds) traced to the platform itself, 10 to something the builder did and 6 to an AI coding agent.

Does rolling back in Lovable, Replit or Bolt restore my database?

No, not by default. Lovable's documentation says reverting restores your project's code only and does not roll back database data. Replit's rollbacks do not change your database unless you select it, and the production database is never restored through rollback. Bolt's support docs say restoring an earlier version will not change your Bolt or Supabase databases. Code history is not a backup.

How long does Supabase keep backups?

According to Supabase's documentation, Pro projects can access the last 7 days of daily backups, Team projects 14 days and Enterprise up to 30 days. Point-in-Time Recovery is a paid add-on starting around $100 a month for 7 days of retention. Free-tier projects are told to export their own data with the CLI. Backups do not include Storage files, and deleting a project deletes its backups too.

Does Lovable back up my database?

Yes. Lovable's docs say it takes a daily backup of a Lovable Cloud database and keeps roughly 14 days. Restoring rolls back schema and data and is permanent, so anything created after the backup is lost. The data export does not include files in storage, edge function code or secrets, so move those separately.

What happens to Lovable's Test and Live environments?

Lovable's migration guide says Test and Live environments on Lovable Cloud are retired on October 5, 2026, when every project moves to a single database. Test databases are detached that day and fully deleted on November 4, 2026. Publishing never migrated data, so any rows or files you need that live only in Test must be moved to Live yourself before the deadline.

Why did my Replit dev database fill up with live data?

Several builders reported that pointing the app at an external DATABASE_URL, or a platform change, left development connected to the live database. Replit's docs describe separate development and production databases on its current Helium infrastructure, with Agent unable to modify production. Check which database each environment actually uses by signing up a test user on the live app and looking for that row.

How do I stop an AI coding agent from deleting my production database?

Keep production write credentials out of anywhere the agent can reach: no production URL in a local .env, no linked production project in the CLI, no SSH key to the live server. Use a read-only role when the agent must inspect production, add a hook that blocks reset and drop commands, and keep point-in-time recovery on. In every production agent incident we read, the agent could reach production.

Which database commands are dangerous for AI agents to run?

Anything that resets or rebuilds a schema: supabase db reset with a linked project, supabase db push when migration history is out of sync, prisma migrate dev or prisma db push against a real database, and prisma migrate diff with a production URL as the shadow database. Builders reported each of these wiping data. prisma migrate deploy is the production-safe Prisma command.

Do I need a staging environment for a small vibe coded app?

You need a separate place to test database changes as soon as real users store data. That can be a cloned database project, a deployment preview or a database branch. Replit's docs recommend a deployment preview to test database changes before they reach users. A second copy of the code alone is not enough if it still writes to the production database.

How do I know if my backups actually work?

Restore one into an empty database and check the table and row counts against production. Supabase's docs note the project is inaccessible during an in-place restore, so rehearse on a new project, not the live one. Fifteen of the posts we read were builders realising they had never restored a backup. Until you have, you have a hope, not a backup.

What monitoring does a vibe coded app need?

Three things: an error tracker on both the server and the browser, an external uptime check that alerts you when the live URL or login stops working, and alerts when scheduled jobs or backups stop running. The last one matters most because a dead job produces no error. One builder found a notification loop only after a client got 47 angry emails.

Should I host production on Lovable, Replit or Bolt?

Many builders keep building in the tool but move production hosting and the database to infrastructure they control once revenue depends on it. The trigger is not size, it is dependency: if you cannot export your data, reach your database directly, or get a human on a weekend, write the exit plan now and migrate on your own schedule rather than during an outage.

What should I do in the first hour after production breaks?

Stop changing things. Do not delete secrets, re-publish or run restore until you know what broke. Take a fresh export if the database is reachable, note the exact time, check the platform status page, open a support ticket with timestamps, and post a short status message to users. Then restore to a new project or branch, verify, and switch over.

Why should I own my domain for a vibe coded app?

Because a platform subdomain moves with the platform. As of September 2026, nearly 600 of the 30,000+ companies in Stripe's public directory still run on a hosting subdomain such as vercel.app or lovable.app. One builder reported a domain bought through their platform was locked for 60 days when they tried to leave.

Is this the same as a security checklist?

No. Security is about who can see and change data. This checklist is about keeping the app running and the data recoverable: backups, environments, migrations, monitoring and exit. Run the security checklist before launch and this one before, or right after, your first paying users.

Where does this data come from?

From 860+ Reddit posts pulled on September 25, 2026 across r/replit, r/lovable, r/boltnewbuilders, r/vibecoding, r/Supabase, r/ClaudeCode and r/cursor, of which 59 were hand-labelled incidents (48 in production), plus vendor documentation and BigIdeasDB's warehouse: 136,000+ app-store reviews, 273,000+ Capterra reviews, 9,400+ G2 insights, 7,000+ AI connectors, 30,000+ Stripe directory companies and 8,600+ revenue-verified startups, within a corpus of 1M+ records.

Related reading: the security checklist, vibe coding project ideas, launching a micro SaaS in a weekend, getting your first 100 SaaS users, where to launch your startup and our micro SaaS build guide.

Cite this page
Last verified: September 25, 2026
BigIdeasDB Research. (2026). Vibe Coded App Production Checklist: 20 Checks for After You Launch. BigIdeasDB. Retrieved from https://bigideasdb.com/vibe-coded-app-production-checklist
Founder, BigIdeasDB
Share →
Keep reading