About the project
I built Yomo to solve a real workflow problem: reminders break when you switch between iOS and Android. As someone who uses multiple devices, Sam Beckman’s brief felt painfully familiar. I wanted to build a reminder app where actions happen at the moment of need, not after extra taps and app switching.
What inspired me
Most reminder apps force a tradeoff:
- Great native experience, but platform lock-in
- Cross-platform support, but weak notification interactions and slow sync
Yomo started with one principle: if you handle a reminder on one device, every device should immediately reflect that state.
How I built it
Yomo is a native mobile project with shared backend infrastructure:
- iOS: SwiftUI + MVVM, Notification Content Extension for in-notification snooze
- Android: Kotlin + Jetpack Compose, AlarmManager + receivers for reliable local notifications
- Backend: Firebase Auth, Firestore real-time listeners, Cloud Functions, FCM silent push
- Monetization: RevenueCat for entitlement checks, paywall, purchase/restore flows
- AI creation flow: Natural-language parsing pipeline with fallback strategy
Core flow:
- User creates/edits/completes a reminder
- Firestore updates as source of truth
- Cloud Function pushes sync events to other devices
- Other devices update UI and local notification schedule
Challenges I faced
- Notification-level UX on iOS: Building minute-level snooze in a notification extension while keeping the interaction fast and clear.
- Cross-device consistency: Ensuring reminder state and notification state both stay in sync, not just in-app lists.
- Platform differences: iOS and Android handle scheduling and notification actions very differently; each required native-first decisions.
- Time constraints: Shipping a contest-ready MVP meant strict scoping and prioritizing high-impact features over nice-to-haves.
What I learned
- Real-time sync must be designed as a system, not a single API call.
- Monetization works best when premium features map to workflows users immediately value.
- Native platform depth matters for high-frequency interactions like reminders.
- Good product constraints can improve focus: by narrowing scope, I shipped a clearer and stronger MVP.
Yomo is still evolving, but this version proves the core thesis: faster creation, better notification interaction, and reliable cross-device reminder consistency.
Built With
- firebase
- javascript
- kotlin
- openrouter
- revenuecat
- swift
- swiftui
Log in or sign up for Devpost to join the conversation.