AI builders get you a working app in a weekend. The missing 20% — an API route with no auth, an API key shipped to the browser, a query built by string concatenation — is what shows up later as a breach, a chargeback, or a support nightmare. vibecheck finds it in a second, and fixes it for a flat fee.
Free, open-source scanner · MIT · zero dependencies · runs in a second
Run it on a real project and this is what it looks like:
$ python3 vibecheck.py . vibecheck — 8 findings: 2 critical, 4 high, 2 medium [CRITICAL] client-exposed-secret lib/client.ts:1 An API key is exposed to the browser bundle. fix: rename without the public prefix; proxy it server-side. [CRITICAL] env-not-ignored .env A .env file exists but is not in .gitignore. [HIGH ] route-without-auth app/api/users/route.ts:1 A route handler with no auth check. [HIGH ] tls-verification-off lib/payments.ts:3 TLS verification is disabled. [HIGH ] eval-exec lib/payments.ts:4 Dynamic code execution — an RCE vector.
That output is from my own sample app — fair to distrust it. So I also ran the scanner across 13 popular open-source AI-app starter repos: 4 came back clean, and the other nine held 101 findings — 50 of them critical. The single most common defect was an API route with no auth check, in 6 of the 13 repos. Read the full measured report → · before/after case study →
Point it at your repo. Ten defect classes — secrets, auth, injection, TLS, CORS, cookies — with the exact file and line. It also runs as a CI gate so this never happens again.
Every finding comes with the fix. If you'd rather hand it off, that's the paid part — and it's the part that actually keeps your app up.
You get the fixed app plus a re-scan showing zero critical and high findings in the agreed scope. That re-scan is the receipt.
Flat fee, fixed scope, agreed in writing before I start. No hourly billing, no surprises.
How to start: pick a tier on the order page →
Payment is USDC on Base to 0x716D17129a5d41D18D8c51eb118ECb0eDe6B76d5. Card checkout is not wired yet — the order page says so plainly rather than promising a payment method that doesn't exist.