Bypass dependencies on app stores, propagate bitchat in case of internet blackouts #971
henrique-simoes
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This is a proposal for a "Hub-and-Spoke" accessibility layer that allows users without the Bitchat app installed (e.g., iPhone users or unprepared Android users during a blackout) to join the mesh network using only a standard web browser.
Bitchat faces a "Chicken and Egg" deployment issue: You need the internet to download the tool that frees you from the internet.
In a sudden blackout or censorship event: Most people will not have Bitchat installed.
App Stores will be inaccessible.
Android users can side-load the APK via Bluetooth (if they know how), but iPhone users are effectively locked out duee to the inability to side-load without a computer.
The Proposed Solution: Emergency Bootstrap Mode
I propose a feature where an Android device running Bitchat can toggle a "Hub Mode." This creates a local bridge that allows nearby devices to connect via standard Bluetooth Tethering and chat via a web browser.
Architecture (I'm not a mobile professional developer)
Bluetooth PAN: The app requests permission to enable Bluetooth Tethering. This creates a local TCP/IP network over Bluetooth.
Local Web Server: The app spins up a lightweight local HTTP server (e.g., using Ktor or NanoHTTPD) listening on the gateway IP (e.g.., 192.168.44.1).
DNS Responder: (May be optional) Resolves a simple domain like chat.local to the gateway IP for better UX.
Bridge Service: Acts as a proxy. It accepts messages from the local web server and injects them into the standard Bitchat Mesh Binary Protocol to be relayed to other nodes.
Zero Install: The user simply pairs with the Hub device via system Bluetooth settings.
Browser Interface: The user opens Chrome or Safari and navigates to the Hub's IP.
PWA Payload: The Hub serves a lightweight, single-page web app (HTML/JS) that mimics the Bitchat chat interface.
Functionality: The user can read public channels and send messages, which the Hub relays to the rest of the mesh network.
Technical Implementation (again no pro mobile dev here)
Android Side: Use the BluetoothProfile.PAN API or standard Tethering reflection methods to establish the link.
Web Server: Serve a static index.html + script.js (~50kb total).
Communication: The PWA communicates with the Android Host via WebSocket or simple REST POST/GET polling on the local IP.
Routing: The Android Host assigns a temporary ephemeral ID to the web client and wraps their HTTP JSON messages into Bitchat's binary mesh packets.
Benefits
Solves the iOS Bottleneck: iPhone users can finally participate in the mesh during disasters without jailbreaking or complex developer setups.
Viral Onboarding: In a disaster, one prepared user becomes a communication hub for their entire household or neighborhood.
APK Distribution: The local web server can also host a direct download link for the Android .apk file for those who can install it, facilitating viral spread.
Use Case Scenario
Event: City-wide power and internet outage.
User A (Prepared): Has Bitchat on Android. Enables "Bootstrap Mode."
User B (Unprepared Neighbor): Has an iPhone. Pairs Bluetooth to User A.
Action: User B opens Safari, types 192.168.44.1, and immediately sees the neighborhood chat. They post a message: "Need insulin."
Relay: User A's phone automatically meshes that message over BLE to User C (300 meters away), who sees it and responds.
This moves Bitchat from a tool that requires everyone to be prepared, to a tool where only one person needs to be prepared to help a group. I believe this aligns perfectly with the mission of permissionless, resilient tech.
Beta Was this translation helpful? Give feedback.
All reactions