Courting: a three-platform product shipped solo, with agents doing the shipping
outcome live product; 2,100+ tickets and 2,000+ PRs with agents in the loop
Problem
One person building a production-grade consumer platform (native iOS, native Android, web, backend) has no spare hours for process overhead, yet needs more process discipline than a team, because nobody else will catch the mistakes.
What I built
Courting, a racquet sports management platform: intelligent matchmaking for club social sessions (a Bayesian skill model plus constrained optimisation), score tracking, bookings, and club pages. SwiftUI on iOS, Kotlin and Jetpack Compose on Android, Next.js on web, a Convex backend, and a marketing site, distributed through TestFlight and the App Store.
The range runs from design to deliverable: the brand and design system were drawn as vector frames first (an agent-driven design canvas), then carried through to the shipped UI on all three platforms. Product thinking, UX, visual identity, and implementation are one continuous loop here, not separate departments.
The delivery system is the showcase: fourteen project-level AI skills forming a full pipeline. Interview-driven ticket specification into the issue tracker. An orchestrator that picks the next unblocked ticket, isolates work in a git worktree, delegates to a sub-agent, reviews against acceptance criteria, and ships a PR to the correct branch tier. An unattended engineering loop that implements and then verifies its own work on a real iOS simulator and a real browser before anything merges. A bug-report skill that turns freeform testing feedback and screenshots into structured tickets. Release skills that handle beta and production cutovers, changelog rotation, and App Store metadata.
Techniques that made it work
- The same guardrails as the work systems: evidence before assertions (simulator and browser verification, not “the build passed”), worktree isolation, verified state transitions, staged releases through a three-tier branch model
- Work decomposed to one-day tickets or smaller, so agent throughput is visible on the board
- Skills over prompts throughout: every recurring procedure is a versioned skill
Outcome
A live, tagged, production product. The tracker has passed 2,100 issues and the repo 2,000 pull requests, nearly all with agents in the loop; recent runs merged 11-PR batches with the human only batch-testing at the end.