Hakan Alpay

hakanalpay.com

Personal portfolio — The Index. A kinetic editorial atlas of selected work, where each project opens into a live “display case” (the real site, framed and embedded) with specimen metadata.

Develop

npm install
npm run dev      # http://localhost:5173
npm run build    # → ./build (static)
npm run preview  # serve the production build locally

Add or edit a project

Everything lives in src/lib/projects.js. Add an object to the projects array — its slug becomes /work/<slug>/, the catalogue is renumbered by n, and the live url is what gets framed in the display case. No site code changes needed.

Deployment notes

Deploys to Cloudflare Pages via .github/workflows/deploy.yml. One-time setup:

  1. Repo secrets (Settings → Secrets and variables → Actions):
    • CLOUDFLARE_API_TOKEN — a token with the Cloudflare Pages: Edit permission
    • CLOUDFLARE_ACCOUNT_ID — from the Cloudflare dashboard sidebar
  2. Cloudflare dashboard → Workers & Pages → the hakanalpay project → attach the custom domain hakanalpay.com.

static/CNAME and static/.nojekyll are GitHub Pages artifacts — harmless on Cloudflare Pages (just served as files) and kept only so the repo can fall back to GitHub Pages if ever made public again.