CraveCrush is a cross-platform recipe discovery app that makes finding your next meal as fun as swiping on your favourite dating app. By combining swipe-based interactions with curated recipes and music pairings, CraveCrush transforms meal planning from a chore into an engaging, playful experience.
CraveCrush reimagines recipe discovery by applying the addictive swipe mechanics popularized by dating apps to food exploration. Users swipe left to skip, swipe right to “crush” recipes they love, and instantly build a personalized collection of dishes, each paired with music to set the mood while cooking.
- 🔥 Swipe-based recipe discovery (left to pass, right to like)
- 💖 Matches collection for saved recipes
- 🎵 Music pairing to enhance the cooking experience
- 📱 Cross-platform support (Web + Mobile)
- ⚡ Smooth gesture animations and responsive UI
- 💾 Persistent state across sessions
Frontend
- Expo
- React Native
- TypeScript
- expo-router
- React Native Animated API
State Management
- React Context + Reducer (web-safe, persistent storage)
Storage
- Web:
localStorage - Mobile:
AsyncStorage
Media
- YouTube embed for music pairing
- Platform-agnostic state layer: We designed a custom global store that works reliably on both web and native platforms.
- Gesture-driven UI: We implemented swipe mechanics using low-level animation APIs for performance and control.
- Separation of concerns: We kept a clean split between UI components, navigation, and business logic.
- Scalable foundation: The app is built with extensibility in mind (recommendations, accounts, social features).
- Node.js (LTS recommended)
- Expo CLI
git clone https://github.com/your-username/cravecrush.git
cd cravecrush
npm install# Web
npm run web
# Mobile (iOS / Android)
npm start- Cross-platform compatibility: We resolved Expo + React version conflicts to support web and mobile seamlessly.
- State persistence: We built a custom storage abstraction to avoid platform-specific crashes.
- Gesture correctness: We eliminated stale closures by passing swipe payloads directly from animated components.
These challenges significantly improved the app’s reliability and architecture.
- Delivering a polished, interactive UX under hackathon time constraints.
- Solving non-trivial cross-platform state and animation bugs.
- Building a product that balances technical depth with strong product intuition.
- Collaborating effectively to ship a complete, working application.
- 🤖 Personalized recommendations based on swipe history
- 👥 Social features (shared matches, cooking challenges)
- ☁️ User accounts & cloud sync
- 🎶 Playlists instead of single tracks
- 🎨 UI polish and App Store deployment
CraveCrush was built by: