Tournaments

πŸ†
{{ hasFilter ? t('txt_txt_no_home_items_match') : t('txt_txt_no_tournaments_yet') }}
{{ hasFilter ? t('txt_txt_try_adjusting_filters') : t('txt_txt_no_tournaments_hint') }}
{{ t('txt_reg_show_archived') }} ({{ archivedEntries.length }})

Create Tournament

Sport
Mode
Title
Community
Participants
Contact Details (optional)

Optional contact info β€” used for notifications and shared with co-players.

πŸ’ͺ Initial Strength (optional)

Used for initial seeding only β€” real scores take over after round 1.

Courts
Groups
Title
Community
Participants
Contact Details (optional)

Optional contact info β€” used for notifications and shared with co-players.

πŸ’ͺ Initial Strength (optional)

Used for initial seeding only β€” real scores take over after round 1.

Courts
Parameters
Advanced Settings
Max rating diff to share a group. BlankΒ =Β snake-draft.
Extra points for the winner. E.g. 5: winning 20–12 credits 25 pts.
Boosts points for beating strong opponents. Higher weight = stronger effect.
Activates once all four players have played this many games.
Fraction of the strength bonus applied to winners.
Fraction applied on a draw.
Fraction applied to the losing team.
Multiplier on the loser’s scored pts. E.g. 0.75: losing 12–20 credits 9 pts.
Imbalance the optimiser may accept to avoid repeat matchups. 0.2 = 20% looser.
How strongly repeated partners are penalised. Higher = more varied pairings.
How strongly repeated opponents are penalised. Higher = more varied matchups.
Time-decay for repeat penalties. Recent repeats hurt more. Higher = faster fade of old repeats.
Penalises pairings where partners have very different skill levels. Higher = more evenly matched partners preferred.
Community
Title
Community
Participants
Contact Details (optional)

Optional contact info β€” used for notifications and shared with co-players.

πŸ’ͺ Initial Strength (optional)

Used for initial seeding only β€” real scores take over after round 1.

Courts
Play-off format

Players Hub

{{ t('txt_ph_searching') }}

{{ error }}

{{ query ? t('txt_ph_no_profiles_matching_q', { q: query }) : (t('txt_hub_no_results') + '.') }}

User Management

    Create User

    Invite by Email

    The recipient sets their own password. Link expires in 48 hours.

    ⭐ My Default Community

    The community pre-selected when you create a new tournament or lobby.

    {{ defaultMsg }}

    Communities

    🌐 {{ t('txt_comm_global') }} β€” {{ t('txt_comm_global_desc') }} {{ t('txt_comm_builtin_badge') }}

    {{ t('txt_comm_no_communities') }}

    {{ t('txt_comm_col_name') }} {{ t('txt_comm_col_id') }}
    {{ c.name }} {{ c.id }}
    {{ msg }}

    πŸ† Tournament Community Assignment

    {{ t('txt_comm_no_tournaments') }}

    {{ t('txt_comm_col_tournament') }} {{ t('txt_comm_col_community') }}
    {{ tour.name }} {{ tour.type }} {{ rowMsg('t', tour.id).text }}

    Lobby Community Assignment

    Reassign registration lobbies to different communities.

    {{ t('txt_comm_no_registrations') }}

    {{ t('txt_comm_col_lobby') }} {{ t('txt_comm_col_community') }}
    {{ r.name }} {{ t('txt_comm_archived') }} {{ rowMsg('r', r.id).text }}

    Clubs

    Upgrade a community to a club to add branding, player tiers, and seasons.

    Info

    What this app does and how to find your way around it. Use the sections below to understand the four pages, the player and organizer flows, the tournament formats, and the rating system.


    Table of contents

    1. At a glance
    2. Getting started
    3. Demo mode
    4. Player flow
    5. Admin flow
    6. Main features
    7. Communities & clubs
    8. Tournament formats
    9. ELO rating system
    10. Starting play-offs
    11. Docs & support

    At a glance

    The four pages

    Admin β€” the organizer's control panel for creating tournaments and lobbies, managing rounds and scores, and coordinating the team. TV View β€” a public read-only display at /tv/<id> showing live standings, results, and the bracket, designed to be shown on a big screen or shared with all participants. Registrations β€” a sign-up page where players self-register with custom questionnaires before an event starts. Player Hub β€” each participant's personal dashboard at /player, aggregating all their active and past events under one passphrase.

    No accounts needed for players

    Participants never create a username or password. Each player is issued a unique passphrase β€” a short sequence of words β€” that gives access to their personal match view, score entry, and the Player Hub. The organizer can share it as a printed card, a QR code, or by email.

    Formats and tools

    Multiple tournament formats (Group+Playoff, Mexicano, direct Playoffs), co-organizers, player self-scoring, announcements, and shareable links. Converting a registration lobby into a live tournament carries every player credential over unchanged.

    Run your first tournament

    1) Create the event

    In the Create tab, pick a format (Group + Play-off, Mexicano, or Direct Play-offs) and sport, then enter player or team names, court names, and β€” for Mexicano β€” points per match. Format-specific scoring and pairing knobs live under the Advanced Settings drop-down in the same form. Press Create Tournament.

    2) Give players their codes

    Open the Player Codes panel. Every player has a passphrase (e.g. brave-little-tiger) and a QR code β€” print the QR cards, copy a single code, or email them in bulk. That code is all a player needs to see their matches and enter scores; no account required.

    3) Put it on a screen

    Open /tv/<id> (or set a custom alias) on a big screen, or send players the link β€” it shows live standings, courts, and the bracket with no login. Choose which sections appear and whether players can self-score in the TV Settings panel.

    4) Run the rounds

    Enter scores as matches finish. In Mexicano, confirm each round’s proposed pairings to advance β€” browse the alternative pairing sets first if you want. You can add or remove players mid-event where the format allows.

    5) Finish

    When group or Mexicano play is done, press Start Play-offs to seed the bracket (add wildcards or late entries here). Once a champion is decided, export a self-contained HTML or PDF summary with the bracket and full match history.

    Where things live
    • Mexicano tuning β€” Advanced Settings in the create form, or Admin β†’ Settings after the tournament exists.
    • Player passphrases & QR codes β€” the Player Codes panel.
    • Public-view sections & self-scoring β€” the TV Settings panel.

    Demo mode

    Full demo (shared admin login)

    The public demo site runs the complete app. Log in with the shared admin account to use every feature β€” registration lobbies, clubs, communities, the Player Hub, custom addresses, and more. Data is shared between visitors and reset periodically, so don't use it for real events.

    Throwaway demo account

    From the login dialog you can also mint a personal demo-xxxxxx account with its own generated passphrase (usable to log in from other devices). It has a minimal admin surface: one active tournament at a time, and no registration lobbies, clubs, communities, custom addresses, or Player Hub profiles. The account and everything it creates are automatically deleted 3 days after sign-up.

    Player flow

    1) Join

    Players register through a lobby (public list or join code) and submit answers to organizer-defined questions. On registration, each participant receives a unique passphrase β€” a short sequence of words that acts as their personal key throughout the app.

    2) Access your personal area

    When a tournament starts, players enter their passphrase (or scan a QR code) to reach their personal match view β€” pairings, courts, standings, and score entry, all scoped to them. The passphrase can be shared by the organizer as a printed card, a QR code, or by email.

    3) Participate

    Players can follow live standings, see their upcoming pairings and assigned courts, and (if enabled by the organizer) submit or confirm scores directly from their own view, reducing the admin's workload mid-event.

    4) Stay informed

    Announcements, match comments, and optional email updates keep everyone aligned during the event.

    5) Player Hub β€” one passphrase for everything

    Players can set up a Player Hub profile at /player with just an email. This gives them a single persistent passphrase that works across all events: registering for a lobby pre-fills name, email, and contact automatically; once a tournament starts it appears in the Hub dashboard alongside all other active and past events.

    The Hub also tracks career stats β€” matches played, win rate, best rank β€” and lets you browse your history with any specific participant across all tournaments (who you played with, who you played against, and your win rate in each combination).

    Players who don't have a Hub profile yet can still link individual events retroactively by entering the passphrase they received for that event.

    Admin flow

    1) Prepare

    Create a tournament directly with a fixed roster, or open a registration lobby first to gather participants before the event. Lobbies support custom questionnaires (skill level, availability, etc.), optional join-code access to restrict who can sign up, a public participant list so players can see who else is in, and co-editors to help manage incoming registrations.

    2) Launch

    Convert a lobby into a live tournament with a single click β€” choose the format (Group+Playoff, Mexicano, or direct Playoffs), set group sizes, court names, and scoring rules. All registered players are pre-filled automatically and each player's passphrase carries over unchanged, so credentials printed or emailed before the event remain valid.

    3) Distribute player credentials

    Use the Player Codes panel to view, copy, download, or print all passphrases as QR-code cards ready to hand out. You can also email credentials individually or in bulk directly from the panel. Players can optionally link their passphrase to their Player Hub profile for cross-event access.

    4) Run rounds

    Generate pairings, assign courts, and enter or edit scores as each round plays out. For Mexicano, browse multiple proposed pairing sets and pick the best balance before confirming. Mid-event roster tools allow substitutions where the format supports it. When group rounds finish, trigger play-offs and seed the bracket β€” adding wildcards or late entries if needed.

    5) Coordinate team

    Invite co-editors who gain full operational access (pairings, scores, announcements) while ownership-sensitive actions β€” deleting the tournament, managing credentials, changing core settings β€” stay restricted to the owner and platform admins.

    6) Communicate and close

    Post announcements that appear on every player's view and the TV display. Send targeted email notifications to all players or selected individuals. Once the event is done, export a self-contained HTML or PDF summary with the full bracket and match history, then archive the tournament to keep the list tidy.

    Main features

    Registration lobbies

    Custom questionnaires, participant review, co-editors, and one-click conversion into live tournaments.

    Live operations

    Round management, score tracking, match comments, announcements, and mid-event roster tools (where supported).

    Player access and self-scoring

    Per-player QR/passphrase login for personal match context and distributed score entry.

    Public TV View

    Shareable live display for standings, results, bracket, and selected sections with configurable refresh behavior.

    Communities and clubs

    Use communities as your base scope, then layer clubs when you need branding, season tracking, and richer club operations.

    Communities define operational scope

    A community is where tournaments and registration lobbies live. It controls default assignment, keeps operations separated by league or venue, and defines the scope where ELO and rankings are computed (global, community, or club context).

    Clubs add identity and progression

    A club sits on top of one community and adds logo branding, player tiers, season tracking, leaderboard views, tournament assignment tools, and co-editor workflows for recurring organizer teams.

    When to stay at community level

    Use only communities when you run occasional events, temporary series, or lightweight sign-up flows. You still get full tournament operations, registration conversion, and TV/public sharing without maintaining club roster structures.

    When to upgrade to a club

    Create a club when the same organizer team runs recurring events and needs persistent identity, player roster governance, collaborator workflows, and season continuity. Clubs are also the right place for tier-based progression and club-specific leaderboards.

    Scope changes and data integrity

    You can reassign tournaments and lobbies to another community for cleanup or migration. If the new community is incompatible with the current club or season, those assignments are automatically cleared to keep scope relationships valid.

    Recommended setup pattern

    Create communities first (for structure), promote active ones to clubs, assign events to the right season, and keep default community + roster data up to date as your event calendar grows.

    Operational checklist

    Set a default community for admins, keep tournament-to-club assignment aligned before opening registrations, review season assignment before each event starts, and use club branding only where long-term identity matters.

    Tournament formats

    Group + Play-off

    Participants are divided into groups for a round-robin stage, then top finishers advance to a knockout bracket. Supports both Padel and Tennis scoring.

    Team mode: fixed pairs play every other pair in their group β€” a complete round-robin. Player (Americano) mode: partners rotate each round so players pair with all others at least once; matchups are formed dynamically to keep each round competitive relative to current group standings.

    Mexicano + Play-offs

    Pairings are generated each round based on current standings: leaders play against leaders, weaker players against similarly ranked ones. Each round the admin can browse several proposed pairing sets and pick the best balance. Rounds can be unlimited (stop whenever you like) or set to a fixed count.

    The Advanced Settings expose fine-grained control over scoring and pairing behaviour:

    • Skill gap β€” max rating difference allowed within a group; blank falls back to snake-draft ordering.
    • Win bonus β€” extra points added to a winner's leaderboard score on top of raw game points.
    • Rival strength (0–1) β€” bonus that rewards facing strong opponents (based on their average score); higher weight = bigger effect.
    • Loss discount (0–1) β€” multiplier applied to the loser's scored points (e.g. 0.75 means losing 12–20 credits 9 pts instead of 12).
    • Balance tolerance β€” how much team-strength imbalance the pairing engine may accept in order to avoid repeat matchups.
    • Teammate / opponent repeat weights β€” penalties for repeating the same partner or opponent; higher values push the engine towards more varied combinations.
    • Repeat decay β€” time-decay on repeat penalties so that recent repeats are penalised more than older ones.
    • Partner balance weight β€” penalises pairing players with very different skill levels as partners.
    Direct Play-offs

    Start straight in a bracket β€” seed participants in the desired order and the bracket is generated immediately. No prior group stage needed. Useful for standalone knockout events or fully custom-seeded draws.

    Single and double elimination

    Available in every format that includes play-offs. Single elimination (knockout): lose once and you're out. Double elimination (Espejo): a parallel losers' bracket gives everyone a second chance β€” the finalist must be beaten twice to be knocked out, rewarding consistency across the whole draw.

    Bracket schema preview

    Use the built-in schema generator below to visualise and export the full bracket structure (PNG, SVG, or PDF) before committing to creating an event.

    ELO rating system

    A margin-aware ELO engine tracks player skill across tournaments. Ratings update after every completed match and appear in the Player Hub.

    Blended outcome

    Instead of pure win/loss, the actual score blends a binary component W (1 | 0.5 | 0) with a continuous margin ratio R. Close wins and blowouts produce different rating changes.

    R = 0.5 + (yours βˆ’ opp) / (2 Γ— (yours + opp)) S = Ξ± Β· W + (1 βˆ’ Ξ±) Β· R

    yours = your points, opp = opponent's points, W = win/draw/loss (1 | 0.5 | 0), R = margin ratio, Ξ± = blend weight (0.5). The 0.5 in the R formula is a centering constant (so a draw gives R = 0.5) β€” it is not related to Ξ±.

    S is the blended actual score that replaces the simple win/loss value in the classic ELO update formula. A higher S means a stronger result β€” the standard ELO calculation then compares S against the expected score to determine how much your rating changes.

    Rating update

    After each match your rating changes based on how your blended result S compares to the expected score E. Outperform expectations and you gain ELO; underperform and you lose it.

    E = 1 / (1 + 10(opp_rating βˆ’ your_rating) / 400) Ξ” = K Γ— (S βˆ’ E) new_rating = old_rating + Ξ”

    E = expected score (0–1) based on the rating gap β€” a higher-rated opponent yields a higher E for them and a lower one for you, so beating a stronger player is rewarded more. When S > E your rating rises; when S < E it drops. K controls the maximum change per match (see K-factor tiers below).

    K-factor tiers

    New players move faster: K = 40 for the first 20 matches, K = 20 up to 40 matches, then K = 10. This lets newcomers find their level quickly while experienced players have stable ratings.

    Reliability dampener

    When your opponent has very few matches, their rating is unreliable. To protect established players (β‰₯20 matches) from large swings caused by provisional opponents, the rating change is scaled by a reliability factor. Provisional players always receive full deltas so their ratings converge quickly.

    reliability(n) = 0.3 + 0.7 Γ— n / 20 Β  (capped at 1.0) Ξ”adj = Ξ” Γ— reliability(opponent_matches)

    n = opponent’s completed match count. The dampener only activates for established players (β‰₯20 matches). At 0 opponent matches the delta is 30% of normal; at 20 it reaches 100%. In doubles, the minimum reliability of the two opponents is used. Provisional players (<20 matches) always get full rating changes for fast calibration.

    Doubles (2v2) adjustment

    Expected score uses team-average ratings. A partner-strength multiplier compensates for mismatched pairs: a strong player paired with a weaker partner gets amplified gains and softened losses, and vice versa. The multiplier ranges from 0.5Γ— to 1.5Γ—.

    Minimum delta

    Winners always gain at least +1 ELO and losers always lose at least βˆ’1, regardless of margin or expected score. Every match result is meaningful.

    Starting play-offs from group stage or Mexicano

    From Group + Play-off

    When all pending group matches are completed a Start Play-offs button appears. Clicking it fetches a recommended list of advancing participants ranked by group standings. The admin can then tick or untick any participant to adjust the selection, add external / seeded participants by name and score (useful for wildcards or late entries that skip the group stage), choose single or double elimination, and confirm. The checked order determines bracket seeding.

    From Mexicano

    Play-offs are optional and can be triggered at any point after any Mexicano round. When started, the admin sees a team-builder where each bracket seed slot has player dropdowns pre-filled based on leaderboard rankings. In individual mode, the admin pairs two players per slot to form a bracket team β€” the combined leaderboard score is shown as a guide. In team mode, each slot holds one pre-formed team. Any slot can be replaced by an external participant. Once all slots are confirmed, choose single or double elimination and launch the bracket.

    External / late-entry participants

    Both formats support adding participants who were not in the qualifying stage directly into any bracket seed slot, with a manually assigned score. Useful for seeded wildcards, guests, or late registrations.

    Tournament Bracket Schema

    Generate a visual diagram of the tournament structure before creating it.

    Rendering options

    Docs & support

    Full documentation on GitHub β†’

    Found a bug, weird behavior, or have a suggestion? Open an issue on GitHub.

    Buy me a coffee Contribute on GitHub