How Do I Know if My App Is Actually Ready to Launch?
7 min read
Your app is ready to launch when eight specific things are true, and not before. Readiness is not a feeling, it is a checklist. If all eight hold, the nerves you are feeling are just nerves. If any of them fail, that is not fear, that is a real gap, and it will find your first users before you do. Here is the honest bar and how to check each item in a few minutes.
Why you can't tell
A vibe-coded app looks finished long before it is safe. The agent built exactly what you asked for, and it works in the demo, so your eyes tell you "done." But the things that break in front of real users are the things nobody asked the agent to build: the locked database, the error page, the password reset that actually sends an email. They are invisible in a happy-path click-through, which is the only test most founders run. That gap between "looks done" and "is done" is where the anxiety comes from. You can feel that something is missing without being able to name it.
How to check: the eight
Walk each one. Answer yes or no honestly. A "no" is a real gap, not cold feet.
- Data is locked to its owner. A stranger cannot read or write another user's records straight from the browser. On Supabase this means Row Level Security is on for every table; on Firebase, Security Rules that deny by default.
- No secrets are in the browser. Search your built site for
service_role,sk_live, andSECRET. Any hit is a leaked key that must be rotated and moved server-side. - Login and password reset both work end to end. Sign up with a real email, log out, reset the password, log back in. Every step must complete, including the email actually arriving.
- Payments charge a real card and grant real access. If you take money, run one live transaction and confirm the user gets what they paid for, and that a failed card is handled gracefully.
- Errors don't dump a stack trace. Force a failure (submit a broken form, hit a bad URL). The user should see a plain message, not a wall of code or a blank white screen.
- The app survives bad input. Empty fields, huge pastes, emoji, a double click on Submit. None of these should corrupt data or crash the page.
- You can see when it breaks. You have some way to be told the app is down or throwing errors, rather than hearing it from an angry user.
- You can undo a bad deploy. You know how to roll back to the last working version without a two-hour panic.
The fix
If any item failed, fix it before you launch, in this order:
- Close data and secret leaks first (items 1 and 2). These are the ones a stranger can exploit without even using your app, so they cannot wait. Start with locking your database.
- Fix the flows real users depend on (3 and 4). An account they can't recover or a payment that silently fails costs you the user and the money.
- Add a safety net (5, 6, 7, 8). Catch errors with a friendly fallback, sanitise input, wire up a basic uptime alert, and rehearse a rollback once so it is muscle memory.
- Re-run all eight. Readiness is the whole list passing, not most of it.
The trap to avoid
Do not launch on the strength of a clean click-through. Clicking through your own app proves the happy path works for the one person who knows exactly how it is meant to be used. It proves nothing about the stranger who mistypes their email, pays with a declining card, or opens the database endpoint directly. The demo passing is the start of the check, not the end of it. The opposite trap is real too: do not stall forever polishing features while items 1 through 8 stay unmet. More features do not make an app ready. The list does.
Where this fits
These eight are the difference between "it looks done" and "a stranger can safely touch it," and you should not have to hold them in your head. The free Readiness Report runs the checks against your actual project and tells you which of the eight pass and which are open, so you can see whether it is nerves or a gap. When you want the gaps closed for you in the right order, that is the Finishing Pass. For the day itself, work through the launch-day checklist, and if you are shipping straight to production, read do I need a staging environment first.