Evergreen as a Progressive Web App?

Posted on Fri 14 April 2017 in Libraries

Progressive Web Apps are pretty cool, and for good reason: the idea is to take advantage of the advanced features of our web browsers to provide capabilities that rival native apps, while still offering good performance and functionality to users of other browsers.

However, if you've done much reading about PWAs, you could be forgiven for thinking they require a client-side JavaScript framework like React or Angular to be possible. So last week at the 2017 Evergreen International Conference, I demonstrated that it is possible to graft PWA attributes onto Evergreen's classic Perl-based Template Toolkit web architecture--to the point of scoring 100/100 on Google's Lighthouse web site audit tool (from a baseline of 37/100).

You might enjoy my presentation, We aim to misbehave - Evergreen: Progressive Web App (yes, that's a Firefly reference), or you might enjoy poking around the code I posted in the corresponding branch. Check out the new pwa examples directory for a README and the core examples.

It's far from perfect at this point, but as a proof of concept, I'm quite pleased, and I think it offers a possible vision of the way forward, particularly for the My Account section of the public catalogue, which really deserves to become its own app. If nothing else, it has refocused attention on enhancing Evergreen's web performance, and that can only be a good thing, right?