The Product
The trust layerfor every game on the court.
Pickup, leagues, paid play, and verified athlete identity — on Apple-platform-native rails. One sport shell scales to twelve.
Vision
A peer-managed multi-sport platform where the people on the court run the game.
Not a referee. Not an app on the sidelines. Players create games, score them by tapping each other's faces, review each other honestly, and walk away with a verified record they own. Identity, fairness, and trust are built in, not bolted on.
Why now. Pickup sports have no shared record. Players can't carry their reputation. Scouts and coaches can't trust anything they didn't see in person. League operators are still on paper. Apple Watch + Live Activities + Sign in with Apple + ISO mDoc credentials make the verified-on-the-court experience finally cheap and pleasant to ship.
Who it's for
Five users. Most active players hit two or three.
The Player
16–45Score the run without arguments, keep a record, get rated honestly. Joins a game, taps to score, walks away with reviews.
The Organizer
Rec, gym, leagueRun leagues, track stats, assemble teams, hand out a trophy with real numbers behind it. Imports a roster, prints a season schedule, posts results.
The Scout / Coach
DiscoveryFilter for verified, in-form players within a radius. Trust the record. Read the structured Scout report on every public profile.
The Witness / Scorekeeper
Reputation buildersBe acknowledged for keeping the run honest. Build reviewer reputation over time as a separate axis from playing skill.
The Fan / Family
FollowingFollow a specific player, see their highlights, share an achievement. Public profile lives at readyplay.app/p/<id>.
What we're building
Five year-one goals, in priority order.
- 1
Make finishing a game on iPhone or Apple Watch the fastest path to a final score, every time. Beat the group chat. Beat the clipboard.
- 2
Ship a fairness engine that produces ratings the player can defend in conversation. Verified games, scorekeeper consensus, recency decay > self-report.
- 3
Ship a verified-identity story tight enough that a coach trusts a profile they've never met in person. Sign in with Apple → real-name binding → ISO mDoc credential → trust tier ladder.
- 4
Land one B2B vertical end-to-end. Bowling leagues are the wedge: paper scoresheets → portable verified profile.
- 5
Keep the four surfaces in lockstep on one VPS, one Postgres, one identity. One deploy story, one bug-report-to-fix loop.
The four surfaces
One product. One identity. Four front doors.
Every surface shares the same backend, the same identity cookie, the same Postgres. They deploy independently. A verified record made in-park on the iPhone updates the public profile on the web before the player has left the court.
Where the game is played
iOS / Mac / Apple Watch
SwiftUI, ActivityKit, App Intents, ISO mDoc credentials. Tap-to-score, post-game review, Live Activity score strip on the Lock Screen, Watch quick-score from the wrist. The primary surface.
The single source of truth
Backend API
Node + Express + Postgres 16. One identity for every other surface. All four surfaces talk to this and only this.
Operator console
Admin dashboard
Next.js 15 + React 19. Player ledger, verification queue, feature registry, analytics, AI persona console, league ops.
Public storefront
Marketing + investor
Next.js 15 + Three.js + Framer Motion. Public profiles, leaderboard, league pitch, waitlist, this page, investor dataroom.
The wedge
Apple-platform depth that competitors won't ship cheaply.
Cross-platform abstractions lose Live Activities, Apple Watch, and App Intents fidelity. We ship them all at full depth — and that's what makes the on-court experience feel real instead of like a spreadsheet with a logo.
Live Activities + Dynamic Island
Score strip on the Lock Screen, live game timer, scorekeeper handoff prompts. Cross-platform competitors don't ship this cheaply.
Apple Watch quick-score
Score from the wrist, post-game review on the wrist, fitness-ring integration via HealthKit per-sport workout types.
App Intents
"Start Pickup Game", "Open Current Scoreboard", "Quick Score" exposed to Siri, Shortcuts, Spotlight, system surfaces.
ISO 18013 mDoc credentials
ExtensionKit Identity Document Provider — verified athlete ID is presentable to a coach/scout/referee on iOS 26+.
Sign in with Apple
Real-name binding for free, no password exposure, one identity across iOS + web. The canonical identity layer.
HealthKit
Workout type per sport, heart rate during a game, height/weight as verified inputs to the trust ladder.
The 12-sport architecture
One sport shell. Twelve sports.
Basketball is the primary shipped vertical — it demands the most from the platform. The other eleven share the same shell and ship per roadmap. Bowling is the first B2B vertical: paper scoresheets → portable verified profile.
- Hoops
- Volleyball
- Tennis
- Padel
- Pickleball
- Soccer
- Baseball / Softball
- Flag football
- Track / Run
- Pool
- Fishing
- Bowling
The economy
Three doors. No shared keys.
Skill
Rating
Per-sport + Overall. Floor 0, start 25, no ceiling. No money tie. Verified-with-witness games are the fastest path.
Earn
Points
Earnable in-game. Unlock cosmetic + tier privileges. Not redeemable for money.
Wallet
Credits
Purchase-only wallet. Closed-loop spend on app features — boosts, premium scout reports, league fees.
Principles
The constraints we won't break.
One identity, four surfaces
Sign in with Apple is the only identity binding. Manual name fields are display-only.
Verification opt-in, discoverability opt-out
Verified players are discoverable by default. The hide-me path is one toggle.
Personal surfaces are connection-gated
Feed, community, messages, pools, leaderboards — all filter to your connections regardless of sport.
Three doors, no shared keys
Rating, Points, Credits never convert into each other. No blurred conversions.
Apple-first
Don't add a cross-platform abstraction that loses Live Activities / Watch / App Intents fidelity to ship Android sooner.
AI scope is enforced by tools, not trust
Cookem reads only the asking user. Broadcast personas read only the active game. Scout reads only the target's public profile.
Want to go deeper?