Inspiration
I'm obsessed with vibe coding, that magical flow where AI tools turn ideas into working apps at lightning speed. As a developer with years of experience building web applications, the advent of vibe coding with AI has made developing applications exponentially faster.
This hackathon was the perfect spark of inspiration. RevenueCat's Shipyard required mobile-only apps (iOS via TestFlight and Android via Google Play Internal Testing), something I'd never tackled before. I thought it would be a great challenge to vibe code my first mobile app via AI assistance for a real creator need (Sam Beckman's cross-platform reminder pain). The idea of seamless sync plus custom snooze from notifications felt like the ideal playground to prove AI and modern tools can turn this web developer into a mobile builder overnight.
What it does
SnoozeForge is a cross-platform reminder app with:
- Robust recurring rules (hourly, weekly, monthly, custom intervals).
- Custom snooze directly from notifications (enter any duration, for example 22 minutes).
- Real-time sync: Dismiss or snooze on iPhone? It instantly updates Android (and vice versa).
- Premium monetization via RevenueCat: Free tier for basics. Subscriptions unlock unlimited reminders and advanced features.
- Smooth, modern UI with haptics and intuitive flows.
Built to solve device-switching headaches for creators who live by reminders.
How I built it
Vibe-coded using Cursor IDE and Claude for rapid iteration. Settled on React Native for the frontend (familiar territory) to hit both iOS and Android from one codebase.
New tech I learned on the fly:
- Firebase for auth, real-time backend, and cross-device sync.
- Notifee for customizable notifications with text-input snooze actions.
- RevenueCat SDK for subscription management and paywalls.
Used rrule for recurrence logic. Workflow: Core CRUD plus sync, notifications plus snooze, RevenueCat gating, polish.
Challenges I ran into
Honestly, the biggest challenge was getting Apple App Store (TestFlight) and Google Play Internal Testing configurations set up. Having never gone through mobile submission processes before, it took time to navigate certificates, provisioning profiles, build signing, and console verifications, far more fiddly than the code itself.
Other bits (sync listeners, notification actions, RevenueCat entitlements) came together fast thanks to AI and solid docs.
Accomplishments that I'm proud of
The real-time synchronization across devices is what I'm most proud of. Dismissing a reminder or custom-snoozing on iPhone instantly clears or reschedules it on Android with no delays and no manual rebuilds. Watching it work live across my iPhone and Android device simulators felt like pure magic, especially as my first mobile app. Nailing RevenueCat integration for a clean premium experience (subscriptions, restores, gating) also stands out and is ready for real monetization.
What I learned
This has been an incredible crash course in mobile development: React Native patterns, native notifications, Firebase real-time magic, and production-grade monetization with RevenueCat. Vibe coding with AI is a superpower for rapid MVPs. App store distribution is its own beast, but conquering it opened the door wide.
Overall, a great experience. I've learned tons and see this as only the beginning of a portfolio of mobile apps I plan to build.
What's next for Snooze Forge
I'll share TestFlight and Internal Testing builds with Sam Beckman and other early users to gather feedback on what features would make it even better (smarter recurrence, custom themes, etc.). Depending on the input, I'll iterate on premium tiers, refine the RevenueCat paywall, and aim for public App Store and Google Play launches. SnoozeForge is the first step. Excited to keep forging ahead!
Built With
- date-fns
- eas-build
- firebase-authentication
- firebase-cloud-functions
- firebase-firestore
- notifee-(notifications)
- react-native-(expo-managed-workflow)
- react-native-paper
- react-navigation
- revenuecat-sdk
- typescript
- zustand-(state-management)
Log in or sign up for Devpost to join the conversation.