What it does:
- Live timing: Real-time data updates in milliseconds - sector times, telemetry, team radio, you name it. No more refreshing pages or waiting for delayed updates.
- Replay feature: Missed qualifying or fell asleep during practice? You can replay the live timing from any past session. Pretty handy when you're in a bad timezone.
- Proper data visualization: I went beyond just showing lap times. There's race analysis with telemetry data, championship standings, technical updates, and a bunch of other stats that make watching races way more interesting. Oh, and the race calendar automatically adjusts to your timezone because I was sick of doing timezone math in my head.
- Multi-device setup: Here's the thing - I watch races on my TV but wanted data on my phone as a second screen. So I spent ages making the mobile experience smooth for exactly this use case. Desktop has customizable widgets if you're into that.
Technical stuff:
Built with modern web stack, focused heavily on real-time performance. The trickiest part was getting the data pipeline right for millisecond updates without everything falling apart.
Why I built this: Honestly, existing F1 apps either suck or cost money or both. I wanted something that just works and gives me all the data I actually care about in one place.
Been using it myself all season and figured others might find it useful. Currently supports English, Spanish, Japanese, and Korean (partially) - still working on expanding language support. Would love to hear what you think if you check it out during the next race weekend.
Definitely giving it a test run during the race tomorrow!
The big problem I had was desync. Every 5-10 minutes, random parts of the interface would stop updating. Sometimes the whole page would blank out. I was able to fix it once by loading one of the other panels (like the FIA docs) and then going back to the live data. Eventually it broke and I wasn't able to fix it (around lap 18 or so). Thinking maybe sockets aren't reconnecting when their connection drops from the client side? And it seemed like there was some issue that prevented it from fixing with a simple refresh.