SyncMind
Your reminders, everywhere.
Problem Statement
Professionals juggling multiple devices -- an iPhone at the gym, an Android tablet at the desk, a laptop in the meeting -- rely on reminders to stay on top of their day. Yet today's reminder apps force a compromise: platform lock-in with decent sync (Apple Reminders), cross-platform reach with fragile offline behavior (Todoist, Google Tasks), or powerful recurrence with no real-time multi-device coordination at all. When a user snoozes a morning alarm on their phone, the same alert still fires on their tablet minutes later. When connectivity drops mid-commute, edits silently vanish.
Sam Beckman's brief calls for cross-platform reminders with custom snoozes and sync -- precisely the pain point SyncMind was built to solve. Our target audience is busy, multi-device professionals who need a reminder system that works seamlessly whether they are online, offline, or switching devices throughout the day.
Solution Overview
SyncMind is built on three pillars that directly address the gaps above: cross-platform access, a custom snooze system, and offline-first sync.
Cross-Platform Access. SyncMind runs natively on iOS, Android, and web from a single React Native (Expo SDK 54) codebase. The app supports email/password, Google OAuth, and Apple Sign-In via a dedicated better-auth server, ensuring users can authenticate with whatever identity they already have.
Custom Snooze System. Every snooze follows a robust execution pipeline -- cancel the current notification, update the database, log snooze history, reschedule the notification with the new time, and update the local store -- all in a single atomic flow. Users choose from presets or a fully custom time picker. For Pro subscribers, snooze actions propagate to every registered device in real time through Supabase Edge Functions, so dismissing an alarm on one device silences it everywhere.
Offline-First Sync. SyncMind never drops user data. When connectivity is unavailable, every create, update, delete, complete, and snooze operation is queued locally in AsyncStorage and processed in strict FIFO order once the network returns. The SyncEngine applies exponential backoff (1 s / 2 s / 4 s, max 3 retries) and resolves conflicts with a last-write-wins strategy where the server is authoritative on timestamp ties. Optimistic UI updates keep the experience instant, with automatic rollback if an operation ultimately fails. Pro users additionally receive real-time sync via Supabase Realtime WebSockets, where incoming postgres_changes events flow through a ConflictResolutionService that surfaces conflict toasts so users always know what changed.
Notification System. Reminders support multiple advance notification offsets (at time, 5 min, 15 min, 30 min, 1 hr, 1 day before). SyncMind handles the iOS 64-scheduled-notification limit with a rolling window strategy, supports Android notification channels (Default, Quiet, Grouped), respects quiet hours, and groups rapid-fire alerts. A pre-permission onboarding flow maximizes opt-in rates.
Advanced Recurrence. Free users get daily, weekly, monthly, and yearly patterns. Pro users unlock custom intervals (every N days/weeks/months), multi-weekday selection, ordinal patterns ("1st Monday", "Last Friday"), and hourly reminders within configurable time windows. All advanced options display a Pro badge in the UI, and downgraded users' existing patterns continue to fire -- they simply cannot edit them until they re-subscribe.
UX Polish. Gesture-based swipeable reminder cards, haptic feedback, animated theme transitions, pull-to-refresh, a floating action button for rapid creation, hierarchical lists with color and icon customization, tags, smart lists (Today, Scheduled, All, Flagged), list sharing with viewer/editor permissions, and a pre-permission onboarding screen all contribute to an experience designed for daily, habitual use.
Monetization Strategy
SyncMind uses RevenueCat (react-native-purchases v9) as its subscription infrastructure. A SubscriptionService singleton configures RevenueCat on launch, checks the pro entitlement via Purchases.getCustomerInfo(), and listens for real-time CustomerInfo updates so upgrades and downgrades take effect instantly -- no app restart required. When Pro status changes, the service calls RealtimeService.handleProStatusChange() to connect or disconnect the WebSocket layer dynamically.
| Free | Pro | |
|---|---|---|
| Basic CRUD and recurrence | Yes | Yes |
| Advanced recurrence patterns | -- | Yes |
| Device limit | 1 | Unlimited |
| Real-time cross-device sync | -- | Yes |
| Cross-device snooze sync | -- | Yes |
| Badge count sync | -- | Yes |
Upgrade triggers are embedded where users naturally encounter limits: a DeviceLimitModal appears when a free user's second device registers, Pro badges decorate gated recurrence options, and contextual paywall messages explain the value of each advanced pattern. Graceful downgrade handling ensures existing advanced patterns continue to fire -- users are never punished for trying Pro. Pro is offered at $9.99 / month or $79.99 / year (a ~33 % saving). The freemium model is designed to be sustainable: a generous free tier drives adoption while Pro delivers compelling value through multi-device sync and power features.
Post-Hackathon Roadmap
- Location-Based Reminders -- Infrastructure is in place (a
location_triggerJSONB field on every reminder) to trigger notifications when users arrive at or leave a geofenced area. - AI-Powered Smart Suggestions -- Natural language input for quick reminder creation, intelligent time suggestions, and auto-categorization to reduce friction.
- Home Screen Widgets -- At-a-glance "Today" and "Upcoming" widgets for iOS and Android, keeping reminders visible without opening the app.
- Richer Notification Actions -- Expand beyond snooze to let users complete, edit, or reschedule reminders directly from the notification shade.
- Enhanced Collaborative Editing -- Build on the existing list-sharing infrastructure to support real-time collaborative list editing with live cursors and presence indicators.
Built With
- better-auth
- expo.io
- firebase
- notifee
- postgresql
- react
- react-native
- revenue-cat
- supabase
Log in or sign up for Devpost to join the conversation.