Skip to content(if available)orjump to list(if available)

Standalone Meshtastic Command Center – One HTML File Offline

Subtextofficial

I built a standalone, offline-first command center for Meshtastic mesh networks that runs entirely inside a single HTML file. There’s no backend, no installation, and no internet connection required. It works on laptops, tablets, phones, and some smartwatches using only native browser APIs.

Key Features

One self-contained HTML file (51KB)

Works fully offline (PWA)

Connects via Bluetooth, WiFi, or USB Serial

Real-time map of all mesh nodes

Metrics: RSSI, SNR, hop count, routing details

Message console + logs

No frameworks, no build tools, no cloud services

Why I built it Existing tools rely on mobile apps or desktop programs that depend on OS permissions, cloud APIs, or network access. For emergency communications, off-grid operations, research teams, and field deployments, I wanted a universal interface that would work anywhere, on any device, under any conditions.

Looking for feedback on:

Hardware compatibility (especially T-Watch S3, RAK, Heltec)

Browser behavior across different platforms

Missing features you’d like to see

Ideas for v2 and beyond

This is still early, and feedback is very welcome. Thanks for taking a look.

— Jordan Townsend

jon9544hn

So sick! Congrats!

exabrial

Tangential: Is there a commercial hand-held waterproof (ip67) enclosure for the RAK4631? Tons of 3d prints, only a handful of submergible designs, and while I'm thankful for those authors, there really isn't anything that could take a serious dunk that I've found.

xyzzy_plugh

Maybe I'm missing something but it's not a self contained file if it has external imports. It appears to be using unpkg CDN for CSS and JS. There's also multiple files, no license file, a server in python (???) and many, many indications that this is just AI slop.

yorwba

Yeah...

  // Parse Meshtastic protobuf data here
  // This is a simplified example - actual implementation needs protobuf parsing
  console.log('Received BLE data:', data);

Uhhrrr

If it works despite being a mess, I think there should be a somewhat less protective term than slop. Goulash?

semanticist

There’s no reason to think this works fine given the readme mentions the author is waiting on their first meshtastic device to test against and the install instructions include ‘insert download link here’.

It’s a shame this is just slop, an approach like this could be interesting, using web APIs instead of native apps… but iOS Safari doesn’t support Web Bluetooth so it’s not going to work on iPhones at all which is a big unmentioned limitation.

Probably because it’s untested AI slop.