This labor day weekend I decided to see if I could complete a small web project that might be of use to Philadelphians and maybe learn React in the process. I came up with a mobile friendly page that will tell you how far away your bus is with the API that SEPTA makes available.
Behind the scenes, it grabs your geolocation from your device, finds stops near your location, filters all SEPTA vehicles by the routes serving the stops near your location, calculates bearing to the vehicles, compares the bearings to the headings to see if the vehicles are incoming, and displays it in a list sorted by distance.
It does all this without sending your location anywhere.
SEPTA does not provide a big list of stops and the routes that serve them. I had to generate that from their GTFS data with a small script.
Visit it on your desktop or phone at wheresepta.com. Accuracy is not guaranteed; the data is only as good as SEPTA provides it. The data has been known to be shaky and completely wrong at times, even in SEPTA's official app. Check out the source code at GitLab.