Get notified about free offers when your favorite sports teams win or hit milestones.
Requires Task runner.
task setup # First-time setup
task api:serve # Terminal 1: Start backend
task mobile:serve # Terminal 2: Start mobile appThen press i for iOS simulator, w for web, or scan QR with Expo Go.
- Development Guide - Local setup and development workflow
- Backend Architecture - DOKS, Turso, Go decisions
- Mobile Architecture - Expo, EAS, state management
React Native app built with Expo. Features:
- Browse freebie offers by league (MLB, NBA, NFL, NHL)
- Subscribe to deals you're interested in
- Get notified when deals trigger
- Track active deals with expiration timers
Go-based API server that:
- Serves league/team/offer data
- Manages user subscriptions
- Tracks triggered deals and dismissals
- Sends push notifications
Lightweight Go CLI that runs as a Kubernetes CronJob. Polls live game data and calls API internal endpoints to trigger notifications when deal conditions are met.
All offer data is managed through SQL migrations in services/api/internal/db/migrations/:
001_schema.sql- Database schema002_initial_leagues.sql- MLB, NBA, NFL, NHL leagues003_mlb_data.sql- MLB teams and offers004_nba_data.sql- NBA teams and offers005_nfl_data.sql- NFL teams and offers006_nhl_data.sql- NHL teams and offers
To add new offers, create a new migration file (e.g., 007_add_new_team.sql).
- Node.js 20+ (for mobile app)
- Go 1.25+ (for backend)
- Task (task runner)
- EAS CLI (for mobile builds)
- mise (optional, for version management)
The MIT License.




