ZEQULARD
中文

Colophon

How this is made, and what was left out.

Versions

Next.js 16.4.0
App Router, Cache Components, Partial Prerendering, Turbopack
React 19.3.0
Server Components; client code only for the contact form and language switch
Tailwind CSS 4.3.3
Tokens declared in CSS with @theme
nuqs 2.10.2
Server-side search param parsing for /stack

Type & colour

Latin set in Fraunces with optical sizing on, so the name and the body text come from one family at different optical sizes. Chinese falls back to Noto Serif TC. Labels in IBM Plex Mono. Sizes follow a fluid clamp() scale.

Near-black ground, warm off-white type, hairline rules, and one muted sage accent. No colour blocks, no equal-size card grid.

Cache contract

/
Static shell; the “Now” line streams per request
/work
Cached list · cacheLife days · tag work
/work/[slug]
Prerendered per language and slug · tags work, work:[slug]
/stack
Unfiltered map in the shell; filtered URLs stream
/now
Short-lived · cacheLife minutes · tag now
/colophon
Static, build time only
/contact
Static page; Server Action works without JavaScript

Deliberate omissions

No analytics
Nothing here needs to know who you are.
No CMS yet
Content lives in code until Payload earns its place; the read functions are the seam.
No client-side typing script
The name is typed with CSS and respects reduced motion.
No tech-logo wall
The stack page names decisions, not brands, and every row links to proof.
No light theme
One palette, done carefully, beats two done halfway.
Not everything is translated
Prose that matters is bilingual; tool names and code stay as they are.