Type to search.

Built for players, not just organizers

Run championships, elimination brackets, and ranked ladders that fit how your community actually plays.

Every competition a player is in, in one place
The Skol Arena home screen listing a player's ongoing competitions
The Skol Arena home screen listing a player's ongoing competitions, desktop layout

Every competition a player is in, in one place

v2.0.1

Current release

AGPL-3.0

Open source

Self hostable

Docker compatible

Three modes

Use one, or all of them

Because real competitions don't run like a standard bracket

Most competition tools are built around a simple idea: one organizer sets everything up, players show up, scores get entered, the event ends.

That works for some tournaments. It breaks down fast when your competition lives across days or weeks, when players can’t all meet at the same time, or when your discipline doesn’t fit neatly into a rigid format.

Skol Arena is built for those cases: clubs, communities, workplaces, and local groups that need competitions to stay flexible, credible, and easy to run day after day.

A player's record, across every season
A player profile showing ranked career, per-tournament records and toughest opponents
A player profile showing ranked career, per-tournament records and toughest opponents, desktop layout

A player's record, across every season

Rank tiers that follow the player pool, not fixed bands
A ranked leaderboard grouped into Diamond, Platinum, Gold and Silver tiers
A ranked leaderboard grouped into Diamond, Platinum, Gold and Silver tiers, desktop layout

Rank tiers that follow the player pool, not fixed bands

Ranked

For continuous competitive play

Ranked stands on its own. It doesn’t depend on a championship or a bracket. It’s built for ongoing competitive matches where players face each other whenever they want, climb a real MMR ladder, and keep the competition alive between events.

Ratings run on an Elo-derivative tuned per season, rank tiers move with the player pool instead of sitting in fixed bands, and a player’s first ranked match enrolls them automatically. Results must be reported within 48 hours of being played, so the ladder reflects what actually happened.

  • Ladders
  • Internal club rankings
  • Recurring challenges
  • Persistent competitive environments

Two more ways to compete, independent of each other

Run a season that stretches over weeks, a bracket for a one-night event, or both alongside the ladder.

Championship standings with points, matches played, wins, losses and score difference
Championship standings with points, matches played, wins, losses and score difference, desktop layout

Championship

For flexible competitions that run over time

Championship mode is built for communities that want structure without the rigidity of a full round-robin. Players don’t have to face everyone, match volume is capped on purpose, and the season can stretch across days or weeks to fit real availability.

Standings persist across every match, scoring is yours to configure (points per victory, draw, and loss), and a set of fairness limits keeps a long season from being gamed: caps on matches per player, on repeat pairings, and on repeat matchups.

  • Workplace competitions
  • Club seasons
  • Local community leagues
  • Ongoing groups with limited availability
A single elimination bracket with quarter-finals and semi-finals played
A single elimination bracket with quarter-finals and semi-finals played, desktop layout

Bracket

For elimination tournaments and finals

Use Bracket mode when you want the classic elimination experience. Single or double elimination, losers bracket routing, and a bronze match are all handled for you.

It works standalone, but it also works as the closing stage of a longer competition: seed the bracket straight from a finished championship’s standings and the ranking your players earned over the season decides who meets who.

  • One-day events
  • Playoffs and finals
  • Knockout tournaments
  • End-of-season final stages

See every feature →

The opponent accepts or disputes, straight from the match
A reported match waiting for the opponent to accept or dispute the score
A reported match waiting for the opponent to accept or dispute the score, desktop layout

The opponent accepts or disputes, straight from the match

A competition your players run with you, not just play in

Players aren’t passive participants here. They’re part of how the competition runs.

Instead of routing every result through one organizer, the players involved in a match handle it themselves: report the score, confirm the opponent’s report, contest it with a counter-proposal, or cancel a match that shouldn’t have happened.

Admin controls are still there when you need them: tournament admins and co-admins can edit, finalize, or delete any match. The point is that the competition doesn’t stall waiting on them.

  • Report their own results

    Any player in a match can create it and report the score. No admin step, no pre-generated schedule to wait for.

  • Confirm, contest, or cancel

    The opposing side confirms to finalize early, contests with a corrected score, or cancels a match that should not count.

  • Admin controls when you need them

    Tournament admins and delegated co-admins can edit, finalize, or delete any match. The competition just does not stall waiting on them.

Built for communities that need more than a standard tournament tool

  1. 1

    Brackets seeded from your season

    A final bracket can be drawn at random or seeded straight from a finished championship’s standings, so the season you just played decides the matchups.

  2. 2

    Mobile-first for real-world play

    Dedicated mobile screens, not a shrunken desktop layout, plus an installable PWA. Report a result or check standings from the venue in seconds.

  3. 3

    Championships that fit real schedules

    No obligation for everyone to play everyone. Cap match volume, run the season over weeks, and let availability decide who plays who.

  4. 4

    Guardrails that keep standings credible

    Per-tournament validation modes, a trust score that resets on dispute, and championship caps on matches per player, repeat opponents, and repeat partners.

  5. 5

    Match formats beyond 1v1

    Solo play, static rosters that stay together all season, or flex teams grouped per match, with configurable minimum and maximum team sizes.

  6. 6

    Scoring rules that follow your discipline

    Define the games you play once, then set their outcome types, point weights, and MMR multipliers. A forfeit does not have to move anyone’s rating.

Who it is for

Clubs and associations

Championships, ranked play, and final brackets without rigid schedules or admin-heavy workflows.

Workplaces

Colleagues play when they are available and report results themselves. The competition keeps going.

Bars and local venues

Recurring competitions that are simple to manage, easy on a phone, and worth coming back for.

Independent organizers

Configurable disciplines, flexible structures, and player-driven workflows beyond a generic bracket.

Questions people ask first

Is this just another bracket tool?

No. Brackets are one part of the platform. It’s built around three separate competition modes (Championship, Bracket, and Ranked) with a strong focus on flexible championships and player-driven match management.

Can players report their own matches?

Yes. Any player taking part in a match can create it and report the result, with no admin step in between. Depending on the tournament’s validation mode, the result either locks in immediately, waits for the opposing side to confirm, finalizes on a timer, or waits for an admin. Players on the other side can confirm or contest. If they contest, the player who reported the result can correct it, and the two sides can discuss it in the match thread, with the tournament organizers notified in case they need to settle it. A player who contested can also change their mind after that discussion and accept the result, which drops the dispute and puts the match back in validation.

Is it only for sports clubs?

No. It works for any community that wants structured competition: sports clubs, associations, workplaces, bars, campus groups, gaming communities, board game nights. You configure the discipline being played, so the platform doesn’t assume what your game is.

Can I use it for both long-running competitions and one-off events?

Yes. Championship mode is designed for competitions that run over time, with persistent standings and fairness limits. Bracket mode covers elimination tournaments and final stages. You can chain them: run the season as a championship, then seed the final bracket from its standings.

Does Ranked depend on Championship or Bracket?

No. Ranked is an independent mode with its own seasons, MMR, and rank tiers. Brackets can optionally be seeded from championship results, but Ranked stands entirely on its own.

Do I still get organizer controls?

Yes. Tournament admins, and co-admins you delegate per tournament, can edit any match, finalize results, generate brackets, and manage disciplines, rules, and seasons. A super-admin role covers the whole instance. The product is just designed so the competition doesn’t depend on one person doing everything by hand.

Can I keep a tournament private?

Yes. Attach it to an organization. Only that organization’s members can see it in the listing or open it at all; the standings, matches, and entries are refused to everyone else, so a leaked link gives nothing away. Tournaments with no organization stay public on the instance. See Organizations.

Can anyone create an account?

No. Skol Arena is invite-only: you need an invitation code from the instance administrator, and that holds for Keycloak SSO too. A code can also be tied to an organization, in which case redeeming it creates the account and joins the group in one step. See Invitation codes.

Run competitions the way your community actually plays

Self-hosted on a single container next to your own PostgreSQL database.

docker pull quent1l/skol-arena:latest