Coach compliance tracker for youth sports clubs

B2BWebweekendNext.jsSupabaseResend

The idea

If an uncleared coach is on the sideline when something goes wrong, the club faces governing-body sanctions and genuine legal liability, and the person responsible for preventing that is usually a volunteer parent with a spreadsheet. Background checks, SafeSport, CPR: each has its own validity window, and the spreadsheet fails silently the month someone forgets to check it.

The wedge is moving the nagging off the admin entirely. The system emails the coach directly with the renewal link on an escalating cadence, and the admin only looks at a traffic-light grid. The one-page board report is the second hook: volunteer admins constantly get asked to prove compliance and currently do it by hand.

Who pays

The club pays 29 dollars a month from a real budget line, because registration fees fund insurance and compliance already and the alternative is sanctions. The buyer is the club administrator or registrar, found in droves in club-admin Facebook groups and via state youth soccer, hockey, and Little League associations. Leagues themselves are the expansion path: one league mandating it fills the funnel with member clubs.

MVP scope

  • Coach roster with per-credential completion and computed expiry dates
  • Traffic-light compliance grid with configurable amber threshold
  • Automated escalating renewal emails sent straight to coaches
  • One-page printable compliance report for board or league
  • Skip for v1: background-check API integrations, player registration, payments, multi-club league dashboards
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build SidelineCheck, a compliance tracker for youth sports clubs. Stack: Next.js (App Router), Supabase (auth and Postgres), Resend for transactional email.

Core flow: a club admin signs in with magic-link auth and defines the credentials their governing body requires (defaults provided: background check, SafeSport certification, CPR/first aid, concussion training), each with a validity period in months. They add coaches with name, email, and team, then record each credential's completion date; expiry is computed automatically. The dashboard shows a traffic-light grid: coaches as rows, credentials as columns, green/amber/red cells (amber at 30 days out, configurable). Amber or red triggers automated reminder emails via Resend sent directly to the coach, not the admin, on a 30/14/7/1-day cadence with the renewal link the admin configured per credential type. Any coach with a red cell is marked non-compliant and appears flagged on their team's roster view.

Pages: /dashboard (grid plus counts of compliant/expiring/expired), /coaches/[id] (credential history, manual date entry, resend reminder button), /teams (roster view with compliance flags), /report (a clean one-page printable compliance summary for the board or league, generated on demand with a date stamp), /settings (credential types, reminder cadence, club branding on emails).

Implementation details: reminders run from a daily cron (Vercel cron hitting an API route) that is idempotent per coach per credential per cadence step, so re-runs never double-send. Store a sent-log the admin can show a league auditor.

Pricing: 29 dollars/month per club, unlimited coaches, annual option at 290.

// More B2B ideas