Progressive Web App
A website that can be installed like a native app, launched from the home screen in its own window and used offline, built from a manifest, a service worker and HTTPS.
A progressive web app (PWA) is a website built so it can be installed and behave like a native app: an icon on the home screen or dock, its own window without browser chrome, offline support, and on most platforms push notifications. Alex Russell and Frances Berriman coined the term in 2015. "Progressive" refers to Progressive Enhancement: the site works as an ordinary web page everywhere, and gains app features where the browser supports them.
Three pieces make a site installable:
- HTTPS. Powerful features are restricted to secure contexts, so the site must be served over Transport Layer Security.
- A web app manifest. A JSON file names the app and lists its icons, theme color, start URL and display mode, such as
standalonefor a window with no address bar. - A Service Worker. A script that sits between the page and the network, so the app can load from cache when offline and receive push messages while closed.
The idea is older than the name. When the iPhone launched in 2007, Apple's plan for third-party software was web apps saved to the home screen. The App Store arrived the next year, and native apps took over.
The case for a PWA:
- One codebase for every platform, rather than separate iOS, Android and desktop apps.
- No store review. Updates ship the moment they deploy, though the service worker's cache makes Cache Invalidation a real concern, and a stale worker can pin users to an old version.
- Links. Every screen has a URL, so content can be shared and found by search engines.
- Size. A PWA often weighs a fraction of its native equivalent, which matters on slow networks and cheap phones.
The limits come from the platforms. Browser vendors decide which device APIs the web gets, and support is uneven. Safari on iOS added web push only in 2023, and only for apps added to the home screen. In 2024 Apple announced it would drop home-screen web apps in the EU to comply with the Digital Markets Act, then reversed after objections. Background work is also constrained: mobile systems suspend web apps aggressively, and Background Tab Throttling applies on desktop. Discoverability is weaker without a store listing, so some developers wrap a PWA for the stores anyway.
Building one well means planning for the network being absent. Assets come from the cache, data lives in Web Storage such as IndexedDB, and edits made offline queue up and sync later. Pairing that with an app shell that loads instantly from cache gives the near-instant start that makes an installed web app feel native.
See also5
Web Storage
The browser's built-in ways to keep data on the user's device, from the simple string store localStorage to the transactional database IndexedDB, and their limits on size, persistence and security.
Web Platform12 connections
Progressive Enhancement
Building so the core experience works without scripts, with richer behavior layered on top.
Web Platform26 connections
HTTP Caching
The set of headers that let a browser or intermediary reuse a previous response instead of re-fetching it.
Web Platform18 connections
Favicon
The tiny icon identifying a website in tabs, bookmarks, and search results, invented by Internet Explorer in 1999, now a set of sizes and formats, and once a surprising tracking channel.
Web Platform8 connections
Deep Linking
Linking straight to a specific page or item rather than a site's front door, once fought over in court and now a feature that apps and web apps must work to support.
Web Platform10 connections
Linked from5
- Background Tab ThrottlingWeb Platform
Browsers deliberately slow, freeze, or discard pages that are not visible, so code that assumes it keeps running in the background will be wrong.
- FaviconWeb Platform
The tiny icon identifying a website in tabs, bookmarks, and search results, invented by Internet Explorer in 1999, now a set of sizes and formats, and once a surprising tracking channel.
- Progressive EnhancementWeb Platform
Building so the core experience works without scripts, with richer behavior layered on top.
- Service WorkerWeb Platform
A background script the browser runs between a page and the network, able to intercept requests even when no page is open.
- Web StorageWeb Platform
The browser's built-in ways to keep data on the user's device, from the simple string store localStorage to the transactional database IndexedDB, and their limits on size, persistence and security.