Progressive Web Apps

Posted in Front-End

I read an interesting article a few days ago on the idea of building web apps “progressively”, in that they take on more characteristics of native apps but still retain the flexibility and reach of the web. The key differentiation is that these “native features” – notification support, home screen icons, going from a window with browser chrome to full-screen – can be progressively activated. The transformation from a “mere” webpage to a full-blown app becomes a gradual process adapted to actual usage.

I like this idea in large part because it reinforces the notion that the web’s current deficiencies are solvable with technology and time. The perceived slowness in page rendering and the lack of native API support are not problems intrinsic to the web platform; every mobile OS revision adds more browser APIs, and every hardware revision enables faster browser rendering and JavaScript execution.

But the strengths of the web lie in its openness and link-ability. The key is the Universal Resource Locator, or URL; a string can identify a unique part of the system and can be universally understood. Through the decades of the web, we’ve used this string to encapsulate everything from ownership to industry to category to application state. App links exist, but they’re proprietary to either the specific mobile operating system1, or to a constellation of apps that share in that link structure.

The main things missing from this ideal are the frameworks and conventions that make progressive web apps possible.


  1. And one step removed are defined hooks for apps, e.g., Android intents and iOS app extensions.