Open core platform for live elimination brackets in board sports

Your competition bracket, live

Heatboard builds the bracket from your rules, judges score on their phones, and riders and spectators follow the results on a public page. The whole thing can also be driven from your AI assistant.

Free to try: when you sign up (Google or e-mail), a demo club is created with a sample bracket.

The bracket of a competition in Heatboard (French interface): rounds, repechage, scored heats and the running heat with its timer
The public page on a phone: live heat, timer and scores

How it works

From the rider list to the final

  1. Add the riders

    By hand or from a CSV file. A line that looks like an already known rider is flagged before the import.

  2. Set your rules

    Riders per heat, qualifiers, repechage, finals, seeding. The bracket builds itself.

  3. Start the event

    Heat duration, pause, scoring. The format can change at any time and applies to the following heats.

  4. Qualifiers move on

    Judges score, the heat is ranked and the qualifiers take their place in the next round, with no re-entry.

AI connector

Run it from your assistant

ChatGPT, Claude or any MCP-compatible assistant. Paste a messy list of riders, ask where round 2 stands or set the heats to 12 minutes: the assistant does it with your rights, nothing more.

A conversation with an assistant, in French: a 32-rider bracket is created, Heatboard tools are called, with links to the bracket and the public page
  1. In your assistant's settings, add a connector with this address:
    https://app.heatboard.denel.dev/api/mcp
  2. Sign in with your Heatboard account (OAuth). No key to copy.
  3. Ask in plain language. The bracket, the riders and the format stay visible and editable in the app.

Judges

Judges score on their phones

Each judge opens their link in the browser, with no app to install. They pick the rider, the category, the maneuver if needed, and tap the score: it is saved.

The judge's scoring screen (French interface): heat 13 running, rider, jump category, back loop maneuver and score grid
  • Scores per category (wave, jump…) and maneuvers grouped in families: forward, backward, combined.
  • The total is computed on every score, and so is the heat ranking.
  • Once the heat is validated, the qualifiers are placed in the next round.

Wind changing? Change the format

Heat duration, pause, categories and maneuver families can be edited during the competition. The running heat is left alone, the change applies to the following ones.

  • Heat 10 min
  • pause 2 min
  • 2 Wave + 2 Jump
  • Points

Public page

Riders and spectators follow live

Every event has its public page: a link to share, no account or app needed. On the beach or from afar, everyone sees where the competition stands.

An event's public page (French interface): live heat, 3:57 timer, scores and details per category
Running heat
Timer, riders and scores, refreshed every 5 seconds.
Score details
Per rider and per category, to understand a ranking.
Next heat
Who rides and when, to be ready on time.
English or French
Light or dark theme, readable in full sun.

Open source

The engine is open

Open source (MPL-2.0). Free to use; modified files are shared under the same license. Best of all: propose your improvements to the project so the community benefits.

Live.tsxMPL-2.0
import { Board, BracketProvider, useBracket }
  from "@heatboard/react";

function Live({ bracket }) {
  const controller = useBracket({
    defaultBracket: bracket,
  });
  return (
    <BracketProvider value={controller}>
      <Board mode="viewer" />
    </BracketProvider>
  );
}

Three ways to contribute

  1. Propose or improve the rules: competition formats, scoring scales, other disciplines. A GitHub issue or an e-mail is enough.
  2. Give feedback on the app: what gets in the way, what is missing, after a trial or a real competition.
  3. Contribute code: issues and pull requests on GitHub. The playground lets you try the engine without installing anything.

Where it comes from

Made by a rider, for organizers

Justin Denel windsurfing, a back loop on a wave Justin Denel at his desk, code on the screen

Heatboard comes from my experience as a pro rider, then as an organizer with the 2 Caps Windsurf association. It is made for organizers of competitions of any size, clubs or associations, who don't have access to the tools of the big international competitions.

The idea is that the community improves it with me: through feedback, proposals or code.

Justin Denel

Photo: Nicolas Peltier

A competition to organize?

To use Heatboard at a real event, ask a question or suggest a rule: write to me, I answer myself.

heatboard.app [at] gmail.com Try the demo first

Already signed up: the contact form is also in your account menu.