-
-
PlaybookMax: the playbook, the staff room and the team hub for youth and high school football.
-
Draw plays on a real field: routes, blocks, motion and reads.
-
Staff Read: eleven position coaches pin their points to the players they're about.
-
Team chat and pregame checklists keep the whole team in one place.
-
Families see every play their kid is in, with their spot lit up.
-
Screenshot (1179 x 2556, no device frame): a play on the board, with the READ key in gold.
-
The PlaybookMax app icon (1024 x 1024).
-
On a real iPhone: the Staff Read on a play, with the wide receivers coach pinning his point to the tight end.
-
On a real iPhone: the team schedule, color-coded by games, practices and film sessions.
-
On a real iPhone: team chat, with a play attached for the whole team.
-
On a real iPhone: the family view, with a player's card and every play he's in.
-
On a real iPhone: the coach dashboard.
-
PlaybookMax on the home screen of a real iPhone.
-
On a real iPhone: the Play Wizard. Set the situation, play type and length, and it drafts the routes, blocks and reads.
-
The real thing: PlaybookMax in hand on an iPhone, with the Staff Read on a play.

My son is in his fourth tackle football season, and he's the reason PlaybookMax exists. His coaches are volunteer parents, not ex-college players, and their tools were a team-chat app and a whiteboard. Most youth coaches are in the same spot: a job, twenty kids, a game on Saturday, and nobody to ask "does this play work?" at 10pm on a Tuesday. I wanted to take the team-chat idea further: real scheduling, a playbook with a coaching staff built in, and checklists so nobody forgets their mouthguard on game day.
They're typical. In a 2022 national survey of 10,485 youth coaches, 41% coached their last season unpaid, 74% were unpaid or earned under $5,000, and 83% held another job (Ohio State LiFEsports & Aspen Institute).


PlaybookMax is the playbook, and it's also the staff room.
- Draw plays on a real field: routes, blocks, motions, zones and reads, in the notation a coach already uses (O's, X's, one gold route). Start from dozens of formations, from Shotgun Spread to Wing-T, Double Wing and Wishbone.
- Play Wizard. Pick your side and both formations, describe the situation, and the app draws the play for that matchup, then hands it to the staff.
- Staff Read. A staff of eleven position coaches, each with their own voice and specialty, reads every play and pins their coaching points to the player they're about. The line coach talks about the fold. The receivers coach talks about selling the post. Real technique in plain words, with football terms linked to a glossary the kids can read.
- Beat It. See how an opponent would attack your call, and what the answer is.
- Coach Chat. Ask any football question and the right coach on the staff answers it, grounded in a coaching knowledge base we built ourselves.
- Family view. Parents join with a code from the coach. Their kid's page shows every play the kid is in, with their spot lit up and position notes written for a nine-year-old. Kids never get their own accounts; a parent or guardian manages it and they look at plays together.
- Run the team. Roster, team chat with plays attached, schedule with RSVPs, a practice planner whose block timer alerts you even with the phone in your pocket, quizzes so the players learn the book, and game-day checklists.
PlaybookMax is free, with room for a real playbook. PlaybookMax Pro is $19.99 a month for the whole team (not per coach, not per family), and anyone on the team can buy it for the coaches. Pro gives the team 1,000 shared AI credits a month, and new subscribers on iPhone get a 7-day free trial.

PlaybookMax started as a React web app. On July 31, the day the Shipaton rules went up, I started rewriting it in Kotlin Multiplatform / Compose Multiplatform. The iOS and Android store apps are that rewrite: about 50,000 lines of shared Kotlin (every screen, the field renderer and play designer on Compose Canvas, the data layer through the GitLive Firebase SDK) and roughly 1,000 lines each of iOS and Android code for sign-in, push, purchases, alarms and system Back.
- Backend: Firebase Auth, Firestore and Storage, with security rules tested in the emulator.
- AI: Cloud Functions call Gemini, grounded in a RAG layer over our own distilled coaching knowledge. Every AI call is metered per team on the server.
- Monetization: RevenueCat (purchases-kmp) on both stores. The team's subscription lives server-side, written by the RevenueCat webhook, so a coach who subscribes on a phone is Pro everywhere.
- Push: OneSignal, for team chat and campaigns.

- A Kotlin exception inside a Firestore transaction is fatal on iOS. It can't cross the Objective-C callback, so the app aborted on "Publish to team." Transactions now only decide; any throw happens outside.
- A silently dropped field. The serializer omits values equal to their defaults, so a parent joining with a parent code sent a document without its role, and the security rule refused every parent join. Rule-checked fields now have no defaults.
- A phone running warm. We measured every screen at rest: Android frames drawn in 10 idle seconds and CPU on the iOS simulator. One screen stood out: the play list held ~27% CPU on iOS and drew 294 frames per 10 idle seconds on Android, because a looping animation kept the frame clock running. One change in shared code took both to zero.
- Keeping it a first release. Shipaton requires the first store release inside the event window, so the web app stayed private until the store apps shipped.
Accomplishments that we're proud of
Shipping one Kotlin codebase to both stores in about seven weeks, and a staff read that sounds like real coaches talking to a volunteer parent, not a chatbot talking to itself.
What we learned
Compose Canvas matched our SVG web board pixel for pixel, so the part we feared most was the easy part. The expensive lessons were in the seams between Kotlin and each platform, and every one of them was found by running the app, not by reading the code.

Every format of the game. Flag football makes its Olympic debut at the LA 2028 Games, and new flag teams are already forming around the sport. PlaybookMax will support flag (5v5 and 7v7), two-hand touch, and small-roster tackle (6-, 8- and 9-man): the right roster size, formations and rules on the board, and a coaching staff that knows each format's rules. Flag is already the most-played form of football for kids 6–12 (4.0% of kids vs 2.7% for tackle in 2024), and girls' high school flag grew 60% in a single year (Aspen Institute State of Play, NFHS).
- Film Study on mobile. It's on the web today.
- A season pass priced around a youth season.
- More ways for families to help the coaches, starting with putting the whole team on Pro.
The same idea for other youth sports. Most youth teams, in every sport, run on a general team-chat app. We want to build the same kind of sport-specific tool for each, with a staff of that sport's own coaches:
- Soccer: a set-piece designer for corners and free kicks, and a rotation planner that keeps playing time even.
- Basketball: a half-court play and inbounds designer, and a substitution planner that tracks minutes and fouls.
- Swim: a meet lineup builder for events and relays, and a best-times tracker for each swimmer and stroke.


RevenueCat Design Award. PlaybookMax looks like a coach's chalkboard, not a generic sports app. One design system, Film Room, runs through every screen: ink and turf surfaces, chalk text, and a single gold accent saved for what matters, like the play's read. The play board is the hero, filling the screen like a real coach's card, and the coaching staff pins each point to the player it's about, right on the field.

RevenueCat Peace Prize. Youth football runs on volunteers: in a 2022 national survey, 41% of youth coaches coached their last season unpaid. PlaybookMax gives those parents the coaching staff they never had, and gives families a plain-language view of every play their kid is in, so a parent and child can go through the playbook together on the couch. Kids never get their own accounts; the adults stay in charge.

Keep Them Coming Back (OneSignal). A team has to show up every week, and PlaybookMax is where that happens. OneSignal pushes every team-chat message to the right team, and game-week campaigns bring coaches back on the day the tool matters most. We also tracked down and fixed a bug that silently opted devices out of push on every cold start.

#BuildInPublic. 36 posts on X, from "Post 1 of many" on July 31 to both stores going live on September 30. We shared the setbacks as they happened, including accidentally pulling our own Android build from review the night before the deadline, and answered public questions about how the app is built.

Ship Kotlin Everywhere. PlaybookMax began as a React web app. On July 31 we started over in Kotlin Multiplatform, and two months later the same codebase is live on the App Store and Google Play. About 50,000 lines of shared Kotlin run every screen, the play board and designer on Compose Canvas, and the data layer, with roughly 1,000 lines of platform code per side. One shared fix took the play list's idle CPU to zero on both phones at once.


Log in or sign up for Devpost to join the conversation.