⚠ Development Environment — not production data

ClubRoundsBetaChangelog
New features, fixes, and improvements — updated with every release.
Currently running: v03.15
v03.15Latest2026-07-05
Added- Add to calendar — a one-click .ics download for the tournament date on the public tournament page
- Share button — native share sheet on mobile, copy-link fallback elsewhere
- Find my board — search your name on the Pairings tab to jump straight to your board instead of scrolling the full list
- Player search on the public Players tab
- The venue/address on the public page now links to Google Maps
- Registration deadline now shows urgency copy ("Registration closes in 2 days") when the deadline is close, instead of just a date
v03.142026-07-05
Added- Guided Setup for brand-new tournaments — the setup checklist now walks first-time TDs through Basics, Registration & Capacity, Sections, Payments, Player Communication, Public Page, and Final Pre-flight one stage at a time; experienced TDs (or anyone who's already filled in the basics) still see the familiar all-at-once checklist, and the choice is remembered per tournament
- The Event Day Command Center's unpaid/not-checked-in/missing-federation-ID/bye-request counts are now expandable — click to see the actual player names, plus a one-click "Send reminder" for unpaid and not-checked-in players
- "Export event-day sheet" — a one-click CSV (name, section, check-in, payment, board) for a printed backup on tournament day
- A plain-language note next to the entry-fee field explaining that payments go directly to the organizer's own Stripe account, not to Torneo
Fixed- The registration status page now says "Payment received — the organizer must review your registration" instead of a generic pending-review message when payment succeeded but the tournament was at capacity for auto-approval
v03.132026-07-05
Fixed- Retrying a paid registration after the organizer connects Stripe (or fixes payment configuration) no longer gets blocked — previously a failed attempt left a stuck row that blocked the same email from ever registering again
- The registration status page no longer generates a new Stripe payment link every time it's viewed or refreshed — the existing link is reused, and a fresh one is only created on demand when the player clicks Pay
- Abandoned checkout cleanup now correctly finds and clears stale payment sessions for organizers using their own connected Stripe account
- The checkout success page now accurately says "You are registered" when payment auto-approves a registration, instead of always saying approval is still pending; the player also now gets a confirmation email when this happens
v03.122026-07-05
Changed- Payments now settle directly to organizers, not Torneo — every tournament director and club manager connects their own Stripe account once (Club Settings → Payment Processing) before collecting entry fees or dues; every charge settles straight to that account with no platform fee
v03.112026-07-04
Added- Event Day panel — the tournament Overview tab now shows per-section registered/checked-in/paid/unpaid counts, plus tournament-wide counts for missing federation IDs, current-round bye requests, and the waitlist, once a tournament is in progress
- Refund policy, check-in instructions, and a registration deadline — new tournament settings shown to registrants on the public tournament page and their registration status page; the setup checklist now flags a missing refund policy or check-in instructions and unconfigured payment processing on paid tournaments
Fixed- Sectioned tournaments' Rounds tab showed duplicate section headers and duplicate bye rows — could repeat the same bye many times over on one round when pairings arrived out of section order
- "Generate Round" button only appeared above the round history, forcing a scroll to the top after entering results — added a matching button below the list
- Pairing sheet printed with faint gray text instead of black, and the text was a size too small
- Password strength requirements weren't checked until after submitting on registration, invite-accept, and profile password changes — now shown upfront and validated before submit
- An assistant organizer could be invited with no permissions granted at all
v03.102026-07-01
Added- Registration form completeness — the public registration form now collects first/last name and date of birth, plus conditional parent/guardian contact fields for scholastic tournaments
- Requested half-point byes — players can pre-declare a round they can't play when registering; the pairing engine sits them out for 0.5 points and re-derives the reactive bye for whoever's left
- Pairing-software registration export — export a clean player list before rounds start (generic CSV, SwissSys, or WinTD format), filterable by section and payment status
- Active sessions on your profile page — view all active logins with device/IP/last-used info and revoke any of them individually
- Expanded tournament setup checklist and pairing warnings — more gaps are flagged before you generate pairings or open registration
Fixed- Bot verification (Turnstile) was silently blocked on login, register, and public registration in production due to a missing security policy allowance
v03.92026-06-30
Added- Rating verification badges on registrations — when a player self-registers with a FIDE or USCF ID, Torneo cross-checks it against the federation supplement and shows a Verified / Mismatch / Inactive / Unverified badge next to their rating in your registrations review panel
Fixed- About page incorrectly described the pairing engine as 'Dutch-system' and FIDE C.04.3 compliant — corrected to 'Swiss-style pairings' until formal certification is complete
v03.82026-06-28
Added- Contact Email field on tournaments — a public-facing email address for players to reach the TD; shown on the public tournament page
- Additional Info field on tournaments — up to 250 characters of freeform notes (parking, dress code, etc.); shown on the public tournament page
- FIDE Rated flag on tournaments — mark a tournament as FIDE-rated; badge displayed on the public page
- Back navigation on the public tournament page — 'Torneo / All tournaments' breadcrumb in the page header links back to the tournament calendar
Fixed- Mobile header no longer crowds on small screens — Admin link is now icon-only on mobile, and a sign-out icon button is always visible in the top-right header
- Admin panel breadcrumb ('/ Admin') is hidden on mobile to give the Torneo logo and wordmark full breathing room
v03.72026-06-26
Added- Location search on the tournament calendar — filter by city, state, or venue using the search bar
- External tournament listings — admins can add non-Torneo tournaments to the public discovery calendar; external cards link directly to the tournament's own website
- Password reset security email — you receive an automatic notification when your password is changed
Fixed- Logged-in users visiting public pages (/tournaments, /guide) no longer get forced to re-login when returning to the dashboard
- Logo now loads correctly on all mobile browsers — was serving a 1.2 MB image at 32 px
- Audit log resource column now shows human-readable names instead of raw IDs
- Login page spacing — more breathing room between the password field and the sign-in button
- Footer wraps cleanly on narrow screens
v03.62026-06-25
Added- Email verification — new accounts receive a 6-digit code by email; your account activates only after you enter it
- Password reset — 'Forgot password?' link on the login page sends a reset link to your email
- Show / hide password toggle on all password fields (login, register, reset password)
- Confirm password field on the register form to catch typos before submitting
- Account lockout message now shows the actual reason when your account is temporarily locked after 5 failed attempts
- Support email (support@torneo.org) added to the footer of every page
- Admin: send a password reset email to any user from the Users table
- Admin: grant superadmin access to any user from the user Details panel
Fixed- Tournaments with sections no longer create an empty round when players are not assigned to sections — a clear error is shown instead
- Rounds tab now shows an amber warning when active players are unassigned to sections, before you attempt to generate pairings
v03.52026-06-25
Added- Bot protection — Cloudflare Turnstile on the login, register, and player login forms
- Admin: send a test email or SMS directly from the Platform Settings panel to verify delivery
- Changelog page — this page, linked from the login screen
v03.42026-06-24
Added- SMS notifications — players receive a board assignment SMS when pairings are posted, and a reminder SMS 24 hours before the tournament starts
- Per-player SMS opt-out — one tap from any SMS opts the player out permanently; no account required
- Organizer SMS toggle — enable or disable SMS notifications per tournament from the Registrations tab
- Platform settings — superadmin controls for organizer registration, email and SMS toggles, and maintenance mode
- System health dashboard — on-demand platform health checks accessible from the admin overview
- Maintenance mode — administrators can take the platform offline for all non-admin users without a restart
Fixed- Paid registrations now auto-approve immediately on successful Stripe payment — no manual TD approval step required
- Stuck payments can be recovered via a 'Recheck payment' button in the registrations tab
- Public registration form now uses a dropdown for federation (FIDE / USCF / None) instead of a free-text field
- Admin member CSV export now respects the active search and status filters
v03.32026-06-23
Added- Kiosk PIN strength increased and brute-force protection added
- Check-in QR codes can now be regenerated per-tournament to invalidate old links
- Assistant organizer permissions tightened — each permission type now strictly controls what actions are allowed
Fixed- 24-hour reminder emails were silently failing — now fixed
- Tournament venue and address fields were not being saved on creation — now saved correctly
- Stripe checkout failure no longer leaves registrations permanently stuck in 'Awaiting payment'
v03.22026-06-23
Added- Player phone number — captured on registration forms and pre-filled from club member roster
- Drag-to-reorder sections — drag the handle on any section row to reorder; saved immediately
- Bulk assign membership type — select multiple members and assign a type in one step
- 24-hour tournament reminder email — approved players receive a reminder the day before their tournament
- Per-section FIDE / US Chess exports — generate a section-scoped TRF or cross-table file
Fixed- Section filter selection now persists when switching between Pairings, Standings, and Players tabs
v03.12026-06-23
Added- Club membership: phone number, birth year, and gender fields
- Club membership: warning when adding a member to a paid club without an email address
- Club membership: bulk actions — remove, restore, or change status across multiple members at once
- Club membership: sortable table — click any column header to sort
- Organizer CRM — cross-tournament player roster with attendance stats, return rate, and contact history
Fixed- CSV member import now accepts MM/DD/YYYY in addition to YYYY-MM-DD
- CSV import no longer aborts when a single row has bad data — valid rows still import
- Error messages from failed API calls now show readable text instead of blank toasts
- Expired membership badge is now red; all status badges use filled colours for legibility
v03.02026-06-22
Added- Tournament websites — enable a branded public event page per tournament with accent colour, sponsor listings, a news/announcements tab, and live auto-refreshing pairings and standings
- Sponsors — add sponsor logos, names, and links to any tournament
- Announcements — post news updates on the public tournament page with an unread count badge
v02.22026-06-01
Added- FIDE TRF export (FIDE Handbook C.04.3 format)
- US Chess cross-table export (plain-text grid)
- Export readiness validation with inline warnings
- Submission links to ratings.fide.com and uschess.org
v02.12026-05-20
Added- SMS notifications — pairings posted, round reminder, board assignment
- Platform-wide SMS kill-switch for administrators
v02.02026-05-10
Added- Round Robin format — Berger/circle schedule with computed round count
- Team Swiss — teams paired by Swiss algorithm, boards assigned by rating rank
- Team Round Robin — full round-robin schedule at team level
- Team standings with match points and game points as tiebreak
v01.62026-04-28
Added- Club membership dues — membership types with per-type dues amount and renewal period
- Send dues payment requests to members via Stripe Checkout link delivered by email
- Membership auto-renewed on payment; lifetime members never expire
v01.52026-04-15
Added- Organizer navigation shell — persistent sidebar on desktop, mobile tab bar across all dashboard pages
- Superadmin dashboard — platform overview, user management, audit log, system health
v01.42026-04-01
Added- Stripe Checkout integration for tournament entry fees
- Promo / discount codes with per-tournament management
- Revenue dashboard — collected, refunded, net, and outstanding at a glance
- Refund handling via Stripe webhook
v01.32026-03-18
Added- Email notifications — registration confirmation, pairings posted, withdrawal confirmation
- Per-tournament notification toggles
- Magic link login — sign in without a password
- Invite assistant organizers by email
- Player login — receive a link to view pairings and standings without an account
v01.22026-03-05
Added- Digital check-in — players scan a QR code on arrival to self check-in
- Organizer dashboard shows registered / checked-in / missing counts
- Round start blocked until minimum check-in threshold is met
v01.12026-02-20
Added- Public self-registration form on the tournament page
- Organizer opens/closes registration with optional capacity limit
- Pending registrations queue with approve / reject workflow
v01.02026-02-05
Added- Swiss-system tournament management — create tournaments, add players, generate pairings
- Results entry and live standings with Buchholz, Median Buchholz, Sonneborn-Berger, and TPR tiebreaks
- Public tournament page — live pairings and standings, no login required
- CSV player import
- Manual pairing edits and player re-entry
- Organizer and assistant organizer roles