Home
AF - Home
Back to work

Splits

Formula 1 live timing, Grand Prix replays, standings, calendar and games.

Role
Product design, architecture, fullstack development, infrastructure and deployment
Year
2024 - 2026
Stack
  • Next.js
  • React
  • TypeScript
  • Tailwind
  • Upstash Redis
  • Vercel
Splits - live timing, classements et calendrier F1

Overview

Context

Splits came out of a personal need: follow the Formula 1 season without ads or pop-ups. It grew from a simple standings table into a full PWA with Grand Prix replays, race-weekend weather, aggregated news and mini-games, built continuously since November 2024 and published on the Play Store as an Android TWA.

Challenges

  1. 01

    Replaying an entire Grand Prix

    Every race and sprint is replayable: an animated track map driven by GPS telemetry, a timing tower, race control messages, tyre strategy and pit stops, with playback speed control and scrubbing.

  2. 02

    Three sources, one data model

    The calendar, standings, results and telemetry all come from different sources. An adapter layer reconciles them.

  3. 03

    A cache per data cadence

    Not all content ages the same way: the schedule revalidates every 12 hours, results freeze for 7 days, news sits in Redis for 30 minutes with Jaccard-similarity deduplication, historical weather lasts 7 days against 3 hours for forecasts. The site stays static most of the time and the free APIs stay within quota even on a race Sunday.

Outcome

A website and an app available on the Play Store, both checked every race weekend. ~22,000 lines of TypeScript, 55 test suites (Jest + Testing Library), quality tracked with SonarQube, and an accessibility pass on contrast and touch targets.

Next project

Picture Organic Clothing