A Progressive Web App (PWA) is a type of web application that uses modern browser APIs and best practices to deliver an experience comparable to a native mobile app. The concept was introduced by Google in 2015. PWAs are built with standard web technologies (HTML, CSS, JavaScript) but behave more like apps.
Core PWA Technologies
- Service Worker — A JavaScript script that runs in the background, intercepts network requests, manages caches, and enables offline functionality and push notifications.
- Web App Manifest — A JSON file (
manifest.json) that defines the app's name, icons, theme colour, and display mode (standalone, fullscreen). Enables "Add to Home Screen". - HTTPS — Required for service workers and the security of sensitive features.
PWA Features
- Offline support — Service workers cache assets; the app works without a network connection.
- Installable — Users can add the PWA to their home screen without an app store.
- Push notifications — Re-engage users even when the browser is closed.
- Background sync — Queue actions when offline and sync when the connection returns.
PWA vs Native App
- PWAs are discoverable via search engines; native apps are not.
- PWAs have a single codebase for all platforms; native apps need separate iOS and Android versions.
- Native apps have deeper hardware access (Bluetooth, NFC); PWAs are catching up but still lag on iOS.