Context
Teamz connects tennis organizations with players and coaches: recruitment listings, applications, messaging, tournaments. The first version 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: from the V1 to 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