Skip to content
Formula 1, at the apex

APEX

Every lap. Every era. One tab.

A real-time Formula 1 platform fusing live timing, 75 seasons of data, and grounded AI analysis. Built solo, run at zero a month, and it never fakes a number.

1950
2026
0laps
0lap-by-lap timings
0races, across 75 seasons
0+unified live data sources
$0per month, free tier
The problem

Six tabs. One race.

A serious fan runs six tabs at once. Official timing. Wikipedia for history. X for the news. A stats site for records. YouTube for the clips. A weather app for the race. Nothing connects.

History sites are slow, ugly, or paywalled. Live timing lives in a walled garden. Context is scattered everywhere. Apex is the one tab: live now, seventy-five years back, news, and grounded AI, on a single cinematic surface.

The one that stops you

Live pulse, meet total recall.

Real-time positions, intervals, tyre stints, and weather stream to the browser over OpenF1. One click away sits the entire 1950 to 2026 archive. Go from who is leading this lap to every lap of the 1988 title decider without leaving the page.

Overview film
Grounded AI

AI that only ever enriches. It never invents.

Every model is fed real facts and told to use only those facts. It summarizes, it never generates a statistic. That discipline is the soul of the product.

Apex Dossier

in
Career stats + Wikipedia extract
via
Llama 3.3 70B, Groq
out
A two-sentence factual scouting dossier
speed
Sub-second

Race Brief

in
Upcoming race + live standings
via
Llama 3.3 70B, Groq
out
A three-sentence what-to-watch
speed
Sub-second

News Sentiment

in
Headline text
via
Hugging Face
out
A sentiment signal per story
speed
About 1s

Hero Image, fallback only

in
Text prompt
via
HF text-to-image
out
A backdrop only when no real photo exists
speed
Seconds
“If a number is on Apex, it is true, or the screen stays empty.”
Everything, in one tab
01

Live timing and telemetry: positions, gaps, tyre stints, and weather, streamed live over OpenF1 SSE.

02

The archive: every race, result, qualifying session, pit-stop, and lap, from 1950 to 2026.

03

Driver and team profiles: full careers across every era, championships to biographies.

04

Race Lab: deep-dive analysis surfaces for any session, past or present.

05

Multi-source news, deduped across five providers with zero synthetic filler.

06

Grounded AI dossiers and race briefs, built only from real stats, never hallucinated.

07

A predictions game scored against real results, a curated video hub, a race-week newsletter.

08

Security-hardened, and run at zero rupees a month on free infrastructure.

The reel
Vertical cut

The one-tab F1 obsession.

  • Live timing and the full archive, side by side on one surface.
  • Seventy-five seasons, 1,171 races, 592,281 laps, all real.
  • Grounded AI dossiers and race briefs, never a fabricated stat.
System architecture
01Jolpica, OpenF1, Ergast
02Typed API client
03Live RSC reads
04Cron ingestion workers
05Supabase Postgres
06Grounded AI, Groq + HF
07Vercel edge
The one rule
  • No synthetic fallback
  • Real, or the screen stays empty
Hardened
  • Row-level security
  • Basic-auth admin
  • Per-IP rate limiting
  • CSP
Stack
  • Next.js 16 RSC
  • Drizzle ORM
  • Turborepo monorepo
  • Free tier throughout
Why this one

The one that is closest to me.

I fell for Formula 1 the way you fall for anything that moves that fast. The speed first. Then the people. I grew up on the Max and Lewis era, and 2021 did something to me I still cannot put into words. Two drivers who could not stand to lose to each other, a whole season down to the last lap in Abu Dhabi. I watched it on my feet, shouting at a screen.

It was never only about them. It was the strategy, the history, the fact that a race from decades ago can still start a real argument today. Somewhere in all of that, something clicked, and I started building the F1 product I always wished existed.

The night that nearly broke me was the data. I was pulling the entire sport onto my own machine, 1950 to now, every single lap. The ingestion kept dying. Rate limits, silent gaps, half-loaded seasons at three in the morning. I kept rewriting it until it was real and complete, because the one line I refused to cross was fake data.

And I run the whole thing on zero rupees a month. Keeping something this big alive, honest, and free is genuinely hard, and doing it anyway is the point. This is where I start, not where I stop.

The deck, 14 slidesDownload PDF

Open every lap. Every era.

All work