Analysis

UMBC talk shows MeshPages turning Meshtastic into web transport

MeshPages turns Meshtastic into a tiny web transport, with Brotli-compressed pages, chunking, and Air Traffic Control to keep the mesh from choking.

Sam Ortegawritten with AI··2 min read
Published
Listen to this article0:00 min
Share this article:
UMBC talk shows MeshPages turning Meshtastic into web transport
AI-generated illustration
This article contains affiliate links, marked with a blue dot. We may earn a small commission at no extra cost to you.

A field-status page, an event board, or an offline documentation kiosk all make sense until you try to squeeze them through Meshtastic’s tiny payloads. That was the point of the UMBC Linux Users Group talk on May 6, when alumnus Devon Slonaker walked through MeshPages, a project that tries to turn an off-grid radio mesh into something closer to a lightweight web server.

Meshtastic is already built for hard cases. The project describes itself as an open-source, off-grid, decentralized mesh network for affordable, low-power devices, and its official docs say messages ride over LoRa radios and can be retransmitted up to three times if no acknowledgment comes back. Meshtastic began as a way to keep hiking buddies connected when cell service disappeared, then grew into something people now use in search and rescue, disaster recovery, and grid-down scenarios. MeshPages is an attempt to push that same hardware into a new role.

The idea grew from a simple experiment: sending images over Meshtastic, despite the rough 200-character message limit people associate with the platform. From there, the project moved into chunking larger payloads, rebuilding them on the far side, and rendering HTML content on the client. The presentation described MeshPages as a FastAPI-like framework for endpoints, with GET-like requests, TCP-style and UDP-style support, and a built-in Air Traffic Control system to manage mesh usage. In the project’s own framing, that turns Meshtastic into a transport layer for pages, images, audio, video, and even LLM responses.

That is the part worth pressure-testing. Meshtastic’s documentation puts the real hard stop at a 256-byte maximum packet size, and it also tracks channel utilization and airtime as device metrics. That is a very different world from normal web delivery, where browser rendering, repeated requests, and heavy assets are basically free. MeshPages answers by compressing HTML with Brotli, tagging packets with chunk metadata, and reassembling the result before rendering. It is clever, but it also makes the limits obvious: this is for short, local, low-refresh content, not a substitute for the modern web.

The project’s GitHub repository backs that up with practical details. It presents MeshPages as a FastAPI-like interface for serving web pages over Meshtastic mesh networks, supports radios connected by USB serial, Bluetooth BLE, or network TCP, and currently asks for Python 3.14 or later. The Python library behind Meshtastic already supports SerialInterface, TCPInterface, and BLEInterface, so this is not a one-off hack bolted onto the side of the ecosystem.

What emerges is a useful test case for the whole community. MeshPages makes the strongest case for local-status pages, emergency information boards, neighborhood bulletins, and offline docs that only need to move a few hundred bytes at a time. It is still a poor fit for anything chatty or image-heavy, but as a proof that Meshtastic can carry application data instead of just text, it is one of the more convincing experiments the mesh has seen.

Know something we missed? Have a correction or additional information?

Submit a Tip

Never miss a story.

Get Meshtastic updates weekly. The top stories delivered to your inbox.

Free forever · Unsubscribe anytime

Discussion

More Meshtastic News