README.md
A decentralized peer-to-peer messaging app with dual transport architecture: local Bluetooth mesh networks for offline communication and internet-based Nostr protocol for global reach. No accounts, no phone numbers, no central servers. It's the side-groupchat.
š² App Store
This project is released into the public domain. See the LICENSE file for details.
/slap, /msg, /who style interfaceBitChat uses a hybrid messaging architecture with two complementary transport layers:
mesh #bluetoothblock #dr5rsj7, neighborhood #dr5rs, country #dr)block (7 chars): City block levelneighborhood (6 chars): District/neighborhoodcity (5 chars): City levelprovince (4 chars): State/provinceregion (2 chars): Country/large regionPrivate messages use intelligent transport selection:
Bluetooth First (preferred when available)
Nostr Fallback (when Bluetooth unavailable)
Smart Queuing (when neither available)
For detailed protocol documentation, see the Technical Whitepaper.
cd bitchat
open bitchat.xcodeproj
To run on a device there're a few steps to prepare the code:
cp Configs/Local.xcconfig.example Configs/Local.xcconfigConfigs/Local.xcconfig
chat.bitchat.<team_id> (unless you set to something else)group.chat.bitchat with group.<your_bundle_id> (e.g. group.chat.bitchat.ABC123)justbrew install just
Want to try this on macos: just run will set it up and run from source.
Run just clean afterwards to restore things to original state for mobile app building and development.
bitchat/Localization/Base.lproj/. Add new copy to Localizable.strings and plural rules to Localizable.stringsdict.bitchatShareExtension/Localization/Base.lproj/Localizable.strings.app_info.features.offline.title) and reuse existing ones where possible.xcodebuild -project bitchat.xcodeproj -scheme "bitchat (macOS)" -configuration Debug CODE_SIGNING_ALLOWED=NO build to compile-check any localization updates.