Goal
A place to show my work, fully under my control, that reflects how I like to build: small, fast, accessible, and a little playful.
It covers where I’ve been and what I’m working on, with more depth than a LinkedIn profile.
Approach
- Built a static Astro site in strict TypeScript, with no UI framework and only a few small client scripts
- Paired with Claude Code, working in gates under written rules and a decision log
- Designed a retro pixel design system: a fixed 16-color palette with semantic roles, 2px borders, notched corners, and stepped motion
- Checked every color pairing for WCAG AA in light and dark mode, and made all motion reduced-motion safe
- Self-hosted every font, so the site makes no third-party requests
- Hid a few easter eggs around the site
Outcome
- Learned Astro: content collections with typed frontmatter, and build-time image optimization
- Learned GitHub Pages, deploying through GitHub Actions rather than from a branch
- Went deeper on DNS: A and AAAA records for the apex domain, a CNAME for
wwwthat redirects to it, and HTTPS enforced - Went deeper on CI: every push to
mainis type-checked and built, then deployed with short-lived OIDC tokens instead of stored secrets - Signed every commit with an SSH key
- Stripped all metadata, including GPS, from photos at export