Skip to content
willowark

Engineering, in public

How this site is built.

A static site rendered from content in git, guarded before every build, publishing proof and copy from the company's own operating system through pull requests, and measured against budgets it publishes here. For a firm selling engineering judgment, showing our own numbers is the portfolio piece.

Numbers from the last build · September 3, 2026

willowark.com, as a systemhandoffwebhookhandoffhandoffRESTRESTContent in gitMDX, JSON, TSCompany OSpublishes via PRPrebuild guards6 scriptsNext.js buildstatic HTMLEdgeimmutable assets/api/trackbeacon → PostHogVisitor

Hover or focus a component to see what it is and what it talks to. Arrow keys move between them.

Content in git renders to static HTML at build; guards run before the build; the OS publishes proof and copy through pull requests; a small beacon carries analytics server-side; the Company OS reads the same database.

Components:

  1. Content in git (MDX, JSON, TS): 52 posts, 74 sub-services, 33 industries, 83 locations, 8 capabilities — every word version-controlled.
  2. Company OS (publishes via PR): Testimonials, proof metrics and site copy leave the OS as pull requests, so publication has a git trail.
  3. Prebuild guards (6 scripts): Landmarks, contrast, content minimums, similarity, links, payload ratchet. A failing guard fails the build.
  4. Next.js build (static HTML): Every route prerendered; JSON-LD, sitemap lastmod and the visible Reviewed dates all derive from git commit times.
  5. Edge (immutable assets): Static HTML and hashed assets; the nav tree and the US dot map are cached once, not inlined per page.
  6. /api/track (beacon → PostHog): A ~1 KB beacon forwarded server-side replaced a 272 KB analytics library.
  7. Visitor: Gets HTML that works with JS off, under reduced motion, in print, and in the dark.

Connections:

  • Content in git to Prebuild guards over handoff
  • Company OS to Content in git over webhook
  • Prebuild guards to Next.js build over handoff
  • Next.js build to Edge over handoff
  • Edge to Visitor over REST
  • Visitor to /api/track over REST
The system as built, at the level of detail the client has cleared.

Payload, last build

Routes prerendered
294
Average HTML
152 KB
Heaviest
240 KB · /
Lightest
73 KB · /terms

The target is 130 KB per route and 110 KB on the home page. The heaviest pages are the ones that lead with a live system diagram — inline SVG that is serialized twice, once as HTML and once for React — and the ratchet stops any route growing more than 3% above its recorded size while the rest come down.

Guards that run before every build

  • check-landmarks

    One <main> per document; no double-branded titles.

  • check-contrast

    WCAG contrast for every documented colour pair, both themes.

  • validate-services / -industries / -locations

    Content minimums per entry; no invented percentages or dollar figures.

  • check-similarity

    Pairwise shingle similarity across 190 programmatic pages; fails above 70%.

  • check-links

    Crawls the built site; fails on any broken internal link.

  • check-payload

    Per-route HTML ratchet against a committed baseline; nothing may grow more than 3%.

The tokens

  • willow#1E5BBFthe one accent
  • midnight#0B1220gravity
  • cloud#F5F7FArhythm
  • mist#DCE8F8hairlines
  • slate#667085secondary text
  • signal#C2703Alive state only

One accent, one warm signal reserved for live state, a dark theme that swaps roles rather than inverting pixels, and a contrast lock in the build that fails below 4.5:1 for text and 3:1 for indicators — in both themes.

Stack

Next.js 15 (App Router, static generation), React 19, Tailwind 4 on brand tokens, MDX content, Postgres via Drizzle shared with the Company OS, PostHog behind a server-side beacon, Sentry. Diagrams are SVG drawn in code — see any case study or the architecture sketch.

Strategy. Software. Systems.

Want your systems built with this much care?

The same discipline goes into the machine vision cell, the gateway on the DIN rail, and the software behind them.