Building the Station Console

2026-10-07 by N8NAT builds

A web console to see and drive the whole station. The centerpiece is a live routing map that shows, at a glance, where a signal is flowing and where it dies. Built fast, dark, and offline-safe.

Overview

Once a station does several things at once, you need to see all of it in one place. The console is that place: a web dashboard that shows the station’s health and lets you drive it, from the browser on any device on the network.

The design goal was plain: fast, dark, and offline-safe. No heavy front-end framework, no dependency on a service in the cloud. It has to work when the internet does not, because so does the station.

The routing map

The centerpiece is a live signal-routing map. The station’s paths are drawn as a graph, each hop colored by health, and the active path animates when traffic is flowing. One glance tells you where a signal is and, more usefully, where it stops.

  radios --> hat --> bridges --> gateway / AllStar --> repeater
             (each hop: green ok / yellow check / red down)
             (the live path animates while traffic flows)

A status list tells you the same facts. A map tells you the story. When something breaks, you see the red hop immediately instead of reading down a table.

How it is built

The server is FastAPI. The pages update with HTMX and server-sent events rather than a single-page app, which keeps it small and quick: the server renders HTML, the page swaps in the parts that changed, and live events stream in. No build step, no megabytes of JavaScript.

The look is a dark design system with a few switchable themes, monospace readouts for the instrument-panel feel, and everything served locally so there is nothing to fetch from a CDN.

The health model

Each hop rolls up from two things: whether its service is running, and its live quality where that exists. Those roll up again into one overall status, so the top of the dashboard answers the first question you ever ask: is the station healthy right now.

Around the map are the working pages: a live last-heard feed, HF propagation, host vitals with scoped service control, configuration editing, Winlink, and the radios.

Lessons

  • A map beats a status list. Same facts, but the map shows you the shape of the problem instantly.
  • HTMX and server-sent events are enough. For an instrument panel, server-rendered HTML plus live events beat a single-page framework on both size and simplicity.
  • Offline-safe is not optional for a station. If the dashboard needs the cloud to render, it fails exactly when you need it most.