---
title: Progressive web apps (PWAs)
slug: Web/Progressive_web_apps
tags:
- App
- Application
- Apps
- Modern web apps
- NeedsTranslation
- PWA
- Progressive web apps
- TopicStub
- Web app
- Web applications
translation_of: Web/Progressive_web_apps
---
{{draft}}
Progressive Web Apps are web apps that use emerging web browser APIs and features along with traditional progressive enhancement strategy to bring a native app-like user experience to cross-platform web applications. Progressive Web Apps are a useful design pattern, though they aren't a formalized standard. PWA can be thought of as similar to AJAX or other similar patterns that encompass a set of application attributes, including use of specific web technologies and techniques. This set of docs tells you all you need to know about them.
In order to call a Web App a PWA, technically speaking it should have the following features: Secure contexts ({{Glossary("HTTPS")}}), one or more Service Workers, and a manifest file.
- Secure contexts ({{Glossary("HTTPS")}})
- The web application must be served over a secure network. Being a secure site is not only a best practice, but it also establishes your web application as a trusted site especially if users need to make secure transactions. Most of the features related to a PWA such as geolocation and even service workers are available only once the app has been loaded using HTTPS.
- Service workers
- A service worker is a script that allows intercepting and control of how a web browser handles its network requests and asset caching. With service workers, web developers can create reliably fast web pages and offline experiences.
- Manifest file
- A {{Glossary("JSON")}} file that controls how your app appears to the user and ensures that progressive web apps are discoverable. It describes the name of the app, the start URL, icons, and all of the other details necessary to transform the website into an app-like format.
PWA advantages
PWAs should be discoverable, installable, linkable, network independent, progressive, re-engageable, responsive, and safe. To find out more about what these mean, read Progressive web app advantages.
To find out how to implement PWAs, read through our PWA developer guide.
Documentation
<-- The temporary automatic list below will be replaced soon -->
{{LandingPageListSubpages}}
Everything below this point is left over from the old version of this page and will be revamped as other content is overhauled.
Core PWA guides
The following guides show you what need to do to implement a PWA, by examining a simple example and showing you how all the pieces work.
- Introduction to progressive web apps
- Progressive web app structure
- Making PWAs work offline with Service workers
- How to make PWAs installable
- How to make PWAs re-engageable using Notifications and Push
- Progressive loading
- localForage — A nice simple JavaScript library for making client-side data storage really simple; it uses IndexedDB by default and falls back to Web SQL/Web Storage if necessary.
- ServiceWorkerWare — An Express-like microframework for easy Service Worker development.
- oghliner — Not only a template but a tool for deploying Offline Web Apps to GitHub Pages.
- sw-precache — A node module to generate service worker code that will precache specific resources.
- workbox — Spiritual successor to sw-precache with more advanced caching strategies and easy precaching.
- upup — A tiny script that makes sure your site is always there for your users.
- The service worker cookbook — A series of excellent service worker/push recipes, showing how to implement an offline app, but also much more.
- PWA VS Code extension - A collection of all essential code snippets you need to build Progressive Web Apps right there in your VS Code environment.
{{QuickLinksWithSubpages("/en-US/docs/Web/Progressive_web_apps/")}}