Inspiration

We noticed that most reminder apps require typing, which is frustrating when you're driving, cooking, or have your hands full. Voice assistants like Siri and Google Assistant handle reminders, but they need an internet connection and send your voice data to the cloud. We wanted to build something that works completely offline, processes speech on-device using AI, and respects user privacy.

Remynd was born from a simple idea: setting a reminder should be as easy as speaking. No typing, no internet, no data leaving your phone.

What it does

Remynd is a voice-first reminder app powered by on-device AI (Whisper TFLite):

  • Speak reminders naturally. Just say what you need to remember and the app transcribes it instantly on-device.
  • Wake word activation. Say "Hi Emma" to go fully hands-free.
  • Smart recurring reminders. Daily, weekly, monthly, or custom intervals (every X minutes/hours/days).
  • Flexible snooze. 1 min, 5 min, or type a custom snooze duration right from the notification.
  • Cross-device sync. Reminders sync via Supabase with real-time push notifications to other devices.
  • Works offline. Speech-to-text runs entirely on-device, no internet needed for core functionality.

How we built it

Frontend:

  • React Native for the cross-platform mobile framework
  • Zustand for reactive state management
  • SQLite for local-first storage with a sync layer

On-Device AI:

  • Whisper TFLite, a quantized speech-to-text model running natively on Android
  • Custom Kotlin Native Module (WhisperModule.kt) that bridges TFLite inference to React Native
  • Wake Word Engine (WakeWordEngine.kt) using audio processing to detect "Hi Emma" without cloud dependency

Backend & Sync:

  • Supabase for PostgreSQL database, authentication (Google Sign-In), Edge Functions, and Realtime
  • PostgreSQL Triggers + pg_net to auto-notify other devices when reminders change
  • Firebase Cloud Messaging (FCM) for silent push notifications that trigger cross-device sync

Notifications & Monetization:

  • Notifee for rich Android notifications with AlarmManager-based exact scheduling
  • RevenueCat for subscription management with Google Play Billing

Challenges we ran into

  • On-device Whisper integration. Bridging TFLite from native Kotlin to React Native required a custom module handling audio recording, MEL spectrogram computation, and model inference all on-device.
  • Wake word detection. Implementing reliable keyword spotting using raw audio processing without any cloud service was tricky to get right.
  • Cross-device sync conflicts. Designing a system that handles offline edits, concurrent changes from multiple devices, and conflict resolution without data loss took multiple iterations.
  • Android notification reliability. Ensuring AlarmManager alarms fire reliably across Android 12 to 15 with battery optimization and exact alarm permissions required a lot of testing.

Accomplishments that we're proud of

  • Fully offline voice AI. Speech-to-text works without any internet connection, keeping user data private.
  • Complete hands-free workflow. From wake word ("Hi Emma") to transcription to scheduled reminder, all without touching the screen. The wake word engine is custom-built using raw audio processing and currently triggers with about 70-80% accuracy, which we're continuously improving.
  • Real-time cross-device sync. Add a reminder on one device and it appears on another within seconds via DB triggers, Edge Functions, and FCM.
  • Production-ready subscription. Complete RevenueCat + Google Play Billing with entitlement checks, restore purchases, and subscription management.
  • Robust notifications. Custom snooze with user input, recurring rescheduling, and reliable alarm cancellation.

What we learned

  • On-device AI is production-ready for focused use cases. Whisper TFLite is fast enough for real-time voice commands without cloud inference.
  • Sync is hard. Clock drift, offline edits, and concurrent writes require careful Last-Write-Wins design.
  • Android alarm system is complex. Exact alarms need explicit permissions on Android 12+, and battery optimization can silently kill scheduled notifications.
  • Local-first architecture wins. SQLite + cloud sync gives the best UX: instant offline, seamless when connected.

What's next for Remynd – Voice Reminders with On-Device AI

  • Natural language date parsing. "Remind me next Thursday at 3pm" auto-sets the correct date.
  • Location-based reminders. Trigger when arriving at or leaving specific places.
  • iOS launch. Bring the same on-device AI experience to iPhone.
  • Multilingual support. Whisper supports 99 languages.
  • Home screen widget. Quick-add without opening the app.

Built With

Share this project:

Updates