PWA (Progressive Web App)
A web app that works like a native app — installable, offline-capable, with push notifications. PWAs use service workers for caching and a manifest for install. No app store needed. Used by Twitter, Starbucks, Uber. A cheaper alternative to native apps.
Frances Berriman, Alex Russell · Coined 'Progressive Web Apps' in 2015
- Content/utility apps that don't need native APIs.
- Cross-platform reach without native cost.
- Offline-first apps.
- When app store approval is a barrier.
- Apps needing full native API access (use native/React Native).
- Heavy graphics/games.
- iOS-focused apps (limited support).
Definition
A PWA is a website with a manifest.json (name, icons, theme) and a service worker (offline caching, background sync, push notifications). Installable from the browser. Responsive design. HTTPS required. Works on any platform with a modern browser.
Why it exists
Native apps need separate codebases (iOS, Android) and app store approval. PWAs are one codebase, installable, and work offline — reaching users without the app store friction.
How it works
Add a manifest.json (app metadata). Register a service worker (caches assets, handles offline, push). User installs via browser prompt. Service worker intercepts requests, serves cached content when offline. Push notifications via Push API.
Scaling limits
Limited iOS support (no push notifications until iOS 16.4, limited storage). No access to all native APIs (Bluetooth, NFC limited). App store discoverability is harder.
Cost shape
Free — it's just web tech.
Alternatives
- Native app — Full API access, app store, but separate codebases.
- React Native/Flutter — Native feel, cross-platform, but still app store.
Failure modes
- iOS limitations.
- No app store presence.
- Limited native API access.
- Service worker complexity.