WORK / CASE STUDY / APEX F1

INDEPENDENT F1 DATA PRODUCT

APEX F1

I built the Formula 1 product I wanted to use: one place to scan the current season, revisit every Grand Prix since 1950 and replay telemetry-rich races from 2018 onward.

Apex F1 home page introducing race history, analytics and live timing
Every lap. Every apex. Every story.
MY ROLEProduct strategy · UX · Full-stack build
TIMELINEFeb—Jun 2026
PROJECT TYPEIndependent personal project
STATUSWorking product
SIGNAL
PROBLEM
DECISION
PRODUCT
LEARNING

— PROJECT SNAPSHOT

60-SECOND READ
01 / THE PROBLEM

Fans must switch tools for live context, historical exploration, and telemetry

02 / MY ROLE

Product strategy, UX, and full-stack build

03 / KEY DECISION

Layer the experience (scan, explore, replay) to manage information density

04 / PRODUCT

Integrated Formula 1 data platform

05 / EVIDENCE

No formal user testing; independent project

06 / STATUS

Working product; usability unvalidated

01

Signal

As an F1 fan, I could follow the current championship or dig through historical data—but the journey between live context, archive and telemetry was fragmented.

1950—presentRACE HISTORY
2018—presentTELEMETRY REPLAYS
1 productSCAN TO DEEP DIVE
PERSONAL SIGNAL

The useful view changed with the question.

On race weekends I wanted a fast read of standings and momentum. When curiosity went deeper, I wanted seasons, constructors, drivers and individual races without starting over in another tool.

PRODUCT OPPORTUNITY

Connect the layers instead of adding another dashboard.

The opportunity was an information system that could begin with the current race story and progressively reveal decades of results, entity profiles and telemetry.

02

Problem

The challenge was not a lack of Formula 1 data. It was creating continuity across very different depths and eras of that data.

REFINED PROBLEM STATEMENT

How might I connect the live season, every Grand Prix since 1950 and telemetry-driven race replay in one coherent product—without turning the first screen into a dense statistics terminal?

INFORMATION MODES

Quick season scan, historical exploration, entity comparison and lap-by-lap replay each require a different density.

DATA AVAILABILITY

Race records span 1950 onward, while the richer telemetry required for simulations is available from 2018.

SYSTEM DEPENDENCY

Current results, historical APIs, FastF1 telemetry and AI interpretation have different reliability and latency profiles.

01SCAN

Current race, standings and next event

02EXPLORE

Seasons, teams, drivers and race records

03REPLAY

Lap, position, conditions and race events

03

Decision

I chose a layered system: a quick entry point, a consistent historical archive and a separate telemetry mode for races that support it.

OPTION A

Static results archive

Historically useful, but weak for live context and the feeling of how a race unfolded.

REJECTED AS THE WHOLE PRODUCT
OPTION B

Live dashboard only

Immediate on race weekend, but it loses the depth and return value of Formula 1 history.

REJECTED AS THE WHOLE PRODUCT
OPTION C

Layered race intelligence

Start with the current story, then reveal archive, profiles, comparisons and telemetry on demand.

CHOSEN PATH
DECISION 01 · ARCHIVE

One chronological spine from 1950 to today.

A consistent season-and-race structure makes history navigable before asking the user to understand every available statistic.

DECISION 02 · REPLAY

Reconstruct recorded telemetry—not fictional race movement.

FastF1 supplies the telemetry foundation. I transformed it into synchronized track position, lap state, leaderboard, weather, tire, speed, gear and DRS views with playback controls.

DECISION 03 · AI

Keep interpretation separate from recorded race data.

The Technical Whiteboard is an experimental comparison layer. Its generated narratives are presented as synthesis, not as official timing or verified historical fact.

04

Product

The working product supports three depths: understand what is happening now, explore what happened before, and replay how a supported race unfolded.

01

RACE NOW

Latest result, next race, standings and season momentum.

02

EXPLORE HISTORY

Every season from 1950 with races, champions, teams and drivers.

03

REPLAY TELEMETRY

Telemetry-driven race replays from 2018 with synchronized conditions and events.

04

COMPARE

Driver profiles, teammate context and experimental AI synthesis.

Apex F1 telemetry-driven race replay with track positions, conditions, driver telemetry, leaderboard and playback controls
Telemetry replay · 2018—presentTrack position, lap and race time, weather, tire compounds, driver state, DRS, leaderboard and playback controls remain synchronized.
Apex F1 Technical Whiteboard comparing Formula 1 drivers
Experimental Technical WhiteboardA modular driver-comparison surface that keeps AI-generated interpretation visually distinct from recorded statistics.
01React + TypeScript
02TanStack
03Node API layer
04FastAPI service
05FastF1 telemetry
06Interactive replay
BUILT WITHReact 19TypeScriptTanStack Router + QueryTailwindRechartsNode + ExpressPython + FastAPIFastF1Vercel
05

Learning

Building across live, historical and telemetry systems made the limits of the data as important as the interface.

WHAT WORKED

The scan → explore → replay hierarchy gives the product one clear entry point without removing depth for a more invested fan.

DATA LEARNING

A 1950–present archive and 2018–present telemetry layer cannot be treated as one uniform dataset. Capability has to be communicated at the race level.

TECHNICAL LEARNING

Replay required more than plotting cars: timing, positions, tire stints, weather, race status and controls had to stay synchronized as one stateful experience.

LIMITATION

The product has not been formally user-tested. AI comparisons are experimental, and external data availability can affect live and telemetry features.

NEXT PROJECTPRISM