The design record

Every decision, and every alternative that lost.

Each milestone gets a numbered design doc: the decisions made, the alternatives rejected and why, and acceptance criteria. This page is a map into them.

Start here

Quick links

Components

gawk-server/

The Go relay — WebTransport endpoint, pub/sub hub, cluster-mode federation. Image + Helm chart.

gawk-app/

React SPA — landing/join, broadcaster, viewer. Image + Helm chart.

gawk-broadcast-desktop/

Native Windows broadcaster in Rust — Windows.Graphics.Capture and Media Foundation, single static EXE.

gawk-telemetry/

Optional per-session diagnostics — ingest, history, dashboard, MCP. Off by default.

gawk-admin/

Optional moderation portal — fleet-wide kill, durable ID/IP bans, OIDC-gated operator SPA, signed webhooks. Off by default.

e2e/

Browser E2E harness — headless Chrome decoding real relayed frames, plus a kind cluster tier.

docs/

Numbered design docs, one per milestone — decisions, rejected alternatives, acceptance criteria.

Licensing

Apache-2.0 rather than MIT because this is a codec and transport project, and Apache-2.0 carries an explicit patent grant from every contributor. Every component ships a generated THIRD-PARTY-NOTICES.md listing what is actually linked into that artifact, and CI gates every dependency against a permissive allowlist. The one non-standard entry: the Windows broadcaster's GUI uses Slint under its Royalty-free Desktop License v2.0.