- Client
- NextPlay
- Role
- Design & Full-Stack Development
- Timeline
- Ongoing product
- Year
- 2025
- Category
- Sports Tech
Overview
NextPlay is football film analytics: a Vite/React/shadcn dashboard using Supabase (auth and accounts) and Firebase (`nextplay-edc77`), a Python YOLO vision package (`nextplay-vision`), and Cloud Run insights. Dashboard pages include Insights, Live Play Calling, billing, and admin; formation analysis lives inside the insight views.
Why
Coaches still tag film by hand. It does not scale across a season. NextPlay exists so football film becomes scouting insight: player and ball tracking, formations, play types — not a video host with a comment box.
Relevant to any sports-vision product. The dashboard has to serve upload, insight review, and live call views together. The CV pipeline is the product’s claim; the UI is how a coach uses it on Tuesday.
The challenge
Coaches needed film to become scouting insight — movement, ball, formations — without a season of manual tagging.
What made it hard
- Coaches still tag film by hand; it does not scale across a season.
- Formation and play-type insight needed a CV pipeline, not only a video host.
- The dashboard had to serve film upload, insight review, and live call views together.
Approach
Split the system: vision/tracking in Python, insights API on Cloud Run, coaching UI in Vite. Supabase for auth, accounts, and video storage, Firebase for functions; a billing page is scaffolded.
Process
- Film in: Upload and analysis views.
- Vision: YOLO player/ball tracking, bird’s-eye, formations.
- Coach UI: Insights, live play calling, billing, admin.
What we built
- Film dashboard: Vite/React views for upload, insights, and account/billing.
- Formation insights: Formation analysis inside the insight views — not a generic chart dump.
- Live play calling: In-game oriented view alongside the film room.
- Vision pipeline: Python YOLO tracking for players and ball as the ML backbone.
How it was built
Split system: Python YOLO package `nextplay-vision` for player/ball tracking, bird’s-eye, formations. Insights API on Cloud Run. Coaching UI is Vite / React / shadcn, with Supabase for auth, accounts, and video storage and Firebase `nextplay-edc77` for functions.
Dashboard pages include Insights, Live Play Calling, billing, and admin; formation analysis sits inside the insight views. Film in, vision out, coach UI on top.
Stack
- Vite + React + shadcn: Coaching dashboard
- Supabase + Firebase: Auth, accounts, video storage; functions
- Python YOLO: nextplay-vision
- Cloud Run: Insights API
Outcomes
- CV: Player / ball tracking pipeline
- Insights: Formation + play views
- Live: Play-calling UI
- Cloud Run: Vision + insights services
Wins
- YOLO player/ball tracking pipeline as the ML backbone.
- Formation analysis inside the insight views, not a generic chart dump.
- Live play-calling UI alongside the film room.
- Vite/React dashboard on Supabase and Firebase with Cloud Run insights.
Hard parts
- Manual tagging: A season of film is not a spreadsheet job. Vision had to replace the night session with a mouse.
- Not just a host: Upload without formation and play-type insight is YouTube. The CV pipeline is the claim.
- Three jobs, one dashboard: Film upload, insight review, and live call views had to live together or coaches bounce.
Services
- Vite + React + shadcn/ui Frontend
- Supabase Auth + Firebase Data Layer
- Game Film Upload & Analysis Views
- Insights (incl. Formations) & Live Play Calling
- Admin, Billing & Account Settings