← Back to ChessPairings.org

What's New

Release notes and updates for ChessPairings.org

v5.1.0 Player Accounts May 15, 2026

Added — Player accounts & public profiles

  • Sign up as a player, not just as an organizer — ChessPairings is now a platform for players too. Sign-up asks for first name, last name, nickname (with realtime availability check and auto-suggestion based on your name) and an optional FIDE ID. Every account is dual-use: you can both organize your own tournaments and register as a player in someone else's.
  • Public profile at /user/<nickname> — Each registered user gets a public profile page showing their nickname, name, federation, FIDE ID, "Player" / "Organizer" badges, and lists of tournaments they played in or organized. Profile URLs are short and shareable (e.g. my.chesspairings.org/user/mario.rossi).
  • Privacy — you control how much is visible — A new Privacy & Public Profile tab in your profile settings lets you toggle the public profile on/off and decide how your last name is displayed in standings and on your public page: full ("Rossi"), initial only ("R."), consonants only ("Rss"), or fully hidden. Set whether you want to be listed as a player and whether other people can find your tournament history.
  • Nickname rules — 3-50 ASCII chars (letters, numbers, dot, underscore, hyphen). 60+ reserved words blocked (admin, api, login, etc.). Changeable, but with a 30-day cooldown after the first change to discourage squatting. Realtime "available / taken" feedback while typing.

Added — "My registrations" dashboard

  • A page just for players: /giocatore.php — Logged-in users now have their own dashboard showing every tournament they're registered for, split into four sections: Open registrations, Live, Finished, Withdrawn. Reachable from the user dropdown menu when "Show me as a player" is enabled.
  • Self-withdrawal before the tournament starts — If a player can no longer attend, they can withdraw their own registration with a single click while the tournament is still in registration phase. A confirmation modal asks for confirmation; the organizer is automatically notified in-app. Once round 1 has started, only the organizer can withdraw a player (existing flow unchanged).
  • The pairing engine already respects withdrawals — Withdrawn players are excluded from pairing generation. No extra setup needed.

Added — Account-linked online registration

  • Public tournament registration now requires an account by default — New public tournaments require players to sign up (or log in) before registering. This keeps the data clean, lets players manage their own registration, and is the foundation for upcoming notification features. Tournaments created before v5.1.0 keep their existing behavior (anonymous registration allowed) unless the organizer explicitly enables the requirement.
  • Logged-in registration is one click — When a player is already logged in and opens a tournament's registration link, the form is pre-filled with their profile data (name, surname, federation, FIDE ID, email). A green banner confirms "Registering as Mario R." with a "Switch account" link if needed.
  • Smarter wizard for public tournaments — Toggling "Allow online registration" now automatically sets visibility to Public. Switching visibility to Public opens a stylish modal asking whether you also want online registration. Switching back to Private auto-disables online registration (since the link wouldn't be shareable). No more states like "private tournament with online registration" that didn't make sense.

Fixed — Forum reliability

  • "Logged out by the forum" ghost bug fixed — Several users reported that opening the forum sometimes appeared to log them out (especially after writing a long post). Root cause: aggressive SEO cache headers on anonymous forum pages were being served by the browser even after the user logged in, so the cached "logged-out" version was displayed. Fix gates the public cache headers on the session cookie — bots without cookies still benefit from the cache, real users always see fresh state. Login is no longer required on every forum visit.
  • Drafts auto-save while you write — New thread and reply forms in the forum now autosave to localStorage every 1.5 seconds. If your session token expires mid-write, the browser crashes, or you accidentally close the tab, your draft is restored automatically the next time you open the form. Server-side preservation also added: if a CSRF or rate-limit error occurs on submit, the form is rendered back with your text intact rather than blank.

Other improvements

  • New SaaS-style home page — The unsigned-visitor home page got a complete redesign: modern hero with product preview mockup, "Tournaments happening now" section showing live public tournaments, trust bar with real numbers, restyled "How it works" feature cards, and forum discussions block preserved.
  • BYE anomaly filter — Anomaly detection no longer flags player-requested half-byes (half_bye with source pairing) since they are always legitimate by design (the player requested them at registration time).
v5.0.0 Major May 14, 2026

Added — Custom registration fields

  • Collect up to 3 custom fields during public registration — Organizers can now ask players for extra info during sign-up: phone number / WhatsApp, age, school name, federation, or anything else. Each field has a custom label, a type (text, phone, number, date), and a required toggle. Configure your defaults once in your Profile — they'll be used in every public tournament you create. For a specific tournament that needs different fields, the override button "⚙ Extra fields" next to the registration link lets you customize without changing your defaults.
  • Where you see the collected data — Click on any registered player in the Players list: the edit modal now shows a blue box with the extra fields they filled in. The "Print players list" export also includes the extra columns — visible only when you are logged in as the tournament organizer (the public view never shows this data).
  • Privacy by default — A privacy notice in the public registration form informs players that the extra data they provide will only be visible to the tournament organizer. The fields are never exposed in the public tournament page or in the public standings CSV.

Added — Default rating for unrated players is now configurable

  • Pick your convention: 1399 (Italian FSI) or 0 (international FIDE / chess-results) — The Italian chess federation traditionally assigns 1399 to players without a rating, while chess-results.com and most international tournaments show them as 0 (unrated). The system used to hardcode 1399 everywhere, which felt foreign to organizers outside Italy. Now you can set your default in your Profile, with two preset buttons (1399 IT / 0 international) or any custom value. The choice is applied to new tournaments and to forms that pre-fill a rating when adding players. Existing tournaments keep their original value.
  • Per-tournament override — Each tournament already had a rating_floor setting; it just wasn't fully respected when the value was 0. Now setting it to 0 truly means "unrated players stay at 0" throughout the inscription, public registration, and TRF generation flows.
  • Verified compatibility with bbpPairings v6 — A regression test suite (10 automated tests) creates a tournament with floor=0, registers 6 unrated and 2 rated players, runs 3 rounds with random results, checks Buchholz / ARO / Sonneborn-Berger tiebreaks, exercises late entry, and verifies the Italian convention still produces 1399 for Italian tournaments. All green. bbpPairings v6 accepts rating 0 in the TRF when the player has a valid starting rank.
  • Note — internal Elo math unchanged — The Elo calculation that updates a club player's internal rating after a tournament treats an unrated opponent as 1399 for performance math (not as their displayed rating). Changing this would distort delta-Elo for Italian club tournaments. If you need different behavior here, let us know.

Fixed — BYE telemetry noise filter and admin tools

  • "Double BYE" anomaly log was generating false positives — When a player had been absent before (zero_bye), receiving their first real bye triggered a "double BYE" warning even though there was no actual double-allocation. The filter now correctly ignores absent-player patterns. The admin BYE anomalies panel also gained a tournament-ID column and per-row / bulk delete buttons.

Fixed — "Print" button label in the Players list

  • The print button in the Players list said "Print pairings" — It was using the same translation key as the Crosstable tab. Now it correctly says "Print players list" (and "Print crosstable" on the crosstable tab).
v4.8.9 Team Tournament May 13, 2026

Added — Duplicate team tournament

  • "Duplicate" action on the team tournament list — New icon next to each team tournament that copies its setup (settings, tiebreak configuration, all active teams with their full roster) into a fresh tournament in registration state. Doesn't copy results, withdrawn teams, pending individual entrants, or tokens (regenerated). Designed for "combinata" events where the same teams play across 3+ tournaments — saves manually re-entering everyone in each clone.

Added — Public team tournament view + bulk fixes

  • Public team tournament page now shows Teams and Regulations — The public link for team tournaments used to show only Standings (with a generic "Standings not available yet" during registration). Now it has a Teams tab (always visible, with expandable rosters showing each player with title, name, rating, FIDE ID, reserves) and a Regulations tab (visible when the organizer has filled the tournament notes). Standings tab appears once round 1 has been generated.
  • "Register your team" CTA — When online team registration is enabled and the tournament is in registration phase, the public page now shows a prominent green CTA button to register a team. Counter "N / max teams registered" displayed alongside if a cap is configured.
  • Tournament regulations / notes field — Tournament settings and creation wizard now have an explicit "Regulations / Notes" field with placeholder examples (date, venue, prizes, contact) and a hint that it'll be shown on the public page. Same DB column as before, just clearer UI.
  • "Back to tournament page" link from team registration — When a captain is on the team registration/edit page, there is now a clear button back to the public tournament view (regulations, registered teams, standings).
  • Settings tab is readable — The Settings tab on the team tournament page used to show only a gear icon (sometimes mistaken for a broken image). Now shows "⚙ Settings" with text.

Fixed — Tiebreak configuration accessible at any time

  • Tiebreak configuration was hidden during registration phase — The tiebreak settings card was buried inside the Standings tab, which is hidden during the registration phase. Organizers couldn't review or change tiebreaks before starting the tournament. Now it lives in the Settings tab and is editable at any time (registration, in-progress, or concluded). Same drag-and-drop UI, same data.

Fixed — Bulk delete in club players list

  • Selecting all players and clicking delete only removed one — The page had nested HTML forms: the outer bulk-delete form contained a per-row single-delete form on every table row. Browsers close the outer form when they encounter the first nested form, so only the first checkbox was actually submitted. Fixed by moving the single-delete to a JavaScript-triggered hidden form outside the table. Bulk delete now correctly removes all selected players.
v4.8.8 German translation May 13, 2026

Added — German language support

  • Deutsch is now available — The app interface has been fully translated into German, bringing the total to 7 supported languages (Italian, English, Spanish, French, Russian, Czech, German). The translation uses the formal register (Sie/Ihr) and standard DSB/FIDE terminology (Schweizer System, Feinwertung, Direkter Vergleich, Buchholz, Schiedsrichter, Remis, Freilos). Switch to German via the language selector in the top bar, or set it as your default language in your profile.
v4.8.1 Tiebreak fix May 9, 2026

Fixed — Direct Encounter tiebreak ordering

  • Tied players were sorted in reverse — In Swiss tournaments where Direct Encounter was the first tiebreak and two or more tied players had played each other, the player who lost the head-to-head was being placed above the player who won. Standings now correctly put the head-to-head winner first when the Direct Encounter tiebreak is applicable. The Direct Encounter column in standings and CSV exports now shows the points each player earned in the mini-tournament between tied players (1 for the winner, 0 for the loser, with intermediate values when applicable), aligned with the chess-results.com convention.
v4.8.0 Team Tournament May 5, 2026

Added — Registration UX polish

  • 5-mode add-player picker in the team-roster expand area. Horizontal pill selector: From my roster (with live filter), FIDE search (now showing player birth year), FIDE ID (bulk paste), Unpaired (filterable list of waiting individual entrants for this tournament), Manual (surname + first-name initial + optional Elo + checkbox to also add to your roster). Switching mode auto-focuses the first field — no need to click into the input first. Manual mode reuses an existing player from your roster if surname+first-name already match.
  • Birth year (B-Year) in FIDE search results — Both in the admin "Add unpaired" modal and in the team-roster FIDE search, the autocomplete dropdown now shows the player's birth year alongside federation, rating and FIDE ID. Helpful to disambiguate homonyms.
  • Bulk import unpaired players — New "Import list" button in the unpaired-players panel. Modal with a textarea: paste one player per line in the format Surname,Name[,Elo|FideID]. Surname required, name with at least an initial, third column numeric (0-3500 = Elo, >3500 = FIDE ID lookup). Final report shows lines read, players enrolled, and per-line errors with reason. No file upload — paste only, for security.
v4.7.8 Team Tournament April 30, 2026

Added

  • Standings by board — New "Standings by board" section in the team-tournament Standings tab. For each board (board 1, board 2, ...) it shows the individual standings of players who played on that board, sorted by points / win-rate / rating. Useful for awarding the best player on each board. Forfeit results count as a normal win/loss; double-forfeits give zero points
v4.7.3 Pairing fix April 30, 2026

Fixed — Individual tournaments

  • Multiple byes to the same player — Same root cause as the v4.7.2 team-tournament fix, but for individual Swiss tournaments. A query on the production database found 349 cases where a player received two or more byes in the same tournament: the pairing engine couldn't enforce the FIDE rule "no double PAB" (C.04.4.1.6) because the historical bye was marked in the TRF as a generic full-point bye instead of as a pairing-allocated bye. The TRF now uses the canonical PAB marker, and the database column distinguishes engine-allocated byes from voluntarily-requested byes
v4.7.2 Team Tournament April 30, 2026

Fixed — Team tournament module

  • Multiple byes to the same team — The pairing engine could assign a bye to the same team in multiple rounds because the TRF marked historical byes as draws rather than as proper byes. The team module now emits the correct pairing-allocated-bye marker, so bbp6 recognises a team has already been byed and avoids re-assigning it (FIDE C.04.4.1.6)
  • Reinstate a withdrawn team — New "Reinstate team" button that undoes a withdrawal: the team becomes active again and is included in the pairings for the upcoming rounds. Points from past rounds are preserved. Shown in the expanded card of withdrawn teams while the tournament is in progress or concluded
  • Round regeneration: points recomputed — When the system regenerates a round (delete + generate again), team points are now always recomputed first. Previously, teams with auto-completed byes ended up with inflated match points for the cancelled round, leaving the TRF of the next regeneration inconsistent
  • Team deletion: no more orphaned individual entrants — When a team is deleted, individual entrants assigned to it are now returned to "awaiting assignment" before the deletion. Previously the SET NULL cascade left them in "assigned" state with NULL FK, effectively trapping them

Added

  • Auto-detect rating type from time control — In the team wizard, typing the time control (e.g. "5+3" or "90+30") now auto-fills the "Rating type" field with blitz / rapid / standard. The suggestion stops as soon as you change the type manually. Avoids a common setup error where a blitz tournament was created with rating type "standard" and the players FIDE took the wrong rating
v4.7.1 Team Tournament April 29, 2026

Added — Unpaired panel UX polish

  • Keyboard-friendly "Add unpaired" modal — The FIDE search field is focused automatically when the modal opens, so you can start typing right away. When the result list narrows to a single player (after at least 3 characters), it gets selected automatically and focus moves to the submit button: press Enter to add. Saves a lot of clicks on tournaments with many manual entries
  • Sort unpaired players by Elo or alphabetically — New toggle in the Unpaired panel toolbar. Default is by Elo (as before), alphabetical is one click away when the arbiter wants to pair two specific players by name without scanning 50+ entries
  • Delete a single unpaired player — X button on each unpaired chip with confirmation. Permanently removes a no-show or mistakenly added player from the list. No more workarounds with placeholder teams
  • Disband team without losing players — New "Disband team" button next to "Remove" in the expanded team card. The team is deleted but its players go back into the Unpaired panel instead of being lost. Available only while registrations are open
  • Click any team card to manage it — Removed the separate "Manage roster" button. Clicking the team card — in any view, including "Expand all" — now opens the full management mode directly. Saves vertical space in the at-a-glance view and one click per team
v4.7.0 Team Tournament April 29, 2026

Added — Team tournament module (beta)

  • Individual registrations (unpaired players) — Players without a team can now register individually via the public link. The organizer sees them in the new "Unpaired" panel of the Teams tab and assigns them to a team manually (drag & drop or "New team from selected") or automatically by Elo
  • Drag & drop unpaired panel — Drag an unpaired player onto any team to assign them, or select multiple via checkbox and create a brand-new team in one click. The highest-Elo player becomes captain by default
  • Auto-pair by Elo — One-click button that sorts unpaired players by rating, splits the list in halves and pairs top-with-top to form 2-player teams (Swiss round-1 algorithm). Teams are auto-named "Team N"
  • Email verification for online registrations — Public registrations (both teams and individuals) now require email confirmation within 24 hours. Daily cron purges unconfirmed entries after a 7-day grace period
  • "Confirm all lineups" — New bulk button in the Pairings tab that confirms every lineup for the round using the default order (starters by board). Saves clicks on tournaments with many tables. Each lineup remains individually editable afterwards
  • Teams overview & filter — "Expand all" / "Collapse all" buttons plus a player-name filter that searches across all team rosters. Quickly find which team a player is on without opening each team manually
  • Rename team after registration — Captains can edit team name, short name and captain field from their public management link. Organizers can also rename teams from the Teams tab. Duplicate-name collisions are caught with a friendly message
  • Public management page for individual entrants — Each unpaired registrant gets a personal link to view their status, edit their details or withdraw from the tournament
  • Rating type by time control — New "Rating type" field in the team tournament wizard and settings (Standard / Rapid / Blitz). Determines which FIDE rating is stored when adding a player via FIDE search: a 5+3 blitz tournament now picks the Blitz rating instead of Standard. Automatic fallback if the player has no rating in that category

Improved

  • Form spacing across the platform — Applied the proximity rule globally to .form-group: tighter label-to-input gap, generous spacing between groups. Labels now visually belong to their own field instead of looking attached to the previous one. Affects every form in the platform
  • Removed "Pairing engine" field from team tournament forms — bbpPairings v6 is the only sensible default and showing it as a disabled field added noise without value. The engine remains hardcoded server-side

Fixed

  • FIDE rating bug in team tournaments — Players added via FIDE search were silently registered with rating 0 due to a column-name mismatch in the team module code. Now reads the correct columns (standard, rapid, blitz fallback) so the actual Elo is stored
v4.6.8 Team Tournament April 20, 2026

Added

  • Compact round view (team tournaments) — New "Compact view" toggle in the Pairings tab that collapses individual boards and shows only team matchups. Click any match to expand it. State persisted in localStorage per tournament. Useful for projecting on TV or reading many tables at a glance
  • "Create now" button in team wizard — Step 1 of the team tournament wizard now has a button that creates the tournament with just the basic info and jumps straight to management, skipping teams, roster and tiebreaks setup. You can fill in the rest later
  • Scroll preservation in team management — After saving a lineup, result, or any change that reloads the page, scroll position is restored automatically instead of jumping to the top. End of the exhausting scrolling with many players

Improved

  • Team wizard: empty tournament allowed — Removed the block that prevented advancing to step 2 without at least 2 teams. You can now create the tournament container and populate it later (e.g. when registrations come in online)
  • Cancelling round 1 reopens registrations — If the organizer cancels the first round after generating it, the tournament status returns to "registrations" and the Teams tab reappears, allowing late teams or players to be added before restarting the pairing. Previously you had to delete and recreate the tournament from scratch
v4.6.7 Tournament April 20, 2026

Added

  • Print round results — A new "Print results" link next to "Print round" in the Pairings tab generates a PDF with the round pairings enriched with the entered results (1-0, ½-½, 0-1, forfeits, byes). Useful for quickly sharing the round outcome on WhatsApp before generating the next one, letting players verify what has been recorded
v4.6.6 Tournament April 12, 2026

Added

  • Gender column — Player gender (M/F) is now displayed alongside the year of birth in the players list, standings (admin and public) and PDF export. Organizers can set the gender when adding or editing a player, and it auto-populates from FIDE lookups. Players registering via the public link can also select their gender

Improved

  • Public registration form layout — Federation and Rating fields are now displayed side by side on desktop, matching the Year / Gender row below. Removed redundant "Optional" labels from helper text
v4.6.5 Tournament April 11, 2026

Added

  • Year of birth — Birth year is now shown in the players list, standings (admin and public view) and PDF export. Organizers can fill it in when adding a player manually, when editing an existing entry, or automatically when looking up a FIDE player. Players registering via the public link can also provide their year of birth
  • Change time control type — Tournament owners can now switch the time control type (Standard / Rapid / Blitz) after creation. Click the type label in the tournament header to open the editor
v4.6.4 Registration April 11, 2026

Fixed

  • Public registration reliability — Fixed an intermittent error that could prevent players from registering through a public link when a player with the same name already existed in the organizer's club database (including archived entries or different capitalization). The system now correctly matches and reuses existing records
  • Stable public share links — Short links and public URLs are now preserved when a tournament is temporarily switched to private. Toggling visibility back to public restores the same links, so previously shared URLs keep working instead of returning "tournament not found"
v4.6.3 Tournament April 11, 2026

Added

  • Edit tournament dates — Tournament owners can now change the start and end date of an existing tournament without recreating it. Click the date in the tournament header to open the editor
v4.6.2 Registration April 10, 2026

Added

  • Manual rating in public registration — Players registering for a public tournament without a FIDE profile can now enter their own rating (e.g. online or club rating). The field is optional and appears in the manual registration section
v4.6.1 SEO April 6, 2026

Improved

  • Forum SEO optimizations — Cache-Control headers for anonymous visitors, word-boundary meta descriptions, Last-Modified headers on threads
  • JSON-LD structured data — Added DiscussionForumPosting and BreadcrumbList schemas to forum pages, enabling rich results in Google Search
  • Open Graph image — Forum pages now include og:image for social sharing previews
  • robots.txt — Added robots.txt with sitemaps for tournaments and forum
v4.6.0 Team Beta April 5, 2026

Added

  • Team tournaments open to all users — The team tournament module is now accessible to every registered user, no longer restricted to admins. A beta banner warns that the feature is still under active testing and invites users to report issues
  • Beta banner (6 languages) — Both the team wizard and the team tournament page display a prominent orange banner explaining the beta status, with a direct link to the bug report page
  • New tournament button → wizard — The “New team tournament” button now opens the guided 5-step wizard instead of the inline form
v4.5.0 Keyboard April 4, 2026

Added

  • Customizable result entry keys — Tournament directors can now configure their preferred keyboard shortcuts for quick result entry (default: 1/2/3) from the profile page. The tournament page hint bar and key mappings update automatically
v4.4.0 Team Lineup April 3, 2026

Added

  • Deferred lineup confirmation — Team round generation now creates team pairings only. Board games are created when the arbiter confirms each lineup via inline dropdown editor, matching the real-world workflow
  • Board color alternation — The lineup editor clearly shows which team plays White or Black on each board with chess piece icons (♥/♠) and alternating background colors (FIDE rule: odd boards = home White, even boards = home Black)
  • Print team pairings — New “Print round” button opens a clean A4 page with team match cards, player names (if lineup confirmed) or empty boards (if not), plus QR code for the live page
  • Public pairings before lineup — The public tournament page now shows team-vs-team pairings immediately after round generation, even before lineups are confirmed

Improved

  • Lineup modification — After confirming a lineup, a collapsible “Manage Lineup” editor allows changes as long as no results have been entered yet
  • Match status badges — Match headers now distinguish between “Lineup to confirm” (orange), “In progress” (yellow), and “Completed” (green)
v4.3.0 Rounds April 2, 2026

Added

  • Change number of rounds mid-tournament — Swiss tournament directors can now increase or decrease the total number of rounds while the tournament is in progress (minimum = rounds already played, maximum = 30). Available from the round actions bar on desktop and the player management section on mobile
v4.2.0 UI Redesign March 30, 2026

Improved

  • Compact tournament header — Tournament info (type, players, time control, round) is now displayed inline next to the title, reducing vertical space by ~100px
  • Breadcrumb stepper — The 4-step progress bar has been replaced with a compact breadcrumb: ✓ Registration → ✓ Start → Round 1/5 → End
  • Inline visibility controls — Tournament visibility and share links are now a single compact row with “Copy link” buttons instead of full-width input fields
  • Round navigation via dropdown — “Round 1 of 5” now includes an inline <select> to jump between rounds instantly, replacing the numbered circles
  • Keyboard hint updated — Quick entry instructions now mention clicking the board number (more precise) and forfeit via dropdown menu
  • Unified color palette — All action buttons use a single primary blue (#2563eb). Removed inconsistent greens, oranges, and gradients across the interface
  • Mobile-optimized tabs — Horizontally scrollable tabs with inline counts instead of badge circles, ensuring all tab names remain fully readable
  • Mobile pairings layout — Save bar stays sticky at the bottom of the screen; “Generate next round” button appears immediately after saving all results

Added

  • Dismissible demo banner — Demo tournament banner can now be closed with × (remembered per session)
  • Mobile bye management hint — An informational message about bye/withdrawal assignment appears above the Player Management section on mobile

Removed

  • “Ready to start!” green box — Replaced with a compact neutral row showing player count, round count, and generate button inline
  • Empty “Round 0 of 5” card — No longer shown before the first round is generated (the placeholder was obvious and wasted ~200px)
v4.1.0 Quick Entry March 30, 2026

Added

  • Keyboard numpad result entry — Arbiters can now enter results using the numeric keypad: press 1 for White wins, 2 for draw, 3 for Black wins. The cursor automatically advances to the next board
  • Row click to activate — Click anywhere on a pairing row to activate keyboard input. The active row is highlighted with a blue border
  • Visual confirmation flash — A brief green flash confirms each result entry, providing clear feedback when entering 20+ results in rapid succession
  • Keyboard navigation — Use arrow keys (↑↓) to move between boards, Delete to clear a result. Bye rows are automatically skipped

Improved

  • Dual input mode — The dropdown menu is fully preserved for special results (forfeit, unrated). Click the dropdown directly to use it as before
v4.0.0 Player Management March 30, 2026

Added

  • Redesigned player management — Replaced the native dropdown with a filterable checkbox list supporting multi-select, real-time search by surname, and A-Z/Elo sort toggle
  • Batch bye assignment — Select multiple players and assign the same bye type to all at once
  • Inline status badges — Each player shows colored badges for current status (Bye 1pt, Bye ½pt, Not Paired, Withdrawn) and scheduled absences (purple “Req” badge with detailed tooltip)
  • Requested Bye (scheduled absences) — New feature to schedule absences for future rounds. The system automatically applies byes when generating the round. Absences are idempotent: deleting and regenerating a round re-applies them correctly

Improved

  • Mobile-first responsive layout — 3-column grid for bye buttons, compact toolbar, ellipsis for long names on small screens
  • Consistent color system — Unified colors across badges and tags (blue=Bye 1pt, gray=Bye ½pt, amber=Not Paired, red=Withdrawn, purple=Requested Bye)
  • Action separation — Arbiter bye, Requested Bye and Withdrawal are visually separated into dedicated sections
  • Smart visibility — Player management section no longer appears on the last round
v3.28.0 Chess-Results March 28, 2026

Fixed

  • Chess-Results upload — Fixed XML upload failing due to unescaped & character in tournament URLs. All uploads now succeed correctly
  • Tiebreak mapping — Corrected Sonneborn-Berger Cut-2 parameter sent to chess-results.com (was incorrectly mapped as median instead of cut-2)

Improved

  • Short URLs on chess-results — Published tournaments now display the short public link instead of the long token-based URL
  • Registration link on chess-results — When online registration is enabled, the chess-results page shows the registration link in the tournament remarks section
  • XML sanitization — All text fields in the chess-results XML are now properly escaped for special characters
v3.27.0 Notifications March 27, 2026

New

  • Registration notifications — Tournament owners now receive an in-app notification whenever a player signs up via the public registration link. The notification includes the player name and a direct link to the tournament
v3.26.0 Product Tour & Demo March 27, 2026

New

  • Interactive Product Tour — Step-by-step guided tour powered by Driver.js on the dashboard, tournament wizard, and tournament page. Highlights key features with contextual tooltips. Available in all 6 languages
  • Demo Tournament — One-click demo at /demo.php creates a Swiss tournament with 10 top FIDE GMs (Carlsen, Nakamura, Firouzja, etc.). Auto-deletes after 48 hours via cron. Limited to 1 demo per user
  • Context-aware wizard tour — The wizard tour adapts to the current step, showing relevant explanations for each of the 5 configuration phases
  • Tournament page tour (3 phases) — Registration phase explains player search, bulk import, and manual entry. Pre-round phase covers round generation, edit pairings toggle, and visibility settings. Pairings phase walks through tabs, result saving, and round actions

Improved

  • Demo banner — Demo tournaments display a yellow informational banner with auto-cleanup notice. No manual deletion needed
  • Tour hidden on mobile — Product Tour buttons are desktop-only to avoid overlay issues on small screens
v3.25.0 UX Redesign March 26, 2026

New

  • Community forum on homepage — Non-logged-in visitors now see the latest 5 forum discussions with post excerpts, reply and view counts directly on the landing page

Improved

  • Hero section hierarchy — Sign Up and Login buttons moved above feature tags for immediate visibility. Feature boxes transformed into lightweight pills
  • Sign Up button visibility — Primary CTA now uses a green accent color that stands out against the dark hero and header
  • Onboarding wizard — Simplified from 5 steps to 3. New flow: Create tournament → Add players (FIDE search first) → Play! Encourages using the FIDE database over manual entry
  • First-access dashboard — Stat cards are hidden when all counters are zero, reducing visual noise for new users
  • Removed video tutorial — The inline video player and "Discover all features" button have been removed from the landing page

Fixed

  • Registration page — Removed debug code left in production and fixed incorrect redirect after login
v3.24.0 Forum Enhancements March 26, 2026

New

  • Image size selector — After inserting an image, click it to choose between Small (300px), Medium (500px), or Original size. A delete button allows quick removal
  • Image lightbox — Clicking any image in a published post opens a full-screen lightbox overlay. Close with the X button, click outside, or press Escape
  • @mentions with notifications — Type @ in the editor to see an autocomplete dropdown of users who participated in the thread. Mentioned users receive an in-app notification with a link to the post
  • SEO hreflang tags — All forum pages now include <link rel="alternate" hreflang="..."> tags for all 6 languages plus x-default, and a self-referencing <link rel="canonical"> per language. Tags are correctly placed inside <head>

Improved

  • Translation display — Forum content is now automatically displayed in the user's selected language. The original language is preserved as the source of truth, and translations are shown seamlessly when switching language via the site header
  • Cleaner thread view — Translation links shown only on the first post of a thread. Removed redundant in-forum language switcher flags from breadcrumbs (the site header language selector is sufficient)
  • Clipboard image handling — Pasting or dropping images is blocked for non-admin users. For admins, pasted images are automatically uploaded instead of being embedded as base64
v3.23.0 Community Forum March 25, 2026

New

  • Community Forum — A new forum at /forum/ where registered users can start discussions, reply to threads, and quote messages. Categories include Announcements, Introductions, General Discussions, Tournaments, Suggestions, Bug Reports, FAQ & Knowledge Base, and Showcase
  • Multilingual forum — Full i18n support in all 6 languages (IT, EN, ES, FR, RU, CS). Each URL includes the language prefix (e.g. /forum/en/). Forum content is automatically translated into all supported languages
  • Rich text editor — Quill.js editor with bold, italic, underline, lists, blockquote, and links. No image or file uploads allowed for security
  • Thread moderation — Admins can pin, close, reopen, and delete discussions. Admin-only categories (Announcements, FAQ) restrict thread creation to staff
  • Quote & reply system — Quote any post when replying, with a preview box and linked reference to the original message
  • Translation links on posts — Each post shows direct links to available translations and the original language version
  • Thread view counter — Each discussion tracks the number of views, displayed in the thread list
  • Admin email alerts — Automatic email notification to admins for every new thread and reply, enabling fast moderation and spam control
  • Forum language switcher — Inline flag-based language selector in the breadcrumb bar, allowing users to switch languages while staying on the same page

Improved

  • Absolute URL paths — All navigation links in header and footer now use absolute paths, fixing broken links when browsing from subdirectories
  • SEO meta tags on forum pages — Title, description, and Open Graph tags on every forum page (home, category, thread) for better search engine indexing and social sharing

Security

  • HTML sanitization — Whitelist-based HTML purifier strips all unsafe tags and attributes. Links are forced to rel="nofollow noopener" with only http/https URLs allowed
  • Rate limiting — Users are limited to 1 new thread per 5 minutes and 10 posts per hour to prevent spam
  • CSRF protection — All forum form submissions are protected with CSRF tokens
  • VPS firewall — UFW enabled with strict rules: SSH, HTTP/HTTPS open to all; database port restricted to a single authorized IP
v3.22.0 Player Edit & Federation March 25, 2026

New

  • Edit enrolled players — Click on a player's name during registration phase to edit their details (name, federation, rating, title, sex). The same modal also allows removing the player with confirmation
  • FIDE ID lookup in edit modal — Enter a FIDE ID to automatically fetch and fill player data from the database, and link the enrollment to the FIDE record
  • Federation selection at registration — New users must now select their chess federation when creating an account, using a searchable dropdown with all FIDE federations
  • Federation gate on tournament creation — Existing users with no federation set are prompted to choose one before accessing the tournament wizard
  • Smart federation default for self-enrolled players — Players who self-enroll via the public page now inherit the tournament's federation instead of "OWN"

Improved

  • Compact player table on mobile — Reduced padding, hidden FIDE IDs, and removed Points/Status columns during registration phase for a cleaner mobile experience
  • Category color on mobile — Category badges are replaced by colored player names on small screens to save space
v3.21.0 Per-Round Draft Mode March 24, 2026

New

  • Per-round draft toggle — Enable or disable draft mode (edit pairings before publishing) on a per-round basis, directly from the tournament page. No need to decide at creation time — just toggle it before generating each round

Improved

  • Simplified tournament creation — Removed the draft mode option from the creation wizard and quick-create form, since it can now be activated at any time during the tournament
v3.20.0 Sharing & Limits March 21, 2026

New

  • Short URLs for sharing — Tournament and registration links now have compact short URLs for easier sharing via WhatsApp, Telegram, and social media. Auto-detects browser language for a localized experience
  • Maximum participants limit — Set a cap on the number of participants when creating a tournament. Public registration is automatically blocked when the limit is reached, while organizers can always add players manually
  • Tournament info on public pages — Public tournament and registration pages now display the tournament type (Swiss, Round Robin) and time control (e.g. Rapid 15'+10")

Improved

  • Registration phase UX — During open registration, public tournament pages only show the participants tab, hiding irrelevant tabs like standings and pairings
  • Post-registration redirect — After completing registration, the "View tournament" link now goes directly to the participants tab
  • Capacity display — When a participant limit is set, both admin and public pages show current enrollment vs. capacity (e.g. 12/20)
v3.19.1 Forfeit Display March 20, 2026

New

  • Forfeit indicators in standings — Cross-table and round-by-round standings now display 1F / 0F for forfeit results, shown in a distinct purple color. Applies to admin view, public page, and PDF/print export

Fixed

  • Tournament wizard access — The new creation wizard is now accessible to all logged-in users, not just admins
v3.19.0 Tournament Wizard March 20, 2026

New

  • Tournament creation wizard — A guided 5-step wizard for creating tournaments: basic info, time control, dates & venue, tiebreak criteria, and advanced options. Intelligent defaults let you create a standard Swiss tournament in just a few clicks
  • Two-level type selection — Choose between Swiss and Round Robin with large cards, then pick Single or Double variant for Swiss. Round Robin shows group calculation examples in real time
  • Smart category presets — Selecting Standard, Rapid, or Blitz auto-fills time control values. A live preview warns if time settings don't match the selected category
  • Pre-submit summary — Review all tournament settings in a compact chip-based overview before confirming creation
  • Session persistence — Wizard state is saved in the browser; if you navigate away and come back, your progress is restored

Improved

  • All "New Tournament" links now open the wizard — The homepage, tournament list, dashboard, and mobile bottom-nav FAB button all point to the new wizard. The classic form remains accessible via a link in the wizard
  • Round Robin group calculation — Fixed an edge case where small remainders (1-2 players) produced unplayable Swiss groups. The system now reduces RR groups to ensure viable group sizes
  • Full i18n for wizard — All wizard text is translatable across all 6 supported languages (EN, IT, ES, FR, RU, CS)
v3.18.0 Public Pages March 19, 2026

New

  • SEO & Open Graph meta tags — Public tournament pages now include full meta descriptions, Open Graph tags, and Twitter Cards. Shared links on WhatsApp, Telegram, Facebook, and X show rich previews with tournament name, location, and participant count
  • Structured data (JSON-LD) — Tournament pages emit schema.org Event markup, helping search engines recognize tournaments as events
  • QR code sharing — A QR code button in the tournament hero generates a scannable code for quick access from phones — ideal for posting in tournament halls
  • Social sharing buttons — One-tap share to WhatsApp, Telegram, Facebook, X, plus a copy-link button with visual feedback

Improved

  • Public pages redesign — Tournament view, player card, and registration form completely restyled with the DM Sans design system: modern hero sections, clean tables with FIDE title badges, animated status indicators, and improved mobile responsiveness
  • Dedicated public stylesheet — Extracted all inline styles into css/public.css, reducing page weight and improving maintainability
  • Dynamic cache busting — Public pages now use APP_VERSION for CSS cache busters instead of hardcoded strings
  • Canonical URLs — Prevents duplicate content issues between token-based and slug-based URLs
  • Full i18n for public pages — Replaced all hardcoded Italian text (BYE, Print, placeholders, error messages) with translatable keys across 6 languages
  • Landing page — Live Tournaments — The homepage at chesspairings.org now shows a "Live Tournaments" section with the latest public tournaments, fetched dynamically from the database
  • Dynamic sitemap — sitemap.xml is now generated dynamically, automatically including all public tournaments and sub-tournaments with appropriate change frequencies and priorities
v3.17.0 Late Entry March 18, 2026

New

  • Late Entry (Swiss tournaments) — New toggle in tournament creation allows adding players after the tournament has started. Late entries receive 0 points for unplayed rounds and are paired from the next round onward (FIDE C.04.2, Art. 2.4). Works with both FIDE database players and club players
  • Late Entry indicators — An informative banner in the Rounds tab links to the Players tab for easy access. Players added late show an "LE" badge with a tooltip indicating their entry round

Improved

  • Bye handling accuracy — Half-point byes (0.5) and zero-point byes (0) are now correctly saved when requested, improving standings accuracy in tournaments where players request partial byes
v3.16.0 Standings March 18, 2026

Improved

  • Standings with partial results — When the current round has incomplete results, standings now show the last fully completed round with an informative banner. If round 1 is incomplete, a provisional rating-ordered list is shown. This prevents inconsistent rankings during result entry
  • Tiebreak sorting accuracy — Players with equal points are now sorted strictly following the tiebreak priority configured by the organizer
  • Tiebreak fallback coverage — Added 11 missing tiebreaks to the local calculation engine (SB Cut-2, Progressive Cut-2, ARO Cut-2, Games Played, and more). Tiebreaks that require the FIDE engine show "-" instead of incorrect values
v3.15.3 UX March 18, 2026

Improved

  • Round Robin ready-to-start info — The "Ready to start" banner now shows specific details about how rounds are calculated (automatic or manual) and explains bye handling for odd numbers of players
  • Reversible workflow — New "Back to registration" link below the Round 1 header (visible before any results are entered) makes it easy to go back and modify registrations
  • Round actions section — The "Delete Round" button is now preceded by a visual separator and "Round actions" label for better discoverability
  • Homepage updated — "How It Works" step descriptions updated to reflect automatic round calculation and the ability to modify registrations at any time
v3.15.2 Improvement March 18, 2026

Improved

  • Simplified Round Robin setup — The "Rounds calculation" selector for Round Robin tournaments now has just 2 clear options: Manual (you choose the rounds, the system creates groups if needed) and Automatic (the system calculates everything based on the number of registered players). Even players: N-1 rounds with no bye. Odd players: N rounds, each player rests one round

Fixed

  • Round generation confirmation message — Fixed a duplicated and untranslated confirmation message that appeared after generating a new round
v3.15.1 Bug Fix March 17, 2026

Fixed

  • My Players: fix SQL error when saving with empty numeric fields — Empty birth year, ELO, FIDE ID, or category fields now correctly save as NULL instead of causing an "Incorrect integer value" database error. Affects both create and update operations
  • My Players: fix orphaned players when deleting a category — Deleting a category now resets the category assignment for all associated players, preventing orphaned foreign key references
  • My Players: fix bulk import error display — Import validation errors with multiple lines now render correctly instead of showing raw <br> tags as text
v3.15.0 Security March 16, 2026

Security

  • Fix JavaScript string injection via i18n translations — Translations containing apostrophes (e.g. Italian “all'avvio”, French “s'affrontent”) could break JavaScript strings when injected via PHP short tags, causing the entire page JS to stop working. Added __js() helper for script contexts and __js_attr() for inline HTML event handlers (onclick, onsubmit). Fixed ~120 instances across 13 files: torneo, tornei, marathon, dashboard, giocatori_circolo, torneo_squadre, simulazione, footer, and all public-facing pages
  • Stop leaking internal error details to users — Registration error messages no longer expose raw PDO exception text ($e->getMessage()). Error details are still logged server-side for debugging
v3.14.1 Patch March 13, 2026

Fixed

  • Forfeit games excluded from internal ELO calculation — Forfeit results (1F-0F, 0F-1F, 0F-0F) were incorrectly counted as played games in the internal ELO rating system. Per FIDE Rating Regulations B.02 Art. 5.1, unplayed games must not be rated. A player who received a forfeit loss would lose ELO points for a game they never played. Now only games actually played at the board affect ELO. Performance rating calculation also fixed. Thanks to Jared Oehrlein for reporting
v3.14.0 Major March 13, 2026

Fixed

  • Round Robin color balance completely rewritten — Fixed a critical bug where some players could be assigned the same color (White or Black) in every game of a Round Robin tournament. The old Berger algorithm used a broken color formula tied to board position. Replaced with a hybrid approach: odd N uses an "All Rotate" carousel algorithm (perfect color balance, diff=0), even N uses a Pivot Berger with greedy color balancing (optimal diff=1, max 2 consecutive same color). Validated with 210 automated tests covering N=2 to N=50
  • Round Robin BYE distribution — For odd number of players, the BYE now rotates fairly among all players (exactly 1 BYE each) and never falls on the top-seeded player in round 1
  • Round Robin round count — Auto-calculated rounds now correctly adapt to player parity: N-1 rounds with 0 BYEs for even N, N rounds with 1 BYE per player for odd N. Both "Players - 1" and "Equal to players" modes use the same optimal formula
v3.13.1 Minor March 12, 2026

Improved

  • Duplicate tournament with custom name — When duplicating a tournament, a modal dialog now lets you choose the name for the new tournament instead of automatically appending "(copia)". The suggested suffix is translated in all 6 supported languages. The action also uses POST instead of GET for better safety
v3.13.0 Major March 12, 2026

New

  • Feedback email on tournament completion — When a tournament is concluded, the organizer automatically receives an email asking for feedback. The email is sent in the user's preferred language (6 languages supported) and replies go directly to info@chesspairings.org
  • Final standings attachment — The feedback email includes a standalone HTML file with the complete final standings table, including round-by-round results and all tiebreak values

Fixed

  • Export standings and CSV — Fixed HTTP 500 error on export_classifica.php and export_csv.php caused by missing i18n initialization
v3.12.0 Major March 11, 2026

New

  • chess-results.com open to all users — The chess-results.com integration is now available to all verified users, not just administrators. Every user can publish their tournaments directly to chess-results.com
  • Admin Chess-results.com link — A "manage" link next to the chess-results URL in the tournament page gives organizers direct access to their tournament's admin panel on chess-results.com
  • Upload rate limiting — Daily request quotas per user and global to ensure fair usage of the chess-results.com API

Improved

  • User data in published tournaments — The organizer name and contact email from the user profile are now included in the chess-results.com tournament data
  • Federation pre-selection — When publishing to chess-results.com, the federation code is pre-filled from the user's profile setting, avoiding the need to re-enter it each time
  • Streamlined navigation — Removed Predictor from main navigation menu
v3.11.0 Major March 9, 2026

New

  • chess-results.com integration — Publish tournaments to chess-results.com via XML upload. Encrypted authentication with environment-stored keys
  • Auto-upload — Tournaments are automatically updated on chess-results.com after each round generation, round deletion, and tournament conclusion
  • FIDE federation selector — Dropdown with 191 FIDE federations + sandbox mode (XXX) for testing. The selected federation is saved to the user profile and pre-selected for future tournaments
  • chess-results link in tournament page — When a tournament is published, a direct link to chess-results.com appears in the tournament header with the last upload timestamp
  • Manual upload — A button in the export menu allows forcing an upload to chess-results at any time

Improved

  • Player federation inheritance — Players added manually or from the club roster now inherit the tournament's federation (when set for chess-results) instead of defaulting to OWN/ITA
  • Enriched XML data — Arbiter, organiser, public tournament link on ChessPairings.org, and FIDE ID in the player id field are now included in the upload
  • i18n — All chess-results UI strings translated in 6 languages (it, en, es, fr, ru, cs)
v3.10.1 Patch March 9, 2026

Fixed

  • RR group flow: missing action buttons — "Go to next round" and "Complete Group" buttons were not appearing after saving results in Round Robin sub-tournaments. The full flow now works: save → go to round N+1 → complete group on last round
  • Sequential round enforcement — It was possible to enter results for round 3 without completing round 2. A warning banner now blocks editing until previous rounds are complete
  • False 100% progress for Swiss groups — In the parent dashboard, Swiss groups with no generated games showed as "5/5 rounds complete" because empty rounds counted as complete. Now checks that games actually exist
  • Group navigation bar only on pairings tab — The ← Back to parent / A B C D S navigation bar was only visible on the pairings tab. Moved before tabs so it appears on all tabs (standings, cross-table, players)
  • Group dropdown forced pairings tab — Switching groups via the title dropdown always navigated to the pairings tab. Now preserves the current tab
  • BYE card unreachable on mobile — The last pairing card (always the BYE) was cut off by the mobile browser toolbar. Added bottom padding to the pairings list

Improved

  • "Complete Group" label — Sub-tournaments now show "Complete Group" (translated in 6 languages) instead of "Complete Tournament"
  • Swiss inherits tiebreaks from parent — The Swiss remainder group now inherits the parent tournament's tiebreak configuration instead of using hardcoded defaults
  • Auto-conclude parent — When the last sub-tournament is concluded, the parent tournament is automatically concluded
  • Public group navigation — The public tournament page now shows the group navigation bar with links to sibling groups and back to the parent
v3.10.0 March 8, 2026

New

  • Auto Round Robin Groups — When a Round Robin tournament has more players than fit in a single group, the system automatically splits them into multiple RR groups (+ an optional Swiss group for remainders). Groups are created at tournament start based on player count and available rounds. Players are distributed by rating (Group A gets the strongest). All RR rounds are pre-generated using the Berger algorithm
  • Group navigation — Sub-tournaments include a navigation bar with lettered buttons (A, B, C... S) to quickly switch between groups, plus a dropdown selector in the tournament title. A "Back to parent" link returns to the main tournament dashboard
  • Group dashboard — Parent tournaments show a card-based overview of all groups with progress rings showing how many rounds have results entered

Improved

  • BYE placement — In odd-player Round Robin tournaments, the BYE is now always placed on the last board (previously could appear on board 1). The BYE result is automatically set to PAB (+-- = 1 point)
  • Smart round selection — When entering a pre-generated RR group, the page opens on the first round with missing results instead of the last round
  • Swiss group sizing — The distribution algorithm ensures the Swiss remainder group always has enough players to sustain the required number of rounds (sacrifices an RR group if needed)
v3.9.1 Patch March 8, 2026

Fixed

  • Color abbreviations in standings — The standings page showed Italian color abbreviations ("B" for Bianco, "N" for Nero) regardless of the user's language. Since "B" means White in Italian but Black in English, this was actively misleading. Colors now display correctly in all 6 languages (e.g. W/B in English, B/N in Italian, Б/Ч in Russian)
  • Tiebreak column headers — Several tiebreak abbreviations were hardcoded in Italian ("SD" for Scontro Diretto, "Vit" for Vittorie, "Neri"). They are now translated per language (e.g. "DE" for Direct Encounter, "Win" for Wins in English). Hovering over any tiebreak column now shows a tooltip with the full name

Improved

  • Tiebreak tooltips — All tiebreak column headers across standings, public view, and export pages now show the full tiebreak name on hover, translated in all 6 supported languages
v3.9.0 March 7, 2026

New

  • Manual Pairings / Draft Mode — Arbiters can now review and modify auto-generated pairings before publishing them. Enable "Edit pairings" when creating a tournament to unlock draft mode. Three levels of control: (1) generate pairings then swap players, invert colors, or remove/add games before publishing; (2) create a round entirely from scratch by manually pairing players; (3) mix both approaches. Non-blocking warnings alert the arbiter about repeated opponents, 3+ consecutive same colors, or large point differences
  • Manual Round creation — Start with an empty round and build pairings manually by selecting players. Assign BYE (full, half, or zero-point) to individual players. Useful for special situations where the automatic engine doesn't apply

Improved

  • Data safety — Draft pairings are fully isolated from published data. They never affect tiebreak calculations or standings until explicitly published by the arbiter
  • i18n — All 6 languages (IT, EN, ES, FR, RU, CS) updated with draft-related strings and the new tournament creation toggle
v3.8.3 March 7, 2026

Fixed

  • Cross-table for Round Robin — The cross-table was showing a round-by-round view (columns = rounds) instead of a true player-vs-player grid. In odd-player tournaments, the BYE symbol "+" was placed in the round column, overwriting the real result against the opponent whose rank matched that round number. Now shows a proper cross-table with columns = opponents, diagonal marked "X", and no BYE in the grid
  • Export pages always in Italian — The standings export and cross-table export pages had all labels hardcoded in Italian, ignoring the user's language setting. Now all strings use the i18n system and respect the selected language across all 6 supported languages
v3.8.2 Patch March 6, 2026

Fixed

  • Round Robin duplicate pairings — The Berger algorithm was using a point-based player order that changed between rounds, causing some players to face each other multiple times while never playing others. Now uses a stable order based on board number
v3.8.0 Feature March 3, 2026

New

  • Cross-table (Tabellone) — New tab showing a round-by-round cross-table with color-coded cells (white/black/bye), results, and opponent board numbers. Available in both admin and public views
  • Print-ready exports — Dedicated standalone pages for printing the cross-table and participant list, with orientation toggle and clean layout (like the existing standings export)
  • FIDE ID column — Participant list now shows FIDE IDs with direct links to the FIDE rating profile

Improved

  • Participant filter — Real-time search box to quickly filter participants by name or federation
  • Sortable rating — Click the Rating column header to sort participants by Elo (descending, ascending, or default order)
  • Mobile cross-table — Sticky player name column during horizontal scroll, hidden secondary columns on small screens
v3.7.0 Feature March 2, 2026

New

  • Improved access control — Strengthened permission checks across all tournament operations for better multi-user safety
  • PDF orientation toggle — Choose between landscape and portrait when exporting standings to PDF. Your preference is remembered
  • Smart date default — The tournament creation form now defaults the start date to today

Fixed

  • Club player removal — Removing club players from a tournament after reopening enrollments now works correctly
  • Toast messages — Fixed incorrect success messages appearing after certain tournament actions
v3.6.0 Infrastructure March 2, 2026

Improved

  • New server infrastructure — Migrated to a faster VPS with PHP 8.3, MariaDB 10.11, and SSL certificates for both domains
  • Dynamic version display — The app version is now shown automatically in the footer
v3.5.0 Major March 1, 2026

New

  • FIDE-reference tiebreak engine — Standings are now calculated by the Gacrux TieBreakServer, the official FIDE reference engine validated on 120,000+ tournaments
  • 28 tiebreak criteria — Expanded from 17 to 28 available tiebreaks, including Sonneborn-Berger Cut-2, Tournament Performance Rating (TPR), Perfect Tournament Performance, and more
  • bbpPairings v6 default — New tournaments now use the latest FIDE 2026 pairing engine by default
v3.3.0 Feature February 28, 2026

New

  • Import from Chess-Results — Import existing tournaments from chess-results.com: players, rounds, pairings, results, and colors are all automatically retrieved and imported

Improved

  • Faster bulk enrollment — Enrolling 40-50 players via FIDE ID is now instant instead of timing out
  • Leaner codebase — Tournament creation reduced from 7 queries to 1, duplicate method eliminated with 150 fewer lines of code
v3.2.0 Feature February 24, 2026

New

  • Support page — Submit bug reports, suggestions, and questions directly from the app. Replies go to your email
  • Payment tracking — Optional module to track registration fees: record payments, mark paid in one click, bulk actions, CSV export. Completely isolated from the tournament logic
v3.1.1 Improvement February 24, 2026

New

  • Bulk delete club players — Select multiple club players and remove them all at once with a single confirmation
  • Reopen enrollments — Go back to the enrollment phase after starting a tournament (before generating Round 1) to add forgotten players
v3.1.0 Feature February 24, 2026

New

  • Print pairings — Print-optimized A4 page for posting pairings in the tournament hall. Symmetric layout with board numbers, names, titles, ratings, and points. QR code links to the live public page. Auto-prints on load
v3.0.0 Major February 21, 2026

New

  • Team Tournaments — Complete module for team chess tournaments, both Swiss and Round Robin
    • Configurable boards per match (1 to N) with automatic color alternation
    • Player rosters with FIDE search, lineup management per round, and substitutions
    • Match scoring: 2 pts for win, 1 for draw, plus individual game points
    • 8 team tiebreaks: Game Points, Buchholz MP, SB, Head-to-Head, Wins, ARO, and more
    • Live public standings with 15-second auto-refresh and LIVE indicator
    • Full organizer dashboard with 5 tabs: Teams, Lineups, Pairings, Standings, Settings

Fixed

  • Critical Buchholz fix — Unplayed rounds were incorrectly included in all tiebreak calculations, inflating values
  • Default tiebreak order — New Swiss tournaments now use the standard FIDE order (BH Cut-1, SB, ARO, BH Total, Wins)
v2.0.0 Major February 15, 2026

New

  • Opponent Preparation — Analyze your opponent's opening repertoire using games from chess.com, Lichess, and the FIDE OTB database. Powered by Stockfish + Leela Chess Zero with dual-engine analysis
  • ML Tournament Predictor — Simulate tournament outcomes round by round with animated reveals, upset indicators, and shareable results
v1.9.0 Major February 10, 2026

New

  • Blitz Marathon module — Full round-robin blitz tournaments with QR-code result entry
    • Players scan their personal QR badge to submit results from their phone
    • Double confirmation: both players confirm, automatic dispute detection
    • Three result modes: QR single, QR double confirmation, or arbiter-only
    • Printable badges (6 per A4) with QR code, name, rating, and player guide
    • Live public standings for monitors and TV screens
    • Organizer dashboard with 5 tabs: Players, Pairings, Standings, Badges, Settings
v1.9.3 Feature February 12, 2026

New

  • Redesigned navigation — Clean desktop nav with user dropdown (avatar, profile, settings). Guest users see Login and Register
  • Czech language — Full translation of 1,000+ strings. ChessPairings now supports 6 languages: Italian, English, Spanish, French, Russian, and Czech
  • PNG flag icons — Language selector now uses proper flag images instead of Unicode emoji (which are invisible on Windows)