explaingit

permissionlesstech/bitchat

📈 Trending25,936SwiftAudience · vibe coderComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Decentralized messaging app for iPhone and Mac that works offline via Bluetooth mesh and online via Nostr, with no accounts, phone numbers, or central servers.

Mindmap

mindmap
  root((Bitchat))
    How it works
      Bluetooth mesh offline
      Nostr protocol online
      Message relay hops
      End-to-end encryption
    Key features
      No sign-up needed
      Location-based chat rooms
      Emergency data wipe
      Privacy-first design
    Tech stack
      Swift native
      iOS and macOS
      Cryptographic protocols
    Use cases
      Disaster communication
      Offline group chat
      Privacy-conscious users

Things people build with this

USE CASE 1

Send messages offline through Bluetooth relay chains when internet is unavailable in remote or disaster areas.

USE CASE 2

Chat in location-based rooms (neighborhood, city, region) using Nostr without creating an account or sharing your phone number.

USE CASE 3

Build a privacy-preserving messaging feature into your own app using the open-source code as a reference.

USE CASE 4

Communicate securely in groups where no central server or company controls the network.

Tech stack

SwiftiOSmacOSBluetoothNostr

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Xcode, Apple Developer setup, understanding of Bluetooth mesh pairing, and Nostr protocol knowledge; no web demo available.

Released into the public domain, use, modify, and redistribute freely with no restrictions.

In plain English

Bitchat is a decentralized messaging app for iPhone and Mac that lets people chat without any central servers, phone numbers, or accounts. It has two modes that work together: a local Bluetooth mesh network for offline communication, and a global internet protocol called Nostr for reaching people anywhere in the world. The Bluetooth mesh part is genuinely unusual, it lets your phone relay messages through a chain of nearby devices even when there is no internet. If you and a group of people are at a protest, disaster zone, or remote area, messages can hop from phone to phone (up to 7 hops) to reach someone outside your immediate Bluetooth range. No internet required. When internet is available, the app switches to Nostr, a decentralized messaging network with no central company controlling it, and can connect to geographic chat rooms based on your location (neighborhood, city, region). Private messages are end-to-end encrypted using strong cryptographic protocols. The design is deliberately privacy-first: no sign-up, no phone number linked to your identity, and there is even an emergency triple-tap to instantly wipe all data from the phone. Built natively in Swift for iOS and macOS, the app is available on the App Store now. The code is open-source and released into the public domain, meaning anyone can modify or redistribute it freely. For a founder: this is a finished, deployable app rather than a library or tool. It is interesting as a reference for building offline-capable, privacy-preserving communication features.

Copy-paste prompts

Prompt 1
How do I integrate Bitchat's Bluetooth mesh relay logic into my own iOS app to enable offline messaging?
Prompt 2
Show me how Bitchat implements end-to-end encryption for private messages on Nostr.
Prompt 3
What Swift libraries does Bitchat use for Bluetooth mesh networking and how do I use them?
Prompt 4
How can I fork Bitchat and add custom features like voice messages or file sharing while keeping it decentralized?
Prompt 5
Explain how Bitchat's emergency triple-tap data wipe works and how to implement secure data deletion in Swift.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.