Anticode Open builder

A tournament website players check before every round

A tournament website does three jobs: it gets teams registered before the deadline, it settles arguments with rules everyone can point to, and it tells players where and when their next match is. You can do all three with plain pages and a form. What you can't do on an Anticode site is run a live bracket that updates itself; results are posted by hand after each round.

Updated · By the Anticode team

The pages a tournament needs

Whether it's a five-a-side cup, a chess weekend or an online esports qualifier, players arrive with the same few questions. Answer each on its own page or section so captains can send a direct link instead of retyping it in a group chat.

Format
Group stage or straight knockout, match length, best-of rules for finals, how ties are broken.
Schedule
Check-in time, first match, rough finish time, and what happens if a round overruns.
Rules
Eligibility, roster size and substitutions, banned items or settings, disconnection and forfeit policy, how disputes are raised.
Registration
Who can enter, the deadline, the team cap, and any entry fee with a link to pay it.
Results
Each round's scores, the current standings or bracket, and the final placings.
Venue or server
Address and access for in-person events; server region, platform and lobby details for online ones.

Taking team registrations

A tournament registration page has to collect more than a name and an email: team name, captain's contact, player handles or names, platform or rank, and maybe a club. Anticode's built-in contact form only asks for name, email and a message, so a sign-up with these fields is a custom form tied to a site function. It can hold up to 30 plain-text fields, and a formula on the server can refuse an entry with your own message, for example when a "number of players" field is below the minimum you set. Formulas work on numbers only, so they can't check handles or team names.

  • Ask for handles exactly as they appear in the game. You'll need them to invite players to lobbies and to check results screenshots.
  • Put the cap and deadline next to the button. A form that silently accepts the 33rd team in a 32-team bracket creates an awkward email.
  • Collect one contact per team. The captain answers for the roster; you don't need every player's email.
  • Send entries somewhere you can sort. Connect the form to Google Sheets or Airtable to keep a seeding list, or to Discord so organisers see each entry as it lands.

If there's an entry fee, point the pay button at a checkout link from your own provider, such as Stripe Payment Links or PayPal. The site doesn't confirm that a team has paid; tick that off in your sheet when the payment arrives.

Brackets and results, updated by hand

This is where an Anticode site is a partial fit. Published pages run no scripts and can't embed outside widgets, so there's no self-updating bracket and no embedded bracket from a tournament platform. What works is a results page you update between rounds.

  1. Keep results in a CMS collection, one entry per match, with fields for round, the two teams, the score and the winner. Collection pages are served at their own addresses, so each round can have a page.
  2. After each round, enter the scores in the dashboard and check the results page on your phone.
  3. Post the link in your players' chat. Anyone refreshing the page sees the new round.
  4. For a visual bracket, describe it as a page section and change the names in the visual editor as teams advance.

For large or fast events, with dozens of matches finishing at once and players reporting their own scores, a dedicated bracket tool does that job better. Link to it from your site and keep the rules, sign-ups and announcements on your own pages. A browser-based tournament bracket maker built as an Anticode app can help you plan seeding, but it saves to the browser it runs in, so it isn't a shared live bracket either.

Writing rules people will read

Most disputes come from rules that were vague or hidden. Number every rule so admins can cite it ("rule 4.2: a disconnect in the first two minutes is a restart"). Put the forfeit and lateness policy near the top. Say who makes final decisions. Date the page and note changes at the bottom, so nobody can claim they read an older version. A short FAQ section for the questions that keep coming up saves everyone time on the day.

Building it with Anticode

Describe the event in a sentence or two: "a website for a 32-team Rocket League tournament on 14 March, online, EU servers, with rules, a registration form closing 1 March and a results page". The Architect asks up to three questions that change the build and shows a plan with the sections before anything is built. Pick a look that fits the scene; the Brutalist and Playful design systems suit gaming events, Swiss suits a club or chess federation. Publish to an anticode.dev address or your own domain on a paid plan.

What it doesn't do

  • No live or self-updating brackets, and no embedded bracket widgets or streams. Link to Twitch, YouTube or a bracket platform instead.
  • No player accounts or score reporting. Players can't log in or submit their own results; you post them.
  • No check-in system. Run check-in in your Discord or at the desk, and record no-shows yourself.
  • Payments by link only. Entry fees go through your own provider's checkout link.
  • Free plan allowance. A monthly number of submissions is visible on free sites (100 by default) and the rest wait for an upgrade, which matters if you expect a lot of entries.

Questions people ask

Can I close registration automatically at the deadline?

Not on a date by itself. A formula can refuse entries that break a rule based on the form's own fields, but to close sign-ups you change the page and take the form down, which takes a minute in the visual editor.

Can teams see who else has entered?

Only if you publish it. Add a teams list to the page or a CMS collection once you've checked each entry.

Can I stream matches on the site?

Streams can't be embedded on published pages. Link to the channel from the schedule and results pages.