Warning
This is a work in progress. Some features are still missing/broken.
The best website to check the status of your train (and bus).
If you'd like to try a hosted version of the API, you can read the API Documentation. You can also host your own version using the prebuilt container images linked to this repository.
A realtime transit map is available at trainstat.us/map.
- Blazingly fast 😼😼😼😼
- Real-time alerts and arrivals for various transit agencies
- Works offline
- Installable as a PWA
- Shallow routing between modals so you never lose your place
- Shareable links for your trip
- Works on mobile and desktop
- No ads or tracking (your geolocation data never leaves your device)
- View transit data at a specific point in time
- Simple JSON API that you can use to develop your own applications.
- Automatic vector tile layers for spatial data using Martin.
| Agency | Status |
|---|---|
| MTA Subway | |
| MTA Bus | |
| NJT Bus | |
| NJT Rail | 🚧 |
| LIRR | 🚧 |
| MNR | 🚧 |
- ✅: Pretty much complete
⚠️ : Working on it- 🚧: Not started yet
- Use the prebuilt container images linked to this repository.
- Required environment variables are listed in
backend/README.mdandfrontend/README.md. - Requires PostgreSQL with PostGIS and Valkey/Redis.
- See
compose.test.ymlfor example deployment with traefik. You will need to update the URLs inside ofgeo/styles/<style>.jsonto match the URL you are hosting it on.
- Podman (Docker can be used, but tasks use podman)
- Mise
- BusTime API Key
- NJT Developer Account
- Clone the repository
- Run
mise ito ensure all tools are installed - Set environment variables as listed in
backend/README.mdinside abackend/mise.local.toml - Run
mise //geo:buildto build valhalla and basemap tiles - Run
mise //geo:exportto export tiles to your machine for local development. - Start dbs, backend, and frontend with
mise dev