0Pricing

Bitchat: The Decentralized Bluetooth Mesh Chat App With 28,000+ GitHub Stars — No Servers, No Accounts, Just IRC Vibes

Bitchat is a public-domain, decentralized peer-to-peer messaging app that combines Bluetooth mesh networking with the Nostr protocol for global reach. With 28,000+ GitHub stars and 1,695 new stars in a single day, it's redefining privacy-first communication for developers, activists, and off-grid communities.

C
CoddyKit Team · 7 min read · 1,417 words
Bitchat: The Decentralized Bluetooth Mesh Chat App With 28,000+ GitHub Stars — No Servers, No Accounts, Just IRC Vibes
Quick Answer: Bitchat is an open-source (public domain) decentralized messaging app that uses Bluetooth mesh networking for offline, peer-to-peer chat and the Nostr protocol for internet-based reach. It requires no accounts, no phone numbers, and no central servers. Think of it as IRC for the physical world — with end-to-end encryption baked in.

If you've been scanning GitHub Trending lately, you've likely spotted Bitchat — a Swift-based decentralized chat app that's accumulated over 28,000 GitHub stars and gained nearly 1,700 stars in a single day. Built by the Permissionless tech community, Bitchat represents a fundamental shift in how we think about messaging.

Unlike WhatsApp, Signal, or Telegram, Bitchat doesn't rely on any central infrastructure. Your messages travel through a Bluetooth Low Energy (BLE) mesh network — hopping device-to-device up to 7 times — or through the decentralized Nostr protocol when internet is available. No company owns your data. No server stores your conversations. No phone number is required to sign up.

It's the side-groupchat. The one that doesn't need permission to exist.

Dual Transport Architecture: How Bitchat Actually Works

Bitchat's genius lies in its hybrid transport model. Most messaging apps force you into a single communication paradigm. Bitchat gives you two complementary layers that automatically select the best route:

Layer 1: Bluetooth Mesh (Local, Offline)

When devices are within Bluetooth range (typically 10-100 meters), Bitchat establishes direct peer-to-peer connections using BLE. Messages relay through nearby devices in a mesh topology:

  • Multi-hop relay: Messages route through up to 7 intermediate devices
  • No internet required: Works completely offline — ideal for disasters, protests, remote areas
  • Noise Protocol encryption: End-to-end encryption with forward secrecy
  • Binary protocol: Compact packet format optimized for BLE bandwidth constraints
  • Automatic peer discovery: Devices find each other without manual configuration
  • Adaptive power management: Battery-optimized duty cycling extends device life

Layer 2: Nostr Protocol (Global, Internet)

When internet connectivity is available, Bitchat extends its reach using the Nostr protocol — a decentralized social protocol used by hundreds of thousands of users:

  • 290+ relay network: Distributed relays across the globe for reliability
  • Location-based channels: Geographic chat rooms using geohash coordinates (city block → country level)
  • NIP-17 encryption: Gift-wrapped private messages for internet privacy
  • Ephemeral keys: Fresh cryptographic identity per geohash area

Intelligent Message Routing

Bitchat doesn't make you choose between transports. It automatically selects the optimal path:

  1. Bluetooth first — fastest and most private when peers are nearby
  2. Nostr fallback — routes through the global relay network when Bluetooth unavailable
  3. Smart queuing — messages wait until a transport becomes available, then auto-deliver

Here's a simplified view of the routing logic:

// Bitchat message routing (conceptual)
async function sendMessage(recipient, content) {
  // Try Bluetooth mesh first
  if (bluetoothPeers.has(recipient)) {
    return await sendViaNoise(blueToothMesh, recipient, content);
  }
  
  // Fall back to Nostr
  if (internetAvailable && recipient.nostrPubkey) {
    return await sendViaNIP17(nostrRelays, recipient, content);
  }
  
  // Queue for later delivery
  messageQueue.push({ recipient, content, timestamp: Date.now() });
}

Real-World Example: Communication at a Music Festival

Imagine you're at a 3-day music festival in a remote valley. Cell service is spotty at best, and your group of 8 keeps getting separated. Here's how Bitchat changes the game:

Day 1, 2:00 PM: Your friend Alex is 200 meters away at the main stage. You send "Meet at food trucks in 10 min." The message hops through 3 nearby Bitchat users' phones to reach Alex — no cell tower needed. Alex sees it in 2 seconds.

Day 2, 11:00 PM: Your group wants to coordinate across the entire festival grounds (2km). Bluetooth mesh can't reach that far, but one person has enough signal to connect to a Nostr relay. Everyone's messages relay through that person to the Nostr network, then back down to other Bitchat users via Bluetooth. The whole festival becomes a mesh.

Day 3, Emergency: A thunderstorm knocks out all cell towers. Festival-goers with Bitchat can still communicate locally — sharing safety updates, finding lost friends, coordinating shelter. This is disaster communication without infrastructure.

This isn't hypothetical. Bitchat has been used at protests, in disaster zones, and in rural communities where traditional messaging simply doesn't work.

Key Benefits for Developers and Privacy-Conscious Users

  • Zero setup: No accounts, no phone numbers, no email verification — just open and chat
  • True privacy: No persistent identifiers; your identity is ephemeral and local
  • Emergency wipe: Triple-tap to instantly clear all data from the app
  • IRC-style commands: Familiar /msg, /who, /slap interface for power users
  • Open source (public domain): Anyone can audit, fork, or build upon it — no restrictive licenses
  • LZ4 compression: Messages are compressed for efficiency over low-bandwidth BLE
  • Universal app: Native support for both iOS and macOS from a single codebase
  • Location channels: Geographic chat rooms from city-block to country-level granularity

Why Developers Love the Architecture

Bitchat isn't just a chat app — it's a masterclass in distributed systems design. The codebase demonstrates:

  • Protocol layering: Clean separation between transport (BLE/Nostr) and application logic
  • Noise Protocol implementation: Production-grade E2E encryption with forward secrecy
  • Mesh routing algorithms: Efficient multi-hop relay with loop detection
  • Geohash-based channels: Elegant use of spatial indexing for location-aware chat
  • Adaptive networking: Battery-aware duty cycling that doesn't sacrifice responsiveness

For Swift developers, the codebase is a treasure trove. The BLE mesh implementation alone is worth studying — it handles connection management, peer discovery, and message relay with remarkable efficiency.

Getting Started with Bitchat

Bitchat is available on the App Store and can also be built from source:

# Clone the repository
git clone https://github.com/permissionlesstech/bitchat.git
cd bitchat

# Open in Xcode
open bitchat.xcodeproj

# Set up local config
cp Configs/Local.xcconfig.example Configs/Local.xcconfig
# Add your Developer Team ID to Configs/Local.xcconfig

# For macOS development, use just (install via brew install just)
just run

The project uses just as a command runner, making it straightforward to build, test, and run on macOS without complex Xcode configuration.

Bitchat vs. Other Decentralized Messaging Apps

FeatureBitchatSignalBriarNostr Clients
Bluetooth Mesh✅ Yes❌ No✅ Yes❌ No
No Internet Required✅ Yes❌ No✅ Yes❌ No
Account Required❌ No✅ Phone #❌ No✅ Keys
Global Internet Reach✅ Nostr✅ Central⚠️ Tor✅ Yes
Location Channels✅ Geohash❌ No❌ No⚠️ Manual
Public Domain✅ Yes⚠️ GPL⚠️ GPLVaries

FAQ

1. Is Bitchat really free and open source?

Yes — Bitchat is released into the public domain, not just open source. There are no licensing restrictions. Anyone can use, modify, or distribute the code without attribution requirements. The app itself is free on the App Store.

2. How far can Bluetooth mesh messages travel?

Each Bluetooth hop covers roughly 10-100 meters (depending on obstacles and interference). With up to 7 hops, messages can theoretically travel 700 meters in ideal conditions. In dense urban areas with many Bitchat users, the effective range can be much larger as the mesh grows organically.

3. Can I use Bitchat without internet?

Absolutely. The Bluetooth mesh layer works completely offline. This makes Bitchat ideal for disaster scenarios, remote areas, festivals, protests, or any situation where cell service is unreliable or unavailable.

4. How secure are Bitchat messages?

Very secure. Bluetooth messages use the Noise Protocol Framework for end-to-end encryption with forward secrecy. Internet messages use NIP-17 gift-wrapping via Nostr. There are no central servers to compromise, and no phone numbers or emails to leak.

5. What platforms does Bitchat support?

Bitchat is a universal Swift app that runs natively on iOS and macOS. The same codebase compiles for both platforms with platform-specific optimizations. Android support is not currently available but the public domain license means anyone could port it.

6. What are location channels and how do they work?

Location channels use geohash coordinates to create geographic chat rooms. You can chat at different scales: city-block (7-char geohash), neighborhood (6-char), city (5-char), province (4-char), or country/region (2-char). These channels work over the Nostr relay network and use ephemeral keys for privacy.

7. How does Bitchat compare to Briar?

Both use Bluetooth mesh, but Bitchat adds the Nostr protocol for internet-based messaging with location channels. Bitchat is also public domain (vs. GPL), supports macOS natively, and has a more IRC-like interface. Briar focuses more on Tor-based routing for internet communication.

Ready to try truly private messaging? Check out Bitchat on GitHub or download it from the App Store. And if you want to level up your development skills, explore our courses at CoddyKit — including Swift development and building decentralized applications.

ProgrammingTutorialCoddyKit

Enjoyed this article?

Explore more tutorials and insights to level up your coding skills.

Browse All Articles →