Colophon

My previous personal site was at morwalz.com. It stopped resolving some years ago, and the link to it is still sitting in my GitHub bio, pointing at nothing. This is the replacement, and this page is the part where I explain the decisions — because a site that argues for making infrastructure invisible ought to show its own working.

Decisions

  1. 01

    One hue, pinned

    Every neutral on this page — background, borders, body text — is hue 222°. Only lightness and chroma move across the ramp. That is why the site reads blue without a blue element in sight. The azure accent has exactly three jobs: link text, focus ring, and the wash behind a hovered row. It is not allowed a fourth.

  2. 02

    The rule down the left

    A hairline with a tick at every section. It is an oscilloscope axis, which is what I spent four years at MNIT looking at before I ended up writing JavaScript instead. It is also the only decoration on the site, and it earns its place by doubling as structure.

  3. 03

    Dates on everything

    A date is a claim you can check. So is a download count. There are no adjectives on this site describing how good anything is — only numbers, with the day they were true.

  4. 04

    Almost no motion

    One easing curve and three durations: 120ms for hovers, 180ms for state, 400ms for the theme toggle. Text never moves — only the two photographs fade in, and they do it on the compositor through CSS scroll-driven animation, with no IntersectionObserver and no animation library. A page that re-animates every paragraph reads as restless, and the reading is the point. All of it sits behind prefers-reduced-motion.

  5. 05

    Wide-gamut, where it exists

    The accent ships a Display P3 variant behind a feature query. On a modern display it is visibly more electric; on sRGB nothing changes and nothing breaks. Fifteen lines of CSS for a detail only other engineers will notice, which is the point.

  6. 06

    It should still work in 2031

    Static output, system-standard fonts served locally, no third-party scripts, no runtime dependencies to rot. I build things for banks that have to survive a decade and an audit. It would be strange to hold my own site to a lower standard.

Stack

Next.js 16 · React 19App Router, statically generated. Every page is a file on a CDN.
Tailwind CSS v4Design tokens declared once in CSS custom properties, consumed everywhere.
Schibsted GroteskInterface, navigation, list rows.
NewsreaderProse and pull quotes. Set at 400 — never bold, because a serif this good does not need help.
JetBrains MonoDates, counts, labels, section numbers. All metadata, nothing else.
No analyticsNo cookie banner either, because there is nothing to consent to.

Credit where it is due

The layout owes a great deal to the genre of personal sites kept by engineers who write — left-aligned, one column, reverse-chronological, quiet. It is a good genre. I did not try to improve on it.