Murmur is a privacy-focused social platform built with Compose Multiplatform. It allows users to share thoughts and engage in discussions with a focus on anonymity and device-based identity.
- Anonymous Feed: Browse and post messages without traditional user accounts.
- Device-Based Identity: Uses unique device hashes for moderation and interaction tracking.
- Real-time Interactions: Live updates for likes and comments using Supabase Realtime.
- Moderation: Built-in reporting system and device-based banning to keep the community safe.
- Push Notifications: FCM integration for updates on your posts and interactions.
- Multiplatform: Shared core logic and UI between Android and iOS.
- UI: Compose Multiplatform (Material 3)
- Networking & Backend: Supabase (Postgrest, Realtime, Storage)
- Dependency Injection: Koin
- Concurrency: Kotlin Coroutines & Flow
- Push Notifications: Firebase Cloud Messaging (FCM)
.
├── composeApp/ # Shared Compose Multiplatform code
│ ├── src/
│ │ ├── commonMain/ # Core business logic, UI, and data layer
│ │ ├── androidMain/ # Android-specific implementations (FCM, Services)
│ │ └── iosMain/ # iOS-specific implementations
├── iosApp/ # iOS Xcode project entry point
└── gradle/ # Dependency management (Version Catalogs)
- Android Studio Ladybug or later
- Xcode 15+ (for iOS)
- JDK 17+
The project requires a Supabase instance.
- Create a
push_tokenstable for notifications. - Configure Realtime for
postsandcomments. - Set up your
.envor configuration withSUPABASE_URLandSUPABASE_KEY.
- Android: Run the
:composeAppconfiguration in Android Studio. - iOS: Open
iosApp/iosApp.xcworkspacein Xcode or run from Android Studio if configured.
Built with ❤️ using Kotlin Multiplatform.

