Nored
2026An offline mesh communication app built at Hack the North: nearby phones relay messages, alerts, and games over Bluetooth with no internet or server.
Nored is an offline communication app for iOS and Android, built at Hack the North 2026. Nearby phones connect over Bluetooth to exchange messages, carry text to people they encounter later, and spread emergency alerts, all without cellular service, an internet connection, or a messaging server. At a crowded event, on a remote trail, or during a network outage, people can be close enough to help each other and still have no way to communicate; Nored turns the phones around you into a local network.
The mesh
Each phone acts as both a Bluetooth LE central and peripheral. A custom native Expo module implements discovery and GATT communication in Swift on iOS and Kotlin on Android, and a shared TypeScript router handles persistence, forwarding, retries, and delivery acknowledgements.
Delivery is store-and-forward: after saving someone as a contact, a message
for them can be handed to any nearby phone, which retains it after
disconnecting and forwards it when the recipient becomes reachable. Peers
exchange packet inventories to avoid retransmission, packet IDs suppress
duplicates, and hop limits with expiry keep messages from circulating
indefinitely. Direct and group text travel up to five hops over 24 hours;
INFO, HELP, and DANGER alerts get transmission priority, ten hops, and a
six-hour expiry.
Beyond messaging
The app includes photos and voice notes over a direct connection, on-device voice transcription through a bundled quantized Whisper model, translation into English, French, or Hindi, a network view of discovered peers and message journeys, and nearby multiplayer games — chess, Pong, and drawing telephone — over the same Bluetooth transport.
The repository also includes an experimental ESP32-C3 badge relay: custom firmware lets a Hack the North badge bridge two phone connections over BLE and display recent alerts, with a local Wi-Fi portal for submitting new ones.
Implementation
The app is React Native on Expo SDK 57 with TypeScript, persisting messages and relay packets in SQLite. Because the mesh relies on custom native modules, it runs as a development or release build rather than in Expo Go. It is a hackathon prototype: apps must stay in the foreground, delivery is best-effort, and there is no application-level encryption yet — authenticated end-to-end encryption is the stated next step.