Inspiration
When I saw the brief for this project, it clicked immediately. The problem was so relatable — someone who depends entirely on reminders to function, frustrated that no single app gets it right across platforms. I've seen people juggle multiple apps or resort to shared calendars cluttered with personal tasks. The requirements were specific and opinionated: custom snooze from notifications, powerful recurrence, real cross-device sync, and a UI that actually feels good. That's what made it interesting — it wasn't a vague "build a todo app," it was a clear set of pain points that no existing app solves together. I wanted to see if I could build the one app that checks every box.
What it does
TickCommit is a cross-platform reminders and habits app for iOS and Android. Key features:
- Custom snooze from notifications — snooze for exactly 15 minutes (or any custom duration) without ever opening the app
- Snooze limits — set a max number of snoozes per reminder so you stop kicking the can down the road
- Powerful recurrence — weekly, biweekly, monthly, hourly, every N days, specific weekdays, you name it
- Eisenhower matrix — prioritize tasks by urgency and importance
- Stats & streaks — track completion rates, view charts by category, weekday patterns, and radar breakdowns
- Habit tracking — build streaks with recurring habits alongside your reminders
- Cross-device sync — dismiss on one device, gone everywhere
- Multiple calendar views — month, week, 2-week, daily planner, 3-day, and timeline views
- Lists, tags, smart lists, and time blocks — organize however your brain works
- Home screen widgets — quick task overview without opening the app
- Attachments — add photos and files to reminders
How we built it
- Flutter for cross-platform UI
- Firebase (Auth, Firestore) for authentication and cloud sync
- Hive for local-first offline storage
- Riverpod for state management
- RevenueCat for subscription management
- flutter_local_notifications for notification actions and custom snoozing
The architecture is offline-first — everything works without internet and syncs when connectivity returns. On iOS, we work within the 64 scheduled notification limit by implementing a rescheduling system that keeps the most relevant reminders active.
Challenges we ran into
- iOS 64 notification cap — Android lets you schedule as many as you want, iOS does not. Building a smart rescheduling system that prioritizes the right reminders was tricky.
- Cross-device sync edge cases — making sure a snoozed or dismissed reminder resolves correctly across multiple devices with potential offline gaps required careful conflict resolution.
- Notification actions — getting custom snooze durations to work reliably from notification actions on both platforms, each with their own quirks and limitations.
- Recurrence logic — supporting every combination of repeat patterns (every 3rd Wednesday, biweekly on weekdays, etc.) without bugs is harder than it sounds.
Accomplishments that we're proud of
- The custom snooze from notifications genuinely works — no app opening required
- Snooze limiting actually makes you more accountable, it's a feature I haven't seen elsewhere
- The app feels polished — smooth animations, clean design, proper game feel
- Offline-first sync that actually works reliably
What we learned
- RevenueCat makes subscription management significantly less painful than doing it manually
- Firebase has a learning curve but once the data model is right, Firestore's real-time listeners make sync feel effortless — getting the security rules and offline persistence to play nicely together took real effort though
- Designing for notification limits on iOS forces you to think carefully about what actually matters to the user
- Offline-first is the right default for productivity apps, but the sync layer is where all the complexity hides
What's next for TickCommit - Reminders & Habits
- Collaborative shared lists
- Natural language input for creating reminders (e.g. "water plants every Tuesday at 9am")
- Location-based reminders
- Desktop support (macOS, Windows)
Log in or sign up for Devpost to join the conversation.