Case study
Cric Star Line
A live cricket platform with streaming, scores and ads, shipped to both app stores.
- Role
- Full stack, from the mobile app to the backend and the admin panel
- Platforms
- iOS, Android, Web admin

01/Overview
Cric Star Line (Cricket-Hatstar) is a full-stack cricket product: an Expo and React Native app for fans, an Express and MongoDB backend, and a Vite admin panel for the people who run it. Fans browse live, upcoming and finished matches, open match detail with scorecards and commentary, watch monetized HLS live streams, and get push notifications.
02/The brief
Cricket fans want the score the moment it changes, match detail that goes deeper than a scoreboard, and video for the matches that matter, all on a phone. The product also has to pay for itself, through ads and paid streams, without a developer in the loop every time a banner or campaign changes.
03/What I built
For fans
- Live, upcoming and finished matches in one feed
- Match detail with scorecards and ball-by-ball commentary
- Push notifications for the moments people care about
- Google and Apple sign-in
Live data and video
- Score updates pushed over WebSockets
- HLS live streams that adapt to the connection
- Paid access to streams through Razorpay
Revenue and operations
- AdMob placements in the app
- Admin-managed banners and ad campaigns
- A Vite admin panel for day-to-day control
04/Key decisions
- 01
Push the score, do not poll for it
A live score changes many times a minute. Polling an API that often drains batteries and still lags. Scores travel over a WebSocket, so every open match screen updates the moment the backend does, and the regular HTTP API stays for everything that does not change by the second.
- 02
HLS for video, with the backend as gatekeeper
HLS plays natively on iOS and Android and steps quality up or down with the connection, which matters for fans watching on mobile data. Razorpay handles the payment, and the backend decides who may open a stream, so access control lives in one place.
- 03
Only the sign-in options people already have
Google and Apple sign-in cover almost every phone, remove password support work, and Apple sign-in is required on the App Store once another social login is offered.
- 04
Give the operators their own panel
Banners, campaigns and promotions change far more often than the app does. A separate admin panel lets non-developers change them in minutes, with no app release and no developer in the loop.
- 05
One codebase for two stores
Expo and React Native keep a single TypeScript codebase for iOS and Android, so every feature, from streaming to notifications, ships to both stores at the same time.
05/Outcome
The app is live on Google Play and the App Store, with live scores, paid streaming, ads and admin-managed campaigns all running on the same backend.
06/What I would do next
- Cache the last known scores so match screens open instantly without a connection
- Lock-screen and home-screen score widgets for followed matches
- Automated screenshot tests for the live match screens before each release