This site is a hand-rolled static setup focused on speed, clarity, and long-term ownership. I keep the stack lightweight, keep the writing first, and let the structure evolve as the content grows.

Stack and Build

  • Content lives in Markdown with YAML frontmatter, grouped by type inside posts/ (posts, newsletter, links, projects, thoughts, til, work, and more).
  • A custom SSG written in Go (in this repo) reads the Markdown, parses frontmatter, and renders HTML using Go templates.
  • The SSG generates per-type feeds and pages, tag/series indexes, RSS feeds, and a sitemap.
  • Static pages like About/Contact/Now/Colophon live in static/ and are rendered through the same templating pipeline.

Rendering Details

  • Go templates in templates/ define shared layout and per-post/per-page views.
  • Content is turned into HTML with Goldmark and a few custom extensions (SQL playground, embeds).
  • The build outputs to public/, which is the deployable static site.

Deploy and Hosting

  • The site is built as static HTML/CSS/JS and served from public/.
  • GitHub Pages is used for hosting.
  • Netlify functions are used for lightweight automation (CMS actions, sync triggers, build hooks).
  • A scheduled sync script can import newsletter posts from Substack into posts/newsletter/.

Notes on Design

  • Minimal layout and typography to keep reading fast and distraction‑free.
  • A light/dark theme toggle is available, with syntax themes matched to the current mode.
  • Seasonal effects are subtle and opt‑in (only after clicking outside the article area).