From GitHub markdown files and a Google Drive folder to a full agentic context platform. This is the complete design and product history — every version linked, every era annotated. The kind of record that matters when you're building something that might last.
Relay existed before it was built. The first "version" was a GitHub repository of markdown files and a Google Drive folder of documents — briefs, decision logs, product specs, and context scattered across the exact tools the product would eventually solve.
The problem was lived before it was named. AI sessions were starting blank. Context was lost every time a session ended, a contractor finished, or a document moved. The only way to carry anything forward was copy-paste. Relay was the answer to a question being asked daily.
Patent-reviewed. Full Loop program. Primer-aligned design tokens. Cloudflare Turnstile, consent-gated analytics, OTP email verification, access code flow, and a complete dark/light/auto theme system. The version that shipped on lawyer sign-off.
Every word reviewed. Every claim considered. The product is fully real here — real pricing, real architecture, real auth. The site and the product finally match each other.
The interface works in black & white first — neutral surfaces carry the structure, brand type joins, then teal arrives as touch points. The v3.4 teal-tinted light surfaces (#f5faf9 / #edf7f5) and teal-grey text were retired. Teal is a layer, not a foundation: icons, focus rings, the mark, buttons, Codes — and #00D9C8 reserved for motion only.
The accent-fill shipped at #0d9488, ratified under 7HZQAX alongside the interface direction. RCTX-240 was the follow-up against that pairing — white on #0d9488 is 3.74:1 and fails AA at button sizes — and it closed on 2026-08-12: the fill moved to #0f766e at 5.47:1 (AA). #0d9488 stays as --rly-accent-ui for non-text only (icons, rings, the mark), where 3.5:1 clears the 3:1 floor. relay-tokens-v35.css became the single source of truth across app, console, marketing, email, and errors. Syne retired — Outfit carries the wordmark and UI, Cormorant Garamond the editorial display, JetBrains Mono the Codes.
Since ratification the era has grown a written half — six composition guides carrying law v1, closing with voice in August — and a portable one: the asset pack, the mark in three inks with a full transparent-PNG matrix. It also raised the material question that ended it. The ink flip asked whether light mode could keep the bright teal and move the ink instead of darkening the fill — and underneath it sat a flatter finding: every light-mode semantic colour lands within half a point of every other, so none of them ranks. Both went into v3.6, where one was answered and one still stands.
The direction inverts. Until now relay-design-tokens.json was generated from a hand-edited stylesheet. Now the JSON is the file a human edits and everything else is emitted from it — six adapters, because a shared stylesheet cannot reach every surface: email clients and React Native have no CSS custom properties at all, so they need literal values written for them. What it replaced: 12 independent token files across 6 repos, one lone sync script, 379 files carrying a hardcoded teal, and three MkDocs sites each restating the whole palette by hand.
The inversion is proven lossless — all 50 colour tokens round-trip with exactly the intended deltas and nothing else, and the relay-app adapter is separately proven a drop-in: it preserves the seven app-only tokens and the values where app and estate legitimately differ, now declared in the generator rather than discovered later. Drift became checkable the same day — scripts/check_tokens.py joins the checker set on the vocabulary checker's baseline pattern, so only increases fail and the 169 concept prototypes carrying historical values are recorded rather than repainted.
One colour actually moved. --indigo went #6366f1 → #585fee — it was missing AA by 0.03 (4.467:1) while carrying 11–13px text, and the retired value was simultaneously live in relay-app and all three MkDocs themes. The other intended delta, the ink flip, was built and then rejected — the story below.
The eras above are the design system. This is what actually
reached a URL, and which era it was running when it did. The two move at different speeds:
a system version can be canon for weeks before any public page adopts it, and the apex has
run a page older than the system since April. Projection, not source — the
rows are drawn from marketing/CHANGELOG.md, MANIFEST.md and the
deploy workflows. Change a release there first, then here.
marketing/web/; the v1–v5, v3.4 and v3.5 generations become the record rather than the working set./api/waitlist removed. Forces the single-door register: the soft “just get updates” path stops being an option, which later settles a copy question without anyone arguing it.{4,10} pattern had been rejecting every real minted code.web/relayctx/, plus the apex token file brought to the generated v3.6 set — which is what fixes the AA failure the “Coming soon.” row carries. Content-only, no new files, deploy list untouched, and the apex token file comes to the generated v3.6 set in the same change. Era 8.main.v35-neutral, v35-bold); the direction pick is the gate. Un-stealthing is additive, not a redesign — the interim page is a collapsed Home + Register of that same IA, on the same tokens and the same register flow.deploy-staging.yml carries the console and the API service and contains zero references to web/relayctx/; relay-creative is Pages with main = production. Three routes: add the apex to the staging scp list, use a Pages preview branch as the review surface, or stand up the relay-web repo that REFERENCE.repo-strategy.md has proposed and never built.