Matt Turley, Continuum. Updated November 5, 2026.
Why the public key is not the problem, how the rules on a table decide who can read it, and how to test your own.
Yes, if a table has no row level security or has a policy that allows everyone. The public key in your app is meant to be public, so the rules on each table are the only lock. In our October scan, 31 of 177 Supabase-backed AI-built apps had at least one table answering with no login.
A browser app has to talk to the database, so the key it uses ships in the page code and anyone can copy it. Supabase designs for that. The protection is not hiding the key. It is row level security: rules on each table that say which rows each signed-in user may read or change.
Without those rules, or with a rule that says everyone, the public key is enough to read the table. That is the exposure to look for, not the key being visible.
We scanned 500 live apps built with Lovable, Bolt and base44 in October 2026. 177 ran on Supabase. Of those, 31 (17.5%) had at least one table that returned a row to a request with no login, and 8 had a readable table holding clearly non-public records such as users, bookings or support messages.
It is one scan on one sample at one time, with the method and denominators published on the dataset page. It shows the problem is common among quickly built apps, not that your app has it.
Lock it first, then investigate. Turn the rules on, then work out what was readable and for how long. If customer records were exposed, you may have duties to tell people; ask a lawyer for your region. The Supabase security review is a paid, written pass over rules, keys, storage and sign-in with a proof for each finding.
Paste your live app URL and your email. A short automated check runs three public-security spot-checks and sends back one specific finding and what to do about it. It is free, and it is a preview, never a clean bill of health.
Run the free is-it-safe-to-ship check. Or book a call and talk it through.