SaborSpin helps you decide what to eat without repeating meals too often. Get personalized meal suggestions based on your ingredients and eating history.
Problem: Decision fatigue around daily meals. Eating the same things repeatedly.
Solution: Variety-enforced meal suggestions that prevent repetition while respecting your preferences.
Website: saborspin.com
- Variety Enforced - Algorithm prevents repeating ingredients within your cooldown period
- Fast Decisions - Pick a meal in under 20 seconds
- Fully Customizable - Add your own ingredients, categories, and meal types
- Meal Tracking - See your eating history and patterns
- Dark Mode - Easy on the eyes, day or night
- Privacy First - All data stored locally, no cloud sync
- Cross-Platform - iOS, Android, and Web
- Download APK from Releases
- Coming soon to Google Play Store
Coming soon to the App Store
Try the web version (data not persisted) by running locally.
# Clone the repo
git clone https://github.com/vitorsilva/saborspin.git
cd saborspin/demo-react-native-app
# Install dependencies
npm install
# Start development server
npm start
# Run tests
npm test
# Run E2E tests
npm run test:e2eSee Installation Guide for detailed setup.
| Technology | Purpose |
|---|---|
| React Native + Expo | Mobile framework |
| SQLite | Local-first database |
| Zustand | State management |
| TypeScript | Type safety |
| Playwright | E2E testing |
| Document | Description |
|---|---|
| User Guide | How to use SaborSpin |
| Architecture | Technical documentation |
| Developer Guide | Setup and development |
| Contributing | How to contribute |
| Changelog | Version history |
| Epic | Status |
|---|---|
| Epic 1: Infrastructure & Foundation | Complete |
| Epic 2: Meals Randomizer Features | Complete |
| Epic 3: Production Readiness | Complete |
Test Coverage: 101+ unit tests, 12 E2E tests
Contributions are welcome! Please read our Contributing Guide and Code of Conduct.
- Name: SaborSpin (sabor = flavor in Portuguese)
- Tagline: "Shake up your plate"
- Colors: Orange #FF6B35 | Green #4CAF50 | Yellow #FFC107
This project is licensed under the MIT License - see the LICENSE file.
Made with care in Portugal
