Back to projects

Open source project

StewardPad

Race control for Le Mans Ultimate leagues, on your own PC.

Role
Design and development
Year
September 2026

Overview

StewardPad follows the race live by reading Le Mans Ultimate's local REST API. During the race, pressing Space logs an incident stamped a few seconds back (10 by default), where the replay needs to start, and the cars are picked from the standings or with the 1 to 9 keys. If the game is closed, the app says so, retries every 5 seconds, and logging keeps working. A built-in simulator stands in for the game for training and demos.

After the race, a review queue shows every undecided incident in race order, full screen, with the league's rule book one click away. The rule book is imported from Google Docs or Word with its numbering kept (3.3.a, 3.4.b.iii), and each decision cites the rules that were broken.

For publishing, StewardPad produces a formal stewards' decisions document (web page or PDF), a penalty sheet, driver and full-log spreadsheets, a results JSON file, and posts each status change to the league's Discord. Several stewards can work the same race: each one exports their session, and importing merges them incident by incident.

The backend is Rust: one adapter isolates everything that talks to the game, the session is written atomically so a crash never leaves half a file, and the CSV exports are hand-built for Excel. The UI is React on Tauri 2, and every release published on GitHub is signed and offered as an in-app update.

Highlights

  • One-keypress incident logging, stamped where the replay needs to start
  • Live standings from Le Mans Ultimate's local REST API, with a built-in simulator
  • Review queue and a league rule book imported from Google Docs or Word
  • Stewards' decisions document, results sheets and live Discord announcements
  • Session merging across several stewards, signed in-app updates

Stack

  • Rust
  • Tauri
  • React
  • TypeScript
  • Vite
  • SCSS
  • Tiptap