Inspiration
Built for Sam Beckman's challenge to create the perfect cross-platform reminder app. As a phone reviewer who constantly switches between iOS and Android, he needed an app with custom snoozing, powerful recurring reminders, proper syncing, and beautiful UI—features no existing app combined.
What it does
Poke is a beautiful, fully-functional reminder app that works on both iOS and Android with four core features:
- Custom Snooze - Snooze notifications for exact times directly from the notification
- Powerful Recurring - Full control over recurring tasks: hourly, daily, weekly, monthly, or custom intervals
- Proper Sync - Dismiss on one device, disappears everywhere (Premium feature)
- Beautiful UI - Playful font, smooth animations, clear, understandable, simple UI and UX that feels premium without being overwhelming.
The app works 100% offline without an account. Premium ($2.99/month) unlocks cloud sync across devices.
How we built it
- React Native + Expo for cross-platform development
- Drizzle ORM with SQLite for local-first data storage
- Supabase for cloud sync (premium users)
- RevenueCat for subscription management
- expo-notifications for local and push notifications with background task support
- TypeScript with strict mode for type safety
Local-first architecture ensures the app works perfectly offline, with optional cloud sync for premium users.
Challenges we ran into
- Notification scheduling - Managing recurring reminders with RRULE and scheduling the next 30 occurrences while respecting system limits
- Cross-platform consistency - Ensuring identical behavior and UI on iOS and Android
- Toggle cascade logic - Implementing the Time → Date dependency chain without creating infinite loops
- Sync conflict resolution - Designing a robust sync system that handles offline edits and merges changes correctly
- Completion animations - Smooth strikethrough + fade + collapse animations that feel responsive and polished
Accomplishments that we're proud of
- 100% offline functionality - No account required, unlimited local reminders
- Smooth animations - Completion animations with haptic feedback that feel premium
- Custom snooze from notifications - Snooze for exact times directly from the notification
- Time-grouped views - Overdue, Morning, Afternoon, Tonight sections for better organization
- 30-day Recently Deleted - Safety net for accidental deletions with auto-cleanup
- Clean codebase - Reusable components, proper TypeScript types, and clear separation of concerns
What we learned
- Local-first architecture creates better UX than cloud-first for personal productivity apps
- React Native StyleSheet provides more control than utility-first frameworks for complex animations
- RRULE standard is powerful but requires careful handling of edge cases and timezones
- Notification permissions and background tasks require different strategies on iOS vs Android
- Drizzle ORM offers excellent type safety while staying close to SQL
What's next for Poke
Core Improvements
- Design refinements - Polish lists, tabs, and components for better visual hierarchy
- Color system - Enhanced dark/light mode palettes with improved contrast and accessibility
- Animation polish - Smoother transitions and micro-interactions throughout the app
- Splash screen - Add a playful splash screen with the Poke logo and tagline
Power User Features
- Tags - Organize reminders with custom labels and filters
- Subtasks - Break down complex reminders into actionable steps
- Multi-select - Batch actions (complete, delete, move) for multiple reminders
- Advanced sorting - Sort by date, title, priority, creation date
- Print & export - Generate printable lists for Today view or custom lists
Platform Integration
- Home screen widgets - Quick glance at today's reminders and upcoming tasks
- Social auth - Sign in with Google and Apple for faster onboarding
Premium Enhancements
- Sync preferences - Choose between cloud sync or local-only storage for premium users
- Data portability - Export/import reminders as JSON for backups or device transfers
Community & Growth
- Play store video & screenshots - Better and more understandable screenshots and video.
- Landing web page - Showcase features with App Store and Google Play download links
- Open source of the app - Public GitHub repository with full codebase access
- Public roadmap - Community-driven feature requests and bug reports on GitHub
Built With
- drizzle
- expo.io
- react-native
- revenuecat
- sqlite
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.