A PWA runs in a web browser, so users don’t need to install it from an app store. However, it looks and feels like an app installed directly on a phone or computer. Because it is hosted online on a web server, a PWA can be updated centrally and used across many devices and operating systems, without pushing separate updates to multiple app stores.
This is different from a native app, which users download and install locally for a specific operating system. Native apps often deliver strong speed and can access device hardware such as the camera, GPS, and microphone, but they are usually more expensive to build, and different platforms may need separate versions. PWAs aim to combine the accessibility of web apps with the experience of native software.
Modern PWAs usually rely on HTML, CSS, and JavaScript, and share a few core capabilities. They are installable, so they can be added to a device and launched like an app. They offer offline support, which means they can keep working under poor network conditions or even without a connection. Many also support background tasks and push notifications.
This is largely powered by service workers, which act as a programmable proxy between the app and the network. A service worker can cache the app shell and selected data so content loads quickly or remains available offline. It can also queue actions to run later through background sync once the connection returns. A PWA can be progressively improved over its lifespan, and it can be shared with a simple link.