Founder venture
Founder & Operator · Matt's Volleyball League
Late 2022 to Present · Cornelius, NC · Hybrid
Projects in this role
- Volleyball Engine
The custom software that runs the league's competition and payouts. Next.js and TypeScript on Cloudflare Workers: season schedule generation, six tournament formats including a Swiss pairing algorithm with teammate-penalty scoring, real-time live scoring over Supabase subscriptions, playoff brackets, and a revenue-split calculator driving 1099 contractor payouts.
- Matt's Volleyball League
A recurring volleyball league I founded and run as a side business with a contractor team. The public side runs on a Teamlinkt API integration pulling live schedules, scores, and standings into an Astro site on Cloudflare and a GroupMe system driven by scheduled GitHub Actions.
Recreational league I founded and operate. It started as a pickup group and now runs recurring seasons with a contractor team and real operating demands. I built the business, operating playbook, brand, and software that runs it.
Volleyball Engine
Next.js + TypeScript platform I built and deployed to Cloudflare Workers via OpenNext. It does multiple jobs for the business:
- League schedule generator Takes registration data and produces season schedules imported into Teamlinkt each season.
- Tournament software Bracket generation and management for in-league playoffs and standalone tournaments.
- Mix-and-match scoring In-league playoff format that pairs players across teams.
- Revenue split / payout calculator Computes each contractor's percentage of season revenue for 1099 payouts.
Tested end-to-end with Playwright; unit tests with Vitest. Staging and production environments with automated deploys.
Tournament algorithms
Custom shuffle-format and balanced-team draft generation as standalone TypeScript modules. The interesting constraint is balancing skill across teams while keeping the experience fun for casual players and competitive for serious ones.
mattsvolleyball.com
Astro-based marketing and information site. Taps Teamlinkt's APIs to surface live schedules, standings, and league data on the public site without a manual sync step. Serverless API endpoints (Cloudflare Pages Functions) read TeamLinkt live with 5-minute edge caching, so registration CTAs and season labels update client-side without a rebuild; season transitions need zero manual content changes. Built on the same Cloudflare-native deployment pipeline I use for everything else.
GroupMe automation
A suite of Node.js scripts run by five scheduled GitHub Actions workflows replaced the daily manual communication work of running the league:
- Daily schedule posts Playwright screenshots the live schedule page in CI, uploads it to GroupMe's image service, and posts it to that night's chat topic, with a formatted-text fallback.
- Weekly recaps Per-division set-by-set results and current standings posted to each night's topic every Monday.
- Missing-score nudges The morning after a game night, posts any unscored matchups; silent when everything's scored.
- Registration alerts Per-division spots-remaining posts while registration is open, with stateless dedupe so nothing repeats unless the counts changed.
- RSVP checks Shuffle nights get a GroupMe calendar event instead of a schedule image; an afternoon check reads the Going count and posts a headcount nudge or confirmation.
- Weather heads-ups Checks the National Weather Service hourly forecast at the courts and posts a warning when rain or storms look likely during the game window. The rainout call itself stays human.
Every workflow has dry-run, test, and date-override dispatch inputs, and everything shakes down against a dedicated test group before posting to real players.
Brand and design
All visual assets designed in Affinity Designer and Affinity Photo: logo system with multiple variants and 3D mockups, business cards, 18×24 posters, web and social banners with seasonal variants, Instagram and Facebook assets, per-season registration graphics, email banners, full website visual design.
Email marketing
HTML email templates produced each season: registration announcements, welcome series broken out by league night, captain's duties and onboarding, schedule changes and rainout notices, contractor recruitment ("Help Needed").
Off-the-shelf vs build
Teamlinkt as the core league operations platform (registration, rosters, captain communications, player-facing app). Volleyball Engine for the work Teamlinkt doesn't do well: schedule generation, tournament brackets, revenue splits. The vendor-versus-build call gets re-evaluated each season.
Operations and business
- Documented operating playbook the contractor team runs against.
- Season-by-season schedules, playoff brackets, and payout reports.
- Sports waiver, rules, league policies.
- Facility coordination, venue scheduling, player communications, retention.
- Full P&L: pricing, payment processing, contractor 1099 payouts, sponsor relationships, tax and accounting.
Why it belongs next to the IT story
The IT roles show what I can do inside an enterprise with a team and a budget. The volleyball league shows what I can do when there's no team to delegate to and no playbook to inherit. Same systems thinking, same automation instinct, same operational rigor, applied end to end on a business I own.