32°N Developers Docs Architecture Overview

Architecture overview

Source of truth: docs/architecture/rna8-platform-architecture.md — this page is a public summary. Internal research and competitive analysis lives in docs/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 starWhat it prevents
aDefault-deny LANAuto-trust exploits (SignalK MSS-SK-2026-0003)
bMandatory plugin sandboxingHost-process RCE via postinstall scripts
cmTLS everywhere — including in-vesselPlaintext LAN interception
dCapability-scoped pluginsOver-privileged plugin access

These are not independent decisions — softening one weakens the others.

Monorepo layout

DirectoryPurpose
apps/siteCommunity site + hosted tools (Astro 5 + React 19)
apps/svc-*Cloud Fly.io services
apps/scannerMarine security scanner
packages/electricalEnergy planner + wiring-diagram components
packages/chart-appChartplotter (per-boat only)
packages/busShared data-bus library
packages/weather-serviceWeather provider abstraction + isochrone math
packages/tide-engineHarmonic tide math
supabase/Migrations + local config

Further reading

  • docs/architecture/rna8-platform-architecture.md — full architecture document
  • docs/architecture/adr-001-two-apps-pattern.md — ADR: site vs admin split
  • docs/research/platform-and-architecture/ — marine data layer ADRs
  • Data layer — bus, mTLS, and the NMEA ingest pipeline