back to the projects

Tournoi de Palets

An Excel file with macros, replaced by a TV and a QR code

Tournoi de Palets: the TV screen with current matches and a QR code, the organiser console, and a phone showing a team's next board
Tournoi de Palets

Overview

The CJVHB, my old handball club in Chantonnay, holds a palets tournament every year. Palets is a game from the Vendée where you throw metal discs at a wooden board. There are 48 teams of two, playing to 13. Organisers check teams in and type the scores into a console on a laptop. A TV in the room cycles through the current matches, the standings and the brackets, with a QR code always on screen. Players scan it, pick their team, and their phone shows their board and opponent. The first real tournament on it is on 19 December 2026.

Why I built this

The club ran this tournament on an Excel file with macros. I played handball there and I still know everyone, so I built them something that does the draws and the brackets by itself, with no paper in the room.

Features

  • Phone view through a QR code. The QR code stays on the TV all day. Scan it, pick your team once, and the phone remembers it: next board, opponent, results, then your final place and prize. No app, no account.
  • A TV for the whole room. It rotates every 12 seconds between current matches, pool standings, brackets and the final ranking, with the countdown on the side. An organiser can lock it on one view from the console.
  • A console for the organisers. Check-in and payment in one action, scores typed in as players announce them at the table, palet deposits, and a journal of every change. It takes a shared password and works from several laptops.
  • Draws and brackets on their own. Four pool rounds drawn at random with no repeat opponent, then a main and a consolation bracket, each with a challenge for first-round losers. Every team plays at least six games and every place from 1 to 48 is ranked.
  • Live, and easy to rehearse. Scores reach the TV and the phones over WebSocket. A test edition generates fake teams and random scores, so a whole tournament can be run through in a few minutes before the real day.

Tech stack

Frontend

React 19 TypeScript Vite

Backend

Node 24 Fastify 5 WebSocket SQLite Event sourcing Vitest

Infrastructure

Docker Compose Caddy GitHub Actions