Live BART departures, saved commute routes, train-position hints, and a mobile-first map in a fast installable PWA.
Live App: bartonic.arun0009.workers.dev
| Platform | Steps |
|---|---|
| iPhone (Safari) | Open the Live App → Tap Share → Add to Home Screen → Add |
| Android (Chrome) | Open the Live App → Tap menu → Install app / Add to Home Screen → Confirm |
| Desktop (Chrome/Edge) | Open the Live App → Click the install icon in the address bar → Confirm |
If install does not update immediately
- Remove any old app icon from the home screen.
- Open the site in the browser and refresh once.
- Install again from the browser menu or share sheet.
BARTonic is designed for the everyday Bay Area rider: open the app, check your next train in seconds, and make better commute decisions in real time.
- My Routes - Save commute pairs and get live countdowns every 15 seconds.
- Add Route - Create one-way or return routes with quick station search.
- Quick Lookup - Check any origin to destination with transfer-aware departures.
- Train Position - See where your train is right now using GTFS-Realtime hints.
- System Map - Pinch/zoom and drag the BART map with a clean mobile UI.
- Installable PWA - Add to home screen on iOS/Android/desktop.
Developer Section
npm install
npm run devOpen http://localhost:5173.
npm run dev- start local dev servernpm run build- production build todist/npm run test- deterministic fixture-based validation tests (CI-safe)npm run test:live- live BART audit for one origin (defaults toDUBL)npm run test:live:all- one-time live sweep across all originsnpm run lint- lint TypeScript/React codenpm run icons- regenerate favicon + PWA icon pack
ORIGIN=<ABBR> npm run test:live- pick a single origin, e.g.ORIGIN=12THLIMIT=<N> npm run test:live- limit destination checks for faster runsLIMIT_ORIGINS=<N> LIMIT_DEST=<N> npm run test:live:all- sample run across origins/destinations- Use
test:live/test:live:allas manual pre-release checks (not required CI)
- React 19 + TypeScript + Vite
- PWA via
vite-plugin-pwa - Data from BART API and BART GTFS-Realtime
Not affiliated with BART.
MIT