Personal site for Steffan Harris — a single-page profile (avatar, skills, experience, links, contact) plus a small interactive playground, built with React 19, TanStack Router, and Vite.
- React 19 + TypeScript
- TanStack Router (file-based routing, codegen via
@tanstack/router-plugin) - Vite with the SWC React plugin
- CSS Modules for component styling
- Deployed via Docker on Hetzner, built and pushed by GitHub Actions; reverse-proxied by Caddy, whose config lives in the separate server-config repo
npm run dev— start the Vite dev servernpm run build— type-check and build for productionnpm run lint— run ESLintnpm run prettier-check/npm run prettier-write— check or apply formattingnpm run preview— preview the production build locally
- New technology: CSS subgrid layout, used in the homepage layout rework.