Context
Teamz connects tennis organizations with players and coaches: recruitment listings, applications, messaging, tournaments. The first version, launched two years ago, matched clubs and players. The V2 currently in development opens the platform to padel, coach profiles and new kinds of organizations: hotels, resorts, federations.
Scope
Fullstack development over the long run: the V1 two years ago, now the V2 with the API migration from Hono RPC to tRPC, coach profiles, padel and the freemium plans. Plus Stripe payments and a security audit along the way.
Product decisions
- V2 designed as a widening of the domain: padel, coach profiles, and organizations beyond clubs (hotels, resorts, federations)
- API migration from Hono RPC to tRPC v11, written down as a design spec before any code
Highlights
- Stripe freemium plans, checkout and billing portal, signed webhooks (Stripe, Clerk, StreamChat)
- Real-time messaging with Stream Chat
- Full admin area: managing players, coaches and organizations, reports and moderation, supporting a managed offer where the Teamz team runs the search for coaches and players on behalf of organizations
- V2 roadmap driven milestone by milestone on Linear (padel, coach, freemium, back office)
- 10 tRPC routers, ~25 web routes, preview deployments behind a dedicated proxy
- End-to-end type safety: the web app only imports the emitted API types
Stack
TypeScript
Bun
React 19
tRPC
Hono
Drizzle
Neon
Stripe
Fly.io