A browser interface for a Meshtastic network — LoRa radios that route around whatever's missing.

Every radio is a relay. A packet floods outward, gets rebroadcast by whoever hears it, and dies at a hop limit rather than at a routing table. Kill any node above and the traffic simply takes a longer road.
Hop count is the whole cost model. There's no bandwidth to speak of — a few hundred bits per second — so the interface is built around text, position and telemetry, not anything resembling a feed.
Nodes were live on the mesh and visible on the handhelds, but the web interface showed nothing at all. Two separate faults in the MQTT path, stacked, both of which looked exactly like "the mesh is down."
Zero nodes in the interface while packets were visibly arriving and the handhelds showed a healthy neighbour count.
Never subscribed to msh/US/2/json/e/#. The topic carrying node info simply wasn't in the subscription list.
An envelope-format decoding gap — packets that did arrive were unwrapped incorrectly and dropped before they reached the node table.
When the radios and the dashboard disagree, the radios are right. Debug the bridge, not the mesh.
It shares a purpose with NovarAC — communications that don't assume infrastructure — but at a different range and a different price. Same instinct that runs through everything here: don't build a mind, or a network, that falls over the moment the cloud does.
Hundreds to thousands of miles. Needs a licence, a rig, an antenna, and a PC running a closed modem binary.
A few miles per hop, further with elevation. No licence, $30 a node, runs on a coin cell for days.
Both landed on a browser front end over a local server, so the same tablet drives either backend. The launcher handles a uv-managed Python install and forced --break-system-packages.
Nothing in the path may require the internet to be up. MQTT is a convenience, never a dependency.