802.software

South Burlington, VT

Start a project

BTV Transit: bus times, trip planning and get-off alerts for Vermont

Most bus apps stop at a list of times. BTV Transit plans the trip across every Vermont bus timetable, walks you to the stop, follows the bus and tells you when to get off.

Client
In-house product
Year
2026
Platforms
iOS, web
Our role
Design and engineering
Stack
Swift, SwiftUI, MapKit, Node.js, PostgreSQL
Status
In App Store review, product page
Trip plan from downtown Burlington to Essex Junction: 45 minutes, leave 8:11 AM, $2 fare, with a Go button
Walking to Battery Street at Cherry Street: 7 minutes, with the buses from that stop and one marked as leaving before you get there
During the ride on route 2: get off in 6 stops at Colchester Avenue and Thibault Parkway, 8 minutes, on time
Home with Where to? search, the next route 1 bus in 14 minutes, and a question asking whether the 7:33 AM bus came
  1. Go follows each bus of the trip and alerts you before every stop where you get off.
  2. The walk to the stop is timed, so a bus that leaves before you arrive is marked as one you will miss.
  3. On the bus: stops left, arrival time and the next stop, with a chime before yours.
  4. Riders can say a bus never came, anonymously, for the next person waiting at that stop.
BTV Transit for iPhone, build in App Store reviewScreens at 2x

The problem

Vermont’s buses are run by several operators, each with its own timetable. A trip from Burlington to Brattleboro, or a week of buses around classes, has to be pieced together by hand.

Once on the bus, the rider still has to watch the window for their stop, which is hard after dark, in snow, or in a town they do not know.

What we built

A native iPhone app that plans trips across every operator’s timetable on the phone itself, so it works without a signal. It stays with the rider for the whole trip: when to leave, the walk to the stop, the ride on the Lock Screen, and a chime before the stop to get off at.

Students add their classes once, and the app picks the bus for each one and knows the break calendars of three Burlington-area campuses. There is no account, and location, classes and saved places stay on the phone.

Home on a snowy evening: leave in 3 minutes for the 7:02 PM bus, a 6-minute walk
Class schedule with ENGL 1001 at 10:00 AM on Wednesday and the next leave time, 9:15 AM

Leave alerts are timed from your walk to the stop, so you wait inside, not at the curb.

Add classes once and the app picks the latest bus that still gets you there, and stays quiet on campus breaks.

BTV Transit web page: an LED destination sign reading 2 Essex Junction above the headline Catch the right bus, anywhere in Vermont
The public web pages, built in the same Next.js codebase as this site.

How it is built

Swift and SwiftUI for iOS 18 and later, with a small server that rebuilds the statewide timetable every night and sends service alerts.

App
Native Swift and SwiftUI with MapKit, widgets, Live Activities and the Dynamic Island, and Siri shortcuts
Planner
A RAPTOR trip planner on the device, with up to four buses per trip and walking legs between them
Timetables
113 routes and 1,770 stops from every operator’s GTFS feed, in one snapshot the app keeps offline
Server
Node.js and PostgreSQL for the nightly snapshot, alerts, push notifications and missed-bus reports, with 58 tests
Languages
English, Spanish, French, Nepali, Swahili and Arabic, with Arabic laid out right to left

Results

BTV Transit has not launched, so there are no usage numbers to report yet. They will appear here, with dates, after launch.

Design and engineering
802.software
Project lead
Baris Taskiran
Verified
Against the running code on

Related service: Mobile apps for iPhone and Android