All Posts

12 posts -- technical deep-dives, architecture decisions, and development journal entries.

Firmware Extensions: Binary Encoding Over LoRa Mesh

How Socialmesh extends Meshtastic with custom binary portnums for presence, signals, and identity -- without forking the firmware.

Welcome to the Socialmesh Developer Blog

Introducing the Socialmesh developer blog -- technical deep-dives, architecture decisions, and the development story so far.

Aether: Flight Sharing on the Mesh

Launching the Aether flight sharing service -- ground stations report aircraft reception data to a shared leaderboard via mesh radio.

Sigil: Node Identity Cards

Building the Sigil API -- shareable node identity card snapshots with an Express backend, SQLite storage, and Apple Wallet integration.

Multi-Protocol: Adding MeshCore Support

Making Socialmesh a multi-protocol app -- supporting both Meshtastic and MeshCore devices while keeping protocol logic completely isolated.

Going Open Source

Open-sourcing the Socialmesh mobile client under GPL-3.0 -- what’s included, why GPL, and how contributors can get started.

World Mesh: Watching the Global Network

Building a real-time MQTT consumer that collects Meshtastic node data from the global mesh and serves it as an API.

The Automation Engine

Building a node automation system for mesh radios -- triggers, actions, geofences, and battery hysteresis.

Firebase Without the Dependency

How Socialmesh integrates Firebase for optional cloud features while remaining fully functional offline.

Presence, Timelines, and the Social Layer

Adding the social layer to a mesh radio app -- presence broadcasts, signal timelines, and the beginning of what makes Socialmesh different.

BLE Transport: The Realities of Bluetooth on Mobile

Lessons learned building a reliable BLE transport layer for Meshtastic on iOS and Android. Adapter states, scan retries, and connection sequencing.

Day One: Building a Mesh Radio Companion

First commit. A Flutter app that talks to Meshtastic radios over Bluetooth Low Energy. Starting from zero.