verity/labs
All posts
Apr 20, 2026/Verity Labs

Vibe code audit: what to check before launch

What experienced AI builders check before letting a vibe-coded app touch real users, payments, private data, or investor pressure.

Vibe-coded apps do not fail because AI wrote them. They fail because the workflow that produced them optimized for speed, not proof.

In expert hands, AI can be a real advantage. But once real users, payments, and private data are involved, the work changes. You need stronger prompting, better agent loops, and explicit production standards.

The issue is not AI versus humans

Teams that know how to direct AI well can move faster and often land at a higher quality bar than teams doing casual prompting.

What breaks is using Cursor, Claude Code, ChatGPT, Lovable, Bolt, or v0 with no verification loop, no ownership, and no production checklist.

Start with the dangerous flows

Before launch, review the flows where a mistake would hurt users or the business:

  • Signup, login, password reset, and admin access
  • Payment, subscription, invoice, and refund paths
  • Webhooks that change customer state
  • Database writes involving private or financial data
  • File uploads, third-party API calls, and background jobs
  • Anything that runs concurrently, retries automatically, or can race
  • Any path bots, scrapers, or abuse traffic can hit cheaply

If the app was built with Cursor, Lovable, Bolt, Replit, v0, Claude Code, or ChatGPT, assume those paths need professional review, repeatable verification, and tests even if they appear to work.

Security comes before cleanup

Pretty code can still leak data. A good vibe code audit checks:

  • Whether users can access another user's records
  • Whether server-only secrets are exposed to the browser
  • Whether API routes enforce authorization on every request
  • Whether database policies match the product's privacy model
  • Whether generated SQL or filters can be abused
  • Whether webhooks verify signatures before changing state
  • Whether concurrent actions can corrupt state or create double-writes
  • Whether critical writes are atomic and recoverable under retries
  • Whether rate limits and anti-bot protections exist where abuse would matter

The goal is not theoretical perfection. The goal is knowing what would be exploitable once real users arrive.

Production readiness is more than deployment

Deploying to Vercel, Railway, Render, Fly, or Supabase does not make the system production-ready by itself. Production readiness means the app has a repeatable deploy path, a rollback plan, useful logs, clear ownership of environment variables, enough monitoring to notice when the important parts break, and enough cost and abuse controls that success or attack does not bankrupt the system.

If nobody can answer "what happens when this webhook fails?" the system is not ready yet.

Test the promises the product makes

Generated code often has zero meaningful test coverage because the workflow optimized for getting to "working," not proving behavior. Start with tests for the flows that define trust:

  • A user can sign up and only see their own data
  • A paid customer gets the right access
  • A failed payment does not grant access
  • A deleted account cannot keep calling protected APIs
  • A webhook can be retried safely
  • Concurrent requests do not create inconsistent state
  • Rate limits and abuse protections behave the way you think they do

Those tests do not need to cover everything. They need to protect the promises that would be expensive to break.

The output should be prioritized

A useful audit does not end with a huge list of complaints. It should separate:

  • Launch blockers
  • High-priority fixes
  • Medium-priority hardening
  • Cleanup that can wait
  • Rebuild decisions that need more evidence

That prioritization is the difference between a code review and a production plan.

When to bring in help

Bring in an outside review when the app handles user data, payments, enterprise customers, or investor diligence. Bring one in earlier if every AI-assisted fix creates two new errors, or if the current prompting and agent workflow gets you to "working" faster than it gets you to "reliable."

Vibe coding is excellent at compressing time to first product. A production audit makes sure AI is being used like a professional instrument. The question is not whether AI touched the code. It is whether the workflow behind it is good enough for strangers to trust it.