Skip to content

Status: draft | Audience: anyone designing a feature that touches a persona | See also: ../README.md, ../Implementation-Plan.md

Personas

This app is used differently by different people across an AirVenture week, and a feature that serves one persona well can be irrelevant — or actively wrong — for another. The three personas below are not organizational roles; they are the three relationships someone can have with this app: a guest who wants planes to appear with nothing to configure, an operator running the whole command center, and a contributor extending the code underneath it. Each has its own doc built on the same three-part contract: what it must stay aware of, what it keeps current, and what it receives in return.

Every persona's contract is measured against one sentence:

Arrange once, then just watch and listen — when radios overlap, the app shows who's talking and lets the channel that matters win.

Summary matrix

Role Expected awareness Expected action Not expected to
Casual Spotter What's on screen right now; nothing about ATC vocabulary, stream names, or the config file beforehand Install, open, watch and listen to the curated defaults Edit the config file, choose streams, or make sense of raw overlapping radio traffic unaided
Command-Center Enthusiast Every stream's live state, current ducking/priority behavior, device routing, the full multi-monitor layout, the config file's contents Curate the config file, tune priorities and detection thresholds, arrange windows and pop-outs, drive the flight-tracking panel Write code, sign or build installers, keep the video feed list current by hand
Programmer-Aviator The contribution workflow, the codebase's safely-extensible seams, recorded decisions, the config file's structure Extend the codebase, keep docs/changelog/tests current, clear the checks gating a change Curate the defaults a first-time user sees, operate the app live during the show, handle installer signing

Persona docs describe who; each pillar named in the project's requirements has its own doc describing what it does: Audio.md (ATC audio streams), Video.md (the video grid of EAA's live feeds), Tracking.md (the flight-tracking panel).

Alpha priority

The alpha is built for the Command-Center Enthusiast first: the audio engine — this persona's core need — is the first pillar built, and replacing their hand-arranged, two-monitor prototype (below) with something that survives a real AirVenture week is the alpha's real test. The Casual Spotter is the post-alpha north star: alpha ships config-file driven, with unsigned builds (decision 2026-07-18), both real barriers for a guest who has no reason to know the config file exists — signed installers and a management UI, the two changes that would close that gap, are planned, not built. The Programmer-Aviator is served from day one regardless of feature phase: their contract runs through the repository's governance — checks, changelog discipline, computed versions — not through any single pillar shipping first; see ../Implementation-Plan.md.

The prototype this app replaces: landscape monitor (audio players, flight-tracking view, and webcams) and portrait monitor (stacked EAA webcams).