Repository navigation
ADR 0003 Community Platform
Patrick Stähle edited this page Oct 30, 2026
·
1 revision
Snapshot of
docs/decisions/0003-community-platform.mdat commit707b4a0, preserved before the docs were compacted. History only: the current specs are in the repository.
On hold since 2026-10-29: 0007.
Date: 2026-10-19 · Status: proposed
Users will save, find, edit and share programs (and later designs such as LED patterns or game concepts) on a community platform. The Config App is the editor; the platform stores and shares.
- The platform lives in this repository under
platform/, released with its own tags (platform-vX.Y.Z). - The program format becomes a standalone contract:
spec/program.schema.json(JSON Schema, versioned withPROGRAM_FORMAT). Firmware validator, app and platform check against it. - The app talks to the platform through a documented HTTP API (
spec/platform-api.yaml, OpenAPI), like it talks to pods through config-api.md.
Answers so far are in the platform spec and ADR 0004.
- Hosting and backend: managed (Supabase / Firebase / Cloudflare D1+Workers) or own server? → own TypeScript service on managed EU Postgres (0004).
- Accounts: email login, GitHub / Google login, or anonymous publishing with edit links? → email magic link + passkeys, no passwords (spec §3.1).
- What is shared: single programs, whole sets (.zip), includes/libraries, LED designs? → programs (with revisions), presets, sets; plus training results inside clubs (spec §3). LED designs later.
- Forking and versions of shared programs; attribution. → immutable revisions, fork links the source revision (spec §3.3).
- Licence of shared content (e.g. CC BY 4.0) and moderation / reporting. → CC BY 4.0 default, CC0 optional, reports + admin hide (spec §3.3). Who moderates is still open.
- Offline: does the app cache community programs like its own workspace? → yes, the app stays offline-first; installed content is cached, results queue offline (spec §5.4).
- Privacy (GDPR): what is stored about users, where (EU hosting?). → EU only, minimal data, minors club-managed (spec §8).
- Athlete profiles and results (epic #37, #48): who creates and owns an athlete profile (coach, club, the athlete), who may see the results, and how an athlete is linked to an account. → the club owns profiles and results; coaches add them; coaches see their teams' results, the athlete their own; a profile is linked by an invitation the athlete accepts (spec §3.2, §3.7).
- Consent for athlete data, including minors (parental consent), and how it is recorded. → the coach confirms it when adding the profile; date and user are stored (spec §8, P23).
- Retention and deletion of results; export of an athlete's data (GDPR access / portability). → kept until deleted; deleting a profile deletes its results; a claimed profile's results are in the athlete's data export (spec §8, P24).
- Results are performance data about people: EU hosting and data processing agreements for the chosen backend. → EU only (Hetzner, managed EU Postgres, EU mail provider), data processing agreement for clubs before PL3 goes live (spec §8).
For users and coaches
Repository and workflow
Firmware
- Firmware Overview
- Firmware Architecture
- Firmware Link Protocol
- Firmware Config API
- Firmware Programs
- Firmware Testing
- Firmware Timing
- Firmware Host Syntax Check
Config App
Community platform (on hold)
Decisions (ADRs)
- Decisions
- ADR 0001 Repo Layout and Workflow
- ADR 0002 Versions and Firmware Delivery
- ADR 0003 Community Platform
- ADR 0004 Platform Architecture
- ADR 0005 Live Results over BLE
- ADR 0006 No OTA
- ADR 0007 Platform on Hold
Archive