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