Built for founders who need a crawlable, skimmable pre-launch page instead of a buried internal runbook.
Vibe-coded app launch checklist.
Before you open the doors, run the checks that catch the expensive failures: broken auth, loose Supabase RLS, exposed env vars, missing backups, payment drift, unsafe agent access, and silent production errors.
The mistakes that make a fast launch fragile.
AI-generated code can move quickly through happy paths. This checklist focuses on the unhappy paths that usually appear only after real users, crawlers, payment providers, and support emails arrive.
Prioritizes auth, RLS, secrets, payments, and agent boundaries before cosmetic polish.
Every section ends in a concrete verification step a solo builder can run before opening traffic.
Run top to bottom before public traffic.
Each gate gives you a pass/fail signal. Do not rely on "it works on my account" for auth, payments, permissions, or restore paths.
Auth and account recovery
Stop anonymous growth from turning into unrecoverable accounts, support tickets, or privilege leaks.
- Verify every sign-in path you ship.
Test email/password, OAuth, magic links, invite links, password reset, sign-out, and expired sessions in a fresh browser.
- Confirm privileged routes check server-side identity.
Client guards are UX only. API handlers, server actions, storage policies, and webhooks need their own authorization checks.
- Write the account recovery path before launch.
Document how you will restore access, revoke a compromised session, and help a paying user who lost an OAuth provider.
Supabase and RLS policy audit
Vibe-coded apps often work in dev because service keys or permissive policies are hiding missing access rules.
- Enable RLS on every user-owned table.
Public tables are fine when intentional. Anything with user, workspace, billing, token, or private content columns needs explicit policies.
- Test reads and writes as two separate users.
Use real anonymous and authenticated clients. Confirm user A cannot select, update, delete, upload, or list user B data.
- Keep service-role usage server-only.
Search the shipped bundle and environment config for service-role keys, direct database URLs, and admin-only RPC calls.
Secrets and env vars
A launch checklist should catch the boring mistake that burns the whole release: the wrong key in the wrong place.
- Classify each variable as public, server-only, or local-only.
Frontend-prefixed variables are public. Payment secrets, service keys, webhook secrets, and database URLs must never reach the browser.
- Rotate anything that touched a prompt, screenshot, repo, or client bundle.
Assume secrets pasted into chats, issue trackers, build logs, and generated code were copied somewhere durable.
- Create a production env manifest.
Store names, owners, required/optional status, and rotation notes without storing the secret values themselves.
Database backups and restore drill
Backups are not real until one restore has succeeded and someone knows how long it took.
- Turn on automated backups before traffic arrives.
Match retention to the damage window you can tolerate. Export critical tables if your plan does not cover point-in-time recovery.
- Run a restore into a separate project or database.
Measure restore time, check row counts, verify auth relationships, and make sure storage objects still line up with records.
- Protect destructive admin actions.
Require confirmation for deletes, archive before hard-delete, and keep a rollback SQL note for risky migrations.
Payments, webhooks, and entitlements
Billing bugs are launch blockers because they either leak paid features or block users who already paid.
- Test payment success, failure, cancellation, and refund states.
Use provider test cards and subscriptions. Confirm UI, database state, receipts, and entitlement gates all agree.
- Verify webhook signatures and idempotency.
Reject unsigned events, process duplicate events safely, and persist provider event IDs before mutating user access.
- Define the grace-period behavior.
Know what happens on failed renewal, chargeback, paused subscription, plan downgrade, and trial expiration.
Deployment and rollback
A launch is not just deploy. It is deploy, verify, roll back fast, and avoid breaking SEO paths after the first crawl.
- Pin build commands, runtime versions, and install behavior.
Do not let production discover a different Node, Bun, package manager, migration command, or environment mode than staging.
- Create a rollback path that does not require improvising.
Know how to redeploy the previous build, revert a migration, disable a feature flag, and freeze writes if data shape changed.
- Check the traffic surface.
Confirm canonical URLs, robots rules, sitemap inclusion, Open Graph image, 404 behavior, redirects, and page speed on mobile.
Agent access and repo safety
If agents helped ship the app, lock down what they can read, write, execute, and exfiltrate before production credentials exist.
- Separate local, staging, and production agent credentials.
Agents should not hold production service keys by default. Use scoped tokens and time-limited access for operational tasks.
- Constrain file and command access for coding agents.
Document repo ownership, destructive-command rules, test commands, secret-handling rules, and which paths require human review.
- Review generated code for hidden network and auth assumptions.
Search for broad CORS, permissive middleware, debug endpoints, insecure fetch targets, and TODOs around authorization.
Observability and incident signals
You need enough signal to answer one question quickly: is launch traffic healthy or silently failing?
- Track errors, latency, and conversion events from day one.
At minimum, watch API error rate, auth failures, checkout failures, webhook failures, database errors, and signup-to-activation drop-off.
- Create alerts for the few failures that matter.
Page every time payment webhooks fail, login breaks, database writes spike, cron jobs stop, or API error rate crosses your threshold.
- Keep a public support path easy to find.
A clear contact link turns silent churn into actionable bug reports when real users hit edge cases you did not test.
Ask your coding agent for evidence, not confidence.
A useful pre-launch agent task is specific: inspect one gate, list exact files and policies, patch the gap, then report the command or manual check that proves it. Broad "is my app secure?" prompts miss the edges this checklist is built to expose.