Hi maintainers,
I've been following BitChat for a while — the dual-transport architecture (BLE mesh + Nostr) is really cool, and the use case for offline mesh communication is something I find genuinely compelling.
I noticed the project currently supports iOS and macOS only. I'm a CS undergraduate with Android development experience (Kotlin/Java, Bluetooth APIs, etc.), and I'd love to help port BitChat to Android if that's something you're open to.
Before I dive in, I have a few questions:
Codebase architecture: The iOS codebase is in Swift (Xcode project). Is there any design doc or architecture overview that could help someone coming from a different platform understand the core logic (mesh transport, Noise protocol handshake, message routing, etc.)? I saw there's a whitepaper — I'll definitely read that first.
Bluetooth stack: The BLE mesh implementation is probably the most complex part. Is it built on Apple's CoreBluetooth, or is there a custom BLE stack? For Android, I'd likely use the Android Bluetooth APIs or possibly look into existing BLE mesh libraries — any thoughts on this?
Cross-platform strategy: Are you considering a cross-platform framework (Flutter/KMM) for future development, or would you prefer a native Android implementation that maintains parity with the iOS version?
Nostr integration: The app uses Nostr relays with a custom private-envelope format (kind-1059, XChaCha20-Poly1305). Is there a spec or reference implementation I can refer to for the encryption/decryption logic?
Testing & CI: I saw there's a test suite and CI workflows. Is there a test plan or a set of test vectors I could use to verify the Android implementation against the iOS behavior?
Also — and I apologize if this is forward — but do you have a preferred way to get in touch for coordination (Matrix/Telegram/Discord/email)? I figure this is going to be a pretty involved effort and it'd be helpful to have a more real-time channel for questions and sync.
I'm happy to start with a small POC (e.g., BLE discovery + basic messaging) to validate feasibility before committing to a full port. Let me know what you think!
Thanks for building this — really excited about the project.
Hi maintainers,
I've been following BitChat for a while — the dual-transport architecture (BLE mesh + Nostr) is really cool, and the use case for offline mesh communication is something I find genuinely compelling.
I noticed the project currently supports iOS and macOS only. I'm a CS undergraduate with Android development experience (Kotlin/Java, Bluetooth APIs, etc.), and I'd love to help port BitChat to Android if that's something you're open to.
Before I dive in, I have a few questions:
Codebase architecture: The iOS codebase is in Swift (Xcode project). Is there any design doc or architecture overview that could help someone coming from a different platform understand the core logic (mesh transport, Noise protocol handshake, message routing, etc.)? I saw there's a whitepaper — I'll definitely read that first.
Bluetooth stack: The BLE mesh implementation is probably the most complex part. Is it built on Apple's CoreBluetooth, or is there a custom BLE stack? For Android, I'd likely use the Android Bluetooth APIs or possibly look into existing BLE mesh libraries — any thoughts on this?
Cross-platform strategy: Are you considering a cross-platform framework (Flutter/KMM) for future development, or would you prefer a native Android implementation that maintains parity with the iOS version?
Nostr integration: The app uses Nostr relays with a custom private-envelope format (kind-1059, XChaCha20-Poly1305). Is there a spec or reference implementation I can refer to for the encryption/decryption logic?
Testing & CI: I saw there's a test suite and CI workflows. Is there a test plan or a set of test vectors I could use to verify the Android implementation against the iOS behavior?
Also — and I apologize if this is forward — but do you have a preferred way to get in touch for coordination (Matrix/Telegram/Discord/email)? I figure this is going to be a pretty involved effort and it'd be helpful to have a more real-time channel for questions and sync.
I'm happy to start with a small POC (e.g., BLE discovery + basic messaging) to validate feasibility before committing to a full port. Let me know what you think!
Thanks for building this — really excited about the project.