A minimal Node.js server that renders a live snapshot your favourite Toronto Bike Share stations for easy viewing.
There is also a standalone script, compact-widget.js, that can be embedded as an iOS widget. You can run JavaScript code in a widget using Scriptable.
npm install
node server.jsor
docker build -t bike-share-snapshot .
docker run -p 3000:3000 bike-share-snapshotThen open http://localhost:3000
- Install the free Scriptable app on your iOS device.
- Create a new script, paste in the contents of
compact-widget.js. - Adjust the
SECTIONSarray near the top of the script if you want to rename sections or target different stations (the station names must match Bike Share Toronto’s official feed). - Add a Small Scriptable widget to your Home Screen, choose the script you just created.
- The widget is set to refresh every minute by the actual refresh cadance is dictated by iOS.
Edit the stations in stations.js to change which stations are tracked or how they are grouped. Each entry supports fullName, shortName, section, and isPrimary fields.
Contributions are welcome!

