The complete technical guide to Progressive Web Apps¶
Service workers, the web app manifest, caching and offline strategies, push notifications, installation on every platform, device capabilities, performance, security and tooling, explained down to the spec-level details and backed by production-ready code.
Start with the fundamentals Build your first PWA Production checklist
What is a Progressive Web App?¶
A Progressive Web App (PWA) is a website built with standard web technologies that progressively gains app capabilities when the browser supports them. It can be installed to the home screen, dock or Start menu, launch in its own window, work offline or on unreliable networks, receive push notifications, and integrate with the operating system through file handling, sharing and shortcuts. Technically, three things turn a site into an installable PWA: a secure context (HTTPS), a web app manifest and, for offline support, a service worker. Read the full definition →
Explore the guide¶
-
Fundamentals
What PWAs are, how they evolved, how they compare to native and hybrid apps, and exactly what makes a site installable.
-
Web App Manifest
Every member explained: identity, scope, display modes, icons and maskable icons, shortcuts, screenshots and OS integration.
-
Service Workers
Lifecycle, registration and scope, fetch handling, updates, navigation preload, messaging, static routing and common pitfalls.
-
Caching & Offline
Cache Storage, caching strategies, precaching, offline UX, HTTP caching, storage quotas, IndexedDB and the Origin Private File System.
-
Push & Background
Web Push end to end (including the protocol and iOS), notifications, badging, background sync, periodic sync and background fetch.
-
Device & OS Integration
Web Share and share targets, file system access and file handling, protocol handlers, window controls overlay, payments and passkeys.
-
Installation & Stores
Install prompts, platform-specific install flows, detecting installed apps, Trusted Web Activities and publishing to app stores.
-
Platform Support
What works where: iOS and iPadOS, Android, Windows, macOS, Linux and ChromeOS, plus Isolated Web Apps.
-
Performance
The app shell model, Core Web Vitals, loading and runtime performance, and how to measure the impact of your service worker.
-
Architecture
SPA vs MPA PWAs, offline-first data and sync, conflict resolution and streaming responses from the service worker.
-
Tooling & Frameworks
Workbox, the Vite PWA plugin, Angular, Next.js, Nuxt, SvelteKit and more, plus PWABuilder for store packaging.
-
Security & Privacy
Secure contexts, service worker security, Content Security Policy, permissions and storage partitioning.
-
Testing & Debugging
DevTools for every browser, automated tests with Playwright and Puppeteer, and auditing after Lighthouse's PWA category.
-
UX & Design
App-like UX patterns, splash screens and theming, view transitions, responsive design and accessibility.
-
AI & the Future
On-device AI in the browser, cloud AI features, AI agents as a new client of your app, and whether the future is native, PWA or both.
-
Guides
When to build a PWA, migrating an existing site, SEO, analytics, case studies and the production checklist.
-
Reference
Glossary, API and manifest cheat sheets, FAQ, and specifications and resources.
Popular deep dives¶
Service worker lifecycle
Why a new service worker waits, what skipWaiting() and clients.claim() really do, and how to ship updates without breaking open tabs.
Caching strategies
Cache first, network first, stale-while-revalidate and more — each with diagrams, vanilla code and Workbox equivalents.
Web push on iOS
What works on iPhone and iPad, Declarative Web Push, and why your subscription fails if the app isn't on the Home Screen.
Installability criteria
The exact requirements each browser checks before offering to install your app, and how to debug a missing install prompt.
Learning paths¶
- What is a PWA? — the definition and the core ideas.
- Core building blocks — HTTPS, manifest, service worker and storage.
- Tutorial: your first PWA — build an installable, offline app from scratch.
- Service worker lifecycle — the part everyone gets wrong at first.
- Caching strategies — choose the right strategy per resource.
- Migrating an existing site — a low-risk rollout plan.
- Updating service workers — update flows and kill switches.
- Service worker pitfalls — two dozen common mistakes and their fixes.
- Service worker security — caching, logout and XSS.
- Production checklist — verify everything before launch.
- Install prompts & custom UI — promote installation properly.
- Push notifications — end-to-end implementation.
- Device & OS integration — share, files, protocols and more.
- iOS & iPadOS — what Apple platforms support and how to work around gaps.
- Publishing to app stores — Google Play, Microsoft Store and beyond.
- AI & the future — how AI changes building and distributing apps.
- On-device AI in the browser — built-in AI APIs, WebGPU and offline models.
- Cloud AI in PWAs — streaming LLM responses, offline and security.
- AI agents & the web — making your app usable by agents and assistants.
- The future: native, PWA or both? — an evidence-based decision framework.
About this guide¶
This guide is written for professional web developers. Every page was fact-checked against specifications, MDN compatibility data and browser vendor sources, and browser support tables state when they were verified. The site itself is an installable, offline-capable PWA — see how it works, or browse the glossary, API cheat sheet and FAQ.