# bolt.new hosting: publish the build, keep the link

bolt.new builds inside a browser sandbox, so the project is real but it lives somewhere you do not control. Getting it onto your own address means taking the code out, running its build once, and uploading the folder that comes out. This page covers all three.

## What bolt.new outputs

A complete JavaScript project. bolt.new documents that it focuses on JavaScript-based web technologies, with Node.js on the backend and any JavaScript framework on the frontend, so what you get is source code and a package.json rather than a finished page.

The part worth understanding is where that project has been living. bolt.new runs a development environment in the browser tab, which is why the preview appears instantly and why the terminal in the interface works. That environment is not a host: it is a workspace. When you close it, the preview URL is not a place your customers can visit for the next three years. Publishing means moving the built output somewhere that only serves files, which is what this is.

Which build command applies depends on what bolt scaffolded for your prompt. Its own documentation does not name a default framework, so read the project rather than guessing: a vite.config.ts means npm run build into dist, a next.config.js means a Next.js build and a static-export setting, and an astro.config.mjs means Astro into dist. There is a guide per framework naming the exact command and folder for 23 of them.

## Which of the two paths you are on

Almost every bolt.new project is on the second path. The first exists because sometimes you asked for one page and got one page.

### One file, no build

The project is a single self-contained index.html with its CSS and JavaScript inline. Upload it and you are finished.

- A self-contained .html page publishes exactly as written.
- A single .jsx or .tsx that imports nothing but React works the same way, transformed in the visitor browser.
- If the file references ./style.css or /src/main.js, it is not self-contained and you are on the other path.
- Not sure? The HTML tester renders pasted markup so you can see what is missing before you upload.

### A project, one build first

There is a package.json and a src folder. Install the dependencies, run the build, and upload the folder it writes.

- Run npm install, then npm run build.
- Vite writes to dist, which is what most bolt projects produce.
- Upload that folder, or zip its contents with index.html at the top level.
- Command and folder per framework in the deploy guides.

## Getting the code out of bolt.new

bolt.new documents two routes out: a direct download, and a GitHub repository kept in sync. The download is fewer steps; the repository is worth it if you plan to keep editing in both places.

1. **Open the project you want to publish.** Use Code view to see the actual file tree rather than the preview. What is in that tree is what you are about to build.
2. **Export and download the project.** Click the project title in the top left of the screen, then Export, then Download. You get a zip. The alternative is connecting a GitHub repository, which bolt.new also documents and which keeps syncing after you leave.
3. **Unzip it and install.** Unzip the download, open a terminal in that folder and run npm install && npm run dev, which is what bolt.new's own instructions tell you to run. This is the first time the dependencies exist on your machine rather than in the browser sandbox.
4. **Read the config file to learn the build.** A vite.config.ts means Vite. A next.config.js means Next.js and a static export setting. Match it to the guide for that framework instead of assuming.
5. **Build, then upload the output folder.** Run npm run build and drop the folder it produced, usually dist. Pick a name and the site is live over HTTPS.

Source: All of the above from bolt.new's own help centre at support.bolt.new, read 8 September 2026. The supported-technologies article states that Bolt focuses on JavaScript-based web technologies with Node.js for the backend and any JavaScript framework on the frontend. The projects-and-files article gives the download steps verbatim: open your project, click the project title in the top left, then Export, then Download, unzip the downloaded file, and run npm install && npm run dev; it also states the download is a zip so you can work on it outside Bolt in your own editor. The Git integration article describes connecting a GitHub repository to back up a project, sync commits automatically and work across branches. Interfaces can change.

## What breaks, and why

The two below are specific to a project that grew up in a browser sandbox. The rest are true of any generated build.

### It worked in the bolt preview and the uploaded version is blank

Why: The preview was running a dev server, which resolves imports on the fly and serves source files directly. A static host has no dev server. If you uploaded src or the project root instead of the build output, the browser is being handed TypeScript and bare module imports it cannot execute.

Fix: Upload the folder the build wrote, usually dist. If you are not sure the build ran, check that the folder contains an index.html and an assets folder of hashed filenames.

### The app expects a backend that bolt was running for it

Why: bolt.new supports Node.js on the backend, so a generated project can contain server code that ran happily in the sandbox. None of it runs on a static host, and the symptom is usually a form that posts into nothing or a fetch that 404s.

Fix: The front end can still be published here. The backend has to live somewhere that executes code, and the page has to call it over HTTPS with CORS allowed. If the whole app is backend, this is the wrong kind of host and the honest answer is to say so.

### Every route except the home page returns a 404

Why: The app routes in the browser, so /about exists only once JavaScript has run. A static host asked for /about looks for a file at that path, does not find one, and answers 404 before your code loads.

Fix: Turn on the Single-page app switch in the site settings. Unknown paths are then served the root index.html and the client router takes over. Free on every plan, applied without a redeploy, and off by default because a multi-page site wants real 404s.

### The API keys the tool wrote into the code are now public

Why: AI tools fill in the value they can see, and a key in front-end code is readable by anyone who opens the page. No host can fix that: a published page is public by definition.

Fix: The deploy-time security check names the key it found. Rotate it, then move the call behind something that can hold a secret. Every plan, free included, and it never blocks the publish.

## What the free plan includes

Getting a bolt project onto a permanent address costs nothing, and the free plan is a plan rather than a trial that turns into an invoice.

- 1 live site on a real free plan, not a trial of a paid one, with HTTPS and no card to start.
- Up to 25 MB per upload and 25 MB of storage across the account.
- 5,000 visits and 5 GB of traffic a month.
- Up to 25 publishes a day, which is the number that matters when you are regenerating.
- The Single-page app switch, so a client-routed build works without paying for anything.
- The deploy-time security check, which warns about a stray .env file, a .git folder, a private key or an API key left in your JavaScript.
- A small Droply badge in the corner of the page. Removing it starts on Starter.
- Free sites are served noindex, so search engines do not list them. Search visibility starts on Starter.

## How this compares with the other host built for AI output

Static.app has a bolt.new page of its own, which makes the comparison checkable rather than rhetorical. These rows come from its published pricing and documentation.

- **Build output as a folder.** Droply: Uploaded directly, no ZIP required. Static.app: Accepted as a ZIP of built output.
- **Runs npm install for you.** Droply: No. You build once locally and upload the result. Static.app: No.
- **Client-side routing.** Droply: One free Single-page app switch, applied to the live site with no redeploy. Static.app: Not documented as a per-site setting.
- **Framework build guides.** Droply: 23, each naming the command and the output folder. Static.app: Nine framework pages.
- **Loose .html file accepted.** Droply: Yes, dropped on its own with nothing around it. Static.app: No. Its Claude page states a loose .html file is not accepted and must be zipped.
- **Single .jsx or .tsx without a build.** Droply: Yes. It is transformed in the visitor browser at the published address. Static.app: No. Its Claude page says React-based artifacts need a self-contained HTML version first.
- **Free plan.** Droply: 1 site, 25 MB storage, no card, and a plan rather than a trial. Static.app: A 7-day trial with no credit card, then paid. 1 site and 50 MB during it.
- **Security check on every publish.** Droply: Every plan, free included: leaked keys, a stray .env, a committed .git folder. Static.app: Not offered.

Static.app figures checked 8 September 2026 on its own pricing page (free tier: 1 site, 50 MB, a 7-day trial with no credit card; Starter $5 a month or $60 a year for 2 sites and 500 MB with a custom domain; Medium $10; Large $15) and on its Claude hosting page, which states that a loose .html file is not accepted and must be zipped, that React-based artifacts need an extra step because you have to ask the model for a self-contained HTML version, and that Import from URL takes claude.ai and claude.site links. Product plans can change.

## When Droply is the wrong choice

bolt.new will happily generate an application with a server in it, and that half of the project cannot be published on a static host by anyone.

- The project has a Node.js backend, an auth flow or a database. Only the front end can be served here.
- You cannot run the build locally. Nothing here builds it for you, and uploading source produces a page that is broken rather than one that is merely unstyled.
- The generated app has a database, a login screen or server actions. Those need a runtime; only the static half of it can be published here.
- You want a build to run here, on upload or on every push. There is no build step and no Git integration: you build locally and bring the output.
- You are running WordPress or another PHP application. A static export of it can be hosted here, but the application itself cannot.

## Frequently asked questions

### How do I host a bolt.new project?

Export and download the project as a zip, unzip it, run npm install and npm run build, then upload the folder the build produced, usually dist. The site is live at an HTTPS address in seconds.

### Can I download my bolt.new project?

Yes. Click the project title in the top left, then Export, then Download. Its own documentation describes this as downloading a zip so you can work on the project outside Bolt in your own code editor.

### Which folder do I upload?

The one the build wrote. For a Vite project that is dist. Not src, and not the project root. If what you uploaded contains a package.json, you uploaded the wrong thing.

### Do I need to run the build myself?

Yes, once, on your own machine. There is no build step here by design: nothing you upload is executed on our infrastructure, which is also why a published site cannot be made to run npm on your behalf.

### Why does every route except the home page 404?

Because the router runs in the browser and a static host answers with a file or a 404 before your JavaScript loads. Turn on the Single-page app switch in the site settings; unknown paths are then served the root index.html. It is free and needs no redeploy.

### What about the backend bolt generated?

It does not run here. This host serves files and executes nothing. The front end publishes fine and can call an API hosted elsewhere, provided that API allows browser requests.

### Can I keep the same link when I rebuild?

Yes. The address belongs to the site, not to the upload, so republishing keeps it. From Pro you can also restore an earlier version when a rebuild makes things worse.

### What if I do not know which framework bolt used?

Read the config file at the root of the project. vite.config.ts is Vite, next.config.js is Next.js, astro.config.mjs is Astro. The deploy guides then name the command and folder for it.

## Other AI tools

- [Lovable hosting](https://droply.host/lovable-hosting)
- [v0 hosting](https://droply.host/v0-hosting)
- [Replit hosting](https://droply.host/replit-hosting)