Inspiration

Managing reminders across multiple devices is fragmented. We wanted a seamless cross-platform solution with real-time sync that delivers a truly native experience on both Android and iOS.

What it does

Remind is a cross-platform reminder app with smart categorisation (Overdue, Upcoming, Missed, Snoozed), flexible scheduling with advanced notifications, snooze functionality, real-time multi-device sync, offline support, and multi-provider authentication (Email, Google, Apple).

How we built it

  • Kotlin Multiplatform + Compose Multiplatform for ~90% shared code
  • Room Database for local persistence, Firebase Firestore for cloud sync
  • MVVM + Clean Architecture with Koin for dependency injection
  • Platform-specific: AlarmManager/WorkManager (Android), UserNotifications (iOS)

Challenges we ran into

  • Precise notifications across platforms with different scheduling APIs
  • Device reboot persistence - implemented BroadcastReceiver to reschedule alarms
  • Offline-first sync with optimistic updates and exponential backoff retry
  • Cross-platform datetime handling with timezone consistency

Accomplishments that we're proud of

  • Smart categorisation algorithm with real-time 30-second refresh
  • Reliable background sync with conflict resolution
  • Seamless offline-to-online data recovery

What we learned

Kotlin Multiplatform is production-ready. Compose Multiplatform accelerates cross-platform UI development. Platform nuances (Doze mode, iOS background limits) require thoughtful native solutions.

What's next for Remind

Widgets, WearOS/Apple Watch support, location-based reminders, collaboration features, and calendar integration.

Built With

Share this project:

Updates

Submission history