witch-dev uses hash-based routing — all URLs look likeDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/witch-dev/llms.txt
Use this file to discover all available pages before exploring further.
https://yoursite.com/#/about rather than https://yoursite.com/about. The fragment (#/about) is handled entirely in the browser by React Router; the server always receives a request for the same root path. This means you can deploy to any static host without configuring URL rewrite rules, _redirects files, or 404.html fallbacks. Drop the dist/ folder anywhere and it works.
GitHub Pages
GitHub Pages is the most natural home for witch-dev. The.nojekyll file is already committed to the repository, and the hash-routing strategy requires zero server configuration.
Enable GitHub Pages in repository settings
- Go to your repository on GitHub.
- Click Settings → Pages (in the left sidebar under Code and automation).
- Under Source, select Deploy from a branch.
- Choose the branch (
main) and folder (/ (root)) — or use thegh-pagesbranch with thedist/directory if you prefer to keep built files on a separate branch. - Click Save.
Access your live site
Once published, your site is available at:Navigate directly to
https://<username>.github.io/<repo>/#/about, /#/projects, /#/skills, /#/writing, and /#/contact to confirm all routes load correctly.(Optional) Automate builds with GitHub Actions
Instead of manually running
npm run build and committing the dist/ folder, use a GitHub Actions workflow to build and deploy automatically on every push to main. See the GitHub Actions workflow section below..nojekyll file
The .nojekyll file tells GitHub Pages to skip Jekyll processing entirely. Without it, GitHub Pages would attempt to process your output through Jekyll, which silently drops any file or directory whose name starts with an underscore — a problem because Vite outputs assets to dist/assets/ and generates chunk filenames that can include underscores.
The
.nojekyll file is already present in the repository root. If you deploy the dist/ folder via GitHub Actions (using peaceiris/actions-gh-pages), the action copies this file automatically when you set publish_dir: ./dist. If you deploy the repo root directly, the root-level .nojekyll covers you.GitHub Actions workflow
This workflow runsnpm ci && npm run build on every push to main, then publishes the dist/ directory to the gh-pages branch using peaceiris/actions-gh-pages. GitHub Pages is then configured to serve from that branch.
Create .github/workflows/deploy.yml in your repository:
peaceiris/actions-gh-pages automatically creates a .nojekyll file in the gh-pages branch root. No extra configuration is needed.- Go to Settings → Pages → Source and switch the branch to
gh-pages, folder/ (root). - Push any commit to
main— the workflow runs, builds the site, and publishesdist/togh-pages. - GitHub Pages serves the updated site within a minute.
Netlify
Netlify supports Vite out of the box. You can deploy in two ways: Drag-and-drop (no account setup required):- Run
npm run buildlocally. - Go to app.netlify.com/drop.
- Drag the
dist/folder onto the upload zone. - Netlify assigns a random URL (e.g.,
https://random-name-123.netlify.app) and deploys immediately.
- Log in to Netlify → Add new site → Import an existing project.
- Connect your GitHub repository.
- Set the build settings:
- Build command:
npm run build - Publish directory:
dist
- Build command:
- Click Deploy site.
Because witch-dev uses hash routing, you do not need to add a
_redirects file or configure netlify.toml with rewrite rules. All routes resolve client-side.Vercel
Vercel auto-detects Vite projects and configures the build pipeline automatically. Deploy via Vercel CLI:npm run build as the build command and dist as the output directory automatically.
Deploy via Vercel dashboard:
- Go to vercel.com/new → import your GitHub repository.
- Vercel detects Vite and pre-fills the build configuration.
- Click Deploy.
Custom domain
To use a custom domain (e.g.,www.yourname.dev) with any static host:
For GitHub Pages — add a CNAME file to the public/ directory in your source (Vite copies it to dist/ automatically):
- Add a
CNAMErecord:www→<username>.github.io - Or use
Arecords pointing to GitHub’s IP addresses for an apex domain.