Founder · Matt's Volleyball League
Volleyball Engine
I built Volleyball Engine for Matt’s Volleyball League. It handles scheduling, tournaments, live scoring, and contractor payouts alongside Teamlinkt’s registration and rosters. The application uses Next.js and TypeScript on Cloudflare Workers.
What it does
- Season schedule generation Turns registration data into full season schedules that get imported into Teamlinkt each season.
- Six tournament formats Bracket generation and management for in-league playoffs and standalone tournaments, including a Swiss pairing algorithm with teammate-penalty scoring that avoids repeat pairings while balancing match quality.
- Mix-and-match scoring An in-league playoff format that pairs players across teams.
- Real-time live scoring Scores update live over Supabase realtime subscriptions.
- Role-based access control Different capabilities for admins, officials, captains, and players.
- Revenue split / payout calculator Computes each contractor's percentage of season revenue to drive 1099 payouts.
Tournament algorithms
I wrote the pairing and drafting logic as separate TypeScript modules. Swiss pairing discourages repeat teammates, while shuffle and balanced-team formats distribute players by skill. The aim is competitive games that still work for a recreational league.
Testing and deployment
Playwright checks complete user flows, and Vitest tests the underlying logic. Automated deployments go to separate staging and production environments so I can check changes before events.
Build and buy decisions
I kept registration and rosters in Teamlinkt and built the league-specific features around it. That kept the custom software focused on scheduling, competition, and payouts.
This is the software half of the league. The public site, brand system, and communications automation live in the Matt's Volleyball League write-up.