Offline & Mesh Chat — 2025 Landscape

The fragmented world of
Bluetooth & mesh chat.
No standard. No interop. No easy answers.

A dozen projects have attempted to build chat that works without the internet — using Bluetooth, Wi-Fi Direct, LoRa, or peer-to-peer mesh networking. Most are dead. Several are open source but abandoned. A few are alive but proprietary. None interoperate with each other. This page maps the landscape: what each project does, how open it is, whether it is still maintained, and why the fundamental constraints of Android and Bluetooth make this category so extraordinarily difficult to build well.

App-by-App Overview

Who built what — and are they still building it?

Every card below represents a project that has claimed, at some point, to support Bluetooth or offline/mesh communication. Status badges reflect the state of development as of mid-2025. "Dead" means the app has been removed from stores, the repository has been archived, or the company behind it has ceased operations.

📡
Radar
BLE + Wi-Fi Aware + LAN mesh chat with offline SOS, maps, and privacy-first design. Proprietary E2E encrypted relay for internet fallback, with serverless DHT peer discovery (no single central server to seize or shut down). Relay traffic can be routed via Tor using Orbot (option in Web Services settings). Android only.
BLE Wi-Fi Aware LAN E2E Relay Tor (Orbot)
Open sourceNo
Open protocolNo
E2E encryptedRelay only¹
Works offlineYes
Hardware requiredNo
iOS supportNo — not possible²
🌿
Briar
Security-focused messenger using Bluetooth, Wi-Fi, and Tor. Designed for activists and journalists. GPL-licensed. Fully audited protocol.
Bluetooth Wi-Fi Direct Tor
Open sourceYes (GPL)
Open protocolYes (documented)
E2E encryptedYes (all transports)
Works offlineYes
iOS supportNo (BT limits on iOS)
🔗
Berty
P2P messenger built on libp2p and OrbitDB. Uses BLE for proximity discovery and Wi-Fi Direct for data transfer. Cross-platform; small team.
BLE Wi-Fi Direct libp2p / IPFS
Open sourceYes (MIT)
Open protocolPartial (libp2p)
E2E encryptedYes
Works offlineLimited (BLE)
Third-party SDKYes (gomobile-ipfs)
iOS supportYes (BLE limited in bg)
BitChat
BLE-based decentralised chat using the Nostr protocol for identity. Announced by Jack Dorsey in 2025. Very early stage; not production-ready.
BLE Nostr Relay
Open sourceYes (GitHub)
Open protocolPartial (Nostr NIPs)
E2E encryptedPartial (Nostr keys)
Works offlineBLE only (early)
Production readyNo
iOS supportIn development
🌉
Bridgefy
Commercial BLE mesh SDK. Used at protests and disaster areas. Entire cryptography was broken in 2020 (CVE). Rebuilt post-2020, but protocol remains proprietary and unaudited.
BLE Mesh
Open sourceNo
Open protocolNo
E2E encryptedClaims yes (post-2020)
Works offlineYes (BLE mesh)
SDK integrationCommercial terms
Security auditFully compromised 2020
iOS supportYes
🗺️
Meshtastic
LoRa-based long-range mesh. BLE only connects phone to the LoRa hardware device — messages travel over LoRa radio. Requires dedicated hardware (~$30–$100+). Range: 10–50 km.
LoRa Radio BLE (control only)
Open sourceYes (GPL)
Open protocolYes (Protobuf spec)
E2E encryptedYes (AES-256)
Works offlineYes (core design)
Hardware requiredYes (~$30–$100+)
Range per hop10–50 km typical
iOS supportYes (app + hardware)
📻
Serval Mesh / Serval Chat
Academic Wi-Fi mesh project (Flinders University). Uses Wi-Fi ad-hoc mode — no BLE. Largely inactive since ~2018; removed from Play Store. Source available but unmaintained.
Wi-Fi Ad-hoc No BLE
Open sourceYes (GPL)
Open protocolPartial (Rhizome)
E2E encryptedPartial
Works offlineYes (Wi-Fi mesh only)
Last active commit~2018–2020
Play Store listingRemoved
iOS supportNo
🔥
FireChat
One of the earliest mesh chat apps. BLE + Wi-Fi Direct (iOS Multipeer). Company (Open Garden) folded ~2020; app removed from all stores. No encryption was ever implemented.
BLE Wi-Fi Direct
Open sourceNo (source never released)
E2E encryptedNo
Works offlineWas yes — now dead
iOS supportWas yes — now dead
Company statusDefunct
App downloadableNo
📞
Meshenger
Peer-to-peer voice and video calling over a local Wi-Fi network. Not a BLE or mesh app — requires an existing Wi-Fi access point. Useful for LAN calling without internet.
LAN / Wi-Fi No BLE / No Mesh
Open sourceYes (GPL)
E2E encryptedYes
Works without Wi-Fi APNo
BLE / mesh capableNo
iOS supportNo
🔵
Google Nearby Connections
A Google Play Services API (not a standalone app). Enables BLE + Wi-Fi Direct + LAN peer discovery. Completely closed; apps using it cannot discover each other across implementations.
BLE Wi-Fi Direct LAN
Open sourceNo (Google binary)
Open protocolNo
E2E encryptedTransport only (app must add)
Works offlineYes (local devices)
Requires Google PlayYes (mandatory)
Cross-app interopNo
Integration possibleAPI only, closed terms
iOS supportNo (Android only)
🍎
Apple AirDrop
File sharing between Apple devices. BLE for discovery, Wi-Fi Direct for transfer. Completely proprietary; no third-party access. Not a chat application — files/media only.
BLE (discovery) Wi-Fi Direct
Open sourceNo
Open protocolNo
E2E encryptedYes (TLS, Apple keys)
Works offlineYes (files only)
Android supportNo
Third-party integrationNo
Chat capableNo (files only)
iOS supportYes (iOS/macOS only)
🧩
Matrix / Element
Open, federated real-time communication protocol. Not a BLE or mesh app — requires internet for federation. Included here as the gold standard for what an open protocol looks like, and because Radar integrates with Matrix for federated chat rooms.
HTTPS Federation No BLE / No Mesh
Open sourceYes (Apache 2.0)
Open protocolYes (full spec at matrix.org)
E2E encryptedYes (Megolm / Double Ratchet)
Works offlineNo (internet required)
BLE / mesh capableNo
Third-party integrationsYes (extensive ecosystem)
Radar integrationYes (federated rooms)
iOS supportYes
2
Apps fully dead — no longer downloadable from any store (FireChat, Serval Chat)
0
Open, documented interoperability standards shared between any two of these apps
3
Apps that are both open source AND actively maintained AND work with no internet (Briar, Berty, Meshtastic)
1
App with confirmed major cryptographic compromise: Bridgefy (2020 CVE — all messages were readable)
Full Feature Matrix

Side-by-side comparison across all dimensions

Every project compared on transport technology, openness, security, platform support, and offline capability. Radar is highlighted. Features in grey rows are section headers. Scroll horizontally on smaller screens.

Yes / supported No / not supported Partial Conditional or limited N/A or unknown
Feature / Dimension
📡 Radar Active
🌿 Briar Briar Project Active
🔗 Berty Berty Technologies Active
BitChat Dorsey / Nostr Experimental
🌉 Bridgefy Bridgefy Inc. Active
🗺️ Meshtastic Open Source Active
📻 Serval Flinders Uni Stalled
🔥 FireChat Open Garden Dead
📞 Meshenger Open Source Active
🔵 Nearby API Google API Only
🍎 AirDrop Apple Proprietary
📶 Radio Transport
BLE advertising / scanningBluetooth Low Energy beacons for peer discovery Control onlyLoRa carries data Wi-Fi only Discovery only
BLE GATT data transferBluetooth connections for actual message delivery
Wi-Fi Direct / Wi-Fi Aware (NAN)Peer-to-peer Wi-Fi without a router Wi-Fi Aware (NAN) Wi-Fi Direct Wi-Fi Direct Wi-Fi Ad-hoc iOS Multipeer Needs AP File transfer only
Local Area Network (LAN / Wi-Fi AP)Delivery over a shared Wi-Fi network or hotspot Partial
LoRa long-range radioSub-GHz dedicated radio hardware; 10–50 km range Primary transport
Tor / internet relay fallbackEncrypted relay over the internet when local fails E2E relay + Tor via Orbot; serverless DHT discovery Tor onion (native) libp2p / IPFS Nostr relay
🔓 Openness & Transparency
Source code open / auditableCan security researchers independently audit the code? GPL-3.0 MIT/Apache MIT GPL-3.0 GPL (unmaintained) GPL-3.0 Closed binary Proprietary
Wire protocol publicly documentedCan a third party independently implement a compatible client? Full protocol spec PartialUses libp2p standards Nostr NIPsBLE layer undocumented Protobuf schema PartialRhizome spec exists Simple / readable
Third-party integration possibleCan other developers build on top of this project? Fork / extend source gomobile-ipfs SDK Open source, early SDKCommercial; API key; closed Excellent API/SDK Source availableUnmaintained risk Dead, no source Open source API onlyPlay Services required; closed terms Apple only; zero access
Interoperable with other appsCan two different apps on this list talk to each other? Potential (Nostr)
📱 Platform & Development Status
Android support In development Old APK only Removed
iOS supportFull mesh / BLE features — not just internet fallback Platform prevents BLE mesh PartialIn development; BT limited on iOS BLE limited in background In development App; BLE to hardware Removed Apple only
Actively maintained (2024–2025)Regular commits, releases, bug fixes Small team Very new (2025) Commercial roadmap Very active Dormant ~2018+ Company folded Hobbyist pace Google product Apple OS-level
Requires additional hardware beyond a smartphone LoRa board required Needs Play Services Apple device only
🔒 Security
End-to-end encrypted messagesMessages encrypted before leaving sender; only recipient can read Web relay onlyBLE/WiFi = physically bounded cleartext Over all transports PartialNostr keys; BLE layer varies Claims yesPreviously broken (2020 CVE) AES-256 Partial Plaintext messages Transport layer onlyApp must add own E2E TLS; Apple controls keys
No phone number or account requiredCan the user communicate without registering a real-world identity? Random UUID; zero PII Nickname only Nostr keypair Nickname onlySocial graph visible No; but Google account linkable Apple ID / device identity
Publicly disclosed security CVEs / vulnerabilities None disclosed Audited, none significant Too new to audit 2020: entire crypto broken; messages readable MinorDefault channel key shared No encryption; social graph harvesting reported Closed; unknown UWB tracking2021: PrivateDrop research
📶 Offline & Mesh Capability
Functions with zero internet or cellularNo internet infrastructure at all — BLE, Wi-Fi P2P, or LoRa only PartialBLE works; some features need internet BLE onlyRelay features require internet BLE mesh mode Core design Wi-Fi mesh BLE / Wi-Fi Direct LAN onlyNeeds a Wi-Fi AP
Multi-hop store-and-forward meshMessages relay peer-to-peer to reach out-of-range recipients BLE + WiFi Aware hops Partial BasicEarly implementation Core design; excellent Rhizome bundle routing Direct connections only
Typical range per radio hopApproximate real-world range under normal conditions BLE: ~10–30 m
Wi-Fi Aware: ~50–80 m
BLE: ~10–30 m
Wi-Fi: ~50 m
BLE: ~10–30 m
Wi-Fi: ~50 m
BLE: ~10–30 m BLE: ~10–30 m 10–50 kmLoRa; depends on terrain Wi-Fi: ~50–100 m BLE: ~10–30 m LAN: full building BLE: ~30 m
Wi-Fi: ~80 m
Wi-Fi Direct: ~9 m
Serverless peer discovery (DHT)Find peers with no central directory — a distributed hash table replaces the lookup server UUID → IP + geo DHT PartialNo directory; manual Tor contact exchange libp2p / IPFS Kademlia DHT Nostr relay servers Bridgefy servers Optional central MQTT broker Local mesh only Open Garden servers LAN only; manual QR Google Play Services Local BLE only

¹ BLE/Wi-Fi Aware messages in Radar are sent as physically-bounded cleartext — they never leave the local radio environment, but they are not encrypted on the wire. Messages via the web relay are end-to-end encrypted with sealed-sender metadata protection. This is an inherent consequence of how BLE GATT works: establishing a full encryption handshake over BLE adds significant overhead and latency. The local physical constraint (a message cannot be intercepted beyond radio range without physical presence) is the security boundary for the P2P channel.

Interoperability: zero across all apps. Every single project in this table — including every open-source one — uses a proprietary or incompatible protocol for its local radio layer. A Briar user and a Radar user standing side by side cannot exchange a message over Bluetooth. A Berty user and a Meshtastic user are equally isolated. This is not a deliberate design choice by any one developer — it is the consequence of having no open standard for BLE-based mesh chat. That standard does not exist.

All product names, logos, and brands mentioned in this comparison are the property of their respective owners and are used here solely for informational and comparative purposes. Radar is not affiliated with, endorsed by, or sponsored by any of the projects listed above.

The Standards Problem

There is no open standard for Bluetooth mesh chat

Every app in this comparison has independently invented its own discovery protocol, peer addressing scheme, message routing algorithm, and encryption model. The result is a completely fragmented ecosystem where every implementation is an island. Understanding why no standard exists is essential to understanding the limitations of every app in this space — including Radar.

Does not exist

No standard for BLE P2P chat

The IETF has published no RFC for Bluetooth Low Energy peer-to-peer messaging. There is no equivalent of XMPP, Matrix, or SIP for the BLE transport layer. Every developer building a BLE chat app starts from scratch on the protocol design. This means years of work, bespoke security models, and zero interoperability between apps.

Not designed for this

Bluetooth Mesh (Bluetooth SIG, 2017) is for IoT, not chat

Bluetooth SIG does have a Mesh Networking specification — but it was designed for smart lighting, building automation, and sensor networks. It uses controlled flooding and managed flooding algorithms optimised for short, infrequent, broadcast-style sensor readings. It is not designed for unicast two-party conversations, large payloads, or the privacy requirements of personal messaging. No mainstream chat app uses it.

Vendor lock-in by design

Google and Apple restrict what the OS exposes

Both Android and iOS severely limit what third-party applications can do with Bluetooth. Google's Nearby Connections API hides its entire protocol behind a closed black box — it works, but only within the same app. Apps cannot discover each other across different Nearby implementations. Apple's Multipeer Connectivity and AirDrop are even more tightly locked. Developers cannot build standards-compatible software because the platforms themselves prevent it.

Partial progress

Meshtastic comes closest — but requires hardware

Meshtastic has a fully documented, open, cross-implementable protocol over LoRa. Third parties have built independent implementations, and the ecosystem is genuinely open. But it requires purchasing dedicated LoRa hardware and is therefore not a "phone-only" solution. For pure smartphone BLE mesh, nothing comparable exists. Briar documents its protocol fully but does not provide a public SDK, making integration laborious even for motivated developers.

Commercial incentives against openness

Companies that built mesh SDKs (Bridgefy) kept them closed

Bridgefy, which marketed itself as a developer platform for offline mesh, charged per-API-key and published no protocol specification. The most widely deployed "mesh chat SDK" in the world — used at the 2019 Hong Kong protests, the 2020 US demonstrations, and multiple disaster zones — was undocumented, proprietary, and subsequently found to have completely broken encryption. The crisis it was trusted to handle is the exact one where its weaknesses were most dangerous.

Consequence for users

You cannot mix apps. Every project is its own island.

If your contact uses Briar and you use Radar, you cannot message them over Bluetooth. If half a community uses Meshtastic hardware and the other half has only phones, the phone users can only talk to each other via an internet relay if one is available. The offline "mesh" only works when everyone uses the same app — which is rarely the case in the emergencies these tools are designed for.

Technical Reality

Android and the Bluetooth stack: what developers cannot control

Building reliable BLE-based chat on Android is one of the most constrained software engineering problems in mobile development. The Android Bluetooth stack imposes hard limits that no third-party app can override, regardless of how much engineering effort is applied. These are not implementation bugs — they are fundamental architectural constraints enforced at the OS and hardware level. Users and reviewers often attribute these limitations to developer error. They are not.

📣

BLE Advertising: 31 bytes, one slot, no content changes

  • Legacy BLE advertising payloads are capped at 31 bytes total. After the 3 advertising flag bytes, there are only 28 bytes available for all data — flags, service UUIDs, manufacturer data, and device name combined.
  • On most devices, only one advertising set can run at a time. Apps cannot rotate between beacon formats while advertising. To change what the beacon says, advertising must be stopped and restarted — causing a gap where the device is temporarily invisible.
  • Developers cannot choose a custom advertising interval. Android offers three named modes (low power ≈1000 ms, balanced ≈250 ms, low latency ≈100 ms) which are hints to the OS, not guaranteed values. The actual timing is hardware and vendor dependent.
  • No developer can send multiple simultaneous beacons with different payloads. One app, one beacon format at a time.
🔍

BLE Scanning: throttled, restricted, and OS-controlled

  • Android throttles apps that start five or more scans within 30 seconds — scan results stop being delivered until the throttle lifts. This is a platform-level defence against battery abuse that affects all apps equally.
  • Background scanning (when the app is not in the foreground) is heavily restricted in Android 8 and above. On some devices and battery profiles, scan results are batched and delivered only every 15–30 minutes rather than in real time.
  • SCAN_MODE_LOW_POWER scans the radio for only ~512 ms per 5,120 ms cycle. On this mode, a nearby device must be advertising during that narrow window to be discovered. This is why apps like Radar use duty-cycled scan bursts — but even a burst can miss a peer if their advertising gap happens to coincide with the scan gap.
  • Android 10+ requires ACCESS_FINE_LOCATION to scan. Android 12+ added three new dedicated Bluetooth permissions. Users can deny any of these, silently breaking discovery.
🔗

GATT connections: serial, fragile, and device-limited

  • Bluetooth GATT operations are fully serial per connection. You cannot write two characteristics simultaneously. Every message must queue behind the previous one. This is a protocol constraint, not an OS constraint.
  • The default MTU (Maximum Transmission Unit) is 23 bytes — leaving only 3 bytes of usable payload. A message larger than 3 bytes requires MTU negotiation, which must succeed before anything useful can be sent. On failure, the connection is effectively useless for messaging.
  • Most Android devices support a maximum of 7–10 concurrent GATT connections. A mesh chat app in a crowd has no way to remain simultaneously connected to 50 nearby people. It must manage a constantly cycling pool of connections, with the latency and reliability penalties that entails.
  • Bluetooth connections drop without warning. Radio interference, the other device moving out of range, power saving, and OS-level connection management all cause drops. There is no persistent-session guarantee.
📵

Battery optimisation kills background operation

  • Android's Doze mode (introduced in Android 6) suspends background app activity, network access, and alarms when the device is idle. A foreground service is required to keep the BLE stack alive — and even foreground services can be killed by aggressive OEM battery savers (particularly on Xiaomi, Huawei, Oppo, and Vivo devices).
  • App Standby Buckets (Android 9+) restrict background wakeups for apps that haven't been recently used. A mesh chat app that hasn't been opened today may receive dramatically fewer scan callbacks than one that was recently active.
  • Vendor-specific battery "optimisation" from Samsung (Device Care), Xiaomi (MIUI Battery Saver), and others operates outside Android's own battery management system and can kill foreground services without developer recourse.
  • There is no mechanism for a developer to guarantee background BLE operation across all Android devices. It is one of the most common sources of user complaints ("the app stopped working when the screen turned off") and is outside developer control.
📡

Wi-Fi Aware (NAN): powerful but patchy

  • Wi-Fi Aware — the technology enabling true peer-to-peer Wi-Fi without a hotspot — requires Android 8.0 (API 26) and explicit hardware support. Many low-end and mid-range devices do not support it, even if they run a qualifying Android version.
  • Wi-Fi Aware sessions must be bootstrapped over a pre-existing BLE connection. If BLE discovery fails, Wi-Fi Aware never starts, even if both devices support it and are in range.
  • NAN (Neighbour Awareness Networking) data paths can be unstable on devices with aggressive power management. A Wi-Fi Aware socket that appeared healthy can silently die without triggering any callback.
  • The technology is largely unknown to most Android users. There is no user-visible switch to enable it; it is entirely dependent on chipset firmware and Android HAL support, which varies by device.
🍎

iOS: Bluetooth chat is essentially impossible

  • On iOS, CoreBluetooth suspends BLE advertising and scanning when the app enters the background. An iOS app cannot maintain continuous Bluetooth presence. It can only advertise when the user is actively using the app.
  • Apple's Multipeer Connectivity framework (used by AirDrop and some apps) works around this — but it is Apple-proprietary, iOS-only, and cannot interoperate with Android BLE.
  • Apple does not expose Wi-Fi Aware (NAN) to third-party developers at all. There is no public API for it on iOS.
  • This is why Radar does not have an iOS version. It is not a commercial decision or lack of effort — the features that define Radar (persistent BLE mesh, Wi-Fi Aware, background offline operation) are technically impossible to implement on iOS under Apple's platform rules. The iOS limitations page documents this in detail.

Why these constraints matter for Radar specifically: Radar's BLE behaviour — discovery delays, occasional missed peers, the need for the app to be running in the foreground, and limitations on how many concurrent peers can be connected — is a direct consequence of the constraints described above. The developer cannot make BLE discovery instantaneous. The developer cannot make background scanning completely reliable. The developer cannot maintain simultaneously active connections to more than ~7–10 peers. The developer cannot send the same beacon in multiple formats at once. Every Bluetooth chat app on Android faces exactly the same constraints. Briar, Berty, Bridgefy, and BitChat all encounter these same limitations — they simply have fewer users reporting them.

Developer Reality

Why building Bluetooth chat is genuinely hard

Every app that has tried to solve offline mesh chat has either abandoned the effort, kept their implementation closed, or found that BLE alone is insufficient for reliable messaging. The following explains the fundamental engineering problems that make this category so difficult — and why the "just fix it" framing applied to app reviews misunderstands the nature of the problem.

🔄 The discovery problem: timing is everything

For two devices to communicate over BLE, one must be advertising and the other must be scanning — and they must overlap in time. The advertising device broadcasts a beacon every 100–1000 ms. The scanning device listens for ~5 seconds, then rests for ~25 seconds (to save battery). If the scan window doesn't coincide with an advertising burst, the devices never discover each other.

Increasing the scan frequency kills battery life. Reducing it increases discovery latency. There is no configuration that makes discovery both instant and battery-efficient. Apps must choose a point on the trade-off curve and live with the consequences. No amount of engineering eliminates this fundamental constraint.

🔐 The security problem: encryption over BLE is expensive

Adding end-to-end encryption to a BLE message requires key exchange (adds round-trips), larger payloads (challenges the 497-byte MTU limit), and computational overhead. On a messaging transport that already has strict bandwidth and connection constraints, every extra byte and every extra round-trip has a real cost.

Bridgefy's 2020 failure is the starkest illustration of this: the team took shortcuts on cryptography precisely because implementing proper E2E encryption on BLE is non-trivial. Briar, which does implement strong E2E encryption over Bluetooth, took years of engineering and is still Android-only after nearly a decade of development.

🌐 The routing problem: who delivers to whom?

In a mesh, a message to a recipient who is out of direct radio range must be relayed through intermediate nodes. But intermediate nodes don't know who is "out there" or where the recipient is. Without internet infrastructure, there is no global directory. Store-and-forward routing — carrying a message until you encounter someone closer to the recipient — requires every relay node to store potentially many messages, use battery to keep BLE active, and have some mechanism for the message to expire when it cannot be delivered.

Routing in Bluetooth mesh is an unsolved problem at scale. It works in small crowds. It degrades poorly as network size grows, message volume increases, or relay nodes go offline.

⚡ The power problem: BLE and battery

"Low Energy" in Bluetooth Low Energy refers to the advertising and connection establishment phases. Continuous BLE scanning — the kind needed to discover new peers in real time — can consume 10–30% of battery per hour depending on scan parameters and device hardware. Running BLE advertising simultaneously adds more. Add Wi-Fi Aware, foreground service overhead, GPS, and encryption, and a mesh chat app running in full "active mesh" mode can drain a phone in 3–6 hours.

Apps that reduce battery drain (by scanning less frequently, using lower-power modes, or disabling features) are criticised for being slow to discover peers. Apps that prioritise speed are criticised for draining the battery. The physics does not offer a middle path.

📶 The range problem: Bluetooth is short-range by design

BLE Class 2 devices (the kind in every smartphone) have a nominal range of ~10 metres indoors, ~30 metres in open space. Real-world range is often less due to human body shielding, walls, interference from other 2.4 GHz devices (Wi-Fi, microwave ovens), and the way Android reduces transmit power to save battery.

Wi-Fi Aware extends this to ~50–80 metres but requires both devices to support it. Neither transport approaches the range needed for city-scale or disaster-zone communication. Meshtastic's LoRa approach (10–50 km per hop) is the only realistic long-range solution — but it requires dedicated hardware and is therefore not a replacement for phone-native mesh.

📋 The testing problem: mesh behaviour is hard to reproduce

A bug in a conventional server-based app can be reproduced with one device and one server. A bug in a mesh app may only appear when three or more devices are arranged in specific proximity, with specific Android versions, specific hardware chipsets, specific battery levels, and specific OS background-activity configurations.

The BLE stack itself behaves differently across device manufacturers. A Samsung Galaxy, a Pixel, and a Xiaomi running the same Android version will exhibit subtly different scanning behaviour, connection timing, and MTU negotiation results. End-to-end testing of a mesh chat app is a fundamentally more difficult engineering problem than testing a conventional centralised messenger.

The bottom line for Radar: Radar is one of only a handful of apps in the world that has successfully implemented multi-transport offline mesh chat (BLE + Wi-Fi Aware + LAN) in a single Android application, with a full feature set including maps, SOS, group chat, and an encrypted internet relay fallback. That relay itself depends on no single central server: peers are located through two distributed hash tables spread across the devices themselves — a UUID → IP address resolution and a geographic location → nearby-peers search — so discovery keeps working even if Radar's own server is blocked or shut down, healing around the failure for better resilience against a government shutdown. The limitations users encounter — occasional discovery delays, range constraints, the absence of iOS support, inability to connect to more than ~10 peers simultaneously — are not the result of development shortcuts. They are the consequence of building on top of an OS and a radio protocol that were not designed for what Radar uses them to do. Every other app in this landscape faces the same constraints. The ones that appear not to have these problems either use dedicated radio hardware (Meshtastic), rely on internet connectivity as their primary channel, or no longer exist.

Context

Where Radar sits in this landscape

Given the fragmented state of this ecosystem and the hard limits described above, Radar's design decisions — and its current limitations — can be understood in their proper context.

What Radar achieves

Multi-transport offline mesh

Radar is one of the only consumer Android apps that implements BLE GATT messaging, Wi-Fi Aware (NAN) high-bandwidth transfer, LAN delivery, and encrypted internet relay within a single application — with automatic fallback between channels. Most apps in this space support at most one or two transports. Building and maintaining all four simultaneously, across the full diversity of Android hardware, represents a substantial engineering achievement.

Why it's closed source

Proprietary protocol is a trade-off, not a red flag

Radar's protocol is not published as an open specification, and Radar's source is not open. This limits auditability compared to Briar — a real trade-off worth acknowledging. In this context it is worth noting that the two major commercial predecessors in the space (FireChat and Bridgefy) were also closed — and one had its entire encryption broken. Closed source is not evidence of insecurity, but open source is stronger evidence of the opposite. Radar's BLE/Wi-Fi messages are explicitly labelled with a yellow padlock to indicate they are not encrypted, which is honest and auditable behaviour at the application layer.

The un-fixable limitations

Beyond the developer's control

Discovery latency, range, the lack of iOS support, concurrent connection limits, and background scanning reliability are all constraints imposed by Android, Bluetooth, Apple, and physics — not by Radar's implementation choices. There is no software fix for the 31-byte BLE payload limit. There is no app-level workaround for Apple blocking background BLE advertising on iOS. There is no way to make Bluetooth reach 1 km without hardware. Reviewers and users who attribute these constraints to developer shortcomings are, however understandably, misidentifying where the ceiling is.

Looking for the full feature comparison?
See how Radar stacks up against mainstream messengers.

The mainstream comparison — Radar vs WhatsApp, Telegram, Signal, and Discord across 84 categories including privacy, offline capability, emergency tools, and surveillance resistance.

Full Feature Matrix → iOS Limitations → About Radar