GitHub Pages offers free, reliable static hosting for public repositories — making it the natural home for a v-doom portfolio. Because the repo already contains the compiled build output, deployment is a straightforward push with no build pipeline required. This guide walks you through every step from fork to live URL.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/v-doom/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you start, make sure you have:GitHub Account
A free account at github.com. Your portfolio URL will be based on your username.
Git Installed
Git must be installed locally. Verify with
git --version in your terminal.Content Ready
Your persona strings swapped out in
assets/main.js. See the Static Export guide.Fork and Deploy
Fork the repository
Open github.com/apursley2012/v-doom and click the Fork button in the top-right corner. GitHub will create a copy of the repo under your account with all pre-built assets intact.
Name your repository
Choose your deployment style before cloning:
- Root domain portfolio — In your fork’s Settings → General, rename the repo to
<your-username>.github.io. Your site will be served athttps://<your-username>.github.io. - Project page — Keep any other name. Your site will be served at
https://<your-username>.github.io/<repo-name>/.
You can only have one root-domain Pages site (
<username>.github.io) per account. If you already have one, use a project page name instead.Customize your content
Replace the placeholder persona with your own details in Refer to the Static Export guide for a full walkthrough of content customization.
assets/main.js. At minimum, update your name:Enable GitHub Pages
In your repository on GitHub:
- Go to Settings → Pages
- Under Source, select Deploy from a branch
- Set Branch to
mainand the folder to/ (root) - Click Save
URL Patterns
GitHub Pages supports two distinct hosting patterns depending on how you name your repository:| Repo name | Live URL | Use case |
|---|---|---|
<username>.github.io | https://<username>.github.io | Primary personal portfolio |
| any other name | https://<username>.github.io/<repo-name>/ | Project page or secondary site |
#/about, #/projects) — the base URL path never changes after the initial page load.
Custom Domain
To serve your portfolio from a domain you own (e.g.portfolio.yourdomain.com):
1. Add a CNAME file to the repo root
Create a file named CNAME (no extension) containing only your domain:
CNAME
yourdomain.com), use four A records pointing to GitHub’s IP addresses instead — see the GitHub Pages DNS documentation for the current addresses.
3. Finalize in GitHub Settings
- Go to Settings → Pages → Custom domain
- Enter your domain and click Save
- Once DNS propagates (up to 24 hours), tick Enforce HTTPS
Automatic Updates
Once Pages is enabled, every push tomain triggers a new deployment automatically. GitHub Actions runs a built-in workflow that detects the changed files and re-serves the updated content — usually live within 60 seconds.
To see deployment history and status:
- Open your repository on GitHub
- Click the Actions tab
- Look for workflows named pages build and deployment
Troubleshooting
404 on direct URL navigation
404 on direct URL navigation
Assets not loading (blank white page)
Assets not loading (blank white page)
If the page loads but renders blank, assets are failing to load:
- Verify that
.nojekyllis present in the root of your repository. Without it, GitHub Pages runs Jekyll which can suppress certain files. See The .nojekyll File for details. - Open the browser DevTools Network tab and check for any failed requests. Asset paths in
index.htmlstart with./assets/— if the base URL has shifted (e.g. project page vs root domain), the paths should still resolve correctly because they are relative. - Confirm
assets/main.js,assets/main.css, andassets/proxy.jsare all present in the repo.
Site not updating after push
Site not updating after push
GitHub Pages deployments usually complete within 60 seconds, but can occasionally queue:
- Check the Actions tab for a running or failed pages build and deployment workflow.
- If the workflow failed, click into it to read the error log.
- If the workflow shows green but the site is stale, perform a hard refresh or open an incognito window to bypass your local cache.
- GitHub Pages has a status page — check it if deployments seem stuck system-wide.
Custom cursor not working
Custom cursor not working
The occult cursor is driven by a
mousemove event listener and CSS pointer-events. This is a browser behavior, not a deployment issue:- Touch/mobile devices do not fire
mousemove— the custom cursor is intentionally desktop-only. - Some browsers in accessibility or kiosk modes override custom cursors via CSS.
- If you are testing locally over
file://protocol, switch to a local HTTP server (npx serve .) — certain browser security restrictions apply tofile://origins.