Software & Internet

Progressive Web Apps Explained: Do They Replace Native Apps?

Progressive web apps are websites that can be installed, work offline and send notifications. Here is how they work, where support differs, and when they beat a native app.

Code on a laptop screen seen at an angle, with blue and purple light

Visit a website often enough and your browser may offer to install it. Accept, and an icon appears on the home screen; tap it and the site opens in its own window with no address bar, and sometimes keeps working when the connection drops. Behind that experience is a set of web standards known as progressive web apps, or PWAs.

A website with extra abilities

Mozilla’s developer documentation defines a PWA as an app built with web platform technologies that provides a user experience like that of a platform-specific app. Like a website, it can run on multiple platforms and devices from a single codebase. Like a native app, it can be installed, can operate offline and in the background, and can integrate with the device and other installed apps.

The word “progressive” describes how the features are layered on. Where a browser supports them, they switch on. Where it does not, the PWA still works as an ordinary website.

The two parts that make it work

Two ingredients do most of the work.

The first is the web app manifest, a small file in which the developer describes the app: its name, icons, colors and how it should open, for example in a dedicated window instead of a browser tab. That information lets the operating system treat the site as an installable app.

The second is the service worker, a script that sits between the page and the network. Mozilla describes it as functioning “like a proxy server,” able to answer requests from its own cache. A developer can set an app to use cached assets first, giving a usable experience even when offline, and fetch fresh data from the network afterward. Service workers run off the main page thread and, for security reasons, are restricted to secure origins served over HTTPS.

Together they explain why a PWA can open instantly, survive a dropped connection and keep content current in the background through features such as background sync, where the browser supports it.

What works on which device

Support has historically been the sticking point, and it differs by platform. On Apple devices, Safari’s WebKit team announced in February 2023 that web apps added to the Home Screen on iOS and iPadOS 16.4 could receive push notifications through the standard Web Push system, provided the permission request comes from a direct user action. The same release added badging for Home Screen web apps. WebKit has since said that a simplified form, declarative web push, arrived in iOS and iPadOS 18.4 and does not require a service worker.

Because capabilities change from release to release, developers are advised to detect features rather than browsers, and to check what each platform currently supports before depending on one.

PWA or native app

The choice depends on what the product needs from the device.

Question Leans PWA Leans native
Is it mostly content, forms, shopping or dashboards? Yes
Does it need heavy 3D graphics or deep hardware access? Yes
Does a small team need every platform from one codebase? Yes
Does it depend on being found in an app store? Yes
Must updates reach everyone immediately? Yes

PWAs suit products where reach and speed of iteration matter more than the last drop of performance. Their reliance on the browser also means a user can try one by visiting a link, with nothing to download first. Native apps remain stronger for demanding games, advanced camera or sensor features and anything that needs the platform’s most specialized capabilities. Many companies run both: a PWA as the broad entry point and a native app for the most engaged users.

Security and practical limits

A PWA lives inside the browser’s security model. It must be served over HTTPS, and sensitive features such as location or the camera are available only with the user’s permission. The app’s own code still has to be secure, including the libraries it pulls in.

Offline use has limits, too. A PWA can show stored content and queue actions for later, but anything that needs live data still needs a connection. Developers choose what to cache, and a user can be left with stale information if updates are handled badly.

To try one, look for an install icon in the browser’s address bar or an “Install app” or “Add to Home Screen” option in its menu. Removing it works like any other app.