A progressive web application provides an application-like user experience that is low friction and is built using modern web capabilities and hosted on the web and can become an application on the user's system over time.
Progressive web applications are mobile experiences that combine the best of the web and the best of applications. They’re useful to users from the very first visit as "regular" sites that live in a tab, no install required. But as the user progressively builds a relationship with them over time, they become more and more powerful; loading extremely quickly even on flaky networks, sending relevant push notifications, and even having an icon on the homescreen and loading as top-level, fullscreen experiences.
A progressive web application is built with progressive enhancement as the core tenant so that they work for as many users as possible irrespective of browser choice. When the user agent (such as Chrome, Opera, and Firefox) supports technologies like Service Worker, Web Push, and the Add to Homescreen banner, the applications can be enhanced to provide a first class native-like experience for the user.
Progressive web applications tend to be architected around the concept of an App Shell. The shell of the functionality is loaded in and displayed to the user (and potentially permanently cached offline) and the content is loaded in dynamically as the user navigates around the app.
More information about progressive web applications can be found in the following links:
- Progressive Web Apps — Central information repository
- Addy Osmani - Getting started with Progressive Web Apps
- Alex Russell — Escaping the tab without losing our soul
- Chrome — (YouTube Video) Progressive Web Apps
- Opera — Progressive Web Apps are the Future
- Mozilla — Extending the Web’s capabilities in Firefox and beyond
- Bruce Lawson — Progressive Web Apps are ready for Primetime
- Eric Elliott — Native Apps are Doomed
- PWA Google Codelabs
Articles about how real-world progressive web applications have been built: