Ship checklist: React app built with AI assistance (before production cutover)
You built your React app with AI assistance. It works on your machine. The demo feels snappy. But shipping to production means leaving the safety of localhost, and that's where most vibe-coded apps stumble.

Photo by Ravi Roshan from Pexels
You built your React app with AI assistance. It works on your machine. The demo feels snappy. But shipping to production means leaving the safety of localhost, and that's where most vibe-coded apps stumble. This checklist bridges the gap between AI-generated code and production-grade software, covering the concrete steps needed to ship without the panic.
TL;DR
- Test everything AI touched: unit tests for logic, integration tests for user flows, security scans for dependencies.
- Lock dependencies and audit for supply chain risk: AI often introduces libraries without vetting them.
- Set up error tracking, logging, and monitoring before day one: you won't see production bugs otherwise.
- Run a security audit specifically for AI-generated patterns: SQL injection, CORS misconfigurations, unescaped outputs, hardcoded secrets.
- Have a rollback plan: if production breaks, you need to revert fast.
Why this matters now
Shipping AI-built software isn't like traditional development. You didn't write every line. You didn't review every decision. You trusted the AI to generate working code, and most of it is working, until it hits real traffic, real users, real edge cases. The risk isn't that the code is broken; it's that you don't fully understand what it does or how it will fail.
Building with AI is fast. Shipping with AI requires discipline. Most indie builders and non-engineers jumping into React with Claude or Cursor know how to iterate locally. They don't always know how to ship safely. That gap costs time, money, and reputation.
"How to ship your AI app in 2026 🚀
Although building software is easier than ever, most AI projects still stall halfway through."
>, Ship AI Apps in 5 Steps: Claude, MVP, and Tech Stack
Common mistakes and misconceptions
"If it runs locally, it ships." Local environments lie. Your laptop has unlimited memory, fast disks, and no real network latency. Production has rate limits, connection pooling constraints, and users in 40 countries. What works in dev breaks under load.
"Dependencies are fine as-is." AI generators pull in popular packages without checking versions, licenses, or maintenance status. A dependency with a known vulnerability in production is a hole waiting to be exploited. Lock your package-lock.json and audit quarterly.
"Error handling is nice-to-have." It's mandatory. AI code often skips error boundaries, null checks, and try-catch blocks. Users see blank screens. Admins see nothing. Unhandled errors in production are invisible until they're catastrophic.
"Security is for later." It's never for later. AI loves templates. Many templates come with CORS set to , debug mode enabled, or secrets baked into code. A quick security scan before launch finds these in minutes and saves months of damage control.
"Monitoring is overkill for an MVP." You need minimal monitoring from day one. One error tracking service, one log aggregator, one simple uptime check. Without these, you're flying blind. You won't know if your app is broken; your users will tell you.
Step-by-step approach
1. Test the AI-generated code
AI doesn't write tests. You do. Start with the user-facing happy path: can users log in, create a post, or buy something? Use Jest and React Testing Library for this. Write 5-10 tests covering the core flows, not a test suite for every utility function, just the money paths.
For API integration, test that your app handles 400, 500, and timeout responses gracefully. AI often assumes the API always works. Real APIs don't. Add assertions for error messages, loading states, and retry logic.
Run npm test and get to a passing state before you touch deployment. Broken tests + broken production = a very bad Monday morning.
2. Lock dependencies and audit for security
AI adds packages without a second thought. Run npm audit and fix anything flagged as critical or high. Then run npm audit fix --audit-level=moderate to bump transitive dependencies. Check your package-lock.json into version control, this locks every version so your deployment doesn't accidentally pull a newer library that breaks things.
Use Snyk or Dependabot to scan for vulnerabilities automatically. Set them to block deployment if critical vulnerabilities exist. This is now table stakes for any production app.
3. Set up error tracking
Add Sentry (free tier is generous) or LogRocket to catch runtime errors. Install the SDK:
npm install @sentry/react @sentry/tracing
Initialize it in index.js or your app root:
import as Sentry from "@sentry/react";
Sentry.init({
dsn: process.env.REACT_APP_SENTRY_DSN,
environment: process.env.NODE_ENV,
tracesSampleRate: 1.0,
});
Now every uncaught error, unhandled promise rejection, and UI crash gets logged with a stack trace. You'll know about production bugs before your users do, or at least a few seconds after.
4. Run a security audit
Create a checklist for AI-generated security risks:
Use OWASP ZAP or Burp Suite Community to run an automated scan. Many AI-generated templates pass obvious checks but miss subtle configuration errors. Spend 30 minutes on this; it saves 30 days of incident response later.
5. Configure logging and observability
Set up structured logging. Use a library like pino or winston to log events as JSON:
logger.info({ event: "user_signup", userId: 123, email: "user@example.com" });
Send logs to a service like LogDNA, Datadog, or CloudWatch. When something breaks, you want to search logs by user ID, event type, or timestamp in under 10 seconds. That's the difference between a 15-minute fix and a 2-hour head-scratcher.
Add one simple uptime check (Pingdom, UptimeRobot, or Healthchecks.io). It pings your /health endpoint every 5 minutes. If it goes down, you get an alert. That's it. Free, effective, non-negotiable.
6. Staging deployment and final smoke tests
Deploy to a staging environment that mirrors production (same database provider, same API endpoints, same environment variables). AI apps often fail at the boundary between environments. Staging catches it.
Run these on staging:
Take 20 minutes. Find 80% of production bugs this way.
Tools and workflows that help
- Jest + React Testing Library: standard for React; AI is familiar with both.
- Playwright or Cypress: end-to-end tests covering the full user journey.
- Vercel, Netlify, or AWS Amplify: zero-config React deployments; they handle SSL, CDN, and auto-scaling.
- GitHub Actions: free CI/CD; deploy on every push to
mainafter tests pass.
- Sentry: error tracking; catches bugs you don't know exist.
- LogRocket: session replay + error tracking; see what users were doing when it broke.
- Datadog or New Relic: if you need deeper infrastructure insights.
- OWASP ZAP: free automated security scanner.
- Snyk: dependency vulnerability scanning; integrates with GitHub.
- npm audit: built-in; run it before every deploy.
- Use a GitHub issue template or a shared Notion doc so you don't forget a step.
- Assign ownership: who verifies tests pass? Who runs the security scan? Who deploys?
- Make deployment a deliberate act, not a force-of-habit deploy.
Pre-Launch Checklist Dashboard
The card above shows the seven gates before you can confidently hit "deploy to production." Each one is non-negotiable. Each one takes 15 minutes to 2 hours. Together, they take less time than fixing a production data loss incident.
Pre-Production Ship Checklist
Your progress is saved automatically in your browser.
FAQ
Frequently Asked Questions
npm audit and deploy to staging. These two steps unblock everything else.Additional Resources
- Ship AI Apps in 5 Steps: Claude, MVP, and Tech Stack - Here's the 5-step process I use to ship ideas without getting stuck. Step 1: Have an idea While. Step 2: Scope the MVP Another. AI assistance ...
- A nine-point checklist for shipping production-ready AI - A guide to taking AI agents from prototype to production using retrieval, guardrails, observability, and platform engineering best practices.
- Ship AI Apps Faster | Runtime Control from LaunchDarkly and ... - LaunchDarkly and AWS will explore how runtime control can help teams ship AI-powered features faster, more safely, and with more flexibility.
Ready to Master Vibe Coding?
Learn to build software faster with AI assistance using the Vibe Coding Bible.
Get Started