Certification-aware scheduling for aquatic centers

B2BWeb1 monthNext.jsPostgresTwilioStripe

The idea

A pool manager’s scheduling problem is not shift coverage — Aplano and a dozen others solve that — it is that every person in a chair must hold current Lifeguard and CPR certs, and a lapsed card on the schedule is a liability event the insurer and the state both care about. Horizontal schedulers treat qualifications as an optional tag. Aquatic managers track them in a binder, cross-checked against a spreadsheet, during the exact weeks they are onboarding forty teenagers for summer.

The wedge is making certification expiry a first-class, database-enforced scheduling constraint, then adding the two things only this niche needs: chair rotation rules and a recert forecast that shows which July week the facility silently becomes unstaffable. That forecast is the demo moment — no generic tool can produce it because no generic tool joins cert expiries against future scheduled demand.

Who pays

The facility pays $50-150/mo depending on roster size: private swim clubs, YMCAs, hotel pools, and municipal parks departments (who buy multi-facility and have real budget). The buyer is the aquatics director; the pain peaks in April-May when summer hiring starts, so sales effort concentrates into a season. Channels: state pool operator associations, aquatic management Facebook groups, and Red Cross instructor networks.

MVP scope

  • Week-grid schedule builder with position and cert requirements per slot
  • Staff cert wallet with expiry tracking and photo uploads
  • Hard cert-validity enforcement at assignment time with logged overrides
  • SMS publish, confirm, and cert-checked shift swaps via Twilio
  • 90-day recert gap forecast against scheduled demand
  • Skip for v1: payroll and time clocks, mobile apps, in-service training tracking, POS or membership features, auto-scheduling optimization
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build GuardBoard, a scheduling app for aquatic centers where certifications are a hard scheduling constraint. Stack: Next.js (App Router), Postgres, Twilio for SMS, Stripe for billing.

Core flow: manager creates a facility with positions (chair 1, chair 2, slide, front desk, head guard) and the certs each position requires (Lifeguard, CPR/AED, WSI). Staff records hold cert type, issue date, and expiry. The schedule builder is a week grid; assigning a guard whose required cert is expired or expires before the shift date is blocked at the database level, with an override that requires a typed reason and is logged. Publishing a schedule sends SMS to staff via Twilio; guards confirm or request a swap by reply, and swaps are validated against the same cert rules before the manager approves.

Pages: schedule grid, staff roster with cert wallet (photo upload of cards), recert forecast (timeline of expirations against scheduled demand for the next 90 days, highlighting weeks the facility cannot staff legally), swap queue, settings/billing.

Non-obvious details: enforce cert validity with a Postgres exclusion-style check comparing shift date to expiry inside the assignment transaction, not just UI validation, so bulk-copy of last week's schedule cannot smuggle in a lapsed cert; model minors with state-rule hour caps per week since most summer staff are 15-17.

Pricing: $50/mo per facility up to 25 staff, $95/mo up to 60, $150/mo unlimited plus multi-facility rollup for parks departments.

// More B2B ideas