DEV Community

Cover image for I Rebuilt the Ergast F1 Database with Live Data (and Here's What I Learned)
OPTIDATA IA
OPTIDATA IA

Posted on

I Rebuilt the Ergast F1 Database with Live Data (and Here's What I Learned)

For years, the Ergast Motor Racing Database has been a go-to reference for Formula 1 data — structured, clean, and widely used by developers, educators, and data enthusiasts.

Unfortunately, it stopped receiving updates after the 2024 season.

While working on a personal project to learn how to design and deploy an API around sports data, I stumbled across this gap. Many tools, notebooks, and learning resources were still depending on Ergast’s schema… but without updated data, their value started to fade.

That’s where RaceOptiData comes in.

What I Built

I developed a pipeline to collect data from public APIs, validate and clean it, and map it onto the familiar Ergast schema. The idea was simple: build a compatible database, keep it updated, and make it downloadable.

Today, the project offers:

MySQL and CSV dumps, available for download

Structured in the exact schema Ergast used

Up-to-date data, latest dump after the 2025 Hungarian Grand Prix

You can explore it here → https://www.raceoptidata.com

Tech Stack

I used this project as a training ground to sharpen and combine several technologies:

Python – for data extraction, transformation, and orchestration

Azure – for storage, automation, secure delivery (Functions, Blob, Tables)

Stripe – for a simple, secure checkout system (with fallback mechanisms)

C# / ASP.NET – for the upcoming API layer

MySQL – to replicate the Ergast schema and prepare structured dumps

The frontend is a simple static site. No frameworks, just enough JS to manage checkout and download UX.

What I Learned

This wasn’t just a data dump. Along the way, I had to figure out:

How to design a robust pipeline for live sports data

How to handle download links securely, with expiring tokens and storage

How to structure clear, reusable data outputs

How to deal with email deliverability, Stripe webhooks, CORS, and a dozen edge cases

Also: how to explain what you’re building without sounding like a crypto bro selling vaporware.

What's Next

I’m working on a full REST API to expose this data dynamically, still using the Ergast schema (+ data from fastF1). Some goals:

Developer-friendly endpoints (docs included)

Tiered access (open/free and authenticated)

Support for bulk queries and custom filters

Feedback Is Welcome

I built this because I needed it — but I’d love to hear from others who might too.

If you’re working on F1 tools, doing analysis, building dashboards, or just tinkering with motorsport data… maybe this helps. I’d be happy to get your feedback or ideas.

You can explore or download the current version here: https://www.raceoptidata.com

Thanks for reading!

— Jérôme / RaceOptiData

Top comments (0)