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.
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.
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.
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.
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.
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.
| Cause | Production incidents | Share | Typical example |
|---|---|---|---|
| Platform | 32 | 67% | Database endpoint disabled, infra migration, publish broke auth, feature removed |
| Builder | 10 | 21% | Deleted the wrong project or repo, unverified publish, migration never applied |
| AI agent | 6 | 13% | Agent ran a reset, replayed migrations or wiped a server it could reach |
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.
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 type | Incidents | Which checks prevent or shorten it |
|---|---|---|
| Outage (app or database down) | 21 | 3, 15, 17, 20 |
| Data lost or overwritten | 11 | 2, 3, 4, 6, 9, 11 |
| Deploy or publish broke the live app | 8 | 8, 12, 13 |
| Environment mix-up (dev vs live) | 7 | 1, 7, 8 |
| Restore failed or stuck | 4 | 3, 4 |
| Lock-in or forced migration | 3 | 18, 19, 20 |
| Migration broke production | 2 | 10, 11 |
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).
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:
| Platform | What version restore does | What it does not do | Database backup |
|---|---|---|---|
| Lovable | Restores code and redeploys edge functions | “It does not restore or roll back your database data” | Daily, roughly 14 days kept; restore is permanent |
| Replit | Restores files, config and Agent context | Development database only if you tick it; production never | Point-in-time restore for production, separate flow |
| Bolt | Restores an earlier project version | “Will not change your current Bolt or Supabase databases” | Depends on the database you connected |
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
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.
| # | Check | Group | Who | Time |
|---|---|---|---|---|
| 1 | Know which database your live app writes to | Data | You | 10 min |
| 2 | Confirm backups and retention days | Data | You | 10 min |
| 3 | Keep one copy off the platform | Data | You or dev | 1 hour |
| 4 | Restore once into an empty database | Data | You or dev | 1 hour |
| 5 | Back up storage files, not just rows | Data | Dev | 1 hour |
| 6 | Map the buttons that delete everything | Data | You | 20 min |
| 7 | Separate development and production data | Environments | Dev | Half a day |
| 8 | Pin production environment variables | Environments | You | 30 min |
| 9 | Keep production credentials away from the agent | Environments | You | 30 min |
| 10 | Ship schema changes as migrations | Changes | Dev | Ongoing |
| 11 | Ban the commands that reset databases | Changes | Dev | 30 min |
| 12 | Verify every publish on the live URL | Changes | You | 5 min each |
| 13 | Test risky changes on a copy first | Changes | You or dev | Per change |
| 14 | Error tracking on server and browser | Monitoring | Dev | 1 hour |
| 15 | An external uptime check that pings you | Monitoring | You | 15 min |
| 16 | Alerts for jobs and backups that stop | Monitoring | Dev | 1 hour |
| 17 | Subscribe to your platform’s status and changelog | Monitoring | You | 5 min |
| 18 | Own your domain | Exit | You | 30 min |
| 19 | Keep code in a repo you own | Exit | You | 20 min |
| 20 | Write a one-page exit plan | Exit | You | 1 hour |
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.
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.
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 lives | Automatic backups | Retention | Watch out for |
|---|---|---|---|
| Supabase Free | None; export yourself | n/a | Supabase tells free projects to run db dump and keep off-site copies |
| Supabase Pro | Daily | 7 days | Storage files not included |
| Supabase Team / Enterprise | Daily | 14 / up to 30 days | Deleting the project deletes backups |
| Supabase PITR add-on | Continuous | 7 days from ~$100/mo | Needs at least Small compute |
| Lovable Cloud | Daily | Roughly 14 days | Restore also reverts schema, and is permanent |
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
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.
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.
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.
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:
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
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.
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:
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.
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.
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.
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.
| Connector | Destructive tools declared | Runs SQL |
|---|---|---|
| Supabase | reset_branch, delete_branch, pause_project | execute_sql, apply_migration |
| Neon | delete_project, delete_branch, reset_from_parent | run_sql, run_sql_transaction |
| Prisma | delete_prisma_postgres_database | execute_sql_query |
| MongoDB Atlas | drop_database, drop_collection, delete_many | No |
| Cloudflare Developer Platform | d1_database_delete, r2_bucket_delete | No |
| Aiven | kafka_topic_delete, service_integration_delete | No |
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.
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).
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.
“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.
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.
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.
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.
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.
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.
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.
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.
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:
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 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:
“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
“…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’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.
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:
db push into a full replay.“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.
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.
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.
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.
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.
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.
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.
| Source | Size | Used for | Limitation |
|---|---|---|---|
| Reddit, seven builder subreddits | 860+ posts, 59 incidents | Incident causes, types, quotes | Keyword search over-samples r/replit; people post failures, not quiet successes; small n |
| Vendor documentation (Lovable, Replit, Bolt, Supabase, PostgreSQL) | 9 pages | Backups, rollbacks, environments, exports | Docs describe intended behaviour and change often; re-check before relying on a date |
| Agent Index (AI connectors) | 7,000+ connectors | Destructive tools in hosting and database connectors | Declared tool names only; says nothing about usage or default permissions |
| Stripe Index | 30,000+ companies | Share on hosting subdomains | Listed website only; a company may also own a domain it does not list |
| TrustMRR | 8,600+ startups | Revenue on builder subdomains vs index | Self-selected founders who connect payments; subdomain is a proxy for builder hosting |
| App-store reviews | 136,000+ reviews | What users say when apps fail | General consumer apps, not only vibe-coded ones; regex counts miss paraphrases |
| Capterra reviews | 273,000+ reviews | Downtime, backup and lock-in complaints in business software | Business software broadly; coverage decays alphabetically by category |
| G2 insights | 9,400+ insights | Outage and backup pain in summarised reviews | AI summaries of low-rated reviews, not raw text |
| Funded DB | 17,000+ companies | Monitoring vs backup tool funding | Keyword match on descriptions; funding amounts not used |
| Google Trends (same-day capture) | Relative index | Interest context for builder platforms | Relative 0-100 values, never volume |
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.
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.
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 →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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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