Case study · iPhone, iPad and the web
Beaver Football
From the first line of code to the App Store in 17 days.
A 7-on-7 tail-flag football game for kids at Mudflat Field, played by the beavers of Beaver Ball. No tackles: a play ends when a defender pulls the cloth flag off a beaver’s tail. I designed and directed it; Claude wrote the code, one pull request at a time.
- 17days from the first line of football code to App Store approval
- 3days to the first App Store submission
- 152plays in the Playbook
- 1,008recorded voice and sound takes
- 22Game Center achievements
- 13,150lines of football code, on top of Beaver Ball
The game plan
Four plays that built it
Beaver Football is the second Beaver game, after Beaver Ball, a softball game. Every Beaver game keeps the same rules: flat cartoon art drawn in code, kid-safe words, free with no ads, and anyone plays any sport.
Run
Fork the franchise
Beaver Ball had gone live on the App Store the day before. Beaver Football started as a fork of it, so the whole engine came along: the beavers built from code, the animator, the renderer, the booth, accounts, the Locker and the Shop. One commit stripped out the softball, and a new set of football rules went in its place, written as plain logic that unit tests can play a whole game of without drawing a frame.
Short pass
Draw everything in code
No model files. Mudflat Field, the bleachers, the log goalposts, the helmets and the shoulder pads (way too big, made of logs, lily pads and acorn caps) are all built in code with flat two-tone cel paint and ink outlines. Three.js draws it with WebGPU and falls back to WebGL, and Capacitor wraps the same game as an iPhone and iPad app.
Deep pass
Give it a voice
Peg and Stu call the game from the booth and Gavel Gert referees, in the same ElevenLabs voices they have in Beaver Ball. By launch the booth called players by name on every catch, drop, juke and flag pull, with jokes in the huddle, a “Hike!” on every snap and the Mudflat band in the menus: 1,008 recorded takes in all.
Trick play
Run the build like a sideline
I called the plays and Claude ran them. A coordinator split the work into threads, each Claude Code session took one task (the Locker, Career, Game Center, the listing) to a pull request with tests, and a session on my Mac built each TestFlight upload. I played every build on my iPhone and sent back what felt wrong.
The drive
Seventeen days, one drive
Every date comes from the game’s code history and its App Store record.
- KickoffOwn 5
Saturday, October 24
Softball to football in an afternoon
The day after Beaver Ball went live, I wrote down the rules every Beaver game keeps and forked the repo. By the evening there was a playable drive at Mudflat Field, then a whole game with both teams on offense and defense.
- A 7-on-7 tail-flag drive: no tackles, a play ends when a defender pulls the flag off a tail
- A side camera from the east bank
- Both teams get the ball: defense, the try after a touchdown, two halves and a shootout
- Helmets, face masks and the funny shoulder pads

Day one: Mudflat Field really was mud. 
The first side view. - 1st & 10Own 30
Sunday, October 25
A game a kid can pick up
Football has a lot of buttons. I asked for “way fewer keys,” so the whole game moved onto one button: tap to pass where the gold arrow points, hold to throw harder, and your runner jukes and belly slides on their own. Easy became the default, made for kids.
- The Playbook: 152 plays in packs, earned with Beaver Bucks, and a coach from Novice to Expert
- A tutorial with Peg and Stu that waits for you
- Green grass, plays drawn on the field, kickoffs and field goals
- Easy, Medium and Hard
- The Team Builder and Player Editor for seven a side
- Its own app icon, App Store listing, iPad layout, Settings, Game Center and the Locker

The field turned green. 
152 plays to unlock. 
The Locker, with the shop inside it. - 2nd & 4Midfield
Monday, October 26
Everything a real app needs
Monday was the ship-ready list, one task per thread: purchases, accounts, the modes that keep you coming back, and the App Store listing. That night I found the iPhone build was silent with the ring switch off, so the sound got fixed along with a new picture-grid home screen and a football loading screen.
- In-app purchases: the Beaver Football Club and Star Packs of looks, never Bucks
- Your account: a cloud save, Sign in with Apple and Delete my account
- Career, the Tail Punt Derby, Daily challenges with the Two-Minute Drill, and Manager mode
- The App Store listing, privacy answers and Game Center filled in

Career. 
The Tail Punt Derby. 
Daily and the Two-Minute Drill. 
Manager mode. - 3rd & 2Opp 30
Tuesday, October 27
The booth learns everyone’s name
Submitted to the App Store
The last night before submitting was all feel: the booth calling players by name, weather that changes how a game plays, a camera that keeps every player on screen, and camera settings with a Steady option for anyone who gets motion sick. I pressed Submit at 1:47 in the morning. That afternoon Apple asked for a Terms of Use link for the Club subscription, and it was back in review two hours later.
- Named play-by-play on every catch, drop, swat, pick, juke and flag pull
- Game-day weather: wind, rain, snow and floods that each play differently
- Camera views (Behind, Close, Broadcast, Sideline, Chalkboard) with sliders and Steady camera
- Pause or leaving the app silences every sound

A rainy day at Mudflat Field. 
Settings, with captions and the camera. - 1st & goalOpp 5
October 28 to November 8
Five testers who never get tired
While Apple reviewed, a launch QA ran every mode as five different kinds of player, from the one who taps through everything to the one who tries to break the save. Their reports fixed real bugs, like Beaver Bucks coming back after a purchase when a save synced. Version 1.0.3 carried those fixes, the Mudflat band and a mute button, and went in on November 8.
- Saves keep every spend and payout across devices
- Kid-safe team letters on the score bug
- The Mudflat band: three songs in the menus, soft under a game
- A note in the app when a newer version is on the App Store
- App Store preview videos recorded from real play

The Game Center badges. 
The Club and the packs. - TouchdownEnd zone
Tuesday, November 10
Touchdown
Ready for Distribution on the App Store
Apple approved Beaver Football 1.0.3, seventeen days after the first line of football code. It’s free on the App Store for iPhone and iPad, and free to play in a browser.
Instant replay
Day one, then launch
The field


The home screen


Film room
Straight from the game
Every frame here is the real game, recorded in a browser, with the booth’s own voices. The teasers were made before launch, so they still say “coming soon.”
On the App Store
The listing
Six screenshots for iPhone and six for iPad, each a real moment from the game with one line on top.






What shipped
What’s in the game
One button
Tap to pass, hold to throw harder, and your runner’s jukes, spins and Belly Slides happen on their own.
Tail flags, no tackles
Every beaver wears a cloth flag on the tail. Nobody gets hurt; a play ends when the flag comes off.
A real playbook
152 plays across ten formations, unlocked with Beaver Bucks you earn by playing, and a coach with 26 lessons.
Six ways to play
Quick and full games, Career, the Tail Punt Derby, Daily and the Two-Minute Drill, and Manager mode.
A booth that knows you
Peg, Stu and Gert call the game by name in recorded voices, with captions for when the sound is off.
Made for kids
Easy by default, 9+ on the App Store, a grown-ups check before any purchase or link, and no ads ever.

Final
Free on iPhone, iPad and the web
Beaver Football is free, with no ads. The Beaver Football Club and Star Packs of looks are the only things for sale, always behind a grown-ups check.
How the first game was made: the Beaver Ball case study
