DOCS
manual — how the site actually works01reading the site#
Every page is a route inside one shell — the .crt wrapper owns the topology field, the topbar owns navigation, and content lives in a single centered column. The rail on the left edge of every card is a live status stream, not decoration: mint means the thing it marks is actually running.
Counters and readouts are real samples. If a number is decorative it says so or doesn't exist — honest telemetry is the one rule the whole surface obeys.
02moving around#
The topbar icon rail is the whole sitemap — canvas, projects, devblog, blog, docs, wiki, about, stats, contact. Each glyph prefetches on pointer-enter, so clicks land instantly. The mint tick under a glyph marks the active route.
Inside pages: the wiki has a query box and anchor permalinks, docs has the scrollspy rail you're probably reading this in, blog posts live at stable slugs. Every heading on a doc section carries a # permalink.
03render engine#
The background is a topology stream rendered on a ladder of paths — worker + WebGL2 at the top, CPU cell computation below, a main-thread Canvas2D painter as the floor. The engine picks a rung, shows you which, and moves rungs when the device can't hold cadence.
Queue latency is not GPU utilization — the stats page samples draw cost, RAF cadence, and fence age every 240ms and shows the raw numbers.
// the ladder, top to bottom rung gpu-worker webgl2 field, pooled compute rung gpu-main webgl2 field, main raster rung cpu-worker cell compute off-thread rung cpu-main 2d painter — always available
04motion & reduced-motion#
Every animated primitive checks prefers-reduced-motion live — mid-cascade, not just at mount. Decode cascades resolve instantly, the field renders a single static frame, spinners hold their idle glyph. Nothing is removed; everything is settled.
Low-power devices tick at half cadence with index advances compensating — lowPower() gates that per frame budget.
05card language#
The anchor component is translucent glass: rgba(.22) fill, backdrop blur, hairline border, corner brackets, edge rail — over a 16px +-lattice terrain on every card. Locked projects add a dashed badge and a ⊘ watermark — closed source is a visual state, not a footnote.
Hover fires the diagonal light sweep and, on v2 surfaces, a cursor-tracking mint wash via --mx/--my vars. The wash is a background layer — content stays crisp.
06decode & type#
Decode is the type primitive — text resolves out of a scramble of its own characters with per-section delays from one choreography map (T in lib/site.ts). Measured-width cells mean a cascade never rewraps a line.
ReDecode is the v2 addition — same engine, but re-fires on hover/focus. Page titles use it: touch a heading and it decodes again.
import { Decode, ReDecode } from "./components/type"; <Decode text="one-shot cascade" delay={0.15} duration={0.5} /> <ReDecode text="re-fires on hover" delay={0.15} duration={0.5} />
07stack#
Next.js app router + TypeScript, css partials with no ui kit, ui-monospace everywhere. The field engine is canvas2d/webgl2/workers by hand. Deploys are Vercel under *.xcy.cx — each project its own deployment.
next dev # local tsc --noEmit # type gate next build # ship gate
08contributing#
The repos are personal infrastructure — most are closed or source-available-but-not-accepting-PRs. Bug reports and protocol ideas land best through contact channels with a reproduction or a trace. Commit style is area: change — why.