-
-
The reminder app you've always wanted
-
Clean dark UI with today's reminders at a glance
-
Reminderly – Never miss what matters
-
Smart features that actually work
-
Cross-device sync, smart recurrence, one-tap snooze
-
Powerful recurrence: daily, weekly, monthly, yearly with end conditions
-
Create reminders in seconds with quick date presets
-
Snooze for 5, 15, 30 min or set a custom duration
Inspiration
Sam Beckman lives by reminders—but switching between Android and iOS means rebuilding his entire system from scratch. His brief called out the exact frustrations I'd been dealing with myself: no true cross-device sync, rigid snooze options, and recurrence rules that can't handle real-life schedules.
The breaking point for me was the same as Sam's: dismissing a reminder on one device, only to have it nag you again on another. Every reminder app I tried failed at this basic promise. They sync your data, but they don't sync your actions.
Sam wanted three things: custom snoozes from notifications, powerful recurring rules, and true sync so dismissing once clears everywhere. Reminderly was built to deliver exactly that.
What it does
Reminderly solves Sam's three core pain points:
1. Dismiss once, clears everywhere. When you complete a reminder on your Android phone, it cancels on your tablet within seconds. No double-nagging. No manual cleanup. This is real-time action sync via Firebase—not just data sync.
2. Custom snooze from the notification. Tap snooze for 5, 15, or 30 minutes directly from the notification. No app opening. Premium users can snooze for any custom duration. This is the "quick snooze" Sam asked for—frictionless and fast.
3. Recurrence that handles real life. Daily, weekly, multi-day weekly (Mon/Wed/Fri), custom intervals, monthly, yearly—all with a visual builder and live preview. Sam's "powerful recurring reminders" means supporting schedules like "every 2 weeks on Tuesday" or "1st of every month."
How we built it
Frontend: React Native + Expo for true cross-platform (Android now, iOS-ready). Expo Router for navigation. Zustand for lightweight state management.
Backend: Full Firebase stack—Auth, Firestore for real-time sync, Cloud Functions for server logic, FCM for push notifications.
The secret sauce—cross-device sync: When you dismiss or snooze on Device A, Firestore updates trigger a Cloud Function that sends silent data messages to all your other devices. They cancel their local notifications within seconds. This is what makes "dismiss once, clears everywhere" actually work.
Notifications: Notifee powers rich notifications with action buttons. You can snooze or dismiss without ever opening the app—exactly what Sam wanted.
Monetization: RevenueCat handles subscriptions and entitlements. Premium status is validated server-side via RevenueCat's API and enforced in Firestore security rules—not just client-side gates that can be bypassed.
Challenges we ran into
Cross-device notification cancellation was the hardest problem. Firebase real-time listeners update UI, but canceling a scheduled local notification requires receiving a background data message and acting on it silently. Android's background restrictions vary wildly across versions and manufacturers. Getting this reliable took the most iteration.
Recurrence without data bloat. Generating infinite future events would explode the database. We separated "reminder templates" (the pattern) from "events" (concrete instances), generating events on a rolling 7-day window. This keeps Firestore lean while supporting complex recurrence.
Premium enforcement that actually works. Client-side gates are trivially bypassed. We built server-side counters maintained by Cloud Functions, with Firestore security rules validating limits against these counters. RevenueCat's server API is the source of truth—not the client SDK alone.
Accomplishments that we're proud of
- Sub-second cross-device sync that actually works—dismiss on your phone, watch it vanish on your tablet
- Notification actions that work without opening the app—snooze 15 min with one tap
- A recurrence engine that handles Sam's real-life schedules—not just "every day" or "every week"
- Server-side premium enforcement via RevenueCat that can't be bypassed
- Clean, dark UI that respects attention and feels premium
- Built for Sam's audience—tech-savvy users who live in reminders and expect things to just work
What we learned
- Notification APIs are a minefield. Every Android version and manufacturer has different background restrictions. Real-device testing across OS versions is non-negotiable.
- Templates + instances is the right data model for any recurring system. Edit one occurrence without corrupting the series.
- RevenueCat makes monetization simple, but the real work is designing upgrade triggers that feel fair—not manipulative. We show premium features, let users try, and upgrade when they hit a limit.
- Sam's brief was specific for a reason. The three features he asked for aren't nice-to-haves—they're the exact friction points that make power users abandon reminder apps.
What's next for Reminderly
- iOS launch—the codebase is cross-platform ready, just needs App Store deployment
- Home screen widgets for at-a-glance upcoming reminders
- Voice-based quick creation—"Remind me to call Sam tomorrow at 3pm"
- Shared reminders for families and teams
- Watch companion apps for Wear OS
- Working with Sam to refine the product for his audience and leverage his distribution
Built With
- cloud-functions
- expo.io
- firebase
- notifee
- queues
- react-native
- revenue-cat
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.