Skip to main content
Back to Blog
Launch6 min read

The Complete Vibe Coding Production Checklist: From Prototype to Live Product

A five-phase checklist for taking any vibe-coded app from prototype to production. Covers security, reliability, code quality, deployment, and launch readiness — with links to tool-specific guides.

Share:

You've built your app with an AI coding tool. It works. It looks good. Now you want real users on it. The problem is that every AI tool — Lovable, Bolt, Cursor, Replit, v0 — optimises for getting you to a working prototype. None of them optimise for production.

This checklist covers the five phases between "it works" and "it's ready for real users." Work through them in order.

Phase 1: Security

Security gaps are the highest-risk issues in vibe-coded apps. Fix these first.

  • [ ] No secrets in client-side code — API keys, database URLs, and tokens must be server-side only. The only acceptable client-side keys are public keys explicitly designed for browser use (like Supabase's anon key).
  • [ ] Input validation on every endpoint — Every form, every API route, every server action that accepts user input must validate it. Client-side validation is for UX. Server-side validation is for security.
  • [ ] Authentication on protected routes — Verify that every page and API route that should be behind auth actually requires a valid session. AI tools frequently miss routes.
  • [ ] Row Level Security enabled (if using Supabase) — Ensure every table has RLS policies that restrict access by auth.uid(). This is the most common security mistake in Lovable apps and affects other tools too.
  • [ ] HTTPS enforced — No HTTP access. All traffic encrypted.
  • [ ] Security headers configured — Content-Security-Policy, Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options at minimum.
  • [ ] Rate limiting on public endpoints — Authentication routes, form submissions, and any public API must have rate limits to prevent abuse.

For a deeper security review, use our 15-point security checklist.

Phase 2: Reliability

A working prototype handles one user on a good day. Production handles many users on bad days.

  • [ ] Error boundaries installed — A single component failure shouldn't crash the entire app. Wrap major UI sections in error boundaries.
  • [ ] Error monitoring configured — Install Sentry or equivalent. Get alerted when errors happen in production, not when users complain.
  • [ ] Loading and empty states — Every data fetch needs a loading state. Every list needs an empty state. AI tools almost always skip these.
  • [ ] Session expiry handled — What happens when a user's auth token expires mid-session? If the answer is "the app breaks," fix it.
  • [ ] Database queries optimised — Add indexes on frequently queried columns. Add pagination to list endpoints. Use connection pooling.
  • [ ] No SQLite in production — If your Replit or Bolt app uses SQLite, migrate to PostgreSQL before launch. SQLite can't handle concurrent writes.
  • [ ] Graceful degradation — If a third-party service goes down (analytics, email, payment provider), the core app should keep working.

To understand why AI-generated apps crash, read why your AI-generated app keeps crashing.

Phase 3: Code Quality

You don't need perfect code, but you do need code you can safely modify without breaking things.

  • [ ] TypeScript strict mode enabled — Turn on strict: true in tsconfig.json. Fix the resulting errors. Each one is a potential runtime bug.
  • [ ] No any types on boundaries — Remove any from API responses, form inputs, and database queries. These are where type safety matters most.
  • [ ] Tests on critical paths — Authentication, payments, and data mutations need test coverage. You don't need 100% coverage. You need confidence that the important things work.
  • [ ] Dead code removed — AI tools generate code they later don't use. Remove unused components, functions, and imports.
  • [ ] Consistent patterns — Pick one way to do data fetching, error handling, and validation. Apply it everywhere. AI tools often use different patterns in different parts of the same app.
  • [ ] Dependencies audited — Run npm audit. Update any packages with known vulnerabilities. Remove packages you're not actually using.

For a look at specific issues in Cursor-generated code, read what a senior dev finds in Cursor code.

Phase 4: Deployment

Don't deploy by copying files or running commands manually. Set up a proper pipeline.

  • [ ] Code in version control — Git repository on GitHub, GitLab, or Bitbucket. Not just on Replit or in a StackBlitz sandbox.
  • [ ] CI/CD pipeline configured — Every push runs lint, type-check, and tests. Passing CI triggers deployment automatically.
  • [ ] Environment variables configured — All secrets set in your hosting provider's dashboard. Nothing hardcoded. Different values for staging and production.
  • [ ] Preview deployments enabled — Every pull request gets its own URL for testing before merging.
  • [ ] Hosting provider chosen — Vercel for Next.js, Railway for Node.js/Express, Fly.io for custom setups. Match the host to your stack.
  • [ ] Custom domain connected — With HTTPS enforced and DNS properly configured.
  • [ ] Database backups — Automated backups on a schedule. Test that you can actually restore from them.

Tool-specific deployment guides

Each AI tool has unique deployment considerations. Follow the guide for your tool:

Phase 5: Launch Readiness

The technical work is done. Now make sure the product is ready for actual humans.

  • [ ] Tested on real devices — Open the app on a real phone, not just browser dev tools. Test every flow: sign up, core features, settings, payment (if applicable), log out.
  • [ ] Analytics installed — Track page views, sign-up conversion, key feature usage, and error rates from day one.
  • [ ] SEO basics configured — Title tags, meta descriptions, Open Graph images, canonical URLs, sitemap.
  • [ ] Performance acceptable — Core Web Vitals passing. Page loads under 3 seconds on mobile. No layout shifts.
  • [ ] Legal pages in place — Privacy policy and terms of service. Required by law if you collect any user data.
  • [ ] Feedback channel available — Users need a way to report bugs and request features. Even a simple email address works.

For advice on launching effectively, read how to launch your AI-built app on Product Hunt.

The reality

Most vibe-coded apps need 1-3 weeks of focused hardening work before they're genuinely ready for production. This gap is real, and skipping it leads to the crashes and security incidents that give AI-built apps a bad reputation. But it's fixable.

If you want to check whether your specific app is production-ready, request a free audit. We'll review your app and give you a prioritised list of exactly what needs fixing before launch.

Get articles like this in your inbox

Practical tips on shipping vibe-coded apps. No spam.

Want to know where your app stands?

Get a free 5-point security snapshot from our dev team — no strings attached.