Turned a pile of posts into something browsable, and the reading surface into something comfortable — all at build time (SSG), closed with a self-test fix pass.
What shipped
- Paginated blog index, category pages, tag pages + a /blog/tags chip index
- One reflow post-card with a persisted grid/list view switcher + category tab bar
- Build-time related posts (weighted tag overlap + category boost) and prev/next nav
- Reading experience — clean header, earned feature image, focus mode + stepped text-size (persisted, no FOUC)
- Dynamic OG cards + cover fallbacks (sharp + SVG, build-time)
- MDX Tabs + Code-group (package-manager sync) and a click-to-load video facade
- Native cross-document page transitions (@view-transition) with card↔detail morphs
A measure that fought back
The reading column moved from a ch-based width to a font-independent rem
capped with min(measure, 100%) — one root cause behind mobile overflow, the
X-Large TOC overlap, and a header narrower than the body.
Reflections
To write: the focus-mode design, why related-posts are build-time not runtime, and the
ch-vs-remmeasure saga.