What is a Progressive Web App?
A Progressive Web App (PWA) is a website that uses modern web APIs to deliver an app-like experience. It can be installed on your device, work offline, send push notifications, and access hardware such as the camera, Bluetooth, and file system, all from the browser.
How is a PWA different from a regular website?
A regular website runs in a browser tab. A PWA can do everything a website can do, plus:
- Installable: add it to your home screen or desktop, no app store needed
- Offline-capable: works without an internet connection using cached content
- Push notifications: send notifications even when the app isn't open
- Hardware access: camera, microphone, Bluetooth, NFC, fingerprint sensor
- Background sync: sync data in the background, even after the user leaves
- Automatic updates: users always get the latest version, no manual updates
Why build a PWA instead of a native app?
- One codebase: build once, run on iOS, Android, and desktop
- No app store required: distribute directly via a URL, no review process
- Smaller download: PWAs are measured in kilobytes, not hundreds of megabytes
- Always up to date: deploy changes and every user gets them instantly
- Secure by default: served over HTTPS with the same security model as the web
- Lower cost: one web developer can build and maintain a PWA
What can a PWA actually do?
Modern PWAs can access nearly every hardware and platform capability that native apps can. See all 40+ live demos on the homepage, each one runs on your device so you can see exactly what's supported.
Which platforms support PWAs?
- Android: full support, installable from Chrome and other browsers
- iOS / iPadOS: installable via all browsers, no support for native installation dialog
- Windows: installable via Chrome and Edge
- macOS: installable via Chrome and Edge
- Linux: installable via Chrome and Chromium-based browsers
See detailed installation instructions for every platform
How do I get started building a PWA?
- Your website already needs to be served over HTTPS
- Add a Web App Manifest, a JSON file that tells the browser your app's name, icons, and behavior
- Add a Service Worker, a script that enables offline support, caching, and push notifications
- Test with pwa-check, a free tool that audits your PWA
- Deploy and share your URL, users can install it directly
Need your PWA audited?
Use the free pwa-check CLI tool to test your PWA, or run a PWA Runtime Audit to catch real-world failures across install, offline, and update flows.