Funko Pop

About Me

Sudip Shrestha

Data Analyst & AI Engineer based in Canada - building data systems, dashboards, and AI-powered tools.

The person behind this

I'm a Data Analyst and AI Engineer with a passion for turning raw data into clean, meaningful experiences. I work across the full stack of data - from pipelines and databases to interfaces people actually enjoy using. I believe good data visualisation should feel effortless: the insight should land before the chart needs explaining.

This project started as a personal challenge to explore public sports APIs and ended up as a full analytics dashboard covering 27 years of Formula 1 data. It's also a reflection of how I approach side projects - ship something real, keep it clean, and care about the details.


What is F1. Analytics?

F1. Analytics is an open, browser-based dashboard that makes 27 years of Formula 1 data explorable in one place. No account, no subscription, no paywall. Past seasons (2000–2025) load from a Supabase database in under a second. The current season fetches live from the Jolpica F1 API so it's always up to date.

The interface is intentionally minimal - the data should be the focus, not the chrome around it. Every interaction, animation, and layout decision was made to get out of the way and let the numbers speak.

27 Seasons covered
500+ Races indexed
6 Charts per season
2 Data sources

What's included

Race Results

Full race-by-race results for every season - winner, team, grid position, and date. Expandable drill-down per race with qualifying and top 10 finish side by side.

Qualifying

Pole position per round with Q1/Q2/Q3 lap times where available, going back to the introduction of knockout qualifying in 2006.

Driver & Constructor Standings

Final championship standings for every season, with points, wins, and team colour coding matched to each constructor's livery.

Grid → Finish

Per-race slope chart showing every driver's movement from starting grid position to finishing position - coloured by team, with gained/lost deltas. Available for all seasons back to 2000.

6 Analytics Charts

Championship battle, race wins, constructor points share, grid vs finish scatter, positions gained/lost, and teammate head-to-head - all interactive.

Season Records

Most positions gained in a single race, longest win streak, most DNFs, most poles, and pole-to-win conversion rate - all derived from existing season data, no extra API calls.

Champion vs Runner-up

Head-to-head comparison strip between the season champion and P2 - points, wins, poles, podiums, and race H2H with visual bar breakdowns.

Dark Mode

Full light/dark theme with system preference detection and localStorage persistence. Charts, tooltips, and all UI elements switch cleanly.


Built with

Vanilla HTML, CSS, and JavaScript - no build step, no framework, no bundler. Chart.js handles all six charts. Past seasons are stored in a Supabase PostgreSQL database seeded from the Jolpica API. The current season fetches live with parallel requests and automatic rate-limit retry. Fonts from Google Fonts.

HTML CSS JavaScript Chart.js Supabase Jolpica F1 API GitHub Pages Lora JetBrains Mono