The landing page for keckrich.github.io — a hub that links out to my individual static projects.
This is a user site, so this repo's publish branch serves at the root
https://keckrich.github.io/. It contains only the landing page (index.html,
styles.css, projects.js).
Each project lives in its own repo with GitHub Pages enabled. GitHub
automatically serves any Pages-enabled repo at https://keckrich.github.io/<repo-name>/
— so there's no build script or file copying here. The landing page just links to
each one.
-
In the project's own repo, publish its static build to a Pages source (repo root,
/docs, or agh-pagesbranch) and enable Settings → Pages. It will serve athttps://keckrich.github.io/<repo-name>/. -
Make sure it works under a subpath:
- Base path — Vite:
base: '/<repo>/'· Angular:ng build --base-href /<repo>/· CRA:"homepage": "/<repo>"· React Router:basename="/<repo>". - Client-side routing — add the GitHub Pages
404.htmlredirect trick or useHashRouterso deep links / refreshes don't 404. (Plain multi-page HTML needs nothing.) - Assets — hand-written HTML should use relative paths (
./style.css), not absolute (/style.css).
- Base path — Vite:
-
Back here, append one entry to
projects.js:{ name: "My Project", path: "/my-project/", description: "One line about it.", tags: ["React"], accent: "#4f8cff", }
Commit and push. Done.
Guardrail: don't have both a repo named
<project>and a/<project>folder in this repo — one claimant per path.
Open index.html directly in a browser (project data is inline JS, so no server is
needed), or run python3 -m http.server and visit http://localhost:8000.
Settings → Pages → Source: "Deploy from a branch" → master / / (root).
There's no build step, so the published branch is just these source files.