Step 1: Get the project out of Bolt
Step 1: Download it as a zip
Bolt's docs: open the project, click the project title at the top left, then Export, then Download. Unzip it.
Step 2: Or connect GitHub
Click the GitHub icon at the top right of the project and follow the prompts (Bolt asks for an individual GitHub account). Bolt commits your changes and checks GitHub every 30 seconds for changes made outside Bolt. The repository starts private, on a main branch.
Step 3: Run it locally once
Bolt's docs suggest
npm install && npm run devin the project folder. If it runs on your machine, you know what you are moving.
Step 2: Work out what you are hosting
Bolt's docs say it builds JavaScript web projects: front-end code in any browser framework, and Node.js for a backend. They do not name one default stack, so read package.json.
- Front end only (a
buildscript, no server started bystart): runnpm run buildand host the folder it writes, oftendist/, as a Static site. - A Node.js server (
startlaunches a server): host it as a Node.js site. - Uses Bolt Cloud's database, sign-in, storage or server functions: see the last section before you move anything.
Step 3a: A front end, as a static site
Step 1: Build it
Run
npm installandnpm run build. Set any build-time variables the code reads first.Step 2: Put the output in a public repository
VeloxaHost's Git deploy clones a public https repository and stores no credentials, and Bolt's repository starts private. Push the build output to a separate public repository; it is exactly what every visitor downloads anyway.
Step 3: Create the site and deploy
In the console: Websites, Add Website, your domain, Static as the hosting type. Then on the site's page, Deploy from Git with the repository URL and branch, and Deploy Now. Unknown paths fall back to
index.html, so client-side routes work.
Step 3b: A Node.js server, as a Node.js site
Step 1: Make it listen on port 3000
A VeloxaHost Node.js site runs your app on Node 22 from
/opt/appand forwards your domain to the port inPORT, which is 3000. Check that the server listens onprocess.env.PORT.Step 2: Make the build part of starting
Deploys run
npm ci(ornpm install) and restart the app, but nevernpm run build. If the app needs a build, add"prestart": "npm run build"to the scripts inpackage.json.Step 3: Create the site and deploy
Websites, Add Website, Node.js as the hosting type, Start Command empty for
npm start. Deploy from a public repository; set secrets withsystemctl edit veloxa-appin the site's console. The Node.js hosting page has the details.
Step 4: Your domain and HTTPS
Step 1: Add the DNS records
The site's page lists an A record for the domain and for www, and a TXT ownership record. Add them where your domain's DNS is managed.
Step 2: Take the domain off Bolt
Bolt's docs say custom domains on Bolt hosting need a Pro plan, and when you switch a project between hosts they have you disconnect the domain and unpublish first. Do the same, then remove the DNS records that pointed at Bolt.
Step 3: Let HTTPS issue
Once the records resolve and the TXT record verifies, the site goes live and its certificate is issued and renewed automatically.
If the app uses Bolt Cloud
Bolt Cloud gives projects a database, sign-in, file storage and server functions. Bolt's docs, as we read them, do not say whether those keep working when the front end is served from another host or how to export the database, and its Netlify page says projects that need a database or a backend should stay on Bolt hosting.
So treat a Bolt app with a backend as two jobs: a front end that moves with the steps above, and a backend you would rebuild, for example with your own database on a VeloxaHost server. If that is more than you want, keeping Bolt hosting is a reasonable answer.