Open core platform for live elimination brackets in board sports
Your competition bracket, live
- Run it with AI
- Open core
- English and French
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.
How it works
From the rider list to the final
-
Add the riders
By hand or from a CSV file. A line that looks like an already known rider is flagged before the import.
-
Set your rules
Riders per heat, qualifiers, repechage, finals, seeding. The bracket builds itself.
-
Start the event
Heat duration, pause, scoring. The format can change at any time and applies to the following heats.
-
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.
-
In your assistant's settings, add a connector with this address:
https://app.heatboard.denel.dev/api/mcp - Sign in with your Heatboard account (OAuth). No key to copy.
- 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.
- 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.
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.
- 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.
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
- Propose or improve the rules: competition formats, scoring scales, other disciplines. A GitHub issue or an e-mail is enough.
- Give feedback on the app: what gets in the way, what is missing, after a trial or a real competition.
- 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
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.
Already signed up: the contact form is also in your account menu.