Notes on how this site is built. Typography, palette, and the pipeline behind the build.

01 · typography

displayFraunces variable italic, weights 500 + 600
sansInter, weights 400 + 500
monoJetBrains Mono, weights 400 + 500
ruletwo weight points per family — Inter 400/500, JetBrains Mono 400/500, Fraunces 500/600

02 · palette

  • #0a0a0cpage background
  • #16161celevated surface
  • #2a2a30hairline borders
  • #fafafaprimary text
  • #b5b5bfbody secondary
  • #8b8b95micro labels only
  • #ff5b3aprimary accent
  • #c93d20emphasis + quotes
  • #3dd68cin production
  • #ffb800review required

03 · rules

borders0.5px hairline only
motionverve.anim throughout — SSR-declared, reduced-motion aware, zero hand-written JS
gradientsbanned (the 3D scene vignette is the one exception)
shadowsbanned
theme toggleabsent on purpose

04 · build

frameworkVerve, SSR, pure Zig
serverstd.http.Server, std.Io
contentmarkdown via tools/content_gen, compile-time tables
motionverve.anim — SplitText, ScrollTrigger, ScrollSmoother, FLIP, MorphSVG, Draggable
3dverve.gl — procedural PBR asset baked at build time, WebGL2 from wasm
bundlingsingle binary, comptime asset embed
compressionBrotli q11 + gzip pre-emitted at release
hostingFly.io today

05 · this build

built2026-06-13
commit
zig0.16.0
sirhco.dev