โค๏ธVibeHP Check my HP: $19

VIBEHP GUIDE ยท UPDATED OCT 2026

Supabase RLS check: is your database open to everyone?

Your Supabase anon key ships inside your frontend, so anyone can grab it. That's by design, and Row Level Security is the only thing between that key and your data. If a table has RLS off, or a policy says using (true), that table is effectively public.

๐Ÿ“Š We scanned 21 public vibe-coded apps: 57% had at least one Supabase policy open to everyone, 62% had committed a .env file, and 24% failed a clean npm install. The average launch health was 63/100.

01Find tables with RLS off

02Find policies open to everyone

03Check the things around RLS

04Prove it

Don't want to check all this by hand?

Paste your GitHub link. VibeHP runs every check on this page (plus a git-history secret scan and a real build) and gives you an HP score out of 100, with a copy-paste AI prompt for every fix.

Check my HP for $19 โ†’

One-time ยท Your code is deleted right after the scan

FAQ

What does using (true) mean in Supabase?

It's a policy condition that's always true, so every request (including logged-out users with the anon key) passes. It's only appropriate for genuinely public data.

Is it safe to expose the Supabase anon key?

Yes, if RLS is enabled with proper policies on every table. The anon key is meant to be public; RLS is what protects your data.

Does VibeHP check my live database?

Not yet. VibeHP reads your migration files to find tables without RLS and always-true policies. Use the SQL on this page to confirm against your live project.