Documentation
opentransit is an open-source, multi-city, multimodal trip planner. It takes the data a city already publishes (GTFS, GTFS-Realtime, GBFS, OpenStreetMap) and delivers a web app, a mobile app and an admin panel, with no API keys and no proprietary services.
Where to start
Section titled “Where to start”- Getting started: run the full stack locally in about 10 minutes.
- Architecture: what each repository does and how data flows.
- Adding a city: one YAML file and a GTFS feed.
- API reference: the contract the web and mobile apps consume.
The three repositories
Section titled “The three repositories”| Repository | What | Stack |
|---|---|---|
| opentransit-api | Multi-tenant backend: city registry, GTFS ingest, live GTFS-RT, bike-share (GBFS), routing via OpenTripPlanner, runtime-editable config | Python 3.12 · FastAPI · PostgreSQL/PostGIS · OpenTripPlanner 2.9 |
| opentransit-web | Web app (PWA) + admin panel + per-city landing | Next.js 15 · React 19 · TypeScript · Tailwind · MapLibre GL |
| opentransit-mobile | iOS/Android app | Flutter 3.41 · maplibre_gl · Riverpod · go_router |
All MIT licensed. In production in nine cities on five continents: Bogotá (TransMilenio, SITP, TransMiCable, public bikes, paid-parking zones with live spaces and the cadastre’s geocoder), Toronto, Boston, Santiago de Chile, Rome, Lisbon, Casablanca, Kuala Lumpur and Brisbane, each at <city>.opentransit.tech. The interface comes in seven languages: Spanish, English, Portuguese, French, Italian, Malay and Arabic.