Extend your Meshtastic range by 4ร
MeshXT adds compression and error correction to Meshtastic LoRa networks. Zero dependencies. Drop-in compatible. Open source.
What is Meshtastic?
Meshtastic is an open-source project that turns affordable LoRa radios into a long-range, off-grid mesh communication network. No cellular towers, no internet, no subscriptions โ just radio waves bouncing between nodes up to 50km apart.
It's used by hikers, emergency responders, off-grid communities, and anyone who needs communication when infrastructure fails. Messages hop from node to node across the mesh, extending far beyond any single radio's range.
The hardware is cheap (ยฃ15-30 per node), the firmware is open source, and the community is growing fast โ with over 50,000 nodes deployed worldwide.
LoRa has limits
Meshtastic uses LoRa (Long Range) radio, which is brilliant at low-power communication over distance. But there's a fundamental trade-off: longer range means lower data rates. At maximum range, you're sending just a few bytes per second.
Every wasted byte is a wasted opportunity. Stock Meshtastic sends messages in plain text with no compression and no error protection beyond basic LoRa modulation. If a bit flips in transit, the message is lost. If the message is 200 bytes but could be 100, you've halved your effective range for no reason.
What MeshXT does
MeshXT is a Node.js library (and C/C++ firmware) that sits between your application and the Meshtastic radio. It does two things:
Smaz Compression
Compresses short messages by 15-50% using a human-language-optimised dictionary. "SOS" becomes 1 byte. Common phrases shrink dramatically. Smaller packets = longer range at the same power.
Reed-Solomon FEC
Adds forward error correction that can repair up to 32 corrupted bytes per message โ without retransmission. Messages that would have been lost now arrive intact, even through interference.
Adaptive SF Selection
Automatically selects the optimal LoRa spreading factor based on message size after compression. Shorter messages can use faster spreading factors, improving throughput without sacrificing reliability.
Stock vs MeshXT
Combined effect of compression (fewer bytes to transmit) + FEC (messages survive interference at the edge of range) + adaptive SF (optimised modulation per message).
Install in 30 seconds
# Install from npm npm install meshxt # Or use the CLI npx meshxt compress "Help needed at grid ref SO 629 941" # โ 52% smaller, Reed-Solomon protected # In your code import { compress, decompress, encode, decode } from 'meshxt'; const packet = encode('SOS need evacuation at summit'); // โ 47 bytes (was 29 chars + overhead = ~35 bytes โ now FEC-protected) const original = decode(packet); // โ 'SOS need evacuation at summit' (survives up to 32 byte errors)
What's in the box
- โ Smaz compression โ 74-message codebook optimised for short human messages
- โ Reed-Solomon FEC โ corrects up to 32 byte errors per message
- โ Adaptive spreading factor โ auto-selects optimal SF based on compressed size
- โ CLI tool โ compress, decompress, benchmark from the terminal
- โ C/C++ firmware โ native implementation for ESP32 and nRF52 boards
- โ Zero dependencies โ pure Node.js, nothing to install
- โ 70/70 tests passing โ comprehensive test suite
- โ Apache 2.0 license โ use it anywhere, modify freely
Who is this for?
Backcountry & Hiking
Send SOS or coordinate with your group when you're days from cell coverage. MeshXT means your messages reach further and survive interference from terrain.
Emergency Response
When infrastructure is down, mesh networks are the last line of communication. FEC means critical messages don't get lost in noisy RF environments.
Rural & Off-Grid
Connect remote properties, farms, or community nodes across distances that stock Meshtastic can't reach. No internet required, no monthly fees.
Built in the open
MeshXT is Apache 2.0 licensed and built by Mikoshi Ltd. The code is on GitHub, the package is on npm. Contributions, issues, and forks are welcome.
We believe communication infrastructure should be open. Meshtastic started that way, and MeshXT continues it.