32°N Platform

Platform

Five layers. One platform.

32°N is built in five layers: hardware on the boat, the bus that ties every device together, the OS that runs the apps, the apps themselves, and the cloud services that connect the boat to the internet. Each layer has a clear job and a clean interface to the layer above and below it.

Nothing here is accidental. The layering is what lets me build a growing catalogue of apps without turning the whole thing into spaghetti — and what lets you fork, extend, or self-host any piece of it.

The five layers

How it stacks up.

Hardware at the bottom, cloud at the top. Each layer only depends on the layer below it. Apps never talk to hardware directly — they talk to the platform.

05 · CLOUD AI gateway Sync engine Weather data Share links Hosted hub option Container images 04 · APPS · NARROW · REPLACEABLE Chartplotter Weather Passage Anchor watch Electrical Logbook Comms Security + more 03 · OS · PLATFORM SERVICES Identity Data store Event bus AI gateway Audit log Sync MCP server Agents Sandbox 02 · BUS · NATIVE DATA EXCHANGE Typed events Source-tagged Timestamped Versioned schema Subscribe model Device ↔ hub ↔ cloud 01 · HARDWARE · ON THE BOAT Mac mini hub NMEA-2000 gateway Instruments + sensors AIS receiver Battery monitors WiFi / BT add-ons

What's on each layer

Layer by layer.

Each layer has sub-pages that go deeper. The pills below link to those pages — they are being built out now, so some will 404 until they land.

01
Hardware

The physical things on the boat.

Two pieces of off-the-shelf hardware do most of the work: a Mac mini running inside the nav station and a standard NMEA-2000 gateway plugged into the boat's instrument network. The Mac mini runs the OS, the apps, and local AI inference. The gateway translates every instrument reading into data the platform can use.

I also support a handful of add-ons — Victron battery monitors over Bluetooth, WiFi-connected weather stations, AIS receivers. They all feed through the same ingestion pipeline. You are never writing a new driver because you bought a different brand of GPS.

The hardware layer is the foundation. Everything above it assumes these things are running.

02
Bus

How every part of the system talks to every other part.

The bus is the data exchange layer — the spine that connects the hardware below it to the OS and apps above. Every sensor reading, state change, and event flows through it as a typed, timestamped, source-tagged message. Apps subscribe; they do not poll.

This is not SignalK, not a third-party message broker, not a format I bolted on later. It is 32°N's own native bus, designed from the start to be the thing all the other layers depend on. The schema is open and versioned in the public repo.

Communications between the hub and connected devices — phones, tablets, remote clients — also go through here. One bus, one data model, many consumers.

03
OS

The operating system that runs on the hub.

The 32°N OS is the software layer that boots on the hub, starts the platform services, and manages the apps. It handles identity, the local data store, the event bus, the AI gateway, the audit log, and the sync engine. Apps get all of that for free by targeting the platform contracts — they do not wire it up themselves.

Security is baked in from the start. Every device that connects to the hub goes through registration and is scoped to specific permissions. The audit log is structured, queryable, and tamper-evident. Nothing connects that has not been explicitly admitted.

The OS runs on a Mac mini today. Other hub platforms come after 1.0 — the architecture does not depend on Apple Silicon, that is just the right hardware for where we are now.

04
Apps

Narrow, replaceable, each doing one job well.

The apps are the things sailors actually use: the chartplotter, the weather router, the anchor watch, the logbook, the electrical planner, the passage planner, the security audit tool. Each one does one job. None of them know about each other. They all know about the platform.

Writing a new app means implementing the platform contracts — not negotiating proprietary device protocols, not reinventing identity or sync, not building your own AI integration. The platform hands all of that to you on arrival. That is how I can build a growing catalogue of apps without the whole thing becoming unmaintainable.

The extensions model means anyone can build apps on top and distribute them through the same registry. AGPL-3.0 means the licence terms are clear and the same for everyone.

05
Cloud

The internet-facing services that connect the boat to the world.

Some things genuinely need the cloud: syncing your data across devices, pulling in live weather forecast models, routing AI requests to frontier models, share links so you can send your passage plan to someone. The cloud layer handles all of that.

I run a hosted instance. You can also point the cloud layer at infrastructure you control — any provider, or a server in your house. I publish container images. Same code either way; the licence prevents a "cloud edition" that quietly diverges.

If you are off-grid with no satellite link, the hub keeps working. The cloud layer is where capability expands, not where the product breaks down.

Build something on top.

The platform is designed to be extended. New apps target the same contracts the built-in apps use — the same identity, data, bus, and AI access. The extensions model lets you distribute through the same registry. Read the developer guide for the full picture: schemas, contracts, deployment shapes, and the SDK.

Read about 32°N.

The demo lets you explore the chartplotter, cockpit instruments, and the platform UI without any hardware. The about page has the back-story — why I started building this and where it is going.