Skip to content
shipped

Callsheet

Game-day call sheet builder for high school football coaching staffs — deployed at callsheet.coach.

Next.js 15 · TypeScript · PostgreSQL · Drizzle ORM · Vercel Live ↗

Callsheet is a tool where coaches can build, organize, and print a game-ready call sheet faster than spreadsheets — with their entire playbook, roster, and scouting connected in one place.

I built this because I know the chaos coaching staffs deal with on game day. Spreadsheets everywhere, notes scribbled on paper, no single source of truth. Callsheet fixes that.

Features

  • Playbook — Full CRUD with polymorphic phases (offense, defense, special teams), tag system, bulk CSV import
  • Call Sheets — Build and organize game-day sheets from your playbook
  • Scouting — Opponent tendency tracking with reports
  • Smart Planning — Auto-generate call sheets from scouting data
  • Auth & Teams — Email/password signup, team invitations, role-based access control
  • Dark Mode — Press boxes and film rooms are dark. The app should be too.

Friday game-day call sheet, organized by situation

Thursday call sheet builder — drag plays from the playbook into situational buckets

Tech Stack

LayerTechnology
FrameworkNext.js 15 (App Router, Turbopack)
DatabasePostgreSQL via Neon (serverless)
ORMDrizzle ORM with RLS
Authbetter-auth (email/password + organizations)
UIshadcn/ui + Tailwind CSS v4
MonorepoTurborepo with Bun
TestingVitest + Playwright
CI/CDGitHub Actions → Vercel

Architecture

Turborepo monorepo with three packages: apps/web (Next.js), packages/db (Drizzle ORM + schema + migrations), and packages/ui (shared shadcn/ui components). RLS on all tenant-scoped tables for team isolation.

Status

MVP complete and live at callsheet.coach with launch pricing. Phases 1-9 done (including full scouting reports, 14 UAT tests passing) and staff RBAC landed in Phase 10. Current work is quality-of-life features for daily coaching use — next up: roster management, print-optimized layouts, practice sheets, and film integration.