GitHub Pages serves static files directly from a repository branch — which is exactly what Sys.Witch V2 is built for. The pre-compiledDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/sys-witch/llms.txt
Use this file to discover all available pages before exploring further.
assets/ bundles, the root-level index.html, the pages/ subfolder, and the .nojekyll file are everything GitHub Pages needs. No build configuration, no workflow YAML, and no _config.yml are required. Follow the four steps below and your portfolio will be live at a public URL within minutes of uploading.
Required Repository Structure
index.html must sit at the root of the repository — not inside a subfolder. GitHub Pages looks for index.html at the top level of the selected source branch. If it is nested one level deeper, the site will return a 404.
Correct — index.html at repository root:
index.html buried inside a subfolder:
Deploy Your Portfolio
Create a GitHub repository
- Sign in to github.com.
- Select the + icon in the top-right corner.
- Select New repository.
- Enter a repository name (for example:
portfolioorsys-witch). - Set the repository to Public. GitHub Pages is available on public repositories under all plan types.
- Leave Initialize this repository unchecked — you will upload files in the next step.
- Select Create repository.
Upload the theme files
- Open the empty repository you just created.
- Select Add file → Upload files.
- Open your local
sys.witch-v2folder and select all of its contents — including hidden files if your OS shows them (.nojekyllstarts with a dot). - Drag the selected files and folders into the GitHub upload area.
- Verify in the file list that
index.htmlappears at the top level, not nested inside another folder. - Confirm that
.nojekyll, theassets/folder, and thepages/folder were included. - Enter a commit message such as
Initial theme upload. - Select Commit changes.
GitHub’s web uploader does not show hidden files like
.nojekyll in the preview list, but it will upload them if they were selected. After committing, browse the repository file list and confirm .nojekyll appears at the root.Enable GitHub Pages
- Open the repository on GitHub.
- Select Settings from the top navigation bar.
- Select Pages from the left sidebar.
- Under Build and deployment, set the source to Deploy from a branch.
-
Set the branch and folder:
- Select Save.
Verify the live URL
Once GitHub Pages finishes deploying, your portfolio is live at:For example, if your GitHub username is Open the URL and test the homepage, the navigation bar, the particle field background, the Projects and Skills pages, and the Contact form. Confirm that images and stylesheets load correctly before sharing the link.
alysha and your repository is named portfolio:Updating the Published Site
Committed changes to themain branch are republished automatically. GitHub Pages re-deploys within seconds to a couple of minutes after each commit.
To update a file through the GitHub web interface:
- Open the repository on GitHub.
- Navigate to the file you want to edit.
- Select the pencil-shaped Edit this file icon (top-right of the file view).
- Make your changes.
- Select Commit changes and enter a brief description.
- Wait one to two minutes, then hard-refresh the live URL (
Ctrl+Shift+R/Cmd+Shift+R) to see the update.
Important Files Reference
index.html
The homepage and GitHub Pages entry point. It must remain at the repository root. GitHub Pages resolves the base URL https://<username>.github.io/<repo-name>/ by looking for index.html — a file named home.html or default.html will not be found automatically.
.nojekyll
An empty file stored beside index.html. The filename is the entire instruction — it signals to GitHub Pages that the repository should be served as plain static files, bypassing the Jekyll processor. If Jekyll processes the repository, the JavaScript bundles in assets/ may be stripped or ignored.
The .nojekyll file must be:
- Named exactly
.nojekyll(dot prefix, no extension) - Located at the repository root
- Completely empty (zero bytes)
Why _config.yml Is Not Needed
Sys.Witch V2 does not use Jekyll. The assets/main.css and assets/main.js bundles are pre-compiled and require no processing pipeline. Adding a _config.yml is unnecessary and could introduce unexpected behavior. Keep .nojekyll at the root and publish from main and /(root).
Common Problems
404 page — the site is not found at the live URL
404 page — the site is not found at the live URL
Check each of the following:
- GitHub Pages is enabled under Settings → Pages.
- The selected source branch is
mainand the folder is/(root). index.htmlis at the repository root, not inside a subfolder.- The files were not uploaded inside an unnecessary second folder layer (for example
sys.witch-v2/sys.witch-v2/). - The repository name in your browser URL matches the repository name on GitHub exactly — including capitalization.
Blank site or missing styling
Blank site or missing styling
If the page loads but appears unstyled or completely white:
- Open your browser’s developer console (F12 → Console) and check for 404 errors on asset files.
- Confirm that the entire
assets/folder was uploaded, includingmain.cssandmain.js. - Confirm that
components/,data/, andpages/folders were uploaded — the pre-compiled scripts reference these paths at runtime. - Verify that file paths were not changed after uploading. Internal paths are relative and case-sensitive on GitHub Pages.
- Check that filenames have not been accidentally renamed or that capitalization has not changed —
Main.cssandmain.cssare treated as different files.
Images not loading
Images not loading
If project or background images fail to load:
- Confirm that the
images/folder was included in the upload. - Check that image filenames and folder paths match exactly what is referenced in the
data/files and HTML. - Filename capitalization matters —
Screenshot-01.pngandscreenshot-01.pngare different files on GitHub Pages’ Linux servers. - After renaming or replacing an image, commit the change and wait for re-deployment before testing.
Homepage not loading automatically
Homepage not loading automatically
GitHub Pages serves
index.html automatically when a visitor opens the root URL. If the homepage does not load:- Confirm the homepage file is named exactly
index.html— notIndex.html,home.html, or any other variation. - Confirm
index.htmlis at the repository root, not inside a subfolder. - Confirm GitHub Pages is configured to deploy from
mainand/(root).
.nojekyll file looks empty — is that correct?
.nojekyll file looks empty — is that correct?
Yes, that is correct and expected. The
.nojekyll file is supposed to be completely empty. Its presence at the repository root is the signal; its contents are irrelevant. Do not add text, comments, or any content to it. Keeping it empty is the right behavior.Changes committed but not appearing on the live site
Changes committed but not appearing on the live site
GitHub Pages re-deploys automatically after each commit, but it is not instant. Try the following:
- Wait one to two minutes after committing before checking the live URL.
- Hard-refresh the page (
Ctrl+Shift+Ron Windows/Linux,Cmd+Shift+Ron macOS) to bypass the browser cache. - Confirm the commit was pushed to the
mainbranch — commits to other branches will not trigger a re-deploy unless Pages is configured to use that branch. - Open Settings → Pages and check whether GitHub shows a recent deployment timestamp or an error message.
- Confirm you edited the correct file. If two similar files exist in the repository, it is easy to edit one while the page renders the other.