1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
---
title: Progressive web apps
slug: Web/Progressive_web_apps
tags:
- Apps
- Modern web apps
- NeedsTranslation
- PWA
- Progressive web apps
- TopicStub
translation_of: Web/Progressive_web_apps
---
<p class="summary">Progressive web apps use modern web APIs along with traditional progressive enhancement strategy to create cross-platform web applications. These apps work everywhere and provide several features that give them the same user experience advantages as native apps. This set of docs tells you all you need to know about them.</p>
<p class="summary"><img alt="progressive web apps community PWA logo" src="https://mdn.mozillademos.org/files/16742/pwa.png" style="display: block; height: 188px; margin: 0px auto; width: 350px;"></p>
<h2 id="PWA_advantages">PWA advantages</h2>
<p>PWAs should be discoverable, installable, linkable, network independent, progressive, re-engageable, responsive, and safe. To find out more about what these mean, read <a href="/en-US/docs/Web/Progressive_web_apps/Advantages">Progressive web app advantages</a>. To find out how to implement PWAs, consult the guides listed in the below section.</p>
<h2 id="Core_PWA_guides">Core PWA guides</h2>
<p>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.</p>
<ol>
<li><a href="/en-US/docs/Web/Progressive_web_apps/Introduction">Introduction to progressive web apps</a></li>
<li><a href="/en-US/docs/Web/Progressive_web_apps/App_structure">Progressive web app structure</a></li>
<li><a href="/en-US/docs/Web/Progressive_web_apps/Offline_Service_workers">Making PWAs work offline with Service workers</a></li>
<li><a href="/en-US/docs/Web/Progressive_web_apps/Installable_PWAs">How to make PWAs installable</a></li>
<li><a href="/en-US/docs/Web/Progressive_web_apps/Re-engageable_Notifications_Push">How to make PWAs re-engageable using Notifications and Push</a></li>
<li><a href="/en-US/docs/Web/Progressive_web_apps/Loading">Progressive loading</a></li>
</ol>
<div class="column-container">
<div class="column-half">
<h2 id="Technology_guides">Technology guides</h2>
<ul>
<li><a href="/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage">Client-side storage</a> — a lengthy guide showing how and when to use web storage, IndexedDB, and service workers.</li>
<li><a href="/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers">Using service workers</a> — a more in-depth guide covering the Service Worker API.</li>
<li><a href="/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB">Using IndexedDB</a> — the fundamentals of IndexedDB, explained in detail.</li>
<li><a href="/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API">Using the Web Storage API</a> — the Web storage API made simple.</li>
<li><a class="external external-icon" href="https://developers.google.com/web/updates/2015/11/app-shell" rel="noopener">Instant Loading Web Apps with An Application Shell Architecture</a> — a guide to using the App Shell coding pattern to create apps that load quickly.</li>
<li><a href="/en-US/docs/Web/API/Push_API/Using_the_Push_API">Using the Push API</a> — learn the essentials behind the Web Push API.</li>
<li><a href="/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API">Using the Notifications API</a> — web notifications in a nutshell.</li>
<li><a href="/en-US/docs/Web/Apps/Modern/Responsive/responsive_design_building_blocks">The building blocks of responsive design</a> — learn the basics of responsive design, an essential topic for modern app layout.</li>
<li><a href="/en-US/docs/Web/Apps/Modern/Responsive/Mobile_first">Mobile first</a> — often when creating responsive application layouts, it makes sense to create the mobile layout as the default, and build wider layouts on top.</li>
<li><a href="/en-US/docs/Web/Apps/Progressive/Add_to_home_screen">Add to home screen guide</a> — learn how your apps can take advantage of Add to home screen (A2HS).</li>
</ul>
</div>
<div class="column-half">
<h2 id="Tools">Tools</h2>
<ul>
<li><a class="external external-icon" href="https://localforage.github.io/localForage/" rel="noopener">localForage</a> — 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.</li>
<li><a class="external external-icon" href="https://github.com/fxos-components/serviceworkerware" rel="noopener">ServiceWorkerWare</a> — an <em>Express-like</em> microframework for easy Service Worker development.</li>
<li><a class="external external-icon" href="https://github.com/mozilla/oghliner" rel="noopener">oghliner</a> — not only a template but a tool for deploying Offline Web Apps to GitHub Pages.</li>
<li><a class="external external-icon" href="https://github.com/GoogleChrome/sw-precache" rel="noopener">sw-precache</a> — a node module to generate service worker code that will precache specific resources.</li>
<li><a class="external external-icon" href="https://github.com/GoogleChrome/workbox" rel="noopener">workbox</a> — spiritual successor to sw-precache with more advanced caching strategies and easy precaching.</li>
<li><a class="external external-icon" href="https://www.talater.com/upup/" rel="noopener">upup</a> — a tiny script that makes sure your site is always there for your users.</li>
<li><a class="external external-icon" href="https://serviceworke.rs/" rel="noopener">The service worker cookbook</a> — A series of excellent service worker/push recipes, showing how to implement an offline app, but also much more.</li>
</ul>
</div>
</div>
<h2 id="See_also">See also</h2>
<ul>
<li><a href="https://developers.google.com/web/progressive-web-apps">Progressive web apps</a> on Google Developers</li>
<li><a href="https://medium.com/@slightlylate/progressive-apps-escaping-tabs-without-losing-our-soul-3b93a8561955#.6czgj0myh">Progressive Web Apps: Escaping Tabs Without Losing Our Soul</a> by Alex Russell</li>
<li><a href="https://developers.google.com/web/progressive-web-apps/checklist">Progressive Web Apps Check List</a></li>
<li><a href="https://developers.google.com/web/tools/lighthouse">The Lighthouse Tool</a> by Google</li>
<li><a href="https://github.com/angular/mobile-toolkit">Tools for building progressive web apps with Angular</a></li>
<li><a href="https://github.com/codebusking/react-pwa-guide-kit">React PWA Guide Kit</a></li>
<li><a href="https://www.pokedex.org/">Offline-capable Pokédex web site</a></li>
<li>
<p><a href="https://hnpwa.com/">Hacker News readers as Progressive Web Apps</a></p>
</li>
</ul>
<div>{{QuickLinksWithSubpages("/en-US/docs/Web/Progressive_web_apps/")}}</div>
|