How it's made.
The tools and decisions behind this site.
- Astro 5
- Static site generator. Fast builds, zero client JS by default, first-class MDX content collections. The right tool for a content-driven portfolio.
- Tailwind CSS
- Utility-first styling with the Typography plugin for prose content. Custom black-and-gold palette with ink/paper/gold tokens.
- MDX
- Markdown with components. Project pages and blog posts live as content collections with typed frontmatter.
- TypeScript
- End to end. Config, utilities, content schemas — everything typed.
- Netlify
- Automatic deploys from Git, form handling for the contact page, and edge-optimized CDN. Push to main and it's live.
- Typography
- Geist for sans (display + body), Geist Mono for labels and metadata, Instrument Serif Italic for the gold accents. Loaded from Google Fonts.
- Palette
- Black
#050505, warm off-white#f4f1ea, brushed gold#e6b54a. One gold beat per section, never more. - Syntax highlighting
- Shiki with the
github-dark-dimmedtheme.
- Cursor + Neovim
- Primary editors. Cursor for AI-assisted workflows, Neovim for speed.
- Git CLI
- Version control the old-fashioned way.
This site follows a few community conventions:
- /now page — what I'm focused on right now
- /uses page — the tools and hardware in my daily setup
- This page — a colophon, documenting how the site itself was built