product#Laravel 13#Inertia 3#Vue 3#TypeScript#Reverb#Horizon

Tourney Jam

Open project

Tourney Jam started from an operational problem: a tournament does not end when the fixtures are generated. Registration, stage rules, match events, live scores, standings, brackets, and public updates all need to describe the same competition as it changes.

The platform brings that flow into one place. An organizer creates a tournament, configures its stages, registers teams or players, schedules fixtures, records results, and publishes the competition for people to follow.

What it handles

AudienceWhat they can do
OrganizersManage organization workspaces, roles, tournaments, stages, rosters, venues, and fixtures
CompetitorsRegister as teams or individuals, manage participation, and follow fixtures and results
OfficialsEnter scores, record match events, start and complete fixtures, and correct results
SpectatorsDiscover public tournaments, follow competitions, and view live fixtures, standings, and brackets

Supported competition setup

  • Sports: football, basketball, tennis, table tennis, chess, Call of Duty, and cricket.
  • Competitors: teams, individual players, or both, depending on the tournament.
  • Formats: single elimination, double elimination, round robin, Swiss, and ladder.
  • Stages: a tournament can have multiple stages, each with its own format and settings.
  • Scoring rules: sport-specific segments, draw handling, winner resolution, points, and tiebreakers.
  • Operations: registration windows, seeding, fixtures, venues, scheduling, conflict checks, and public visibility.

The competition stays connected

The design follows the competition itself. Tournament setup creates stages and fixtures. Match events change fixture state. Completed fixtures feed bracket advancement and standings. Public pages read that same state instead of maintaining a second version of the result.

Around that flow, the application handles sports, teams, players, rosters, venues, organizations, roles, follows, notification preferences, settings, activity logs, and media.

The frontend exposes that same shape through organizer pages for tournaments, stages, fixtures, brackets, standings, participants, teams, players, and venues, plus public pages for tournament discovery and viewing.

How match state moves through the system

Tourney Jam treats a match as a sequence of state changes, not a score field that gets replaced.

  1. An official records a scoring event, clock transition, segment change, or correction.
  2. The application validates the action, writes the match event, applies the score, clock, or segment change, and emits the relevant domain events inside a database transaction.
  3. The fixture receives a new realtime revision. After the transaction commits, the server broadcasts the changed state to organizer channels and, for public tournaments, spectator score channels.
  4. When a fixture completes, listeners can resolve its matchup, advance the next bracket slot, recompute standings for formats that use them, and move the stage or tournament lifecycle forward.
  5. The frontend applies only newer revisions. If it detects a gap or the browser regains focus or connectivity, it reconciles with the server.

When an official completes a fixture, the application records an immutable score revision alongside the winner, draw state, and participant results. A later correction does not erase the earlier record.

The organizer scoring screen and the public fixture page are two views of that same state. The official records the event once, and the public side receives the score and timeline through the live update path.

Tourney Jam live scoring workspace for Dark Matter vs Crimson Raptors

The organizer view makes the workflow concrete: a running clock, score controls, sport-specific quick actions, timeline, and match completion controls live in one room.

Public live fixture for Dark Matter vs Crimson Raptors

The public fixture page reflects the same score and event timeline while the match is still underway.

The public tournament experience

Public tournament pages include:

  • Overview and registration state
  • Fixtures and live match cards
  • Elimination brackets where the format supports them
  • Standings for round robin, Swiss, and ladder competitions
  • Participants and entrant status
  • Match details, event timelines, and live score updates
  • Follow and notification controls

The public views connect those pieces. Fixtures show what happened by round, the bracket shows who advanced, and standings explain the group-stage table.

Summer Cup fixtures grouped by round

The fixtures view groups completed games by round, including regular matches, penalty shootouts, and the final.

Summer Cup knockout bracket

The bracket view carries winners through the knockout rounds and keeps penalty scores visible where they decide a tie.

Summer Cup group standings

The standings view turns completed group matches into readable tables with games played, results, goal difference, and points.

Screenshots

The images above support the main explanation. This section collects the remaining views that help show the breadth of the product.

The public entry point

Tourney Jam landing page with a live scoreboard and quick event controls

The landing page puts a live scoreboard and quick match-event controls at the center of the product.

Match detail across sports

Football match detail with score and event timeline

Football match detail keeps the final score, half-by-half timeline, and event history together.

Basketball match detail with quarter timeline

The same match page handles basketball quarters and sport-specific events such as free throws, two-pointers, and three-pointers.

Additional organizer views

Tourney Jam organizer dashboard with one live match

The organizer dashboard brings live matches, tournament counts, and the main matchday actions into one place.

Tourney Jam organizer bracket for Summer Cup 2026

The organizer bracket keeps the champion summary, knockout rounds, scores, and penalty shootout results visible while the competition is being managed.

The live scores view

Tourney Jam live scores page

The live-scores view gives spectators a single place to find active fixtures across public tournaments.