sage@afterdark~~/colophon
·UPDATED · 2026-05-04Colophon
How this site is built, in case you want to build one too. The whole stack is open and copy-able.
// the stack
- FrameworkNext.js 16 (App Router · Turbopack · RSC)
- LanguageTypeScript strict
- StylesTailwind v4 (@theme tokens, no plugin layer)
- TypeGeist Sans + Geist Mono via next/font
- ContentMDX + gray-matter + Zod-validated frontmatter
- HostingVercel (edge runtime where applicable)
- Domainsageafterdark.com (Cloudflare DNS)
- Repogithub.com/JasonTeixeira/sage-after-dark (private until launch)
// design system
- Eight-color base palette. Two accents (cyan #00E5FF · ember #F59E0B).
- Seven pillar colors used only as 1px borders, tag chips, and reading progress bars.
- 66ch editorial reading column. clamp() type scale. Tactical grid at 24px / 1% alpha.
- Geist Sans body, Geist Mono for tactical labels (uppercase, 0.08em tracking).
- WCAG AA contrast floor. Focus rings global. All motion gated by prefers-reduced-motion.
// authoring
- Posts live in `src/content/posts/*.mdx` — six templates in `src/content/_templates/`.
- Frontmatter is validated by Zod at build time. Bad metadata fails the build before it ships.
- Each post declares one of seven pillars and one of six templates; the layout is selected automatically.
// thanks
The team at Vercel — for shipping the right primitives.
The team at Cloudflare — for the seven seconds of DNS propagation.
Geist's designers at Vercel — for the cleanest variable font on the modern web.
Every blog I've ripped off in spirit: Pixel Aircraft, XOTC, Robin Sloan, Maggie Appleton, Patrick McKenzie.