A progressive web application, commonly abbreviated PWA, is a web application designed to provide an enhanced, app-like experience using capabilities available through modern web browsers. PWAs can be installable, support offline or degraded-network operation, provide a launch experience resembling an installed application and integrate with selected device capabilities through web APIs.
The term progressive refers to the idea that the application should provide an appropriate baseline experience in browsers with limited capabilities while progressively using additional features where the user's browser supports them. A PWA is therefore still fundamentally a web application, not automatically a native application. Its distinguishing characteristics arise from the use of web platform technologies that allow the application to behave more like installed software.
A key PWA technology is the service worker, a script that runs separately from the page and can intercept certain network requests, manage caches and support background operations permitted by the browser. Service workers enable developers to implement strategies such as cache-first retrieval for static assets, network-first retrieval for frequently changing information or fallback pages when network access is unavailable. This can allow parts of a PWA to continue functioning without an active network connection. A service worker is not simply a permanent background process with unrestricted access; browsers impose lifecycle, security and resource restrictions. The browser controls when service workers are started, suspended or terminated, and the available APIs vary by platform and browser.
PWAs commonly use a web app manifest, which is a structured file describing how the application should be presented when installed. Manifest information can include the application's name, icons, start URL, display mode, theme-related properties and other metadata. Installation support varies by browser and operating system, and satisfying technical criteria does not guarantee that every browser will present an identical installation experience. When installed, a PWA can appear in an operating system's application launcher and may open in an app-like window rather than displaying the browser's ordinary navigation interface. This provides a more integrated user experience while the underlying application remains based on web technologies.
PWA architecture can provide advantages in deployment because the underlying application is delivered through the web. Developers can update web application resources centrally, subject to caching behaviour and browser mechanisms, rather than requiring every change to be distributed as a completely separate traditional application binary. A PWA can also be accessible through an ordinary URL, allowing users to begin using it without installation. Installation can then provide additional convenience for users who want an app-like launch experience. This combination of web reach and optional installation is one of the central characteristics of the PWA model.
PWAs are not universally equivalent to native applications. Browser security policies limit access to hardware and operating-system functions, and the availability of particular APIs differs among browsers and platforms. Features such as background processing, push notifications, file-system access, Bluetooth, NFC and other device capabilities may have platform-specific support or restrictions. An application that depends on unrestricted hardware access, specialised operating-system integration or very high performance may still require native technology. A PWA should therefore be evaluated against the actual target capabilities rather than being assumed to provide complete native parity.
Security is fundamental to PWA operation. Service workers and many powerful web APIs are generally restricted to secure contexts, normally HTTPS, with localhost commonly treated specially during development. The service worker operates within the security model of the web origin, and developers must carefully control cached resources because stale or compromised content can affect application behaviour. Authentication tokens, sensitive data and cached responses need appropriate handling. A PWA does not bypass browser security restrictions simply because it is installable. Its permissions, storage and device access remain governed by browser and operating-system security models.
Offline capability in a PWA is not automatic merely because a service worker exists. Developers must deliberately determine which resources should be cached, how updates are detected, how stale data is handled and what functionality can operate without network connectivity. Caching strategies must account for storage limits, changed application assets and invalid or expired data. A PWA might therefore provide full offline functionality, limited offline functionality or only a cached shell that displays an appropriate offline message. The correct design depends on the application's data model and business requirements.
PWAs developed from broader advances in browser capabilities, service workers, web manifests, responsive design and secure web APIs. Their importance lies in combining the distribution characteristics of the web with selected behaviours associated with installed applications. The term does not describe one programming language or framework; a PWA can be built using plain web technologies or modern web application frameworks. The most accurate distinction is that a PWA is a web application deliberately engineered to exploit progressive web capabilities such as installability, service-worker-based caching and appropriate device integration while remaining accessible through standard web mechanisms.