Skip to main content

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.

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.

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

1

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.
2

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 at https://<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.
3

Clone your fork

git clone https://github.com/<your-username>/<repo-name>.git
cd <repo-name>
4

Customize your content

Replace the placeholder persona with your own details in assets/main.js. At minimum, update your name:
# macOS
sed -i '' 's/VALERIUS DOOM/YOUR NAME/g' assets/main.js

# Linux
sed -i 's/VALERIUS DOOM/YOUR NAME/g' assets/main.js
Refer to the Static Export guide for a full walkthrough of content customization.
5

Commit and push

git add .
git commit -m "feat: add my portfolio content"
git push
6

Enable GitHub Pages

In your repository on GitHub:
  1. Go to Settings → Pages
  2. Under Source, select Deploy from a branch
  3. Set Branch to main and the folder to / (root)
  4. Click Save
GitHub will queue a deployment immediately.
7

Visit your live site

Wait one to two minutes for the first deployment to complete, then open your URL:
  • Root domain: https://<your-username>.github.io
  • Project page: https://<your-username>.github.io/<repo-name>/
You can monitor deployment progress under the Actions tab of your repository.

URL Patterns

GitHub Pages supports two distinct hosting patterns depending on how you name your repository:
Repo nameLive URLUse case
<username>.github.iohttps://<username>.github.ioPrimary personal portfolio
any other namehttps://<username>.github.io/<repo-name>/Project page or secondary site
v-doom works correctly with both patterns because hash routing keeps all navigation within the fragment (#/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
portfolio.yourdomain.com
Commit and push this file. GitHub Pages will automatically detect it. 2. Configure your DNS At your DNS provider, add a CNAME record pointing your subdomain to GitHub Pages:
portfolio.yourdomain.com  →  CNAME  →  <your-username>.github.io
For a root/apex domain (e.g. 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
  1. Go to Settings → Pages → Custom domain
  2. Enter your domain and click Save
  3. Once DNS propagates (up to 24 hours), tick Enforce HTTPS
DNS propagation typically takes 5–30 minutes for subdomain CNAMEs but can take up to 24 hours for apex domains. The Enforce HTTPS option won’t appear until GitHub has successfully provisioned a TLS certificate for your domain.

Automatic Updates

Once Pages is enabled, every push to main 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:
  1. Open your repository on GitHub
  2. Click the Actions tab
  3. Look for workflows named pages build and deployment
Each run shows the deployed commit SHA and a direct link to the live URL.

Troubleshooting

v-doom uses hash routing, so navigating to /#/about should never produce a 404 — the browser never requests a new path from the server. If you are seeing 404s:
  • Confirm all files in pages/ (About.html, Contact.html, etc.) were pushed and are visible in your GitHub repository.
  • Check that your Pages source is set to main branch, / (root) — not a docs/ folder or a different branch.
  • Try a hard refresh (Ctrl+Shift+R / Cmd+Shift+R) to bypass any cached redirect.
If the page loads but renders blank, assets are failing to load:
  • Verify that .nojekyll is 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.html start 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, and assets/proxy.js are all present in the repo.
GitHub Pages deployments usually complete within 60 seconds, but can occasionally queue:
  1. Check the Actions tab for a running or failed pages build and deployment workflow.
  2. If the workflow failed, click into it to read the error log.
  3. If the workflow shows green but the site is stale, perform a hard refresh or open an incognito window to bypass your local cache.
  4. GitHub Pages has a status page — check it if deployments seem stuck system-wide.
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 to file:// origins.
GitHub Pages is free for public repositories with no bandwidth caps for reasonable personal portfolio traffic — ideal for a developer portfolio that you want live 24/7 without paying for hosting.

Build docs developers (and LLMs) love