How to put your Bolt website online on your own domain
Three ways to put a Bolt site on your own domain: Bolt's own publishing, ProHostiva, or another host. Getting the code out, DNS and the usual pitfalls.
The short version
Bolt builds and runs your project in the browser, but what it makes is ordinary code: usually a React app built with Vite, sometimes Next.js or another framework. You can publish it from Bolt and point your domain there, or take the code to any host that can build it, ProHostiva included. If your app uses Supabase or Bolt's own database for data and sign-in, that part stays where it is: you're only choosing where the website itself is served from.
| Option | Good for | What to know |
|---|---|---|
| Bolt's own publishing | Staying inside Bolt, with the fewest steps | Every plan can publish to a free bolt.host address; your own domain needs a paid Bolt plan. Hosting stays tied to your Bolt project. |
| ProHostiva | Hosting that's separate from the editor, and help if you're not technical | A paid plan. We check your project for free first, and can publish it and connect your domain for you. |
| Another host (Netlify, Vercel, Cloudflare Pages…) | Developers happy to set up a build themselves | Most have free tiers (read their terms for commercial use). You set the build, the environment variables, page-refresh routing and DNS yourself. |
Not sure your project is ready?
Option 1: publish from Bolt
If you're happy with Bolt's hosting, this is the shortest path, and a perfectly good choice. Publish the project from Bolt to a free bolt.host address (on any plan), then, on a paid plan, connect your domain in its settings; Bolt shows the DNS records to add at your domain provider. Bolt's own documentation has the current steps.
Reasons people move away from it: they want hosting that doesn't depend on their editor subscription, a server-side part Bolt doesn't host, more control over deployments, or a person to call when something breaks. If none of those apply to you, there's no need to move.
Option 2: host it on ProHostiva
1. Get the code out of Bolt
- GitHub (best if you'll keep changing the site): connect the project to GitHub from Bolt, so your changes are pushed to a repository. Each update is then one click on ProHostiva.
- Download (fine for a site you finish once): download the project from Bolt as a ZIP. Treat it as source code: it lists its dependencies, and we install them during every deployment. See Deploying from a ZIP.
2. Check it (free)
Paste the repository's address into Check my project, or upload the ZIP. Most Bolt projects come back ready or close to it. See the readiness check for how to read the report.
About the .env warning
.env file holding your Supabase URL and its anon (publishable) key, and the check flags every .env with values. Those two values are designed to be public: they end up in the browser anyway. Anything else in that file, such as a service-role key or another service's secret key, is a real leak: remove it, create a new key, and set it on the host instead.3. Create the website and publish
Start a new website
In your dashboard, click Host a website, then choose GitHub repository and connect GitHub, or upload the ZIP. See Deploying from GitHub.
Check what we detected
We recognise the framework (and that it was made with Bolt). The defaults are right for almost every Bolt project.
Add environment variables, if needed
If the project has no
.env, add the names your code expects under Developer settings → Environment variables: usuallyVITE_SUPABASE_URLandVITE_SUPABASE_ANON_KEY. Values you set here override the ones in a.envfile.Publish
Name the website, choose its address and click Publish website. A couple of minutes later it's online at
yourname.prohostiva.com. Open it and click around before you move your domain.
4. Connect your domain
Go to Domains in your dashboard, add your domain and choose the website. Add the two DNS records we show where you manage your domain's DNS, click Verify DNS, and HTTPS is set up automatically. The full walkthrough is in Connecting your own domain.
5. Updating the site later
Keep editing in Bolt. With GitHub, once your changes are pushed, click Publish latest version on the website's page; with a ZIP, download a new one and use Upload a new version. Nothing goes live until you do, and if a new version fails to build, the current one stays online.
Rather we did it?
Option 3: another host
Any host that builds Node.js projects can serve a Bolt app. For a typical Vite project the settings are:
| Setting | Value for a typical Bolt project |
|---|---|
| Source | Your GitHub repository, or the downloaded ZIP |
| Build command | npm run build |
| Output folder | dist |
| Environment variables | Every VITE_ name your code reads, such as VITE_SUPABASE_URL |
| Page-refresh routing | Send unknown paths to index.html, or refreshing any page other than the home page shows a 404 |
Then add your domain in the host's dashboard and create the DNS records it shows you. ProHostiva does the build detection, the page-refresh routing and HTTPS for you; elsewhere, check each one yourself.
Before you point your domain at the new host
- Add the new domain to your sign-in settings. If your app has sign-in through Supabase, open Authentication → URL Configuration in your Supabase project, add your domain to Redirect URLs and set it as the Site URL. Otherwise sign-in emails and links send people back to the old address.
- Using your own Google or GitHub sign-in credentials? Add the domain to the allowed redirect addresses there too.
- Disconnect the domain from Bolt if it was connected there, and delete the old DNS records. Two sets of records for the same name send some visitors to the old site.
- Leave your database where it is. Supabase keeps serving your data, sign-in and backend functions; nothing needs to be migrated to change where the website is hosted.
Common problems
- A blank page after deploying: almost always a missing
VITE_variable. Add it and deploy again: these values are built into the page, so a new deployment is needed. - It ran in Bolt but the build fails: Bolt's preview is a development server, while hosting runs the production build, which is stricter (TypeScript errors, for example). Ask Bolt to fix the first error in the deployment log, or run
npm run buildyourself. - The ZIP is too large (the limit is 50 MB): if you installed or built the project on your computer, leave out
node_modulesand build output such asdist, and remove large images or videos you don't use. - 404 when refreshing a page (on other hosts): the page-refresh routing isn't set up. ProHostiva handles this for you.
- A mobile app (Expo): Bolt can also make mobile apps. Those are published through the app stores, not as a website, so this guide doesn't apply.
- The domain won't verify: new DNS records can take up to 48 hours, and on Cloudflare the record must be DNS only (grey cloud). See Troubleshooting.