CleanInnings · player accounts and the marketing page · October 20, 2026 · follows the information architecture proposal
Every player gets their own CleanInnings.
Today a player only exists as a name on a coach's roster, and everything reaches them through a parent. That fits a 9-year-old and nobody else. Players get accounts: they read the playbook, pick their walk-up song, and take a test that tells them, and the coach, whether they know it. A young player can use a parent's account or get their own login. The marketing page stops talking past them.
03
01
01
13
How a player gets in
Same app for everyone. The way in, and the safeguards, depend on age. The line is 13: below it, the law needs a parent's yes before we collect anything from the child.
| Under 13 | 13–17 | 18+ | |
|---|---|---|---|
| Way in | Share: the parent's account, with "Switch to Mia" Own: a login the parent sets up: a username and a 4-digit PIN, no email | Own login. The coach or a parent adds their email; they get an invite | Own login, from the team link |
| Parent | Required. They agree, and they can see everything the player does | Optional. A linked parent sees the test results and reviews | None |
| Can | Read the playbook and signs, drill, take the test, pick a walk-up song, see their own games | ||
| Can't | Message anyone. See another player's test score. Show up anywhere public | ||
The team's age group sets everyone's starting band (12U → under 13, high school → 13–17, adult league → 18+, with no parent step at all). The coach can change one player. No birthdays collected.
Three ways in, step by step
Each one is a few taps, and none of them makes the coach chase anything.
- Parent opens My player and taps it.
- Picks a username (we suggest mia.rivals) and a PIN.
- Agrees for Mia, once.
- Mia signs in with the username and PIN on any phone or tablet. The parent can reset the PIN or turn it off.
- Coach taps Jordan on the roster and adds an email (or the parent does, from My player).
- Jordan gets the invite and signs in with Google or a link.
- They land on Me, already on the team. No code to type.
- A linked parent gets a note that Jordan has a login.
- Coach posts the player link in the team chat.
- Player signs in and picks their name off the roster (or "I'm not on it").
- The coach confirms them, the same way parents are confirmed today.
What a player sees
Wireframes, not visual design. Player tabs: Me · Playbook · Drill · Games · More.
7
JordanShortstop · Sat 10:00 vs Hawks · batting 2nd Take Saturday's test10 questions · about 4 minutes · due FridayMe
The player's whole season in one column: the next game and where they bat, the test that's due, their song, and the last game.
- The top card changes with the week: test due, then "You passed, see the plays you missed", then the game itself.
- An under-13 player on their own login sees the same screen, minus the coach's notes (those go to the parent).
- A parent who shares their account taps "Switch to Mia" and gets this screen, with "Back to me" at the top.
Playbook: my job first
Opens on the player's own position, with their job in a sentence on every play. One tap shows the whole field.
- The position comes from the roster; a utility player can switch at the top.
- Signs tab: the same pictures the coach picked, read-only.
- Read-only for players. No Edit button, nothing to break.
Walk-up song
The same song editor parents use today (link autofill, start time, up to five), opened from Me.
- On youth teams, a new song waits for the DJ or a coach to okay it. The DJ board shows "2 songs to check" with Play and Okay. Until then the old song plays.
- On adult teams, the okay step is off by default.
- Uploading an MP3 stays with DJs and coaches for now. Opening uploads to players needs our DMCA agent registered first.
The playbook test
Drill is practice: as many tries as you want, nothing on the line. The test is the check: a short, fixed set the coach can see. It tells the player what they don't know yet, and it tells the coach who's ready for Saturday.
The app writes it from the team's own playbook: the plays where the player's position has a job, plus every sign. A coach can pin plays ("bunt coverage this week") or leave it on auto.
Tap where you go on the field. Pick the call from a sign ("Cap, then belt: what's on?"). Pick your job in a sentence. All drawn from what the coach already made, so there's nothing new to write.
8 of 10 by default; the coach can change it. Retake any time. Questions you missed come back first, so the second try teaches. No timer, no leaderboard.
The player sees their own. Coaches see the team. A parent sees their under-13 player's, and a linked parent sees a teen's. Players never see each other's.
The coach touches the cap, then the belt. What's on?
9 of 10
Passed. You're ready for Saturday.The test, one question at a time
Built like the drill players already know: the scorebar fills as they go. A wrong answer shows the right one straight away, with the job in a sentence.
- The result names what they missed and sends them to drill that exact play.
- Not passed? "Try again" puts the misses first.
- Works with no signal at the field, and saves when it can.
8 of 12
passed Saturday's testMost missed: first and third, "Through"| Jordan · SS | 9/10 |
| Leo · 2B | 10/10 |
| Ava · CF | 6/10 · tried twice |
| Sam · C | not started |
| + 8 more |
Coach: who's ready
Lives on the game's Before tab and as a card on Today. One number, then the list.
- The most-missed play becomes "work on this" for practice, the same loop as the game review.
- No "remind" button that messages players. The coach can copy a note for the team chat they already use.
- Under-13 players who share a parent's account show up the same as everyone else.
The marketing page, rethought
Today's page rule is "never address children," so it talks to coaches and parents about players. With players of every age, it should talk to players too, in the voice you'd use with a high-school shortstop or a men's-league catcher. That's also what keeps it from looking aimed at young kids, which is what the law cares about.
For baseball teams of every age, from 10U to the Sunday league.
Your playbook, in every player's pocket.
Coaches draw the plays and signs once. Players learn their job, pick their walk-up song and take the test. Parents see how it's going. Everyone shows up knowing where to go.
Draw it once. Everyone knows it.
- Playbook designer and signs as pictures
- Lineup from a GC screenshot
- Who's ready: test results by player
- DJ board with a ballpark announcer
Know your job before the ball's hit.
- Your job on every play, at your position
- The signs, as pictures
- Take the test, see what you missed
- Pick your walk-up song
See how your player's doing.
- Reviews and what to work on
- Under 13? Share your login, or set one up for them
- You agree before anything is collected
- Speaks to players directly, in a teen-and-up voice: "your job", "your song". No cartoons, no mascots, no games-and-prizes language.
- Pictures of the game itself: the field, the playbook, the board.
- The "Players" door doesn't sign anyone up on its own. It sends them to their team link.
- Shipped features only. Player accounts go on the page the day they ship.
One short section, linked from the Parents door, in plain words: what we collect at each age, that a parent agrees before a child under 13 has a login, that nothing is public and nobody can message a player. It states what the app does, never badges like "COPPA compliant" or "safe".
What stays true for every player
- No messagesNobody can message a player in the app, at any age. Team talk stays in the chat the team already uses.
- Your own results onlyA player sees their own test score and review, never a teammate's.
- Songs get an okay on youth teamsA DJ or coach hears it before the whole ballpark does.
- Last names follow the team ruleThe same full-names-by-default setting you picked, applied to players' screens too.
- Nothing publicNo profiles, no search, no share links for players.
Before it goes live
- A lawyer reads the teen part first.Under 13 we already handle with a parent's consent. 13–17 accounts bring in the state laws on teens' data and the newer COPPA rule changes. We can build now; we turn on 13+ logins after the review.
- Player-uploaded MP3s wait for a DMCA agent.Links are fine on day one. Letting players upload music files means we should register a DMCA agent first (a short online form and a small fee, in your name).
- The privacy policy grows a player section.What we collect from a player at each age, and who sees the test results. It ships with the feature, not after.
- One wrinkle in the design.An under-13 player on a parent-made login is the first user with no email. PIN reset goes through the parent, and that login can't do anything else.
Build order
Each step ships by itself. It slots in as phase 4 of the information-architecture plan, and can go first if you want players before the reorganization.
- 1Player accounts and Me
A new Player role. A player's age band (set from the team's age group). Parent-made logins (username and PIN) and "Switch to Mia". Coach and parent invites by email for 13–17. The team link for adults. The Me home and the read-only player playbook.
Data change: players link to a login; players get an age band. 13+ logins stay off until the lawyer review. - 2Players pick their songs
The song editor opens to players, and youth teams get the DJ okay step on the board.
- 3The playbook test
The test written from the playbook, the result screen, and "Who's ready" for coaches on Today and the game page.
Builds on the drill results the app already saves per player. - 4The marketing page and privacy policy
The three doors, the families section, the out-of-date "Next up" line fixed. Ships with step 1 so the page never promises what isn't there.
Five calls for you
The other way is a child's email, which we'd have to collect from a child. A username and PIN means we never do, and a parent can turn it off any time.
My call: username and PIN.
A 15-year-old will pick the explicit version at least once. The cost is one tap for the DJ.
My call: on by default for youth teams, off for adult teams, and the coach can flip it.
Just a readiness check, or something the coach uses for playing time? If it ties to playing time, parents will care a lot more about how fair it is.
My call: a readiness check. Pass mark 8 of 10, coach can change it, unlimited retakes.
Your note on team setup said leagues could be anything, including rec softball and adult leagues. Adult baseball works today. Softball needs a different field size in the designer.
My call: say "baseball teams of every age" now and add softball when the field is right.
Players can go first. It's mostly new screens. But the player tabs assume the new structure (Games, Playbook with my job), so building them first means some screens get redone.
My call: do phase 1 quick wins of the information-architecture plan, then player accounts, then the rest of the reorganization.
Builds on the information architecture proposal (v4) and your notes: players of every age, adult and rec leagues on team setup, signs as pictures, and the lineup-from-a-screenshot feature. Built from the app as of commit 3fcbcf1: drill results are already saved per player, parents already edit songs, and the marketing copy's "never address children" rule is what this page replaces. React to any section; 👎 with a note is the most useful.