Web Surfer compiles down to a fully self-containedDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/web-surfer/llms.txt
Use this file to discover all available pages before exploring further.
dist/ folder of HTML, CSS, and JavaScript. Because every navigation happens client-side inside the URL hash, the site runs on any static host without server configuration, redirect rules, or a backend. Pick a platform, point it at the build output, and you’re live.
Build
Run the Vite build command from the project root:dist/ with the following structure:
dist/ is static — no Node.js runtime, no API server, no environment variables required at runtime.
GitHub Pages
Push to a deployable branch
Copy the contents of
dist/ to the root of your gh-pages branch, or configure your workflow to deploy the dist/ folder directly. With GitHub Actions you can use the actions/deploy-pages action to publish the build output automatically on every push to main.Configure the Pages source
In your repository, go to Settings → Pages. Under Source, select the branch and folder that contains the built files (e.g.,
gh-pages / root, or main / docs if you copied the output there)..nojekyll file at the root. This empty file tells GitHub Pages to skip its default Jekyll processing, which would otherwise ignore any file or folder whose name begins with an underscore — including Vite’s _ prefixed assets if they appear in future builds.
Netlify
The simplest approach is to drag and drop thedist/ folder onto the Netlify dashboard at app.netlify.com — no configuration needed, your site is live in seconds.
To set up continuous deployment from your GitHub repository instead, connect the repo in the Netlify UI and enter these build settings:
| Setting | Value |
|---|---|
| Build command | npm run build |
| Publish directory | dist |
Vercel
Connect your GitHub repository to Vercel. Vercel auto-detects Vite projects, so the defaults are usually correct — verify the following settings in the project configuration:| Setting | Value |
|---|---|
| Framework Preset | Vite |
| Output Directory | dist |
| Build Command | npm run build (auto-detected) |
*.vercel.app domain immediately, and you can attach a custom domain in the project settings.
Cloudflare Pages
In the Cloudflare Pages dashboard, create a new project and connect your GitHub repository. Set the build configuration to:| Setting | Value |
|---|---|
| Build command | npm run build |
| Build output directory | dist |
*.pages.dev preview URL alongside any custom domain you configure.
Why no redirect rules are needed
Web Surfer uses hash routing — every URL in the app looks likeyoursite.com/#/about or yoursite.com/#/projects. The part after # is the URL fragment, which is never sent to the server. Every request the browser makes — whether for the root, a reload on a deep link, or a direct visit — always requests index.html. React Router reads the fragment on the client side and renders the correct page component.
This means you do not need to configure _redirects files, vercel.json rewrites, or .htaccess catch-all rules. Any static host that serves index.html for the root path will work correctly.