Volleyball players celebrating a point on an indoor court
All Case Studies

// Sports & Recreation

Varsity Score

Volleyball Recording App, Live Streaming & Back Office

Built Varsity Score end to end: a native-feeling iPhone and iPad app that records volleyball matches with the live score burned into the video, one-tap live streaming that parents can watch from any browser, a back office for clubs, teams and tournaments, and the marketing site that sends families to the App Store. The API, database, video storage and streaming server run on Google Cloud.

3

Products: App, Back Office & Site

iPhone + iPad

Native App on the App Store

3

Live Streaming Destinations

Burned-in

Score Overlay, No Editing

// Product tour

Inside the Build

Marketing site

varsityscoreapp.com: the home page, feature pages and the public Watch Live page.

Next.js 16React 19Tailwind CSSVercelvarsityscoreapp.com
Home page hero with the App Store and Watch Live calls to action
Feature section for the live score overlay
Live streaming to Varsity Score, Twitch or Facebook
The home page on a phone

Back office

The admin dashboard, shown here with seed data from a local environment.

Next.jsPrimeReactExpress API on Cloud RunCloud SQL (PostgreSQL)
Dashboard: users, clubs, games and players at a glance (seed data)
Tournaments with status, dates and search (seed data)
Teams across every club (seed data)

Mobile app (iOS)

iPhone and iPad app on the App Store, with a native Swift module for the burned-in score overlay.

Recording screen: the score is drawn into the video as it records
Score overlay on an iPad recording
Score-only mode for keeping score without filming
Remote control: score from an iPhone while the iPad records
Record, keep score, control remotely and share
Onboarding: why the app asks for camera, microphone and photos
Camera access, step 1 of 3, for recording and live streaming
Account ready: record, score, share

// The problem · 4 pain points

The Challenge

Club volleyball families film every match on a phone, but a raw clip doesn't show the score, and adding it means editing afterward. Relatives who can't make the gym have no way to watch live, and the clubs and tournaments behind those matches need somewhere to manage teams, games and streams.

01

Recordings without the score

A phone recording shows the rally but not the score or set, so clips need editing before they make sense to anyone else

02

No way to watch from home

Grandparents and parents who can't travel to a tournament had no simple way to follow the match live

03

One person, two jobs

The parent holding the camera is also the one keeping score, so the app has to stay out of the way courtside

04

Clubs and tournaments to manage

Clubs, teams, players, games and live streams needed a back office with roles for admins, coaches and parents

// How it works

How It Works

A parent records and keeps score on one device; the match streams live and every game lands in the back office.

Courtside (iOS app)

Record and score from the same screen

  1. 01

    Record in HD

    iPhone or iPad records the match, online or offline

  2. 02

    Keep Score

    Set-based scoring with team names, logos and colors

  3. 03

    Overlay Burned In

    Score rendered into every frame as it records

  4. 04

    Remote Control

    An iPhone keeps score while the iPad films

Live Streaming

Family watches from anywhere

  1. 01

    RTMP Stream

    One tap sends the match to the media server

  2. 02

    HLS Transcoding

    Compute Engine media server repackages the stream for browsers

  3. 03

    Watch Live

    Viewers open varsityscoreapp.com/watch on any device

  4. 04

    Twitch & Facebook

    Or stream straight to the family's own channels

Back Office & API

Google Cloud behind every screen

  1. 01

    Cloud Run API

    Express and TypeScript API with JWT roles

  2. 02

    Cloud SQL

    PostgreSQL with migrations on every deploy

  3. 03

    Cloud Storage

    Stream recordings stored after the match ends

  4. 04

    Admin Dashboard

    Clubs, teams, tournaments, games and streams

// What we built

Our Solution

1

iPhone & iPad Recording App

React Native and Expo app with a native Swift video module that renders the score overlay onto each frame as it records, so the score is part of the video file everywhere it's shared. Set-based scoring, team names, logos and colors, score-only mode, offline HD recording, and remote control: score on an iPhone while the iPad films. Published on the App Store.

2

Live Streaming

One tap streams a match over RTMP to Varsity Score, Twitch or Facebook while it records locally. Varsity Score streams land on a media server that transcodes them to HLS, and viewers watch at varsityscoreapp.com/watch from any browser, grouped by tournament.

3

Back Office

Admin dashboard in the same Next.js app as the marketing site: clubs, teams, players, tournaments, games, streams, users and coach verification, with roles for super admins, club admins, coaches and parents, and Google sign-in.

4

Marketing Site

Next.js site built for search: feature and use-case pages, recording guides, comparison pages against the apps families already know, and App Store links on every page.

5

Google Cloud Backend

Express and TypeScript API on Cloud Run, PostgreSQL on Cloud SQL with migrations applied on every deploy through Cloud Build, stream recordings in Cloud Storage, and the RTMP-to-HLS media server on a Compute Engine VM. The web app deploys on Vercel. Varsity Score also runs as a tenant on 27ERP, the platform 27nodes operates.

// Technologies used

Built With

React Native
Expo
Swift
Next.js
React
TypeScript
Tailwind CSS
Node.js
Express.js
PostgreSQL
Google Cloud Run
Cloud SQL
Cloud Storage
Compute Engine
Vercel

// Boca Raton, FL → nationwide

Ready for Similar Results?

Let's discuss how we can help bring your project to life.