aykhan.net is the flagship repository of a small constellation of three independent,
statically‑hosted sites, each deployed to GitHub Pages on its own domain:
| Domain | Repository | Role |
|---|---|---|
| aykhan.net | this repo | E‑portfolio + Terminal Gateway |
| media.aykhan.net | media.aykhan.net |
Public media host + media-index.json |
| data.aykhan.net | data.aykhan.net |
Static JSON "API" + data-index.json |
The site is built from plain, framework‑free HTML/CSS/JS so GitHub Pages can serve the repository root directly — no server runtime, no build step required to view a page.
- Terminal Gateway — a single‑page, vanilla‑JS terminal at
/terminalthat browses the public services and their static JSON indexes. - Shared
<head>build — a tiny Node tool keeps the<head>of every shell page in sync from one partial, while preserving each page's own title and description. - Read‑only by design — no uploads, no auth, no API keys, no secrets. Everything the site exposes is public static content.
- Theme‑aware — light/dark theming driven by CSS variables, set before first paint.
| Concern | Choice |
|---|---|
| Markup / styles / behaviour | Vanilla HTML, CSS (custom properties), ES (no framework) |
| Tooling | Node + pnpm for the head build only |
| Hosting | GitHub Pages (master → aykhan.net via CNAME) |
| Fonts | IBM Plex Sans / IBM Plex Mono |
# Install dev tooling (only needed for the head build)
pnpm install
# Regenerate the shared <head> across all shell pages (writes in place)
pnpm build
# CI-style check that committed heads are already up to date (exits 1 if stale)
pnpm build:check
# Preview locally — root-absolute asset URLs require HTTP, not file://
python3 -m http.server # then open http://localhost:8000/The standout feature: a single‑page, vanilla‑JS terminal at /terminal that
switches between the three services and browses their public JSON indexes — strictly
read‑only, with no backend, tokens, or auth. Service URLs and colour themes are declared at
the top of terminal/terminal.js.
aykhan.net/
├── index.html # Landing page
├── terminal/ # Terminal Gateway (single-page vanilla JS)
├── home/ # Shared CSS / JS / images (site.css, landing.css, shell.js)
├── tools/ # build-heads.js + head.html partial
├── projects/ books/ notion/ cyber-security/ piano/ … # Section pages
├── achievements/ # Certificates & badges
├── legacy/ # Older pages (not part of the head build)
├── CNAME # aykhan.net
└── package.json # pnpm scripts: build, build:check
Released under the MIT License © 2023 Aykhan Ahmadzada.