Privacy-first • browser-only • ToolHub style

Bolt → Static Website Exporter

This MVP is fully working in the browser for the part that can be done without Node: it extracts an existing static build from your ZIP (dist/ for Vite, out/ for Next export), previews it inside the app, lets you replace images, and downloads a new ZIP.

Important: If your ZIP contains only React source (no dist/out), the app cannot produce an “exact” static site in-browser. In that case it will guide you to export from Bolt (or build once locally) and then re-upload.

No server uploads Service Worker preview Image swap ZIP export
1) Upload Bolt ZIP
We read the archive locally and look for static output folders (dist/out). No uploads.
Upload the ZIP you downloaded from Bolt.new. For an exact static output, the ZIP must include a built folder: Vite: dist/Next export: out/
2) Preview & Convert
We load the detected static build into a preview (via Service Worker) and optionally rewrite clean URLs.
Progress
0%
Detected build root
URL mode
As-is
Optionally convert SPA to folder-per-page only if HTML pages exist.
Preview tip: this works best when your export already contains HTML pages and assets (a real static build). If it’s an SPA-only build, preview will still work, but “folder-per-page” can’t be invented.
Interactive Preview
This preview loads your real exported HTML/CSS/JS from the ZIP inside the app.
Click images in preview to replace them.
Load preview to enable the iframe.
Note: This uses a Service Worker. It requires hosting on https (your ToolHub on Cloudflare is perfect). It will not work on file://.
Project Analysis
We scan your ZIP to detect framework hints and static blockers.
Waiting
Framework
Build output
HTML pages found
Total files
Issues
Files
Wizard
Log
Conversion + preview actions.
No log yet.