How to QA a vibecoded app

You built an app with Lovable, Bolt, v0, Cursor, or Claude Code in a weekend. It looks done. But does every button work, every form submit, every page render on mobile? Here is how to find out before your users do.

How do I QA an app I built with AI?

Ask your coding agent to run Val. Val is an MCP server that drives a real Chromium browser, walks every flow, runs a full accessibility and Lighthouse audit, captures the network, and returns a structured report. Your AI then fixes what it finds and Val re-tests until everything passes.

The shift in 2026 is that you no longer write test code by hand. The same AI that built your app can test it, as long as it has eyes and hands in a real browser. That is what Val provides through the Model Context Protocol, so it works inside Cursor, Claude Code, Codex, and Windsurf.

What should I actually check?

A complete pass on a vibecoded app covers six layers. Val automates all of them:

  1. Dead controls. Click every button and link. Flag the ones that do nothing or throw an error.
  2. Forms and funnels. Fill and submit every form. Walk signup and checkout end to end.
  3. Accessibility. Run the full axe-core WCAG 2.0 / 2.1 A and AA audit.
  4. Performance. Run Lighthouse for the Web Vitals (LCP, CLS, TBT).
  5. Network. Record every request. Catch the HTTP 200 responses that hide an error in the body.
  6. Runtime. Watch the console and the DOM for NaN, undefined, null, and uncaught errors.

What bugs do vibecoded apps usually have?

The most common: dead buttons that do nothing, forms that submit to nowhere, missing image alt text and other accessibility violations, layout that breaks on mobile, and APIs that return HTTP 200 with an error hidden in the body so the browser never flags them.

AI code generators are excellent at producing something that renders. They are much weaker at the wiring underneath: the onClick that was never connected, the API route that returns a 200 with { ok: false }, the form that validates but never posts. These pass a visual glance and fail a real user.

Can I test my app without writing test code?

Yes. With Val you describe what to test in plain language to your AI agent. Val executes the browser actions and reports back. You do not write Playwright or Cypress scripts.

Example prompt to your agent:

Run a Val review on http://localhost:3000 and fix anything broken.

How do I test a paid signup or checkout flow safely?

Put Stripe in test mode. Val detects the test key and auto-fills the 4242 test card to complete the checkout, so you walk the full paid funnel for free. Val refuses to fill a card when Stripe is in live mode, so it never triggers a real charge.

Stop asking your friends to test your app.

Val plugs into Cursor, Claude Code, or Codex. $4.99/month, cancel anytime.

Get Val