CourtSide
CourtSide exists to help families keep their eyes forward and their footing steady. In a sport filled with emotion, noise, and constant judgment, we believe parents serve their children best by choosing clarity over reaction and patience over pressure. CourtSide is designed to support long-term growth, not momentary outcomes — helping parents observe without overreacting, reflect without assigning blame, and stay focused on the path rather than each individual step. We measure progress in consistency, character, and perspective, trusting that steady attention to the path matters more than any single result along the way.
"Let your eyes look directly forward, and your gaze be straight before you. Ponder the path of your feet; then all your ways will be sure."
Proverbs 4:25–26
Why This Verse
The verse is about a parent's discipline — not the child's.
Junior tennis is a world of noise. Rankings, social media comparisons, other parents talking about their kid's UTR, coaches with conflicting opinions, tournaments that didn't go the way you hoped. Every weekend there's a new reason to panic, overcorrect, or lose sight of why your family started this.
Proverbs 4:25–26 says: stop looking sideways. Ponder your path — not someone else's.
"Let your eyes look directly forward"
Don't compare your kid to the one who beat them last weekend. Don't spiral after a bad tournament. Look at your child's journey, their development, their emotional arc over months and years. That's what the charting, the journals, and the progress timeline are for. They keep your eyes forward.
"Ponder the path of your feet"
This isn't "react to what just happened." It's ponder. Sit with it. Reflect. Write the journal. Look at the effort ratings over 50 matches. Notice the patterns. That's what the reflection tools, the training blocks, and the tournament daily recaps are built to do. They give you something real to ponder instead of running on emotion.
"Then all your ways will be sure"
The promise. If you do the work of staying focused and reflecting honestly, stability follows. Not perfection — sureness. You know where your kid is. You know how they're responding. You can have a real conversation with the coach because you've been tracking what matters, not just what the scoreboard said.
The verse isn't about tennis. It's about parenting through something hard with intention instead of anxiety. That's why "The family side of the game" and Proverbs 4:25–26 belong together — they're saying the same thing from different directions.
Product Overview
CourtSide is a mobile-first match charting and player development app built for tennis parents. It captures what happens on the court (scores, stats, patterns) and what happens around the court (reflections, effort, emotional development) — giving families a complete picture of their player's growth over time.
What CourtSide Is
- A match charting tool parents can use courtside during live matches, with multiple detail levels from simple score tracking to full point-by-point analysis
- A development journal that captures the emotional and mental side of competition — effort, compete level, fun, reflections — creating a longitudinal record of growth
- A parent dashboard that connects matches, training, tournaments, and trends into a single view of each player's journey
- A privacy-aware platform where coaches see performance data automatically, and families choose whether to share journals, reflections, and emotional data with their coach
Design Philosophy
- Parent's lens, not the coach's clipboard. CourtSide captures what the parent sees from the stands — patterns, behavior, effort — not just technical metrics
- Emotional development is data. How a player handles a loss is as important as their first-serve percentage. CourtSide treats reflections, compete ratings, and tournament journals as first-class data
- Low floor, high ceiling. A parent can start by just tapping scores. Over time, they can layer in detailed charting, journals, training blocks, and opponent scouting — at their own pace
- Private by default, shared by choice. Every piece of data starts private. Coaches see performance data automatically. Parents decide whether to share journals, reflections, and ratings with their coach — and can change that anytime
- Load awareness, not load management. Subtle contextual cues about activity levels, not prescriptive alerts. Parents make their own decisions
Architecture & Access
CourtSide is a three-layer application: a native mobile app for courtside use, a web app for coaches and bigger-screen workflows, and a managed backend for auth, data, and billing.
Technical Architecture
| Layer | Technology | Handles |
|---|---|---|
| Mobile App | Expo / React Native | Live match charting (offline-first, haptic feedback, one-handed use, undo stack), journals, player profile, tournament mode, training blocks, push notifications. iOS + Android from a single codebase |
| Web App | Next.js | Marketing site (SEO-optimized), coach portal (rosters, player summaries, trends), parent review dashboard, Stripe subscription checkout & billing management |
| Backend | Supabase | Auth (magic link + social login), Postgres database, row-level security for privacy model, file storage (video), Edge Functions (Stripe webhooks, push notifications), real-time sync between devices |
Access Roles
Two distinct access roles with different permissions. Parents authenticate via Supabase (magic link or social). Coaches access the family's data via the web-based coach portal (email magic link + MFA) or through a mobile coach view within the family's app.
| Role | Access Method | Can See | Cannot See (by Default) |
|---|---|---|---|
| Parent / Family | Supabase auth (magic link, Google, Apple) + optional device PIN for quick unlock | Everything — all data, all screens, all settings | N/A (full access) |
| Coach | Separate PIN (mobile) or web portal login | Match results, scores, stats, trends, opponent H2H, player profile, development goals. Additional categories visible only if parent opts in | Journals, reflections, tournament daily reflections, progress timeline, effort/compete/fun ratings, private notes. Parent can opt in to share any category per coach |
Onboarding & Auth
Account creation, player setup, and authentication flows.
Sign-Up & First Run
Core- Account creation — Magic link (email) or social login (Google, Apple). No passwords to remember. Powered by Supabase Auth
- Family profile setup — Parent name, email (pre-filled from auth), optional device PIN for quick unlock on shared family devices
- First player creation — Guided flow: player name, age, handedness, backhand type, play style. Ratings (USTA, UTR, ITF) optional at this stage
- Coach access setup — Generate a coach PIN that the family shares with their coach. Explain what coaches see by default and what's private
- First match prompt — After player creation, prompt to chart their first match or explore the app. Progressive disclosure — don't overwhelm with every feature on day one
Authentication
Core- Primary auth — Supabase Auth with magic link (email) and social providers (Google, Apple). Session persists on device
- Multi-factor authentication (MFA) — Required on every login. SMS verification code sent to the parent's registered phone number. This is mandatory, not optional — the app stores photos and videos of minors. Supabase supports SMS-based MFA via Twilio
- Quick unlock — After MFA-authenticated login, the device session stays active. Returning users unlock with biometric (Face ID / fingerprint) or 4-digit device PIN. MFA is not required again until the session expires or the user logs out
- Coach access — Separate PIN entry on mobile. Web portal uses a coach-specific login (email + magic link + SMS MFA, scoped to coach role)
- Session management — Active sessions visible in settings. Remote logout for lost devices. Session expiration after 30 days of inactivity forces re-authentication with MFA
- Family account — One subscription covers multiple players. Parent is the account owner. No separate accounts per child
- New device login — Logging in from a new device always requires full authentication (magic link or social + SMS MFA). No way to bypass MFA on an unrecognized device
Offline-First Behavior
Tournament venues often have unreliable cell service. CourtSide must work perfectly without a connection and sync seamlessly when connectivity returns.
Offline Architecture
Core- Match charting works fully offline. All point tracking, scoring, tier switching, undo, and match completion run on-device with zero network dependency. This is non-negotiable — a dropped connection during a match must never interrupt charting
- Local-first data model. All data writes go to the local device first, then sync to Supabase when a connection is available. The app is always responsive regardless of network state
- Sync queue. Actions taken offline (matches charted, journals written, opponents added) queue up and sync in order when connectivity returns. Visual indicator shows sync status (synced, pending, syncing)
- Conflict resolution. If the same record is edited on two devices while offline, most recent write wins with a merge log. For matches (which are almost always edited on one device), conflicts are rare
- Offline indicator. Subtle banner or icon when the device is offline. Never blocks the user from doing anything — just context
Subscription & Billing
Three-tier pricing handled via Stripe web checkout. The app is free to download — billing happens on the website to avoid Apple's 30% cut.
Pricing Tiers
Core| Tier | Monthly | Annual | What's Included |
|---|---|---|---|
| Core — $22/mo | $22 | $189/yr | Full charting (all 4 tiers), journals, reflections, opponent H2H, tournament mode, training blocks, match history, player profile. 2 players included. No coach access, no trends |
| Pro — $48/mo | $48 | $399/yr | Everything in Core + trends & analytics dashboard, coach dashboard with opt-in sharing, pre-match prep sheets, Rally AI. 2 players included |
| Elite — $85/mo | $85 | $699/yr | Everything in Pro + video form analysis, equipment & gear tracking, weather & conditions analytics, match day nutrition, AI-assisted reflection (5/mo), calm & awareness tools, data export, priority support. 3 players included |
| Additional players | $8/mo each | — | Add extra players beyond tier limit on any plan |
Billing Flow
Core- Web checkout. Subscriptions handled via Stripe on the Next.js website. App deep-links to the checkout page. This avoids Apple's 30%/15% App Store commission
- Trial. 7-day or 2-match free trial on any plan (whichever comes first). Full feature access during trial
- Tier gating. Feature access controlled by subscription tier via feature flags. Synced between mobile app and web dashboard. Locked features show a preview with upgrade prompt — never a dead end
- Plan management. Upgrade, downgrade, cancel, and payment method changes all handled on the web. In-app link to billing portal
- Family account. One subscription covers all players in the family. No per-player pricing
- Data export. Elite tier includes CSV/PDF export of match history, stats, journals, and trends. Available from settings and from the web dashboard
Screen Map
Every screen and overlay in the current prototype, organized by function.
Match Charting
The core of CourtSide. A guided, tap-based interface for scoring matches in real time from courtside. Supports multiple detail levels so any parent — from casual to obsessive — can chart comfortably.
Match Setup
CoreBefore charting begins, the parent configures the match parameters. All fields are optional except player names and format.
- Player & Opponent names — Opponent field auto-suggests from saved opponents list
- Match format — Best of 3 sets, single set, or tiebreak only
- Charting tier selection — Score + Notes, Basic, Detailed, or Full (see Scoring Tiers)
- First server selection — Your player or opponent
- Tournament match toggle — Expands to capture tournament name, location, event/division, draw type, round, and seed
- Training block link — Optional chips to tag the match to a current training focus area
Live Chart Screen
CoreThe primary charting interface, used during live match play. All interactions are large tap targets designed for courtside use on a phone.
- Scoreboard — Always visible at top. Shows current set scores, game score, point count, server indicator. Tap to open the score editor overlay for manual corrections
- Serve indicator — Text displaying who is serving and whether it's first or second serve. Tap the serve dot to manually switch server
- Tier toggle bar — Switch between Score, Basic, Detailed, and Full views mid-match without losing data
- Fast Mode toggle — Tap player name to score a point instantly (useful for rapid play)
- Point Builder strip — Visual display of the current point entry as you build it tap by tap
- Haptic feedback — Subtle vibration on point registration, undo, and set completion. Confirms input without looking at the screen — critical for courtside use where eyes should be on the match
- Guided prompts — Dynamic question flow based on the selected tier (Who won? How did it end? Shot type? Placement?)
- REC button — Record video or audio during the match
- Undo — Roll back the last point entry
- Theme toggle — Switch dark/light mode without leaving the chart screen (for outdoor visibility)
Scoring Tiers
Four detail levels let the parent choose their charting depth. Can be changed mid-match.
| Tier | Taps per Point | What's Captured | Best For |
|---|---|---|---|
| Score + Notes | 1 | Who won each point, free-text notes between games | First-time users, casual tracking |
| Basic | 2–3 | Point winner + how it ended (winner, error, ace, double fault) | Most parents most of the time |
| Detailed | 3–4 | Basic + shot type (forehand, backhand, volley, overhead) | Parents who want shot-level patterns |
| Full | 4–6 | Detailed + serve placement (wide/body/T), court position, rally length, direction, mental state | Deep analysis, coaches charting |
Match Summary & Export
Shown after a match is completed. Displays results, triggers reflection, and provides export options.
Match Summary Screen
Core- Final score display with winner badge and match format indicator
- Match duration — editable hours/minutes fields (auto-calculated from start time if available)
- Recording status — Shows if video/audio was captured during the match
- Tournament badge — If tournament match, shows tournament name, round, and link to full tournament view
- Training block badge — If linked to a training block, shows block name with training reflection prompt
- Stats breakdown — Full statistical summary based on charting tier (aces, DFs, winners, UEs, break points, shot types, rally lengths, etc.)
- Journal prompt — "Want to reflect on this match?" with three options: Reflect Now, Remind Me Later, Skip for Now
- Tournament journal swap — If this is a tournament match, replaces the standard journal prompt with a tournament-specific daily reflection option
- Export overlay — Copy to clipboard, share via native sharing, or print a match report
Quick Match Entry
Two alternative entry paths for logging matches after the fact, without live charting.
Quick Match (Parent)
ParentFor parents logging a match they watched but didn't chart live. Captures the essentials quickly.
- Date, opponent name (with auto-suggest), set scores (add multiple), winner selection
- Duration presets (60m, 90m, 120m, 150m) plus custom input
- Optional tournament selector
- Journal notes text area for quick observations
Player Match Log
ParentFor the player themselves to log a match — uses different language and prompts geared toward self-reflection.
- Date, opponent, set scores, winner (labeled "Me" / "Opponent" instead of player names)
- "How did the match go?" open text area (wider, more reflective prompt)
- Optional tournament selector
Match Journal
The emotional and reflective layer that makes CourtSide more than a score tracker. Captured after each match, private by default. Parents can opt in to share journals with their coach.
Post-Match Journal
ParentA dual-tab journal interface available after every match. Private by default
Player Reflection Tab
- Overall feeling — 1–5 scale (Rough to Great)
- Focus & mental toughness — 1–5 scale (Distracted to Locked In)
- Energy & effort level — 1–5 scale (Low/Flat to All Out)
- What went well — Multi-select tags: Serve, Return, Forehand, Backhand, Net Play, Movement, Shot Selection, Composure, Intensity
- Areas to develop — Same tag set
- #1 thing to improve — Free text
- Anything else on your mind — Free text
- AI Reflect launcher — Opens AI-powered reflection based on match stats
Coach/Parent Observations Tab
- Player's compete level — 1–5 scale (Gave Up to Warrior)
- Tactical execution — 1–5 scale (No Plan to Executed Well)
- Key positives observed — Multi-select: Footwork, Point Construction, Clutch Moments, Adaptability, Aggression, Consistency, Body Language
- Areas for development — Same multi-select tag set
Player Profile
The central hub for each player's identity, stats, and development goals.
Profile Screen
Core- Profile hero — Avatar (initials), player name, age, handedness, backhand type (1H/2H), play style
- Ratings — USTA, UTR, and ITF badges displayed when available, with rating update history tracking
- Career stats grid — Wins, losses, win percentage, total matches at a glance
- Progress Timeline card — Monthly activity snapshot (see Progress Timeline)
- Match Trends chart — Canvas-rendered trend lines with link to full Trends Dashboard
- Strengths & Development Areas — Aggregated from journal data
- Development Goals — Editable list of player goals with add/remove
- Rating History — Chronological list of all rating updates
Profile Edit Sheet
Editable fields: Name, Age, Handedness (dropdown), Backhand type, Play Style (Aggressive Baseliner, Counter-Puncher, All-Court, Serve & Volley, Developing), Height, USTA Rating (2.0–7.0), UTR (decimal), ITF Ranking Points.
Progress Timeline
A month-by-month view of activity, trends, and training connections. Lives inside the Profile screen. Private by default
Monthly Activity Cards
ParentEach month shows a card with aggregated activity. Paginated at 4 months per page with Newer/Older navigation.
- Matches played — Count with win rate bar
- Total court time — Aggregated match duration with average per match
- Training block connections — Pill badges showing which blocks were active, with linked match counts
- Trend language — Compares against a 3-month rolling average (not just prior month). Requires 3+ qualified months (2+ matches each) before showing. Uses 30% threshold for match count, 25% for duration
- Load awareness line — Subtle, italic text when activity is notably above the rolling baseline (50%+ more matches or 40%+ more court time). Not an alarm — just context
Training Blocks
Named focus periods that connect practice work to match performance. The bridge between what happens in training and what shows up in competition.
Training Block Management
Parent- Block creation — Name, start/end dates, drills list, notes, status (active/completed)
- Match linking — During match setup, tag a match to an active training block
- Training reflection — After a linked match, prompted to note if the training focus showed up: Yes, Somewhat, or Not Yet
- Block-level trends — See how many matches were linked and what percentage showed positive training transfer
- Timeline integration — Training blocks appear as pills in the Progress Timeline monthly cards
Trends & Analytics
Visual performance trends over time, with configurable metrics and date ranges.
Trends Dashboard
Core- Metric selection — 1st Serve %, Win %, Winners per match, Unforced Errors, Winner/UE Ratio, Break Point Conversion %
- Range selection — Last 5, 10, 20, or 50 matches
- Canvas line chart — Trend line with data points showing metric over selected range
- Comparison grid — Four cards showing current value, all-match average, personal best, and trend direction (up/down/flat)
Opponent Intelligence
Track every opponent your player faces. Build head-to-head records and scouting notes over time.
Opponent Tracking
Core- Opponent list — All tracked opponents with H2H record, play style, and last match date
- Opponent detail — Full head-to-head stats, match history, play style tag, scouting notes
- Add opponent — Name, play style (Aggressive Baseliner, Counter-Puncher, All-Court, Serve & Volley, Pusher, Big Server, Unknown), handedness, free-text notes
- Auto-population — Opponents are created automatically when you chart a match against a new name
- Scouting notes editor — Detailed notes on opponent patterns, tendencies, and tactical observations
- Match history per opponent — Every match played against this opponent with scores and dates
Tournament Mode
Auto-groups matches by tournament name and adds a daily reflection layer for multi-match weekends.
Tournament Grouping & Summary
CoreWhen matches share the same tournament name (case-insensitive), CourtSide automatically groups them into a tournament view. No extra setup required.
- Tournament summary view — All matches organized by day, with results, round progression, and aggregate stats
- Match-level tournament data — Each match stores tournament name, location, event, draw type, round, and seed
- Entry from anywhere — Access via "View full tournament" link on any tournament match, or from the live summary badge
Tournament Daily Reflections
ParentAfter the last match of a tournament day, CourtSide swaps the standard journal prompt for a day-level reflection. Private by default
- Journal prompt swap — Instead of the normal post-match journal, shows "How did today feel overall? Anything you want to remember from today?"
- Free-text reflection — Open text area, no ratings or tags. Designed for end-of-day decompression
- Skip option — Always optional
- Visible in tournament summary — Daily reflections appear alongside that day's matches in the full tournament view
- Coach visibility — Private by default. If parent opts in to share reflections, coaches see full content. Otherwise coaches see that a reflection exists but cannot read it
Tournament Schedule
Plan upcoming tournaments with a calendar view and match scheduling.
Tournament Planning
Parent- Tournament list — Upcoming and past tournaments with dates, location, and event info
- Add tournament — Name, location, event/division, draw type, dates
- Calendar overlay — Visual calendar showing tournament dates color-coded
- Tournament detail — Expanded view with match schedule, results, and "Add Match" capability
Family Dashboard
The parent's command center — a multi-tab overview of each player's activity, matches, journals, and development.
Dashboard Tabs
Parent- Overview tab — Win/loss summary, recent matches, journal nudges for unjournaled matches, upcoming week schedule, training block overview
- Matches tab — Full match history with mini calendar showing match dates as dots
- Profile tab — Quick view of player profile with edit access
- Opponents tab — All opponents with H2H records
- Journal tab — All journal entries as a visual timeline, plus mini calendar
Family View
ParentWhen viewing "All Players," the dashboard shows a family-level overview with combined schedule, activity summary per player, and family week schedule.
Multi-Player Support
One family account supports multiple players with per-tier limits. Core and Pro include 2 players, Elite includes 3. Additional players $8/mo each.
Player Management
Core- Included players by tier: Core — 2 players, Pro — 2 players, Elite — 3 players. Additional players can be added for $8/month each, billed alongside the subscription
- Player selector chips — Quick switch between players from the dashboard and home screen
- Add player — Create additional player profiles under the same family account. If the account is at its tier limit, prompts to add for $8/mo or upgrade tier
- Per-player charting mode — Each player can have different default charting modes (full charting vs. quick score)
- Scoped data — All data is scoped by player ID in Supabase. Matches, opponents, profiles, blocks, journals are fully independent per player. Row-level security ensures players' data is isolated at the database level
- Account sharing prevention — Players must share a family name or be verified by the account holder. Unusual patterns (e.g., 6 players with different last names and different coaches) can be flagged for review
Schedule & Calendar
Week-based scheduling for matches, lessons, practice, and other tennis activities.
Weekly Schedule
Parent- Week grid — 7-column display with events per day, navigable by week with a "Today" button
- Calendar popup — Toggle a full month view to jump to any date
- Add session — Type (match, lesson, practice, fitness, tournament), date/time, duration, notes
- Event detail — Tap any scheduled event for full details with edit capability
- Color-coded event types — Visual distinction between matches, lessons, practice, etc.
- Player upcoming week — Integrated into the dashboard overview for quick at-a-glance view
Expense Tracker
Track the cost of junior tennis — lessons, tournament fees, equipment, and travel.
Expense Tracking
Utility- Add expense — Amount, category (Lessons, Tournament Fees, Equipment, Travel, Other), description, date
- Category pills — Color-coded filter buttons to view by category
- Expense list — Chronological list with amount, category, description, and date
Practice Journal
Log practice sessions, lessons, and hitting sessions — separate from match journals.
Session Logging
Parent- Session type picker — Private Lesson, Group Lesson, Academy Day, Hitting Session, Practice Sets
- Date, Coach Name (conditional on session type), Ball Machine toggle
- "How did it go?" — Free-text main reflection
- Duration — Presets (30m–120m) plus custom
- Expandable detail section — Overall Rating (1–10), technique tags (Forehand Topspin, Kick Serve, Split Step, Point Construction, etc.), "What clicked today" strength tags, "What to work on" development tags
Fitness Tracking
Log off-court conditioning and workouts.
Workout Logging
Utility- Workout type picker — Strength, Speed, Cardio, Boxing, CrossFit, Yoga (with icons)
- Duration — Presets (15m–90m) plus custom
- Built-in timer — Fitness timer overlay with start/stop/reset
- RPE scale — Rate of Perceived Exertion 1–10 (optional)
- Notes — Free text for exercises, sets, reps, how it felt
Court Time Tracker
Track cumulative time on court across all activity types — matches, practice, lessons, free play — with milestone tracking inspired by the 10,000-hour framework for deliberate practice.
Court Time Sessions
Core- Log court time by type: match play, structured practice, private lessons, group training, free play/hitting
- Session details: date/time, duration, court location, court surface, conditions notes
- Auto-capture from charted matches — match duration is logged automatically when a match is charted, no double entry
- Training block sessions auto-link — court time logged during an active training block associates with that block
- Quick-log option for parents: tap, pick type, enter duration. Under 10 seconds to log a session
Cumulative Hours & 10,000-Hour Framework
Core- Lifetime court hours displayed as a headline stat on the player profile — total hours accumulated since the player started tracking
- Breakdown by category: match hours, practice hours, lesson hours, free play hours — shown as a stacked bar or donut chart
- Rolling averages: weekly hours (current vs. 4-week avg), monthly hours, seasonal totals. Coaches can see at a glance whether a player is putting in consistent time or trending down
- Milestone markers inspired by the 10,000-hour rule of deliberate practice:
— 250 hours: Foundations (learning the game)
— 1,000 hours: Committed (building competitive habits)
— 2,500 hours: Dedicated (serious competitive junior)
— 5,000 hours: Advanced (high-level competitive development)
— 7,500 hours: Elite pathway
— 10,000 hours: Mastery level - Milestone achievements are celebrated in-app with a visual badge. Parents and coaches can see the player's current milestone level and progress toward the next one
- Pace projection: "At your current weekly average of 12 hrs/week, you'll reach 2,500 hours in approximately 8 months"
Court Time Analytics
Pro- Practice-to-match ratio: How many practice hours per competitive match hour? Coaches use this to assess whether a player is getting enough match experience relative to training
- Load awareness integration: Court time feeds into the existing load tracking system — flags when weekly hours spike beyond the player's baseline (injury risk) or drop below it (motivation signal)
- Seasonal trends: Compare court time across seasons, tournament periods, and off-season. Helps coaches and families plan training cycles
- Court time vs. performance correlation: Overlay court hours with match performance trends. Shows whether increased training time is translating to competitive improvement
- Coach dashboard view: Coaches see aggregated court time for all players in their program — who's putting in the hours, who's dropping off, and how the group compares
Family & Coach Visibility
Core- Parent view: Total hours, breakdown by type, current milestone, pace projection. Gives parents a grounding perspective — "my child has 1,400 hours of deliberate practice" is a more meaningful measure than last weekend's score
- Coach view: Filtered court time data visible on the coach dashboard by default (not private). Coaches can see total hours, weekly averages, and session type breakdown for each player
- Multi-player support: Families with multiple players see individual court time for each child on the family dashboard
- Follows the standard CourtSide privacy model — court time data is visible to the player's connected coach. Journal and emotional data remain private unless shared
Equipment & Gear
Manage rackets, strings, tension, and gear — the setup details that affect performance but nobody tracks consistently. Elite tier.
Racket Profiles
Elite- Add rackets — Brand, model, head size, weight, balance, grip size. Support multiple rackets per player (most competitive juniors carry 2–4)
- Active/retired status — Mark rackets as active or retired. Keep history of all rackets used over the player's career
- Primary racket — Set one as default for match logging. Auto-tags to new matches unless changed
String & Tension Log
Elite- Restring entry — Date strung, string type (main/cross if hybrid), tension (mains/crosses), stringer name or location
- String age tracking — Auto-calculates days since last restring and estimated playing hours on current strings (from court time data)
- Post-play feedback — After matches, optional quick rating: "How did the strings feel?" (1–5 scale) with optional notes. Captures feedback like "felt dead after 3rd set," "great spin today," "too tight first few games"
- Restring reminders — Optional notification when strings pass a set age or hour threshold (e.g., "15 hours on current strings — time to restring?")
- String history timeline — See every restring with the tension, string type, and how many hours/matches were played on each setup. Over time, patterns emerge: "VS Touch at 52 lbs lasted 12 hours and had the best feel ratings"
Gear Inventory
Elite- Shoes — Brand, model, surface type (hard court, clay, all-court), date purchased, estimated usage. Shoe wear tracking helps prevent injury from worn-out shoes
- Other gear — Bags, grips, dampeners, wristbands, hats. Simple inventory with purchase date and notes
- Expense integration — Gear purchases can optionally link to expense tracker entries. Total gear spend per season calculated automatically
Gear & Performance Correlation
Elite- String setup vs. match performance — Correlate string type and tension with win rate, unforced error rate, and player feel ratings. "You've played 23 matches on RPM Blast at 50 lbs (62% win rate) vs. 15 matches on VS Touch at 52 lbs (73% win rate)"
- Racket performance comparison — If a player switches between rackets, compare performance metrics across each
- Coach visibility — Gear setup visible on coach dashboard. Coaches can see what a player is playing with and how it's performing — helpful for making equipment recommendations
Weather & Conditions
Capture match conditions automatically or manually — then see how your player performs across different environments over time. Elite tier.
Match Conditions Capture
Elite- Auto-capture (with permission) — If location services are enabled, auto-pull weather data at match time: temperature, humidity, wind speed, conditions (sunny/cloudy/rain). Pulled from a weather API based on court GPS coordinates
- Manual entry fallback — Quick-select pills: Hot, Warm, Cool, Cold | Humid, Dry | Windy, Calm | Indoor, Outdoor | Sunny, Overcast, Rain
- Court surface — Hard court, clay, grass, indoor hard, carpet. Tagged per match (auto-filled if venue has a default)
- Court type — Outdoor, indoor, covered. Relevant for wind and heat conditions
- Altitude — Auto-captured with location. Relevant for tournaments at elevation (balls fly differently)
Weather Performance Analytics
Elite- Performance by temperature — Win rate, effort ratings, and energy levels across temperature ranges. "Your player is 71% in cool conditions vs. 48% in extreme heat"
- Wind impact — Performance and unforced error rates in windy vs. calm conditions. Helps identify players who struggle with wind and need match-play practice in it
- Surface breakdown — Win rate and play style differences across hard court vs. clay vs. indoor. Critical for tournament planning and training priorities
- Indoor vs. outdoor — Some juniors perform dramatically different indoors vs. out. Data over 20+ matches makes this visible
- Coach dashboard view — Coaches see weather/surface performance trends for all players. Helps with tournament recommendations ("this player should play more clay events") and training focus
Match Day Nutrition & Hydration
Log what your player ate and drank before and during matches — not calorie counting, but observational tracking to spot patterns in energy and performance. Elite tier.
Pre-Match & During-Match Logging
Elite- Pre-match meal — Quick log: what they ate, how long before the match, and a simple "felt good / felt heavy / felt low energy" tag afterward
- During-match hydration — Water, sports drink, or other. Estimated amount (sips/bottles). Changeover snacks if applicable (banana, energy bar, gels)
- Quick-log design — This is NOT a nutrition tracking app. No calories, no macros, no portion sizes. Just "what did they have and how did they feel." Takes under 15 seconds to log
- Favorites — Save common pre-match meals and drinks as presets. "Tournament breakfast" = tap once to log the usual routine
Energy & Nutrition Patterns
Elite- Energy correlation — Over time, correlate pre-match nutrition with 3rd set performance, effort ratings, and energy levels. "Matches where they ate 2+ hours before had 23% higher effort ratings in the final set"
- Hydration patterns — Flag matches where hydration was low and performance dropped in later sets. Especially relevant in heat (ties into weather data)
- Tournament day patterns — Multi-match tournament days are where nutrition matters most. Track what worked across back-to-back matches vs. what led to energy crashes
- No prescriptive advice — CourtSide shows patterns but does NOT provide nutritional recommendations. We are not dietitians. The data helps families and coaches notice what works for their specific player
Coach Log
Capture feedback and notes from coaching sessions — what the coach said, organized over time.
Lesson Notes
Parent- Add entry — Coach name, type (categorized with pill buttons), "What did the coach say?" free text
- Log list — Chronological entries, filterable by type
Pre-Match Routines
Define and follow a game-day ritual checklist.
Game-Day Ritual
Parent- Editable routine steps — warmup sequence, mental preparation, pre-match checklist
- Each item can be marked complete on match day
- Customizable with add/remove/reorder
Goal Streaks
Set measurable goals and track consecutive achievement streaks.
Streak Tracking
Parent- Goal creation — Description, target metric, target value, timeline
- Metric selection pills — Choose which stat to track
- Streak visualization — Current streak count, progress indicator
- Goal list — All active goals with streak status
Rally AI Assistant
A conversational AI assistant scoped to tennis and tournament logistics. Rally helps with player data, strategy, match preparation, and practical tournament questions — and nothing else.
Rally — AI Tennis Assistant
AI- Chat interface — Scrollable message conversation with "Ask Rally about tennis..." input
- Mode selector — Different AI response modes (match analysis, tournament prep, general tennis)
- Quick replies — Suggested follow-up questions after responses
- Context-aware — Responds to keywords like "timeline," "tournament mode," "trends" with relevant product information and data-driven insights from the player's own data
- Clear history — Reset conversation
AI Topic Guardrails
AIRally is purpose-built for tennis families. It is not a general-purpose AI assistant. Every response is filtered through topic boundaries to keep the experience safe, relevant, and focused.
Allowed Topics
- Player data & analysis — Match stats, trends, win/loss patterns, opponent H2H, journal insights, training block progress. Rally can reference the player's own data in responses
- Tennis strategy & tactics — How to play against a pusher, serve return positioning, point construction, match management. General tennis knowledge
- Match preparation — Pre-match scouting based on opponent data, warmup suggestions, mental preparation tips
- Tournament logistics — Hotels near a tournament venue, restaurants nearby, directions, travel tips, tournament schedules, weather at the venue. Practical help for traveling tennis families
- Tennis development — Training advice, age-appropriate development guidance, drill suggestions, fitness for junior tennis
- CourtSide product help — How to use features, charting tips, privacy settings questions, billing help
- General parent guidance — How to watch a match without coaching from the stands, managing tournament stress, supporting a player after a loss. Aligned with the CourtSide philosophy
Blocked Topics
- Non-tennis subjects — Rally politely declines and redirects. "I'm built for tennis — want to talk about your next match instead?"
- Medical or injury advice — Rally does not diagnose, prescribe, or advise on injuries. Redirects to "talk to your doctor or a sports medicine professional"
- Mental health counseling — Rally is not a therapist. If a user expresses distress, Rally acknowledges it, suggests talking to a trusted adult or professional, and does not attempt to counsel
- Inappropriate content — Any content not suitable for a family app used by minors is blocked at the model level
- Other players' private data — Rally only references the requesting family's own player data. It cannot access or discuss other families' data, even if asked
- Coaching prescriptions — Rally asks questions and surfaces data. It does not tell a player or parent what to do. "Here's what your data shows" — not "you should change your forehand grip." Coaching is the coach's job
AI Reflect
AI-powered reflection prompts within the match journal, based on actual match stats and patterns.
AI-Guided Reflection
AI- Collapsible section within the post-match journal
- Generates customized reflection prompts based on match statistics
- Analyzes patterns from previous matches to surface relevant observations
- Questions, not conclusions. AI Reflect asks "Your first serve percentage dropped 15% in the third set — what was happening?" It does not say "Your serve needs work." The parent and player draw their own conclusions
- Same topic guardrails as Rally. AI Reflect only generates tennis-related, process-oriented prompts. No medical, mental health, or off-topic content
- Optional — reflection is always available without AI
- Limited to 5 AI-assisted reflections per month (Elite tier). Encourages thoughtful use, not dependence
Pre-Match Prep Sheet
Tactical preparation based on opponent history — what happened last time and what to focus on.
Opponent Game Plan
AI- Pattern analysis — Statistical patterns from previous matches against this opponent
- Tactical checklist — Generated strategy points to consider
- H2H context — Previous results and journal reflections for reference
- Notes and reminders — Custom prep notes
Video Library
Capture and organize video clips for form analysis. The primary use case is isolating specific mechanics — a forehand, a serve toss, footwork on approach shots — and studying them in detail.
Video Management
Utility- Record button — Live capture from device camera (iPhone, GoPro). Short clips, not full matches — 10-30 seconds of a specific stroke or movement
- Upload — Add existing video from device (practice footage, lesson clips, tournament warm-ups)
- Filter tabs — All, Matches, Practice, Analysis
- Video grid — Thumbnail view with title, duration, and type icon
- Metadata — Title, description, type, date, associated match/session
Video Player & Form Analysis
The core value of video in CourtSide is form analysis — slow down a stroke, draw on it, compare it to a reference, and share it with the coach. This is where parents and coaches study the mechanics together.
Playback & Analysis Tools
Utility- Slow-motion playback — 1x, 0.5x, 0.25x speed control. Slow down a forehand to see racket path, contact point, and follow-through
- Frame-by-frame — Step forward/back one frame at a time. Freeze the exact moment of contact or the top of the serve toss
- Drawing tools — Pen, line, arrow, circle with color palette (red, cyan, yellow, green, white) and undo/clear. Annotate body position, racket angle, foot placement
- Side-by-side comparison — Place your player's current clip next to a previous version of the same stroke. Film the forehand today, film it again in 3 months, see the progress. Track how form evolves over time
- Voice-over recording — Record audio commentary over video. A coach can annotate a clip with verbal cues the player listens to before practice
- Annotation canvas — Transparent overlay for drawing on top of paused or playing video
- Share with coach — Export annotated video to coach dashboard or share externally. Coach can add their own annotations and voice-over
Future roadmap: Side-by-side comparison with licensed pro reference footage (e.g., compare your player's serve motion to a pro at the same angle). Requires content licensing partnerships — parked until post-launch.
Coach Mobile App
A standalone mobile app for coaches — built on the same Expo/React Native codebase as the family app. This is the on-court coaching tool: video capture, lesson logging, player lookup, and real-time access to player data. The web portal handles desk work; the mobile app handles court work.
Coach Login & Authentication
Coach- Dedicated coach login — Email magic link + SMS MFA, same security model as parent accounts. Coach role is distinct from parent role in the auth system
- Single sign-on across mobile and web — Same coach account works on the mobile app and the web portal. Data syncs across both
- Offline capability — Core features (player lookup, recent data, video capture) work offline. Syncs when connection returns
On-Court Video Capture & Analysis
Coach- Quick video capture — Film a stroke or rally directly in the app during a lesson. Tap to start, tap to stop. Optimized for one-handed use while coaching
- Slow-motion playback — 0.25x, 0.5x, 0.75x speeds. Frame-by-frame scrubbing for precise technique review
- On-screen annotation — Draw on frames: circle body position, trace racket path, mark contact point. Freehand and straight-line tools with color options
- Voice-over coaching notes — Record audio commentary over a video clip. "Watch your front shoulder here — you're opening up too early." Attaches to the video for the family to review at home
- Side-by-side comparison — Pull up a video from 3 months ago and compare with today's footage. Show the player and parent the progress in real time between reps
- Send to family — One tap sends the annotated video to the player's family account. Appears in their Video Library with coach annotations and notes attached
- Coach video library — All videos captured by this coach, organized by player and date. Searchable by player name, stroke type, or date range
Quick Player Lookup
Coach- Player roster — All connected players in a scrollable list. Search by name. Last lesson date, next upcoming match, and current training block shown at a glance
- Pre-lesson summary — Tap a player to see: recent match results, current training block focus, gear setup (racket, string, tension), court time this week, and any shared journal entries. Everything a coach needs before a lesson starts
- Performance overview — Win/loss record, rolling trends, match count, effort averages. Same data as the web portal, optimized for a phone screen
- Opponent H2H — Pull up head-to-head records before a lesson to prepare tactical work. "You're playing Sarah next weekend — let's look at what happened last time"
- Equipment & conditions view — See what racket/string setup the player is using, their weather performance trends, and recent string feel ratings. Inform equipment recommendations during lessons
Lesson & Session Logging
Coach- Start/end lesson — Tap to start a lesson timer. Auto-logs duration to the player's court time tracker. No double-entry for the family
- Session notes — Quick structured entry: what was worked on (serve, return, net play, movement, mental, match play), key takeaways, homework for next time. Sends automatically to the family's Coach Log
- Focus tags — Tag the session to the player's active training block. If the player is in a "serve development" block, the lesson links to it automatically
- Drill library (Coming Soon) — Save and reuse common drills. Share drill descriptions with families so they can practice between lessons
Notifications & Activity
Coach- Match results — Push notification when a connected player completes a match. Quick view of score and result without opening the app
- Shared journals — Notification when a family shares a journal or reflection with the coach. Read it on the phone between lessons
- Training block updates — Notification when a family starts or completes a training block that involves the coach
- Court time alerts — Optional: get notified if a player's weekly court time drops below their baseline. Catch disengagement early
Coach Portal (Web)
A Next.js web dashboard that gives coaches a bigger-screen view across all the families who share data with them. Separate from the mobile coach PIN — this is a dedicated web login for coaches managing multiple players.
Coach Web Dashboard
Coach- Coach login — Email + magic link, scoped to coach role. Coaches create their own account on the web portal. Families link their player to a coach via invite code or email
- Roster view — All players who have granted this coach access, organized by family. Shows last match date, recent results, and sharing level (what categories the family has opted in to share)
- Player summary cards — At-a-glance view per player: win/loss record, current training block, recent trend direction, journal count. Click through to full detail
- Trends comparison — View trend lines across multiple players side-by-side. Useful for coaches tracking development across their roster
- Opponent H2H — Full head-to-head records for any player. Searchable by opponent name across the coach's roster
- Shared journals & reflections — If a family has opted in, view match journals and tournament reflections in a timeline. Read-only — coaches cannot edit family data
- Annotated video review — View shared video clips with annotations. Add coach annotations and voice-over to send back to the family
Parent Dashboard (Web)
A browser-based view for parents who want a bigger screen to review data, browse trends, and read journals. Same data as the mobile app — just more room to see it.
Web Review Dashboard
Parent- Login — Same Supabase auth as mobile (magic link, Google, Apple). Same account, same data
- Match history — Full match list with filters (date range, opponent, tournament, win/loss). Wider layout shows more data per row than mobile
- Match detail — Full stats breakdown, journal entries, and match notes on one screen without scrolling
- Trends dashboard — Larger chart canvas for trend visualization. Side-by-side metric comparison. Date range picker
- Journal review — Scrollable timeline of all journals. Searchable by keyword, date, or tournament. Better for reviewing patterns across months of reflections
- Player profile — View and edit player details, goals, and rating history
- Coach sharing settings — Manage per-coach, per-category sharing from the web. See a preview of exactly what each coach can see
- Billing management — Subscription status, plan changes, payment method, invoices. Links to Stripe customer portal
Academy Integration
How CourtSide fits alongside structured academy programming — designed to complement what coaches do, not compete with it.
The Parent's Seat at the Table
AcademyAcademies track what happens on their courts — technique progression, tactical development, physical benchmarks. CourtSide tracks what the academy can't see: how a player processes a loss on the car ride home, whether they're still having fun after a hard training week, or how a parent observes their child's body language shift between the first and third set.
CourtSide doesn't replace academy systems. It gives the family a structured way to hold their side of the development story — the emotional, behavioral, and motivational patterns that shape a junior player's long-term trajectory just as much as their forehand mechanics.
How It Connects to Academy Work
Academy- Training blocks map to academy periods. When an academy runs a 4-week serve development cycle, the parent creates a matching training block in CourtSide and tags tournament matches during that window. After each match, they note whether the training focus showed up in competition — creating a feedback loop the coach can reference
- Coach access provides shared visibility. The academy coach logs in via the web portal (email magic link + MFA) or mobile coach view and sees match results, stats, trends, opponent H2H, and player goals by default. Families can opt in to share journals, reflections, and emotional ratings with their coach — giving coaches a fuller picture when the family is ready
- Tournament journals capture what coaches miss. Coaches often aren't at every tournament. CourtSide's daily reflections and match journals give the family a record of what happened — not just the scores, but the emotional arc of a tournament weekend. Families who share journals with their coach give them that context automatically; others share it in conversation
- Opponent scouting builds institutional knowledge. Over a season, the family builds detailed H2H records against regional opponents. In junior tennis, kids play the same competitors repeatedly — that history has real tactical value for pre-match preparation and coach discussions
Private by Default, Shared by Choice
AcademyThe single most important design decision in CourtSide is that reflections start private. A 13-year-old won't write "I didn't want to be there today" in a journal they know their academy coach can read. A parent won't note "he looked defeated after the second set" if it automatically becomes part of a coaching evaluation.
But many families trust their coach deeply. They already share physical notebooks and post-tournament recaps. CourtSide respects that relationship: parents can opt in to share specific categories — journals, reflections, effort/compete/fun ratings — with their coach. Per-coach control means a family with a private lesson coach and an academy coach can share different things with each one.
The default protects honesty. The choice respects the relationship. Both make the data better.
What an Academy Coach Gets
Academy| Available to Coach | How It Helps |
|---|---|
| Match results & full stats | See how players perform in competition outside the academy, not just in practice |
| Trends over time | Track whether academy work is translating — first serve %, winner/UE ratio, break point conversion across 10, 20, 50 matches |
| Opponent H2H records | Know who gives your player trouble and why, with scouting notes the family has built |
| Training block names | See which academy focus periods are tagged to matches, confirming alignment between training and competition |
| Player profile & goals | Understand what the family is working toward — helps coaches align messaging and priorities |
| Session Builder (Coming Soon) | Build reusable training sessions, share focus areas with parents, and connect academy programming to match outcomes |
Privacy & Visibility Model
Every piece of data in CourtSide has a default visibility level. Performance data is always shared with coaches. Personal data starts private — parents choose what to share.
| Data Type | Default | Coach Sees |
|---|---|---|
| Match scores & results | Always Shared | Full access |
| Match statistics (all tiers) | Always Shared | Full access |
| Trends & analytics | Always Shared | Full access |
| Opponent H2H & scouting | Always Shared | Full access |
| Player profile & ratings | Always Shared | Full access |
| Development goals | Always Shared | Full access |
| Training block name | Always Shared | Block name only |
| Match journal (player reflection) | Private | Visible if parent opts in |
| Match journal (parent observations) | Private | Visible if parent opts in |
| Effort / Compete / Fun ratings | Private | Visible if parent opts in |
| Training reflection text | Private | Visible if parent opts in |
| Tournament daily reflections | Private | Visible if parent opts in |
| Progress timeline | Private | Visible if parent opts in |
| Load awareness text | Private | Visible if parent opts in |
| Training blocks screen | Private | Visible if parent opts in |
Data Security & Minors' Protection
CourtSide stores photos, videos, journals, and personal data belonging to minors. Security is not a feature — it's a baseline requirement. Every design decision must account for the fact that this data belongs to children.
Authentication & Access Control
Core- MFA required on every login. SMS verification via the parent's registered phone number. Not optional. The app handles minors' images and personal data — single-factor auth is not acceptable
- Biometric quick unlock — After MFA login, the session stays active on the device. Face ID or fingerprint unlocks the local session without re-entering MFA. Session expires after 30 days of inactivity
- New device detection — Full re-authentication (magic link or social + SMS MFA) required on any unrecognized device. No session transfer between devices without MFA
- Remote session kill — Parent can revoke all active sessions from settings. If a phone is lost or stolen, the account is locked within seconds
- Coach access is scoped and auditable. Coaches only see what parents have opted in to share. Every coach access event is logged. Parents can see when and what their coach viewed
Media Security (Photos & Video)
Core- Encrypted at rest. All photos and video stored in Supabase Storage are encrypted at rest (AES-256). No unencrypted media on the server
- Encrypted in transit. All data transfers use TLS 1.2+. Media uploads and downloads are encrypted end-to-end between the device and Supabase
- Private storage buckets. Media files are stored in private Supabase Storage buckets. No public URLs. Access requires authenticated session + row-level security check
- Signed URLs for playback. When a user or coach views a video, a short-lived signed URL is generated (expires in minutes, not hours). No persistent media links that could be shared or leaked
- No third-party media processing. Video playback (slow-mo, annotation) runs on-device. Video files are not sent to external services for processing. The raw footage stays in Supabase Storage and on the user's device
- Local cache management. Cached media on the device is stored in the app's sandboxed storage. Clearing the app or logging out removes all cached media from the device
COPPA Compliance
CoreThe Children's Online Privacy Protection Act (COPPA) applies because CourtSide collects personal data from children under 13. The parent account model helps — the parent is always the account holder and data controller — but the legal requirements are specific.
- Verifiable parental consent. The parent creates the account and adds child players. The parent's authenticated identity (email + SMS MFA) serves as verifiable parental consent for data collection. No child can create their own account
- No direct data collection from children. All data entry happens through the parent's account. Even the "Player Reflection" tab in the journal is entered under the parent's session — the parent decides whether their child uses the device to fill it in
- Data minimization. Only collect what's needed. Player profiles require name, age, and handedness. Everything else (ratings, photos, play style) is optional
- Parental right to review and delete. Parents can view all data stored about their child, export it, and permanently delete it at any time from settings. Deletion is real — database rows and media files are removed, not soft-deleted
- No behavioral advertising. CourtSide does not serve ads, does not sell data, and does not use children's data for profiling or advertising. Revenue comes from subscriptions only
- No social features for minors. Activity feed, player discovery, and contacts are parent-managed features. Children do not have their own social profiles, friend lists, or messaging
- Privacy policy disclosure. A COPPA-compliant privacy policy must be prominently accessible from the app and website. It must clearly state what data is collected, how it's used, who it's shared with (coaches, only with consent), and how to request deletion
Data Handling Policies
Core- Row-level security (RLS). Every database query is filtered by Supabase RLS policies. A family can only access their own data. A coach can only access data for players whose families have granted access. There is no admin backdoor for browsing user data
- Audit logging. Coach access events, data exports, account changes, and sharing permission changes are logged with timestamps. Parents can review the audit log from settings
- Data retention. Active accounts retain all data indefinitely. Cancelled accounts retain data for 90 days (in case of re-subscription), then permanently delete. Parents can request immediate deletion at any time
- Backup & recovery. Supabase provides automated daily backups. Point-in-time recovery available. Backups are encrypted
- No data sharing with third parties. CourtSide does not share, sell, or license user data to any third party. The only external service with access to user data is Supabase (infrastructure provider) and Stripe (billing only — no player data)
- Incident response. If a data breach occurs, affected families are notified within 72 hours per COPPA and state breach notification laws. Clear process for containment, investigation, and remediation
Activity Feed
Community activity from team, academy, and connected players.
Social Feed
Utility- Activity stream from team/academy connected players
- Recent match results, achievements, and milestones
- Post cards with like/comment engagement
Tennis Contacts
Manage your tennis network — coaches, parents, hitting partners, teammates.
Contact Management
Utility- Search and browse contacts with role/relationship labels
- Add contacts with name, role (Coach, Parent, Friend, Teammate), phone, email, notes
- Contact detail view with associated matches/events
Player Discovery
Browse and find other players for potential matches and connections.
Discovery Feed
Utility- Filter by criteria (level, location, age)
- Player cards with name, rating, play style, location
- Tap to view player profile with achievements
Knowledge Base
Tennis tips, technique guides, tactical articles, and mental toughness resources.
Article Library
Utility- Category filter chips for browsing by topic
- Article list with search capability
- Full article detail view with related articles
- Content covering technique, tactics, mental game, and training
Training Programs
Multi-day structured training programs with exercises, drills, and progression.
Program Builder
Parent- Create programs — Name, description, multi-day structure with exercises per day
- Program day detail — Instructions, warmup, exercise list with sets/reps/descriptions
- Browse programs — View available programs with filtering
- Publish to store — Share programs with the community
Program Store
Browse, preview, and acquire training programs shared by other users and coaches.
Store
Utility- Category filter tabs for browsing
- Program cards in grid layout with title, description, and details
- Preview mode with full program details before adding
Calm & Awareness
Breathing exercises and changeover cues to support mental composure during matches.
Changeover Breathing
Parent- Calm settings screen — Configure changeover cue preferences and breathing exercise parameters
- Calm prompt overlay — Full-screen breathing animation triggered during changeovers: animated circle grows on inhale, shrinks on exhale, with cycle indicator dots
- Changeover cue types — Different cue styles configurable by the parent
- Dismissible — Always optional, never blocks match charting
Notifications
In-app alerts and reminders.
Notification Center
Utility- Notification list with unread indicators, timestamps, and icons
- Filter tabs by notification type
- "Mark all read" bulk action
- Banner-style notifications for key events (journal reminders, streaks, etc.)
Match Day Mode
A focused day-of-match view that surfaces everything relevant for game day.
Match Day Hub
Parent- Pre-match checklist integration (from routines)
- Current tournament/match info display
- Quick match start button
- Warm-up reminders and prep notes
Account & Settings
Account management, theme preferences, and system configuration.
Account Settings
Core- Account info — Name, email, PIN management
- Coach access code — Set or change the PIN that coaches use to access the family's data
- Theme toggle — Dark/light mode (persistent preference)
- Data management — View storage usage, clear local cache, manage cloud data. Export all data (Elite tier)
- Coach sharing controls — Per-category toggles to share journals, reflections, ratings, etc. with each coach. Per-coach control for families with multiple coaches
- Coach preview — See exactly what coaches see from the parent view (reflects current sharing settings)
- Coach visibility info — Detailed breakdown of default private vs. always shared data, plus current opt-in selections
- Apple Watch Awareness — Coming Soon — Interest capture card for wearable integration
- Log out — Returns to login screen
Coming Soon
Features planned for future development, with interest capture in the current prototype.
Coach Session Builder
Coming SoonBuild and reuse training sessions. Share focus areas with parents. Connect academy programming to match performance tracking.
- Visible as a placeholder card on the Coach Dashboard
- "I'm interested" button captures coach interest for future development prioritization
Apple Watch Awareness
Coming SoonOptional heart rate awareness during matches. Not heart rate management — awareness. Surface data from wearables as additional context alongside match stats and reflections.
- Visible as a placeholder card in Account Settings
- "I'm interested" button captures user interest for future development prioritization