Murmured - The anti-social network​​​​​​​
Murmured is a native Android app for anonymous, ephemeral group chat, designed and built from scratch using Jetpack Compose and Firebase. I led all aspects of product design and development. Currently in internal testing on Google Play; awaiting public beta approval.

Project Overview
Solo concept and execution — product strategy, UI design, and development

Murmured – Anonymous Group Chat App
A private, ephemeral chat experience with no user accounts, no names, and no data stored on the server. The anti-social network.
Role: Solo Designer + Developer
Platform: Android (Jetpack Compose + Firebase Realtime DB)
Tools: Figma, Android Studio, GitHub
Status: In active development (internal testing on Google Play Store)
Goal: Explore anonymous, non-persistent group communication using local device presence and QR-only invites
Problem Space

Modern chat apps anchor everything to identity: usernames, history, tracking.
What if we removed all of it?
I set out to create a space where:
• No accounts or usernames exist
• No chat history persists after a stream is deleted by the user
• No personal data is collected or stored
• Access is invite-only via QR code from someone already inside
Solution Summary

Murmured enables users to create or join temporary, anonymous chat streams via QR code invites.
Key features:
• Ephemeral messaging: Data wiped when stream ends
• QR-only invites: No search, no usernames
• Anonymous auth: Device-scoped ownership logic
• Stream control: Creator can end sessions with “Delete Stream”
• Firebase used only as a temporary transport layer
UX Design Considerations

• One-tap onboarding and exit (no setup)
• Material 3 UI with light/dark theme support
• Clear feedback for invites, join actions, and destructive events
• No profiles, labels, or message attribution — pure presence
• Sticky, human notices for limits/expiry instead of intrusive popup
Challenges + Tradeoffs

Challenge -> Solution
• NFC joining was unreliable
        ⸰ Switched to QR — fast, cross-device, emulator-friendly
• Ownership without identity
        ⸰ Anonymous auth + device-scoped rules for creator-only actions
• Returning users mid-session
        ⸰ Rejoin/leave prompt to prevent “ghost” sessions
• Preventing abandoned streams
        ⸰ Auto-delete when last user exits to keep DB clean

• Communicating destructive actions
        ⸰ Distinct UI styling + copy for “Delete/Leave Stream”

• Total anonymity UX
        ⸰ Uniform message styling; presence over identity
Screens & Flow
Primary User Screens (Dark Mode UI)
Start - Light
Start - Light
Start - Dark
Start - Dark
Invite
Invite
Chat Stream
Chat Stream
Menu
Menu
Upgrade to Pro
Upgrade to Pro
Protect the stream
Protect the stream
User Flow Map
🟦 Joiner Flow 🟩 Creator Actions 🟥 Stream Termination Logic
What’s New (Current State)

• Stream-wide Pro Mode (creator-activated upgrade)
• Free vs Pro Limits:
    • 8 users per stream (free)
    • 30-day stream life
    • 300 message limit
• Billing scaffolded (in progress for in-app purchases)
• QR invites & session hygiene
• Dev/Prod runtime DB and indicator
Future Vision
Planned improvements and stretch goals:
• Custom stream themes (mood, tone, style)
• Tone Stylizer: optional AI-powered rewriter for localized tone shifts
• Local-only mode for fully offline ephemeral chats
• Expanded Pro model (e.g., higher caps or true unlimited)
• iOS cross-platform support
What I Learned
Key takeaways from building and testing Murmured:
• Real-time design is all about edge cases and cleanup
• Small animations land better when designed early
• Solo building is a balance of product, UX, and code tradeoffs
• Designing for ephemerality challenges traditional feature thinking
• QR > NFC for speed, reliability, and cross-device support
How it Started and Early Prototypes​​​​​​​

Original Figma design - V2 7/23/2025

V1 logo

Original Figma - V1 7/19/2025

Back to Top