Skip to content

About

Native iOS and Android apps, a web app and a FastAPI backend for exploring historical Formula 1 data

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RaceControl 🏁

Modern, native iOS and Android apps and a web app for exploring historical Formula 1 data: drivers, teams, circuits, standings, full session results, telemetry and a lap-by-lap race replay, powered by the FastF1 library (2018–present).

Backend CI Android CI iOS CI Web CI Site CI Docs CI License: MIT

Documentation · Website · Discussions · Report a bug

What's in the repo

Piece Tech Folder
iOS app Swift · SwiftUI (iOS 17+) RaceControlApp/
Android app Kotlin · Jetpack Compose (Android 8+) RaceControlAndroid/
Web app TypeScript · Next.js RaceControlWeb/
Data backend Python · FastAPI · FastF1 backend/
Project site TypeScript · Next.js RaceControlSite/
Documentation VitePress RaceControlDocs/

Same backend, same data, same features. The iOS, Android and web apps are independent clients, each following its own platform's conventions rather than one being a port of another.

Quick start

Start the backend first. Every client needs it. Requires Python 3.10+.

git clone https://github.com/Race-Control-HQ/Race-Control.git
cd Race-Control/backend
./run.sh            # creates a venv, installs deps, starts the API on :8000

Open http://localhost:8000/docs for the interactive API docs. A local backend needs no configuration and no auth.

Then run whichever client you want:

Client Requirements Run it
iOS Xcode 16+ Open RaceControlApp/RaceControl.xcodeproj, pick a simulator, press ⌘R
Android Android Studio with AGP 9.4 support, JDK 17 cd RaceControlAndroid && ./gradlew assembleDebug, or open the folder in Android Studio
Web Node 20+ cd RaceControlWeb && cp .env.example .env.local && npm install && npm run dev

Full instructions for each piece, including physical devices and pointing the apps at your own backend, are in Getting Started.

Documentation

Everything in depth lives at docs.getracecontrol.com:

Getting Started Run the backend and each client locally
Features What the apps do, and where the platforms deliberately differ
API Reference Every backend endpoint
Architecture How one backend feeds three clients
Self-Hosting Deploy your own copy, with environment variables and device attestation
Contributing Development setup, CI, pull requests
Help Troubleshooting and common questions

The docs are built from RaceControlDocs/. Every page has an "Edit this page on GitHub" link.

Community

  • 💬 Questions and ideas: GitHub Discussions
  • 🐛 Bugs and feature requests: open an issue using the matching form
  • 🔒 Security issues: report privately, as described in SECURITY.md. Please do not open a public issue.
  • 🤝 Code of conduct: everyone taking part is expected to follow the Code of Conduct

Contributing

Issues and pull requests are welcome, and most changes touch only one piece of the repo. The contributing guide covers setup, the checks CI runs and what a good pull request looks like. For anything larger, open an issue to talk through the approach first.

Data and attribution

Data is sourced live by FastF1 from the F1 live-timing API and the Ergast/Jolpica database. This is an unofficial project and is not associated with Formula 1 companies. F1, FORMULA 1 and related marks are trademarks of Formula One Licensing BV.

License

Released under the MIT License.

About

Native iOS and Android apps, a web app and a FastAPI backend for exploring historical Formula 1 data

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages