Progressive Web App

A Progressive Web App, or PWA, is a web application built to behave like a platform-native app: it can be installed to the device, launch from the home screen, run offline, and receive push messages, all while being delivered through an ordinary web browser. The name was coined by Alex Russell and Frances Berriman in a June 15, 2015 post on Russell’s site infrequently.org, titled “Progressive apps: escaping tabs without losing our soul.”

The naming itself is documented in that post. Russell recounts that over dinner he and Berriman “enumerated the attributes of this new class of applications,” and that “Frances called them ‘Progressive Open Web Apps’ and we both came around to just ‘Progressive Apps.’” He is careful to note that the applications were not new inventions: “They existed before, but now they have a name.” The contribution was a shared vocabulary for a pattern that browser features were finally making practical.

Two web standards underpin the model. The W3C Web Application Manifest specification defines “a JSON-based file format that provides developers with a centralized place to put metadata associated with a web application,” including its name, icons, launch URL, and display mode, which is what lets a site be installed and launched like an app. The W3C Service Workers specification defines event-driven scripts that sit, conceptually, between the network and the page, able to intercept fetch requests and serve cached responses so the app keeps working without a connection.

PWAs grew out of the same pressures that produced Mobile First and the single-page application: users increasingly lived on phones, and the gap between web pages and installed apps had become a competitive disadvantage for the web. Rather than asking developers to abandon the web for native toolchains, the PWA approach treated installability, offline support, and push as progressive enhancements that any capable browser could light up, letting one codebase reach both worlds.