Independent · Android · Google Play

The Ballers

At a high level: client → ingestion → real-time sync → storage → delivery.


1. Client layer — mobile app

  • Built with Flutter (Android-first)
  • Game creation and team management
  • Real-time score input and player stats UI
  • Local state for fast interactions on court
  • Syncs with backend for persistence
  • Interaction layer — everything the user touches

2. Ingestion layer — APIs / SDK

  • App sends data via Firebase SDK to Firestore
  • Firestore for persistent storage
  • Realtime path for streaming across users (low latency)
  • Events: score updates, team changes, player actions, game state
  • Backend validates and processes incoming requests

3. Real-time sync & processing

  • Firebase Realtime Database / Firestore
  • Live updates across devices
  • Multiplayer sync — multiple users on the same game
  • Low-latency propagation so scores stay consistent

4. Storage layer

  • Game history and game summaries
  • Player profiles
  • Teams and tournament data
  • Location-based feed for teammates / followed activity

5. Delivery / consumption

  • UI renders live scores, summaries, and player stats
  • Multiple users can view the same game in real time