PoolCzar — Cue-Sports Tournament, Community & Commerce Platform

Built a Next.js/Python platform for a cue-sports community — real Stripe checkout, moderated forums with event RSVPs, and a rule-composition engine tournament directors use to configure any of 13 games without hand-editing a rulebook per event.

PoolCzar is a tournament, community, and commerce platform for local billiards leagues — a storefront for cues, chalk, cloth, and cases alongside member forums and the tournament infrastructure directors actually need to run an event, not just announce one. The hardest part wasn't any single feature; it was giving tournament directors a way to configure rules per event without every director maintaining their own divergent copy of a 13-game rulebook.

The frontend is a Next.js static export on S3 and CloudFront, backed by Python Lambdas behind an API Gateway HTTP API with a Cognito JWT authorizer — real admin/tournament-director/forum-moderator roles, not a single shared login. Forums (threads, posts, events, RSVPs) and the store (catalog, real Stripe checkout) each get their own DynamoDB single-table design, scoped so a Lambda group's IAM permissions only reach the table it actually needs.

The rule builder is the standout piece: 66 reusable rule definitions, each with its player-facing wording written once, composed into 13 per-game templates (8-ball, 9-ball, one pocket, snooker, and so on) as thin references rather than duplicated text. Composition is resolved in Python at read time — not pre-flattened into files or buried in Terraform — so a director can layer a preset like "Fast Event" over a template's defaults and keep customizing from there, with a handful of rules (like shot-clock extensions) only appearing once the rule they depend on is turned on. That keeps one rulebook per game as the source of truth across every venue running it, instead of 13 files quietly drifting apart.

PoolCzar homepage
Storefront home — tournaments, forums, and commerce under one roof.
PoolCzar tournament rule templates list
13 per-game rule templates, each composed from the same 66 reusable rule definitions.
PoolCzar composed 8-ball rule set
A template's rules resolved at read time — no pre-flattened files to drift apart.
PoolCzar forums
Moderated forums with event RSVPs, scoped to their own DynamoDB single-table design.