Bolt generates full-stack apps — usually a React/Vite or Next frontend on a Supabase or Firebase backend — so the failure modes cluster around generated auth, data rules and secrets.
Critical
Secrets generated into client-side code
Fast full-stack generation makes it easy for an API key or backend secret to land in the frontend bundle. Once it ships, it’s public — and rotating it is the only fix.
check › Search the generated client for keys or secrets that should be server-side.
Critical
Backend rules left in test / open mode
Generated Supabase or Firebase backends frequently ship with permissive rules — allow read: if true, or USING (true) — so the app works immediately. That leaves the data readable, and often writable, by anyone.
check › Read your database rules/policies; if true / USING (true) means open.
Critical
Server-side authorization missing entirely
Generated endpoints and actions often check nothing on the server — the only protection is the UI not showing a button. Anyone hitting the endpoint directly is straight in.
check › Does each endpoint verify who is calling before it acts?
Watch
Input validation and error handling skipped
Generated handlers tend to trust their input and either crash or leak stack traces on bad data — a reliability and information-disclosure risk.
check › Is user input validated server-side, and are errors handled cleanly?
Watch
No rate limiting or abuse protection
Open signup, auth and any paid or third-party endpoint can be hammered or run up cost when nothing throttles them.
check › Is there a limit on signup, auth and any endpoint that costs money?
These are the patterns, not a checklist run against your repo. The audit reads your
actual Bolt code and tells you which of these are really there — prioritized,
critical first. Or try the free 2-minute self-check →