As well as a new frontend, I’ve also rewritten the backend scraper in Node.js rather than PHP. The frontend and the backend’s data are hosted on Firebase, which has been great to work with.
There are some things the beta is missing though. Here’s a list, mainly for my own benefit to make sure I actually add these features at some point:
- The beer countdown! Obviously.
- Proper routing and a URL for each stop, with the page title and metatags (for OpenGraph, Twitter Cards etc) updating, and a virtual pageview event being sent to Google Analytics.
- Bank holiday detection to show a Sunday service on Christmas, Easter, Summer bank holidays (gov.uk have a handy JSON file of bank holiday dates).
- A better build and deployment pipeline, using Webpack, including using uncss to remove the bits of Tachyons that I’m not using, and inlining critical CSS.
- Using localstorage to store when a message has been dismissed so it is only shown once.
In the future I’d like to add some cleverness around geolocation (find your nearest Metrolink stop) and push notifications (get an alert when it’s time to drink up as your tram is on its way). There’s also scope for integration with the Metrolink live departures API when it is finally released.