Tournaments

Create Tournament

Sport
Mode
Title
Community
Participants
Contact Details (optional)

Add email and/or contact info (e.g. phone, WhatsApp) for each player. Used for notifications and shared with co-players.

πŸ’ͺ Initial Strength (optional)

Assign a strength score to each player/team. Used for initial seeding only β€” real scores take over after round 1.

Courts
Groups
Title
Community
Participants
Contact Details (optional)

Add email and/or contact info (e.g. phone, WhatsApp) for each player. Used for notifications and shared with co-players.

πŸ’ͺ Initial Strength (optional)

Assign a strength score to each player/team. 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 pts added to winner’s leaderboard score. E.g. 5: winning 20–12 credits 25Β pts.
Opponent-average bonus: boosts points when facing strong opponents (based on their average score). Higher weight = stronger effect.
Strength multiplier only activates once all four players in a match have played at least this many non-skipped games.
Fraction of the strength multiplier applied to the winning team. 1.0 = full bonus.
Fraction of the strength multiplier applied on a draw.
Fraction of the strength multiplier applied to the losing team.
Multiplier on 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)

Add email and/or contact info (e.g. phone, WhatsApp) for each player. Used for notifications and shared with co-players.

πŸ’ͺ Initial Strength (optional)

Assign a strength score to each player/team. Used for initial seeding only β€” real scores take over after round 1.

Courts
Play-off format

Players Hub

Search and manage Player Hub profiles. Link or unlink tournament participations and reset credentials.

User Management

Search, create, and manage admin and organizer accounts. Invite new users by email or reset credentials.

    Create User

    Invite by Email

    Send an invite link β€” 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.

    Communities

    Create and manage communities to scope ELO ratings and group tournaments by club or league.

    πŸ† Tournament Community Assignment

    Reassign tournaments to different communities. Changes take effect immediately.

    Lobby Community Assignment

    Reassign registration lobbies to different communities.

    Clubs

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

    Info

    A practical control center for Padel and Tennis events: create tournaments or lobbies, manage rounds and scores, and share a live public view with players and guests.


    Table of contents

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

    At a glance

    Four pages, one workflow

    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.

    Designed for real events

    Supports multiple tournament formats (Group+Playoff, Mexicano, direct Playoffs), co-organizers, player self-scoring, announcements, shareable links, and quick transitions from registration lobby to live competition β€” with every player credential carried over automatically.

    Player flow

    What participants typically do from sign-up to results.

    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

    Typical organizer path from planning to wrap-up.

    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

    Once qualifying rounds are done, the admin triggers the play-off phase. The workflow differs slightly per format.

    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