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.
@sveltejs/adapter-static (fully prerendered)static/fonts/,
not from a CDN) · Space Grotesk (UI)master → GitHub Actions builds and publishes to
Cloudflare Pages (project hakanalpay), served at hakanalpay.com.
Repo is private; Cloudflare Pages keeps it live without making it public.npm install
npm run dev # http://localhost:5173
npm run build # → ./build (static)
npm run preview # serve the production build locally
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.
Deploys to Cloudflare Pages via .github/workflows/deploy.yml.
One-time setup:
CLOUDFLARE_API_TOKEN — a token with the Cloudflare Pages: Edit permissionCLOUDFLARE_ACCOUNT_ID — from the Cloudflare dashboard sidebarhakanalpay 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.