Murmur
Privacy-first Android group chat with QR-only invites and no accounts
Murmur is a native Android application for private, temporary group messaging. Built with Kotlin and Jetpack Compose, it explores privacy-first communication through QR-based invitations, ephemeral sessions, and real-time messaging.
Role: Product Designer + Android Developer
Tech Stack: Jetpack Compose • Kotlin • Firebase • MurmurRelay • Figma
Status: Active development
Tech Stack: Jetpack Compose • Kotlin • Firebase • MurmurRelay • Figma
Status: Active development
View Source on GitHub ▶
Key Features
• QR-code invitations with no accounts required• Temporary group messaging with automatic cleanup
• Privacy-first design with no persistent profiles
• Custom Jetpack Compose design system
• Real-time messaging built on MurmurRelay
Screens & Flow
Primary User Screens (Dark Mode UI)
Invite
Chat Stream
Protect the stream
User Flow Map
🟦 Joiner Flow 🟩 Creator Actions 🟥 Stream Termination Logic
Murmur is a native Android app for anonymous, temporary group chat. I designed and built it in Jetpack Compose and Firebase to explore privacy-first communication without accounts, profiles, or persistent chat history.
Architecture Evolution
As Murmur evolved, I separated the messaging layer into MurmurRelay, a reusable communication SDK. Decoupling the transport from the Android application made the architecture more modular, easier to maintain, and flexible enough to support different messaging backends in the future while keeping the application focused on the user experience.
What I Learned
• Designing real-time communication requires balancing privacy, usability, and technical constraints.
• Separating core infrastructure from the application made the project easier to extend and maintain.
• Building both the UI and underlying architecture strengthened my understanding of how product design and engineering influence each other.
• Iterating on the product reinforced the importance of simplifying complex workflows without sacrificing flexibility.
• Separating core infrastructure from the application made the project easier to extend and maintain.
• Building both the UI and underlying architecture strengthened my understanding of how product design and engineering influence each other.
• Iterating on the product reinforced the importance of simplifying complex workflows without sacrificing flexibility.
MurmurRelay
As the project evolved, I separated the messaging logic into MurmurRelay, a reusable encrypted messaging SDK. The goal was to move the chat layer away from being tied directly to Firebase and make the communication system more transport-agnostic.