Vibe-coded app security checklist: 24 checks in about 10 minutes.
For founders who built an app with Lovable, Replit, Cursor or Bolt and want to know what a stranger could reach. Each check says why it matters and how to test it yourself.
Last reviewed 2026-10-27. Nothing you tick leaves your browser.
How to use it
Work through the five groups below with your live site open next to you. Tick a box only after you have tested it, not because you think the AI tool probably did it. Items marked critical come first in the summary. Some checks need a terminal, a browser and two test accounts, and a few need a look at your Supabase, Stripe or host dashboard.
The checklist
ExcenityAI · excenityai.com/tools/vibe-coded-app-security-checklist
Vibe-coded app security self-check · last reviewed 27 October 2026
0 of 24 checked
Ticks are saved in this browser only. Nothing is sent anywhere.
Critical checks still open
10 of 10 critical checks are not ticked yet. Start here.
- No secret keys in code the browser downloads
- OpenAI and Anthropic calls go through your server
- Any key that was ever exposed has been rotated
- Backend routes reject requests with no login
- Account A cannot read or change account B's records
- Row Level Security is on for every table in the public schema
- No policy that says `using (true)` on a private table
- Reading your tables with only the publishable key returns nothing private
- A hard spend limit is set with each AI provider
- Every AI endpoint needs a login and has a per-user rate limit
If you found gaps
Fix critical items first, then re-test the same way you found them. These guides go deeper:
- How to secure a vibe-coded app covers keys, permissions, rules and storage.
- Supabase RLS for vibe-coded apps has the policies and tests behind the database checks.
- The 12-step production checklist is the wider launch list, and capping API bills covers the cost checks.
Prefer a second pair of eyes? The free 30-minute audit call reviews these same areas with your app on screen.
Using the checklist.
What does critical mean here?
A critical check is one where a failure can expose user data, let a stranger act as someone else, or run up a large bill without any special skill. We set the labels by how bad and how easy the failure is. It is our judgment, not a formal scoring system.
Does ticking every box mean my app is secure?
No. It means you have checked the most common gaps in apps built with AI tools. It does not replace a code review or a penetration test, and it can only be as accurate as your own testing.
Is anything I tick sent to ExcenityAI?
No. Your ticks are stored in your own browser's local storage so they survive a refresh. Nothing is uploaded, and the page works if storage is blocked, you just lose the saved ticks.
How do I save a copy?
Use the Download / print PDF button and pick Save as PDF in your browser's print dialog. The printout hides the site menu and shows every check with its how-to-check steps.
I use Firebase or another backend, not Supabase. Does it apply?
Most checks do: keys, logged-out requests, two-account testing, storage, spend limits and backups. The Supabase RLS items map to Firebase Security Rules or the equivalent access rules in your database.
How often should I run it?
Before launch, and again after any large change from your AI tool, such as a new table, a new payment flow or a new AI feature. Regenerated code can drop a policy or add a key to the frontend.
Not sure what you found? We'll look with you.
A free 30-minute review of your AI-built app, then a written fix plan and a quote.