Skip to content

shvmmshr/f1lytics

Repository files navigation

F1LYTICS

A modern Formula 1 dashboard for the 2026 season: live timing, standings, driver analytics, telemetry, and more.

Live SiteFeaturesTech StackGetting Started

MIT License Next.js 16 TypeScript Tailwind CSS 4


F1lytics Preview


Features

  • Live Timing: Real-time session timing straight from Formula 1's official live feed, with positions, gaps, intervals, tyre data, and race control messages.
  • Race Review: Replay the timing tower and full classification of any completed session, powered by OpenF1.
  • Driver Standings: Full championship standings with points breakdowns and position-history charts.
  • Constructor Standings: Team rankings with per-driver contribution breakdowns.
  • Race Results: Detailed results for every Grand Prix, including lap charts, tyre strategies, and fastest laps.
  • Driver Profiles: Career stats, recent form, and season performance for all 22 drivers.
  • Team Profiles: Constructor details with driver lineups and historical performance.
  • Circuit Guide: Every 2026 circuit with an interactive 3D globe, track maps, lap records, and key stats.
  • Session Schedule: FP1, FP2, FP3, qualifying, sprint, and race times shown in the visitor's local time, switchable to any timezone.
  • Race Calendar: An interactive timeline of the full 2026 season with a countdown to the next event (sprint-aware).
  • Head-to-Head Compare: Compare any two drivers across stats, qualifying pace, points progression, and recent form.
  • F1 News: Aggregated headlines from BBC Sport, Motorsport.com, Autosport, The Race, and PlanetF1.
  • Responsive Design: Fully optimized for desktop, tablet, and mobile, with smooth GSAP scroll animations.

Tech Stack

Category Technology
Framework Next.js 16 (App Router, ISR)
Language TypeScript 5 (strict mode)
Styling Tailwind CSS 4
Animations GSAP 3 + ScrollTrigger, Framer Motion
Charts Recharts 3
3D Three.js + React Three Fiber
Data Jolpica-F1 API, OpenF1 API, F1 live timing
UI Components Radix UI, Lucide Icons
Analytics Vercel Analytics, Vercel Speed Insights
Deployment Vercel

Getting Started

# Clone the repo
git clone https://github.com/shvmmshr/f1lytics.git
cd f1lytics

# Install dependencies
pnpm install

# Start the dev server
pnpm dev

Open http://localhost:3000 to view it.

No environment variables are required. All data comes from free, public APIs.

Project Structure

src/
├── app/
│   ├── (marketing)/       # Landing page
│   ├── (season)/          # Standings, calendar, drivers, teams, circuits, races, news
│   ├── (live)/            # Live timing and race review
│   ├── (tools)/           # Head-to-head compare tool
│   └── api/               # Route handlers: live data, SSE relay, news, revalidation
├── components/
│   ├── charts/            # Recharts visualizations (position, lap times, tyre strategy)
│   ├── home/              # Landing page sections (hero, countdown, calendar, news)
│   ├── layout/            # Navbar, footer, page transitions
│   ├── live/              # Live timing UI (replay banner and more)
│   ├── shared/            # Reusable UI (badges, cards, headers, session schedule)
│   └── ui/                # Base UI primitives (shadcn/ui)
├── hooks/                 # Live session polling and live-stream SSE hooks
└── lib/
    ├── api/               # API clients (Jolpica, OpenF1, news)
    └── constants/         # Season data (circuits, drivers, teams, schedules)

Data Sources

Source Usage
Jolpica-F1 API Historical data: standings, race results, qualifying, lap times
OpenF1 API Session data: positions, intervals, tyres, telemetry, weather
F1 live timing Real-time timing during sessions, relayed as Server-Sent Events
RSS feeds Aggregated F1 news from major motorsport outlets

All data sources are free and require no authentication. Responses are cached with Next.js ISR (Incremental Static Regeneration) using per-route revalidation intervals.

Deployment

Deploy your own instance with one click:

Deploy with Vercel

Contributing

Contributions are welcome. Here is how:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License. See the LICENSE file for details.


If you found this useful, consider supporting the project!

GitHub Sponsors   Buy Me a Coffee   GitHub stars

About

A modern Formula 1 dashboard for the 2026 season. Live timing, standings, driver analytics, and more.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors