Open source · MIT
Multimodal trip planning for any city.
opentransit turns a city's open transit data into apps people want to use: bus, cable car, shared bikes and walking in one itinerary, with live vehicles and estimated fares. No API keys, no lock-in.
What it looks like, on live Bogotá data






What you get
Multimodal planner
OpenTripPlanner 2 combines bus, cable car, rail, own bike, shared bike and walking in one itinerary, with depart/arrive time and an accessible option.
Live vehicles
GTFS-Realtime fetched once by the API and fanned out over SSE with deltas; markers interpolated and tinted by ETA.
Arrival board & "Locate my bus"
Next arrivals grouped by route and the station → route → next buses flow, always saying what is live and what is scheduled.
Shared bikes (GBFS)
Any GBFS system plugs in through configuration: rental legs with availability, price and stations on the map. N networks per city.
Alerts & freshness
Feed alerts with severity, a home carousel, and honest labels when realtime fails.
Estimated fares
When the GTFS has no fares, a configurable flat fare per city, always labelled as estimated.
Favorites & recents
Home, Work, stops and routes with live context. Local to the device, no account.
Admin panel
Fares, flags, links, services, brand, mobility and landing editable at runtime, with history.
Per-city landing
A white-label public page generated from each city's configuration.
PWA + iOS + Android
Installable web app and a Flutter app with universal links, follow-along mode and remote forced updates.
Architecture
Three independent repositories, one router per city and open data as the only input. One API instance serves several cities; each city is a YAML file.
Built on open data
GTFS
routes, stops, timetables
GTFS-Realtime
positions, trip updates, alerts
GBFS
shared bikes and scooters
OpenStreetMap
streets, bike lanes, services; OpenFreeMap basemap
Bogotá, Colombia
TransMilenio, SITP and TransMiCable (GTFS + GTFS-Realtime, ~6,000 buses) and the public bike system (GBFS, 252 stations).
Add your city
One YAML, a GTFS feed and an OpenStreetMap extract. We will help you through it.
How to add a cityRepositories
- opentransit-api
Multi-tenant backend: GTFS, GTFS-RT, GBFS, OpenTripPlanner, editable config.
Python · FastAPI · PostGIS
- opentransit-web
Web app (PWA), admin panel and per-city landing.
Next.js · MapLibre
- opentransit-mobile
iOS and Android app.
Flutter · MapLibre
Why
Open data
Only public, openly licensed feeds. If your city publishes GTFS, it can use it today.
No lock-in
Nothing proprietary in the path: OpenTripPlanner, MapLibre, OpenFreeMap, Photon. Every piece is replaceable by configuration.
Cities own it
Each city deploys its own instance, with its brand, its panel and its data.
Honest with users
Estimates are shown as estimates; unverified data as unverified.
Join in
Cities, agencies, developers and designers. Open an issue, propose a city or send a pull request.