Architecture overview
Source of truth:
docs/architecture/rna8-platform-architecture.md— this page is a public summary. Internal research and competitive analysis lives indocs/research/.
The problem
Modern recreational sailboats are packed with digital systems — chartplotters, autopilots, radars, VHF radios, AIS transponders, battery monitors, solar controllers, watermakers, weather instruments — but the software that ties them together is fragmented, proprietary, closed, and insecure. Every manufacturer builds their own walled garden. Garmin doesn’t talk to Raymarine. Weather data lives in one app, passage planning in another, electrical monitoring in a third.
The four-layer model
┌─────────────────────────────────┐
│ Cloud services │ ← weather, routing, PKI, ingest, AI gateway
├─────────────────────────────────┤
│ Apps │ ← chartplotter, instruments, KB, electrical
├─────────────────────────────────┤
│ Hub OS │ ← Docker stack running on the hub hardware
├─────────────────────────────────┤
│ Hub hardware │ ← Mac mini / RPi + NMEA dongle(s)
└─────────────────────────────────┘
Hub is the hardware — a Mac mini or Raspberry Pi plus off-the-shelf NMEA dongles. Hub OS is the Docker stack that runs on top: the data bus, the app runtime, and the on-boat agent. Apps sit on top of the OS and run in capability-scoped WASM sandboxes. Cloud services are Fly.io-hosted microservices (weather, routing, AIS ingest, PKI, AI gateway).
Architecture thesis: four north stars
The platform is built around four invariants derived from security audits of the two dominant open-source marine platforms (SignalK + Victron):
| # | North star | What it prevents |
|---|---|---|
| a | Default-deny LAN | Auto-trust exploits (SignalK MSS-SK-2026-0003) |
| b | Mandatory plugin sandboxing | Host-process RCE via postinstall scripts |
| c | mTLS everywhere — including in-vessel | Plaintext LAN interception |
| d | Capability-scoped plugins | Over-privileged plugin access |
These are not independent decisions — softening one weakens the others.
Monorepo layout
| Directory | Purpose |
|---|---|
apps/site | Community site + hosted tools (Astro 5 + React 19) |
apps/svc-* | Cloud Fly.io services |
apps/scanner | Marine security scanner |
packages/electrical | Energy planner + wiring-diagram components |
packages/chart-app | Chartplotter (per-boat only) |
packages/bus | Shared data-bus library |
packages/weather-service | Weather provider abstraction + isochrone math |
packages/tide-engine | Harmonic tide math |
supabase/ | Migrations + local config |
Further reading
docs/architecture/rna8-platform-architecture.md— full architecture documentdocs/architecture/adr-001-two-apps-pattern.md— ADR: site vs admin splitdocs/research/platform-and-architecture/— marine data layer ADRs- Data layer — bus, mTLS, and the NMEA ingest pipeline