Court Vision is a free, web-first basketball IQ training platform that helps users learn to read the game through three lenses:
- Player IQ: on-court reads, spacing, decision-making
- Coach IQ: scheme fit, lineup logic, adjustment timing
- GM IQ: roster building, valuation, draft/offseason process
The product blends structured lessons, daily challenges, and simulation-based capstones (draft + offseason) into a single learning loop: learn -> apply -> reflect -> improve.
Most basketball products optimize for entertainment, hot takes, or fantasy outcomes. They rarely teach the process behind spacing reads, lineup tradeoffs, scouting uncertainty, or cap/roster decisions.
Court Vision is for fans, players, students, and early-career analysts who want to understand why basketball decisions are good or bad, not just whether the final result worked.
I built a TypeScript monorepo for a basketball IQ learning platform with lessons, daily challenges, progress tracking, an admin CMS, draft simulation, and offseason simulation. The product teaches Player IQ, Coach IQ, and GM IQ through a loop of short instruction, applied decisions, and post-decision reflection.
- React, Vite, TypeScript, and Tailwind power the web client.
- Express and Socket.io support API-backed and real-time learning/simulation flows.
- A shared package keeps client/server contracts and reusable schemas aligned.
- The app stays guest-first and local-first where possible, with Supabase-backed paths available when configured.
- The same player-feature vocabulary is reused across lessons, draft decisions, and offseason team-building surfaces.
pnpm install
pnpm dev
pnpm build
pnpm testThe next work is deeper visual consistency across library, track, profile, draft, and offseason screens, plus live Supabase verification for account upgrade and second-device continuity.
client- React 18 + TypeScript frontendserver- Node.js + Express 4 + Socket.io 4 backendshared- Shared TypeScript contracts and schemas used by both apps.planning- project strategy, roadmap, requirements, and execution artifacts
- Learning platform: lesson catalog across Player/Coach/GM IQ, onboarding, progress tracking, recaps, discussion
- Engagement loop: daily challenges, streaks, badges, share cards, friend completion board
- Simulation capstones:
- Draft Simulator teaching overlays + post-draft analysis
- Offseason Simulator decision loop (team context through recap)
- Admin CMS: author, tag, publish lessons and schedule daily challenges
- Frontend: React 18, Vite, TypeScript, Tailwind CSS
- Backend: Express APIs + Socket.io real-time flows
- Shared contracts:
shared/package for cross-app types/schemas - Persistence model: local-first and guest-first, with Supabase-backed paths where configured
- Data approach: seeded NBA identity/stat pipelines and shared player-feature vocabulary across teaching + sim experiences
pnpm installpnpm devpnpm buildpnpm startRun these from the repository root:
pnpm dev- start the client and API server togetherpnpm build- buildshared, thenclient, thenserverpnpm start- start server workspacepnpm lint- lint client and serverpnpm typecheck- strict TypeScript checks across workspacespnpm test- run shared and server testspnpm smoke- run Playwright smoke testspnpm audit:dead-code- run Knip dead-code scan
Expected baseline before claiming a task complete:
pnpm lintpnpm typecheckpnpm audit:dead-codepnpm test- Update
.tracker/PROJECT_TRUTH.mdwith current state
Primary planning and execution documents live in .planning/:
PROJECT.md- product vision, constraints, decisionsROADMAP.md- phased delivery and current implementation statusREQUIREMENTS.md- requirement IDs and traceabilityphases/- per-phase plans, summaries, verification artifactsresearch/andcodebase/- discovery artifacts and technical mapping
Roadmap implementation is in an advanced state:
- Phase 1-3 complete (foundation, infra/auth, baseline data layer)
- Phase 4-8 implemented (lessons/CMS, onboarding/discovery, daily engagement, draft teaching layer, profile/account upgrade)
- Phase 9-10 implemented (offseason simulator foundation + decision loop), with final human verification gates still tracked
- Additional in-flight data/model calibration work exists beyond the original Phase 3 close-out
See .planning/ROADMAP.md for the live phase-by-phase status and release gates.
- Offline/local-first behavior: app should still run when Supabase is not configured
- Guest-first entry: users can start without creating an account
- Shared contracts: cross-app types belong in
shared/, not duplicated - Single stat vocabulary: teaching, draft, and offseason features should stay aligned to the same player-feature mapping
- Read
.planning/PROJECT.md,.planning/ROADMAP.md, and.planning/REQUIREMENTS.mdbefore architecture-level changes - Prefer incremental changes over broad rewrites
- Keep
maindeployable - Avoid introducing duplicated client/server types when a shared contract is appropriate
No license has been declared in this repository yet.
