Colophon
This site is a small, fast, and opinionated home on the web. Here is the stack and the thinking behind how it is built.
Foundation
- Next.js App Router with React 19 and TypeScript for the core application.
- Tailwind CSS v4 plus a lightweight global stylesheet for custom utilities and animations.
- Fonts are loaded with next/font: Playfair Display for titles and EB Garamond for body text.
Content and publishing
- Content lives in the repo under the content directory as Markdown and MDX.
- Velite compiles the content at build time, with MDX support for richer posts and pages.
- Headings get automatic anchors, and code blocks are highlighted with Shiki via rehype-pretty-code.
- The blog table of contents is generated from MDX headings and kept in sync on scroll for quick navigation.
Motion and UI
- The site theme and color palette are hand-crafted by me.
- Framer Motion powers the drawer, subtle reveals, and interactive transitions.
- Icons come from lucide-react, with custom SVG assets in public.
Data and integrations
- The Spotify "Now Playing" module is backed by a server route that calls the Spotify API for currently playing song.
- The inline weather badge uses the OpenWeather API, cached at the route level.
Deployment
- The site deploys automatically to Vercel on every push to main, with continuous integration running on pull requests.
- End-to-end tests run with Cypress to catch regressions before deployment.
Performance notes
The site keeps dependencies minimal, relies on static content where possible, and uses Next.js image optimization for media.