Skip to main content

Colophon

A colophon traditionally describes how a book was made. This is how this website is made—the tools, the stack, and the thinking behind the decisions.

The Stack

Next.js 14Framework

App Router with React Server Components. Fast builds, great DX, zero-config deployments.

VercelHosting

Edge functions, automatic preview deployments, and analytics. Push to deploy.

MDX + gray-matterContent

Markdown with JSX components for blog posts. Frontmatter parsed with gray-matter.

Vanilla CSSStyling

No Tailwind, no CSS-in-JS. Just custom properties, Grid, and Flexbox.

System fontsTypography

SF Pro on Mac, Segoe UI on Windows, Roboto on Android. Zero font loading.

PlausibleAnalytics

Privacy-respecting analytics. No cookies, no tracking, GDPR compliant.

ButtondownNewsletter

Simple email newsletters without the bloat. Markdown support, clean design.

Design Philosophy

This site is intentionally simple. Not minimal for aesthetics, but simple because simplicity is maintainable, fast, and honest.

  • No build complexity

    The fewer dependencies, the fewer things break. I can understand every line of this site.

  • Progressive enhancement

    Content works without JavaScript. Interactivity is an enhancement, not a requirement.

  • Fast by default

    Server components, static generation, system fonts, minimal JS. Speed isn't optimized in—bloat is optimized out.

  • Respect for visitors

    No cookie banners because no tracking cookies. No pop-ups. No dark patterns. Just content.

  • Write once, own forever

    Content lives in MDX files I control. No CMS lock-in. I can move this anywhere.

Why I Made These Choices

Vanilla CSS over TailwindTailwind is great, but I wanted to deeply understand CSS. Writing it by hand taught me more than utility classes ever could.
System fonts over web fontsEliminates FOUT, reduces page weight, and system fonts look native. The performance win is free.
MDX over a CMSI write in my editor, commit to git, and deploy. No admin panel, no database, no API calls.
Plausible over Google AnalyticsI just need page views and referrers. I don't need to know your browser fingerprint.
App Router over PagesServer components, streaming, and layouts. The future of React is server-first.

Features

  • RSS and JSON feeds
  • Auto-generated sitemap
  • Dynamic Open Graph images
  • Full-text search
  • Dark mode (system + toggle)
  • Reading progress indicator
  • Keyboard navigation
  • Print stylesheet
  • Syntax highlighting
  • Series/collections support

View the Source

This site is open source. Poke around, steal ideas, or open an issue if something's broken.

GitHub Repository →

Last updated: March 2026