A free, open-source web app called F1 Replay Timing lets Formula 1 fans follow sessions with live timing data, car positions on track and driver telemetry, both during race weekends and when replaying past sessions. According to the project page on GitHub, the app is built with Next.js and FastAPI and can be run on a personal machine or a cloud host as a single container.
What the app shows
The app brings several layers of race information into one browser window. Its live timing feature, still labelled Beta, connects to the F1 live timing stream during race weekends and includes a broadcast delay slider so viewers can line up the data with what they are watching on television. It also detects when a session has ended and switches to a replay.
The track map is one of the central views. Car positions are drawn from GPS telemetry and refreshed every half second, with smooth interpolation between updates. Marshal sector flags and corner numbers can be toggled on and off.
Alongside the map, a driver leaderboard displays position, gap to the leader, interval, last lap time, tyre compound and age, pit stop count and a live pit timer. Race control messages, such as steward decisions, investigations, penalties and flag changes, appear in a draggable overlay, with optional sound alerts.
- Pit position prediction estimates where a driver would rejoin the race if they pitted now, using pit loss times for each circuit.
- Telemetry for any number of drivers, covering speed, throttle, brake, gear and DRS, plotted against track distance.
- Lap Analysis (Beta), which compares lap times for up to two drivers in replays.
- Picture-in-Picture mode for a compact floating window.
- Playback controls from 0.5x to 20x speed, with skip buttons, lap jumping and a progress bar.
Replays and broadcast sync
Replay mode covers races, qualifying, sprint qualifying and practice sessions from 2024 onwards. Because the app can align data with a recording of a session, viewers who have downloaded a broadcast can match the timing to the video. There are two ways to do this. Users can enter gap times manually, or, if they set up an OpenRouter API key, upload a screenshot of the timing tower and let a vision model read the leaderboard. The project page says the photo option uses Gemini Flash, and that any OpenRouter-compatible key will work.
The app also offers weather readings, including air and track temperature, humidity, wind and rainfall, along with track status flags for green, yellow, Safety Car, Virtual Safety Car and red flag conditions. Users can switch units to Fahrenheit and miles per hour in settings, and a passphrase option can restrict access when the app is hosted publicly.
How it is built and hosted
The front end is written in Next.js and React with Tailwind CSS and is compiled into static files. The FastAPI back end serves the API, the WebSocket endpoints and those static files from a single port. The project page stresses that this design avoids cross-origin configuration, so there is no CORS setup and no separate URLs to manage.
Data is handled in a different way. The project uses FastF1, an open-source Python library for Formula 1 timing and telemetry, but only during data processing. Processed sessions are stored locally or, optionally, in Cloudflare R2 storage. The project page recommends R2 for cloud platforms with temporary file systems, since local data could be lost on redeploy.
Processing times
According to the project documentation, the first time a session is opened it is processed on demand, which takes one to three minutes. Later loads are close to instant. Bulk processing takes longer:
- A single session takes one to three minutes.
- A full race weekend, from the first practice session to the race, takes three to five minutes.
- A complete season of roughly 24 rounds takes two to three hours.
On race weekends, a background task checks for new session data every 30 minutes and processes it ahead of time, based on settings in the environment file.
Context for readers
The project is free and non-commercial, and it is maintained by one developer in spare time, who accepts support through Ko-fi. Its page also makes clear that it is unofficial and not associated with the Formula 1 companies. The F1 name and related marks belong to Formula One Licensing B.V.
For fans, the appeal is control. Many timing tools show only a single view of the race, whereas this app combines the map, leaderboard, race control messages and telemetry in one place. For developers and hosts, the single-container design is the key draw, because it simplifies deployment on services such as Railway, Render or Fly.io.
The app remains labelled as Beta for its live timing and lap analysis features, so users should expect changes as the project develops. Its replay tools, however, are already documented in detail, and the project page gives clear setup steps for anyone who wants to run it locally.
Related: Lightweight Server Monitoring: Beszel Adds Docker Stats and Alerts · Termix: Free Self-Hosted Server Management Platform Built on Plugins
Comments (0)