Launch sale: 20% off Fix Pack, Deep Audit and Monitor through Nov 30, 2026. The scan stays free. See sale prices →
Home / Guides / Bolt.new security checklist

Bolt.new security checklist: database, keys and Netlify settings

Bolt projects are usually Vite-based web apps. By default they use Bolt Database; on Pro and Teams plans you can use Supabase instead. You can publish to Bolt hosting or to Netlify. Whatever you pick, the same rule applies: anything the browser downloads is public.

Scan your live app free  Passive, no signup, never touches your database.

1. Know which database you're on

Per Bolt's docs, new projects use Bolt Database by default, and Supabase is available on Pro and Teams plans. If you're on Supabase, everything in our Supabase RLS checklist applies: enable RLS on every table and scope policies to auth.uid().

2. Treat every VITE_ variable as public

Vite exposes only VITE_-prefixed variables to client code, and those values end up in your JavaScript bundle. A Supabase URL and anon key are fine there. A service role key, Stripe secret key or OpenAI key is not.

3. Use edge functions for payments and AI calls

Bolt's Supabase docs note that edge functions are used when the app needs an API, for example for Stripe payment handling. Keep secret keys in the function's secrets and verify the caller.

4. On Netlify, mark secrets as secrets

Netlify's Secrets Controller lets you flag environment variables as secret; Netlify then applies a stricter policy and scans builds for embedded secret values. Don't put secret values into variables that get bundled into the front end.

5. Add security headers

On Netlify, add a public/_headers file (snippet in our HSTS and CSP guides) so it ships with every deploy.

6. Don't ship source maps

Set build.sourcemap to false in vite.config so production .map files aren't published.

7. Check what got deployed

Run Unspill on your live URL. It checks your bundle for secret keys, public source maps, an exposed .env and missing headers.

Fix guides for these issues

FAQ

Are VITE_ environment variables secret?

No. Vite inlines VITE_-prefixed variables into the client bundle, so anyone can read them. Use them only for values meant to be public.

Do I need Supabase to build a secure Bolt app?

No. Bolt Database is the default. If you use Supabase, Row Level Security policies are what protect your data from direct API access.

Sources

Last checked against these sources on 2026-10-19. Platforms change; when in doubt, the official docs win.

Want help fixing this?

We're opening a done-for-you fix service, a deep audit (database rules, auth, user-to-user data access) and continuous monitoring. Join the waitlist to get first access. No spam, and we never share your email.