Development¶
Repository layout¶
app/ React application and amber responsive theme
components/ Charts and reusable UI components
lib/ Shared telemetry types and helpers
server/ Python collector, relay, request boundaries, and tests
ops/ LaunchAgent templates and deployment utilities
scripts/ CI source-safety and bundle-budget checks
wiki-site/ Canonical MkDocs project documentation
.github/ CI, security, release, and maintenance automation
Local requirements¶
- Node.js 22 or newer
- pnpm 10.17.1
- Python 3.9 or newer for the server; CI uses Python 3.12
- readsb and an RTL-SDR only when testing live radio collection
Frontend development¶
Install exact dependencies and start the Vinext development server:
The development server listens on loopback. Its API proxy targets a Python server on port 8788, so run a collector or relay there when exercising live data.
Required checks¶
pnpm format:check
pnpm lint
pnpm typecheck
pnpm test
python3 scripts/check-public-source.py
pnpm build
pnpm check:size
Avoid committing dist, work, state directories, databases, logs, tokens, keys, rendered LaunchAgents, or machine-specific verification captures.
Backend test fixture¶
The tests create temporary state and static directories. They cover public read routing, host and origin validation, bearer-token ingestion, telemetry validation, history behavior, local-only writes, CSV safety, and path confinement without requiring a physical receiver.
Documentation preview¶
cd wiki-site
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
mkdocs serve
Edit documentation in the main repository. The release pipeline owns synchronization into the wiki repository.
Change flow¶
- Create a branch from
main. - Make a focused code and documentation change.
- Run the required checks locally.
- Open a pull request and let every required check finish.
- Merge after the protected branch gate succeeds.
- Watch Release deploy, verify, and publish matching documentation.