August 2026 · a barn in the Netherlands
The night this first had to actually work.
No demo and no dry run: a real darts night, with real people who felt it should not drag on.
23 players, four groups, 63 matches across four boards, from the first dart to
the podium. Below is what happened — including what went wrong.
23
players, pasted out of one group chat
4
groups: one of five, three of six
63
matches, every one of them played out
68×
saved automatically, without anyone thinking about it
How it went
01
Twenty-three names
The list came out of the group chat and went in one go. Four groups came out: A with
five players, B, C and D with six. Each group got its own colour, and it kept that
colour all night — on the laptop, on the big screen and on the phones by the boards.
Two players were called Dennis. That was flagged before anything was drawn, so they
became Peter B and Peter V —
otherwise there would have been confusion all night about who was throwing where.
02
Four boards, busy all evening
The queue handed out the matches. As soon as a board came free it took the next match in
which neither player was already standing somewhere else. Nobody was expected at two
boards at once, and no board stood idle while there was still throwing to be done.
03
Two out of every group
Jeroen H won group D without dropping a single match: five from
five, leg difference +8. Martijn did the same in group A with
four from four. Groups B and C were tighter — three players finished on six points there
and the leg difference decided who went through.
Exactly what the tiebreakers are for: points, then leg difference, then legs won, then
head-to-head. In group C that separated Sander (+3),
Chris (+2) and Milan (+1), all on six
points.
04
The knockout
Eight players, a full quarter-final, no byes. Jeroen H — unbeaten
through the group stage — went out immediately, 0-3 to Bas.
Ruben saw off Peter B,
Martijn was too strong for Ivo, and
Sander knocked out group winner Wouter.
In the semis Bas beat Ruben 3-1 and
Martijn left Sander nothing: 3-0.
05
The final goes to six legs
The final was best of seven. Bas pulled it back to 2-2, but
Martijn took the last two legs. Ruben won
the third-place match 3-1 against Sander.
And the organiser? Third in group A, and no knockout. Which was precisely the point:
they spent the evening throwing instead of sitting behind the laptop.
Final standings in the four groups
The top two in every group went through. On equal points the leg difference decided, then legs for, then the head-to-head result.
Group A
| Player |
Played |
Won |
Lost |
Leg difference |
Points |
| Martijn through to the knockout |
4 |
4 |
0 |
+7 |
8 |
| Peter B through to the knockout |
4 |
3 |
1 |
+3 |
6 |
| Hans |
4 |
1 |
3 |
-2 |
2 |
| Nadia |
4 |
1 |
3 |
-3 |
2 |
| Peter V |
4 |
1 |
3 |
-5 |
2 |
Group B
| Player |
Played |
Won |
Lost |
Leg difference |
Points |
| Wouter through to the knockout |
5 |
4 |
1 |
+6 |
8 |
| Ivo through to the knockout |
5 |
3 |
2 |
+2 |
6 |
| Stijn |
5 |
3 |
2 |
+2 |
6 |
| Bram |
5 |
3 |
2 |
-1 |
6 |
| Ferdi |
5 |
2 |
3 |
-2 |
4 |
| Youri |
5 |
0 |
5 |
-7 |
0 |
Group C
| Player |
Played |
Won |
Lost |
Leg difference |
Points |
| Bas through to the knockout |
5 |
4 |
1 |
+5 |
8 |
| Sander through to the knockout |
5 |
3 |
2 |
+3 |
6 |
| Chris |
5 |
3 |
2 |
+2 |
6 |
| Milan |
5 |
3 |
2 |
+1 |
6 |
| Jeroen W |
5 |
2 |
3 |
-2 |
4 |
| Teun |
5 |
0 |
5 |
-9 |
0 |
Group D
| Player |
Played |
Won |
Lost |
Leg difference |
Points |
| Jeroen H through to the knockout |
5 |
5 |
0 |
+8 |
10 |
| Ruben through to the knockout |
5 |
3 |
2 |
+2 |
6 |
| Robin |
5 |
3 |
2 |
+2 |
6 |
| Kees |
5 |
2 |
3 |
-1 |
4 |
| Silke |
5 |
1 |
4 |
-5 |
2 |
| Daan |
5 |
1 |
4 |
-6 |
2 |
The knockout bracket
Eight qualifiers, a full quarter-final, no byes. The group stage was best-of-3, the knockout best-of-5 and the final best-of-7.
The knockout bracket
| Round |
Match |
Legs |
| Quarter-finals |
Jeroen H — Bas |
0–3 (winner: Bas) |
| Ruben — Peter B |
3–0 (winner: Ruben) |
| Martijn — Ivo |
3–1 (winner: Martijn) |
| Wouter — Sander |
1–3 (winner: Sander) |
| Semi-finals |
Bas — Ruben |
3–1 (winner: Bas) |
| Martijn — Sander |
3–0 (winner: Martijn) |
| Final |
Bas — Martijn |
2–4 (winner: Martijn) |
The final result
- 1st Martijn
- 2nd Bas
- 3rd Ruben
What the room saw that night
View On the boards — page through the whole night
Open Darts 2026
Group stage · 4 boards
None of the standings here were typed out by hand. They are calculated from the saved
tournament file, with the same code that did it on the night. The knockout results come
straight out of it.
The names on this page have been replaced for privacy; the results and standings are
unchanged.
What that night turned up
A bug nobody noticed
The prediction of the next match per board tracked which fixture had already been handed
out, but not which players. So the same player could appear under two boards. Found and
fixed afterwards, with a test that pins the behaviour down.
A lower limit that made no sense
The original brief called for at least twelve players. That came from the brief, not from
the logic: three players fill a group perfectly well. The limit now sits at three, with a
warning below twelve.
Proof that the idea holds
The most important result is not in the code. For a whole evening nobody had to sit behind
the laptop, and that is exactly what this product sells.
What the numbers show
Two groups were settled on leg difference
In group B, Ivo, Stijn and
Bram all finished on six points. The same happened in group C with
Sander, Chris and
Milan. Without a fixed order of tiebreakers there would have been
an argument about it on the night; instead it was settled in a second.
The best group winner never reached the semis
Jeroen H won group D five out of five with a leg difference of +8 —
the best group stage of the whole tournament. He went out 0-3 to
Bas in the quarter-final. That is what a knockout does, and
exactly why there is one.
Two players won nothing at all
Youri and Teun lost all five of their group
matches. But they did play five — in a straight knockout they would have been done after
one and spent the rest of the night watching. That is why there is a group stage.
What it took to run this
No special equipment and no weeks of preparation. This is what was there on the night:
- One laptop, which sat in a corner all evening and needed nobody.
- Four boards, with enough room in front that nobody walked behind a thrower.
- A projector on the wall, connected as a second screen.
- The players' own phones — no app, just an address in the browser.
- A group chat the list of names came from, and ten minutes to paste it in.
How to set that up for your own night is in the
running order, and what you get with a
different number of players is in the table on the
group draw page.
What will be different next time
01
Collect the names earlier
The list was only complete around the start, and that cost the first ten minutes. Not a
disaster, but it is the one step you can do in advance and therefore need not do on the
night.
02
Play the third-place match before the final
The last match of the evening ought to be the final. As it was, half the room was
drifting to the bar while third place was still being played for.
03
Put the hotspot password at every board
Explaining the same thing four times is three times too many. A card at each board would
have fixed it, and that is now the first item in the running order.
Why this night is written up in such detail
Every piece of tournament software shows screenshots with invented names. This is the opposite:
darttournament.app has exactly one evening behind it, and here it is in full,
with the standings calculated from it and the bug that was in it. Anyone who wants to know
whether it works does not have to believe a demo — the results above are not typed out but
computed from the file that was saved that night, with the same code that ran it.
That is also the limit of what has been proven. One evening, twenty-three people, four boards,
one room. Not a hundred tournaments, not a thousand players, not every conceivable phone. What
follows from it is above; what still has to show itself, still has to.
Fancy a night like that?
It is not for sale yet — we are building the version everyone can use. Leave your address
and you will hear when it is ready.