- Type
- Web and mobile app
- Status
- Live
- Website
- gorlf.app
FlutterRiverpodFirebaseGoogle Cloud
The problem
Golfers track rounds on paper cards or generic notes apps, so scores, course ratings and handicap maths end up scattered and hard to trust. Connectivity on the course is unreliable.
The solution
One app for the whole round: pick a course, enter scores hole by hole, add playing partners and side games, and get handicap and statistics calculated automatically. Rounds are cached locally and sync later.
What it does
- Email and Google sign-in
- Hole-by-hole scoring, including partial rounds
- Handicap index and player statistics
- Searchable, sortable game history
- Course database and course management
- Skins games and shareable scorecards
- Offline mode with connectivity indicators
Architecture
- Flutter client (Dart), compiled to a web app
- Riverpod for state management, migrated progressively from Provider behind feature flags
- Firebase Authentication and Cloud Firestore
- Local caching for offline use
- Firebase Hosting on Google Cloud with CI/CD through GitHub Actions
Screenshots
Inside the product
Tech stack
- Flutter
- Dart
- Riverpod
- Firebase
- Cloud Firestore
- Google Cloud
- GitHub Actions
Our role
Product design and the full build: the Flutter app, authentication and data model, offline caching, the handicap and statistics engine, hosting, domain and the deployment pipeline.