Skip to content

Colophon

#meta#tooling

This site is a Next.js App Router project. Every article — this one included — is an .mdx file in content/, read at build time and rendered on the server. Publishing is writing a file and committing it.

The stack

LayerChoice
FrameworkNext.js (App Router) + TypeScript
StylingTailwind CSS v4, tokens in globals.css
ContentMDX + frontmatter, read from the filesystem
HostingVercel, auto-deploying from main

Frontmatter

Every file carries the same shape. Missing fields fail the build rather than rendering a blank page:

type Frontmatter = {
  title: string
  date: string      // ISO — "2026-08-28"
  summary: string
  tags?: string[]
  draft?: boolean   // keeps a file in the repo, out of listings
  updated?: string  // shown when newer than `date`
}

Constraints worth naming

  • One primary accent color, used only for links, tags, and small marks. One second, bounded colour — a warm copper tone — marks the subject noun in a pillar title, and appears nowhere else. Two colours total, not a palette.
  • A reading measure of roughly 68 characters, enforced by a single utility.
  • No component hard-codes a color or a font. Tokens or nothing.
  • Sections are siblings in one collection, not separate apps.

The point of the constraints is that adding the fiftieth article should be exactly as cheap as adding the second.

A word on the pillar labels

"Engineering" is the word every pillar title shares; the word in front of it is the only thing that changes. Snowpiercer's Wilford styled himself L'Ingénieur Éternel to a train that worshipped him for it. I'd rather the pillars made the same point without anyone having to worship anything — hence the colour, not the title.