Skip to content

About these docs

This site is the estate’s documentation platform for tcp.systems. It is a static build of Markdown that already exists in the repositories that own it, wearing the estate’s design canon. Nothing here is deployed; the build output is a directory and the deploy is a decision, not a detail.

PartWhere it livesWhat it does
Generatordocs/docs-site/package.jsonAstro with the Starlight integration, pinned to exact versions
Configdocs/docs-site/astro.config.mjsPicks the brand file at build time from DOCS_BRAND
Themedocs/docs-site/src/styles/canon.cssThe canon’s faces, size ramp, geometry, shadow and motion, mapped onto Starlight’s variables
Branddocs/docs-site/src/styles/brands/One file per front door: the accent, and on tcp.systems the Wire data colour
Folddocs/docs-site/scripts/sync-docs.mjsReads this repository’s own docs, injects frontmatter, writes the pages
Terminal window
cd docs/docs-site
npm install # 279 packages, measured 2026-10-21
npm run build # folds the sources, then builds to dist/
DOCS_BRAND=foxcore npm run build

Three brands build from one content pipeline:

  • tcp — Ember for action and identity, Wire #1F6F6B light / #6FC3BC dark for measured data only.
  • foxcore — Ember only. No data hue: a measured value is marked by a rule and tabular figures.
  • xenode — inherits Ember; machine-first labels, so navigation and eyebrows are set in Commit Mono.

A copy drifts. The capacity programme, the wayfinder map and the worker fleet are operating documents that change when the company changes; a docs site that holds its own duplicate of them is wrong within a week and nobody notices, because the wrong copy is the one people read.

So the pages for those sections are gitignored build artefacts. The committed document is the source. The fold fails the build when a source disappears, rather than shipping an empty section.

  • No third-party request. Fonts are self-hosted from docs/docs-site/public/fonts, 55,504 bytes for four files. Search is Pagefind, indexed at build time. No analytics, no font CDN, no embedded video.
  • No second palette. Values come from the canon; a brand file may set an accent and nothing else.
  • No decorative motion. Hover and focus only. Nothing enters, nothing counts up, nothing shimmers.
  • No card shadows. A card is separated by a hairline. One shadow exists, and it belongs to overlays.

The design canon is a decision document in the Foxcore ops repository (foxcorecloud/ops, docs/design/design-direction-v2-2026-10-21.md): two faces, one hue per front door, one radius, one shadow, a motion contract and a banned-tells registry. This site implements it rather than restating it, so the canon has one home.