Stages / Stage guide

What should I check before launching my AI-built app?

Matt Turley, Continuum. Updated November 5, 2026.

For founders a week or two from opening an app to real users, built mostly with tools like Lovable, Bolt, Cursor, Replit or v0.

The short answer

What should I check before launching my AI-built app?

Check what a stranger can reach, not what you can. Before launch: test sign-up as a new user, confirm no user can read another's data, make sure no secret is in the browser code, run a real payment end to end, check that emails arrive, set up backups and monitoring, and know how to roll back.

What is really going on

AI builders produce an app that looks finished long before it is safe to launch. They are strong at screens and flows, and weak at the things nobody sees until they fail: who can read which rows, what happens when a payment webhook is missed, whether the email actually arrives.

A pre-launch check is therefore not a polish pass. It is a deliberate attempt to break the app as a stranger would, on the real domain, with real configuration. The aim is to find the five things that would hurt most, not every flaw.

The checks below are in the order of harm. A leaked key or open table can end the business; a slow page cannot.

What to check, in order of harm

  1. Data isolation: can one user read another's data?

    How to tell Sign in as user A, then request user B's records by changing an id in the URL or API call. Check row level security or the server-side checks that stand in for it.

    The fix Enforce ownership on the server or in database policies for every table and file bucket, not in the interface. Our page on Supabase RLS goes through the checks.

  2. Secrets: is anything sensitive in the browser code?

    How to tell Search the built JavaScript and the page source for API keys, service role keys and tokens. Anything prefixed to be public ships to every visitor.

    The fix Move secrets to server-only code, rotate any that were exposed and keep them out of the repository history.

  3. The payment path, in live mode, end to end

    How to tell Test mode working is not live mode working. Webhook endpoints, signing secrets and products are separate in each mode.

    The fix Make one real small purchase, confirm access is granted by the webhook, refund it and confirm the refund is handled. Our page on Stripe webhooks lists the usual faults.

  4. Authentication for strangers

    How to tell Sign up with an email and a social account you have never used on the app, confirm the email arrives, reset a password and sign out and in again on another device.

    The fix Fix redirect URLs, the email sender and the callback route, and add rate limiting on login and reset.

  5. Abuse and cost controls

    How to tell An endpoint that costs you money (AI, email, SMS, storage) with no login or limit is a bill waiting to happen.

    The fix Require login for costly calls, rate limit per user and per address, and set spend caps and alerts at each provider.

  6. Recovery: backups, monitoring and a way back

    How to tell You cannot say when the last backup ran, you have never restored one, and you would learn of an outage from a customer.

    The fix Enable database backups and test a restore, add error tracking and an uptime check, and learn how to roll back a deployment before you need to.

How we diagnose it

  1. Break it as a stranger. In a private window, with no accounts of yours, sign up and use the product. Then try to reach things you should not: other users' data, admin pages, files by guessed URL.
  2. Look at what the browser receives. View source and the network tab on the live domain and search for keys, internal URLs and data that should not be there.
  3. Run the money path in live mode. One genuine purchase, with the webhook, the receipt, the access change and the refund each watched in their own logs.
  4. Read the code for what you cannot see. We read authorization checks, webhook handlers, background jobs and the configuration, ranked by the damage a failure would do, since these are what a stranger test misses.
  5. Write the rollback plan. Who can roll back, how and how long it takes; where the status message will go; which feature you can switch off first.

What fixing it changes

  • No user can read or change another user's data, tested rather than assumed.
  • No secret is in client code, and exposed ones are rotated.
  • The live payment path works end to end and failed events are recoverable.
  • Sign-up, reset and email work for a stranger on the live domain.
  • Costs are capped, the app is monitored and there is a tested way back.

When you do not need us

A simple app with no payments and no personal data can be checked by its founder in a day using this list. A written independent read is worth it when users will entrust you with data or money and nobody who knows security has seen the code.

Your next step

The free Leak Check tests the live URL from outside in under a minute: reachability, SSL, auth flow, payment path, exposed secrets and Supabase exposure. A Ship Check goes into the code behind it and returns a written verdict in 48 hours.

free Leak Check: Paste your live URL. It runs seven surface checks (reachability, SSL, auth flow, payment path, exposed secrets in the client bundle, Supabase exposure, broken links and performance) and returns a green, yellow or red for each. It is a surface scan, not a full security audit. Or: Get a Ship Check, $299.

Run the free Leak Check →See all services and prices →
FAQ

Straight answers

How long before launch should I do this?
A week is comfortable. The checks themselves take a day or two; the time is for fixing what you find and re-testing. Doing them the night before leaves no room to act on the results.
Is a pre-launch check the same as a penetration test?
No. A penetration test is a longer, formal engagement. A pre-launch check is a focused attempt to find the issues most likely to hurt a new AI-built product. If you need a formal test for a customer or compliance reason, you will still need one.
What if I find too much to fix before launch?
Rank by harm. Anything that exposes other people's data or loses money blocks the launch. Everything else can ship with a written date to fix it. A narrow, safe launch to a few users is better than a wide, unsafe one.
Keep reading
Is my AI-built app ready for an investor demo?By stage. The week before an investor demo: what fails live, how to rehearse on the production URL, and what to fix first. A checklist for AI-built apps.My app broke right after launch. What do I do first?By stage. The first hours after a launch goes wrong: stop the damage, find the failure, protect users and data, then make it stable. What usually breaks, in order.How do I know if Supabase RLS is off, and what do I do?By symptom. Row level security off means anyone with your public key can read or change that table. How to check in a minute, the six ways RLS fails, and the fix.Why is my Stripe webhook not firing?By symptom. Stripe is usually sending the event and your server is refusing it. How to read the delivery log, the six usual causes, and the fix for each.Why are my signup and confirmation emails not arriving?By symptom. Confirmation, magic link and receipt emails that never arrive: test-sender limits, unauthenticated domains, spam filters, link scanners, and how to check each.Why does my app work locally but break in production?By symptom. Production differs from your laptop in environment variables, database, file system, Node version and network rules. The usual causes and how to check each.
Sources
  1. 1. OWASP: Top 10, OWASP: Broken access control and the other common web risks behind this checklist.
  2. 2. Stripe: Go-live checklist, Stripe: Stripe's own list for moving a payment integration from test mode to live mode.
  3. 3. Supabase: Production checklist, Supabase: Security, performance and backup items to review before going live on Supabase.
What should I check before launching my AI-built app?