Guide Bolt
How do I deploy a Bolt app to a custom domain?
Short answer
Bolt publishes to its own hosting by default: click Publish and the app goes live on a free bolt.host address. A custom domain needs a paid Bolt plan. Connect the domain in your project settings and add the DNS records Bolt shows. On Netlify, add the domain under Domain management and point your DNS to Netlify.
Where should I host my Bolt app?
Bolt publishes projects to its own hosting by default, for free, at an address ending in bolt.host (Bolt: Publish your project). You can also publish to Netlify through Bolt's integration, or deploy the build to another host such as Vercel.
Publish on Bolt hosting
- Click Publish. The app goes live on a free address ending in bolt.host.
- Later changes don't go live on their own. Open the Publish menu and click Update.
Publish to Netlify from Bolt
- Connect Bolt to your Netlify account.
- Choose Netlify as the hosting provider before you publish for the first time.
- If the project is already published to Bolt hosting, it can't be switched. Bolt says to create a new, unpublished copy.
Netlify can't host your database or a traditional backend (Bolt: Netlify integration). Your database stays on Supabase.
To deploy the build to Netlify yourself: for a Vite plus React app, the build command is npm run build and the publish directory is dist. Create React App writes to build/ instead (Netlify: Deploy your Bolt app to Netlify).
How do I connect my domain?
On Bolt hosting
Custom domains need a paid Bolt plan, and the site must be published first. Connect the domain in your project settings, then add these records at your DNS provider:
- For www: a CNAME to
site‑dns.bolt.host. - For the root domain: an ALIAS, ANAME or flattened CNAME to
site‑dns.bolt.host. - Only if your DNS provider supports none of those, use Bolt's fallback: an A record for the root (
@) to75.2.60.5. Keep the www CNAME.
Most domains connect within a few hours; it can take up to 24 hours. For a domain bought elsewhere, Bolt sets up HTTPS after DNS is in place (Bolt: Domains; Bolt: Connect a domain; Bolt: SSL/HTTPS).
On Netlify
In Netlify, open Domain management, choose Add a domain, then Add a domain you already own (Netlify: Assign a domain). Then, at your DNS provider:
- For a subdomain such as www: a CNAME.
- For the root domain: an ALIAS, ANAME or flattened CNAME to
apex‑loadbalancer.netlify.com, which Netlify recommends. - Only if your DNS provider supports none of those, use the fallback: an A record to
75.2.60.5.
Sites on Netlify's High‑Performance Edge use a different load balancer. Netlify says DNS may take a full day
to propagate (Netlify: Configure external DNS), and it provisions a Let's Encrypt certificate automatically for a custom domain (Netlify: HTTPS).
Our guidance at PatchAndShip: connect the domain at least a day before launch.
Which environment variables go on the host?
Add the same environment variables your app uses in Bolt, such as your Supabase project URL and public key, in the host's settings.
Only public values belong in the frontend. If your project uses Vite, Vite says: Variables prefixed with
and VITE_ will be exposed in client-side source code after Vite bundling.
(Vite: Env Variables and Modes)VITE_* variables should not contain sensitive information such as API keys.
The Supabase secret key is the one to keep out: A secret key bypasses every Row Level Security policy you have.
(Supabase: API keys)
On Netlify: Netlify doesn't see the environment variables you set in Bolt. Add them in Netlify, then rebuild so the new values reach your app (Netlify: Deploy your Bolt app to Netlify). Vite writes VITE_ values into the code at build time, so a changed value reaches users only after a rebuild and redeploy (Vite: Env Variables and Modes).
Why do pages show 404 when I refresh?
Vercel says that in a Vite single‑page app, deep linking won't work out of the box
. You need a catch‑all rewrite to /index.html in vercel.json (Vercel: Vite on Vercel):
{
"rewrites": [
{ "source": "/(.*)", "destination": "/index.html" }
]
}
On Netlify, a single‑page app needs the rewrite /* /index.html 200. For a Bolt app built with Vite, put that line in public/_redirects; Vite copies it into dist/ (Netlify: Rewrites and proxies; Netlify: Deploy your Bolt app to Netlify).
Why does login send me back to localhost?
Supabase's Site URL is still set to its default. Supabase says to change the Site URL from
, and that it is http://localhost:3000 to your production URLcritical for email confirmations and password resets
. In production, Supabase recommends setting the exact redirect URL rather than wildcards (Supabase: Redirect URLs).
In the Supabase dashboard, this is under Authentication, then URL Configuration.
How do I check that the live app works?
Our checklist at PatchAndShip: open your domain in a private window, sign up as a new user, confirm the email, log out, log in, request a password reset, refresh a page deep inside the app, and run your main flow once from start to end.
Before you announce it, check the security side too with the free Supabase RLS checklist.
Can PatchAndShip deploy it for me?
Yes. Fix & Deploy ($249) includes everything in the Security Fix plus a production deploy, env vars and auth redirects, custom domain and SSL, and a smoke test of key flows. Fix & Deploy: fixed and live on your host within 48 hours. Otherwise, a full refund if you ask within 14 days of purchase.
For Bolt apps, Fix & Deploy deploys to Vercel or Netlify. We don't deploy to Bolt's own hosting. Each order covers one app, one Supabase project (or one Node app) and one deploy target. Apps with more than 25 user-defined tables are declined or quoted separately. If you'd rather stay on Bolt hosting, you can follow the steps above yourself.
You set the DNS records, and the clock pauses while we're waiting on you. No new features. Not a penetration test or compliance certification.
For Bolt, invite us to your project as an Editor from Share; remove us from the same menu when we're done. On a Teams plan, an admin needs to turn on external collaboration first.
For Vercel, you don't need to buy a seat or invite us to your team: we give you a deploy-ready repo and an env-var checklist, then either walk you through a short guided handoff with the exact clicks, or use a scoped, expiring Vercel access token you share through a one-time link, never your password.
For Netlify, you don't need to add us to your team: we give you a deploy-ready repo and an env-var checklist and walk you through a short guided handoff with the exact clicks, never your password.
Want to know where you stand first? PatchAndShip's free mini check is passive: it looks only at the public homepage, its scripts and its security headers (for exposed secret keys, missing headers and publicly listed storage links), and nothing else: no database queries, no logins, no changes. It returns a oneāpage summary within 24 hours.
What else do Bolt founders ask about deploying?
Why is my page blank or 404 on refresh?
On Vercel, a Vite single-page app needs a catch-all rewrite to /index.html in vercel.json. Vercel says that without it, "deep linking won't work out of the box". On Netlify, put the rewrite /* /index.html 200 in public/_redirects.
What access do you need to deploy my Bolt app?
For Bolt, invite us to your project as an Editor from Share; remove us from the same menu when we're done. On a Teams plan, an admin needs to turn on external collaboration first. For Vercel, you don't need to buy a seat or invite us to your team: we give you a deploy-ready repo and an env-var checklist, then either walk you through a short guided handoff with the exact clicks, or use a scoped, expiring Vercel access token you share through a one-time link, never your password. For Netlify, you don't need to add us to your team: we give you a deploy-ready repo and an env-var checklist and walk you through a short guided handoff with the exact clicks, never your password.
Why does login redirect to localhost?
The Supabase Site URL still points at http://localhost:3000. Supabase says to change it to your production URL, and to set the exact redirect URL in production rather than wildcards.
Sources: Vercel: Vite on Vercel, Supabase: Redirect URLs.
Where do these facts come from?
- Vercel Docs: Vite on Vercel. Catch-all rewrite for deep links.
- Supabase Docs: Redirect URLs. Site URL and exact redirect URLs.
- Vite Docs: Env Variables and Modes.
VITE_variables. - Supabase Docs: API keys. The secret key.
- Bolt Support: Publish your project, Integrations: Netlify. Bolt hosting and publishing to Netlify.
- Bolt Support: Domains, Connect a domain, SSL/HTTPS. Custom domains on Bolt hosting.
- Netlify Docs: Assign a domain, Configure external DNS, HTTPS (SSL). Custom domains on Netlify.
- Netlify Docs: Rewrites and proxies. The single‑page app rewrite.
- Netlify Knowledge Base: Deploy your Bolt app to Netlify. Build settings, environment variables,
_redirects. - PatchAndShip service details: pricing, Refund Policy.
All sources checked on . PatchAndShip's own guidance and service details are labeled as ours.