diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9df0cd9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,68 @@
+# Simple PWA
+## Simple Progressive Web App (PWA) template
+
+### What is this?
+Simple PWA is a Progressive Web App template that provides the minimum file structure needed to create a PWA. These files collectively represent a [reliable](https://web.dev/what-are-pwas/#reliable) and [installable](https://web.dev/what-are-pwas/#installable) web application. It's up to you to add functionality to make it [capable](https://web.dev/what-are-pwas/#capable).
+
+Simple PWA is "offline-first", using a ["cache falling back to the network"](https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker#cache_falling_back_to_the_network) caching strategy, which means any files specified in [`sw.js`](https://github.com/nikkifurls/simple-pwa/blob/master/sw.js#L10-L46) will be cached, and therefore, accessible offline. Non-cached requests (including non-GET requests, as they cannot be cached), will not be accessible offline, and instead, will ping the network or fail if there is no network available. In [`sw.js`](https://github.com/nikkifurls/simple-pwa/blob/master/sw.js), the value of [`cacheName`](https://github.com/nikkifurls/simple-pwa/blob/master/sw.js#L1) should be changed whenever the app is updated in order to force the cache to update from the network.
+
+- `android-chrome-36x36.png` Favicon, Android Chrome M39+ with 0.75 screen density
+- `android-chrome-48x48.png` Favicon, Android Chrome M39+ with 1.0 screen density
+- `android-chrome-72x72.png` Favicon, Android Chrome M39+ with 1.5 screen density
+- `android-chrome-96x96.png` Favicon, Android Chrome M39+ with 2.0 screen density
+- `android-chrome-144x144.png` Favicon, Android Chrome M39+ with 3.0 screen density
+- `android-chrome-192x192.png` Favicon, Android Chrome M39+ with 4.0 screen density
+- `android-chrome-256x256.png` Favicon, Android Chrome M47+ Splash screen with 1.5 screen density
+- `android-chrome-384x384.png` Favicon, Android Chrome M47+ Splash screen with 3.0 screen density
+- `android-chrome-512x512.png` Favicon, Android Chrome M47+ Splash screen with 4.0 screen density
+- `apple-touch-icon.png` Favicon, Apple default
+- `apple-touch-icon-57x57.png` Apple iPhone, Non-retina with iOS6 or prior
+- `apple-touch-icon-60x60.png` Apple iPhone, Non-retina with iOS7
+- `apple-touch-icon-72x72.png` Apple iPad, Non-retina with iOS6 or prior
+- `apple-touch-icon-76x76.png` Apple iPad, Non-retina with iOS7
+- `apple-touch-icon-114x114.png` Apple iPhone, Retina with iOS6 or prior
+- `apple-touch-icon-120x120.png` Apple iPhone, Retina with iOS7
+- `apple-touch-icon-144x144.png` Apple iPad, Retina with iOS6 or prior
+- `apple-touch-icon-152x152.png` Apple iPad, Retina with iOS7
+- `apple-touch-icon-180x180.png` Apple iPhone 6 Plus with iOS8
+- `browserconfig.xml` IE11 icon configuration file
+- `favicon_config.json` RealFaviconGenerator configuration file
+- `favicon.ico` Favicon, IE and fallback for other browsers
+- `favicon.png` Favicon generation source image
+- `favicon-16x16.png` Favicon, default
+- `favicon-32x32.png` Favicon, Safari on Mac OS
+- `index.html` Main HTML file
+- `logo.png` Logo
+- `main.js` Main Javascript file
+- `manifest.json` Manifest file
+- `maskable_icon.png` Favicon, [maskable](https://web.dev/maskable-icon)
+- `mstile-70x70.png` Favicon, Windows 8 / IE11
+- `mstile-144x144.png` Favicon, Windows 8 / IE10
+- `mstile-150x150.png` Favicon, Windows 8 / IE11
+- `mstile-310x150.png` Favicon, Windows 8 / IE11
+- `mstile-310x310.png` Favicon, Windows 8 / IE11
+- `README.md` Readme file
+- `robots.txt` Robots file
+- `safari-pinned-tab.svg` Favicon, Safari pinned tab
+- `share.jpg` Social media sharing
+- `sitemap.xml` Sitemap file
+- `sw.js` Service worker file
+- `style.css` Main CSS file
+
+### How do I use it?
+
+1. Clone the repository from [GitHub](https://github.com/nikkifurls/simple-pwa).
+2. Create all favicon images using [RealFaviconGenerator](https://realfavicongenerator.net) and replace existing images with generated images.
+
+ If you're able to install the CLI version of **RealFaviconGenerator**, `favicon_config.json` contains all settings to generate these images using the following command from the project's root directory. The `real-favicon` tool generates images from `favicon.png`, so replace `favicon.png` prior to running this command. The resulting `favicon_data.json` and `site.webmanifest` can be discarded:
+
+ `real-favicon generate favicon_config.json favicon_data.json .`
+
+3. Create new 650x650 maskable icon using [Maskable.app](https://maskable.app) and replace `maskable_icon.png`.
+4. Create new black vector icon using [`Manytools' colorize images tool`](http://manytools.org/image/colorize-filter) and replace [`safari-pinned-tab.svg`](https://github.com/nikkifurls/simple-pwa/blob/master/safari-pinned-tab.svg).
+5. Create new 1200x630 share image and replace `share.jpg`.
+6. Build your PWA by adding HTML, CSS, and Javascript.
+
+### Can I contribute?
+
+YES! Contributions are welcome!
\ No newline at end of file
diff --git a/android-chrome-144x144.png b/android-chrome-144x144.png
new file mode 100644
index 0000000..86cecb4
Binary files /dev/null and b/android-chrome-144x144.png differ
diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png
new file mode 100644
index 0000000..d9ad329
Binary files /dev/null and b/android-chrome-192x192.png differ
diff --git a/android-chrome-256x256.png b/android-chrome-256x256.png
new file mode 100644
index 0000000..26eae2b
Binary files /dev/null and b/android-chrome-256x256.png differ
diff --git a/android-chrome-36x36.png b/android-chrome-36x36.png
new file mode 100644
index 0000000..85fbd08
Binary files /dev/null and b/android-chrome-36x36.png differ
diff --git a/android-chrome-384x384.png b/android-chrome-384x384.png
new file mode 100644
index 0000000..5f76eed
Binary files /dev/null and b/android-chrome-384x384.png differ
diff --git a/android-chrome-48x48.png b/android-chrome-48x48.png
new file mode 100644
index 0000000..a8dacba
Binary files /dev/null and b/android-chrome-48x48.png differ
diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png
new file mode 100644
index 0000000..ee12c2b
Binary files /dev/null and b/android-chrome-512x512.png differ
diff --git a/android-chrome-72x72.png b/android-chrome-72x72.png
new file mode 100644
index 0000000..ea95f9f
Binary files /dev/null and b/android-chrome-72x72.png differ
diff --git a/android-chrome-96x96.png b/android-chrome-96x96.png
new file mode 100644
index 0000000..4b854ce
Binary files /dev/null and b/android-chrome-96x96.png differ
diff --git a/apple-touch-icon-114x114.png b/apple-touch-icon-114x114.png
new file mode 100644
index 0000000..3795318
Binary files /dev/null and b/apple-touch-icon-114x114.png differ
diff --git a/apple-touch-icon-120x120.png b/apple-touch-icon-120x120.png
new file mode 100644
index 0000000..aa0cb21
Binary files /dev/null and b/apple-touch-icon-120x120.png differ
diff --git a/apple-touch-icon-144x144.png b/apple-touch-icon-144x144.png
new file mode 100644
index 0000000..9f19592
Binary files /dev/null and b/apple-touch-icon-144x144.png differ
diff --git a/apple-touch-icon-152x152.png b/apple-touch-icon-152x152.png
new file mode 100644
index 0000000..da4450e
Binary files /dev/null and b/apple-touch-icon-152x152.png differ
diff --git a/apple-touch-icon-180x180.png b/apple-touch-icon-180x180.png
new file mode 100644
index 0000000..1e39b0e
Binary files /dev/null and b/apple-touch-icon-180x180.png differ
diff --git a/apple-touch-icon-57x57.png b/apple-touch-icon-57x57.png
new file mode 100644
index 0000000..445e91b
Binary files /dev/null and b/apple-touch-icon-57x57.png differ
diff --git a/apple-touch-icon-60x60.png b/apple-touch-icon-60x60.png
new file mode 100644
index 0000000..e4ffb99
Binary files /dev/null and b/apple-touch-icon-60x60.png differ
diff --git a/apple-touch-icon-72x72.png b/apple-touch-icon-72x72.png
new file mode 100644
index 0000000..dfcec29
Binary files /dev/null and b/apple-touch-icon-72x72.png differ
diff --git a/apple-touch-icon-76x76.png b/apple-touch-icon-76x76.png
new file mode 100644
index 0000000..48fd76f
Binary files /dev/null and b/apple-touch-icon-76x76.png differ
diff --git a/apple-touch-icon.png b/apple-touch-icon.png
new file mode 100644
index 0000000..1e39b0e
Binary files /dev/null and b/apple-touch-icon.png differ
diff --git a/browserconfig.xml b/browserconfig.xml
new file mode 100644
index 0000000..a816a20
--- /dev/null
+++ b/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
Simple PWA is a Progressive Web App template that provides the minimum file structure needed to create a PWA—a reliable and installable web application. It's up to you to build upon it, to make it capable. +
Simple PWA is "offline-first", using a "cache first" caching strategy, which means on load, two asynchronous requests are kicked off—one to the cache, and one to the network. If there's a cached version available, it is used, but the updated version is fetched and stored for the next load. To force the cache to update from the network, change the value of cacheName
in sw.js
.
android-chrome-36x36.png
image
Favicon, Android Chrome M39+ with 0.75 screen density
+ android-chrome-48x48.png
image
Favicon, Android Chrome M39+ with 1.0 screen density
+ android-chrome-72x72.png
image
Favicon, Android Chrome M39+ with 1.5 screen density
+ android-chrome-96x96.png
image
Favicon, Android Chrome M39+ with 2.0 screen density
+ android-chrome-144x144.png
image
Favicon, Android Chrome M39+ with 3.0 screen density
+ android-chrome-192x192.png
image
Favicon, Android Chrome M39+ with 4.0 screen density
+ android-chrome-256x256.png
image
Favicon, Android Chrome M47+ Splash screen with 1.5 screen density
+ android-chrome-384x384.png
image
Favicon, Android Chrome M47+ Splash screen with 3.0 screen density
+ android-chrome-512x512.png
image
Favicon, Android Chrome M47+ Splash screen with 4.0 screen density
+ apple-touch-icon.png
image
Favicon, Apple default
+ apple-touch-icon-57x57.png
image
Favicon, Apple iPhone, non-Retina with iOS6 or prior
+ apple-touch-icon-60x60.png
image
Favicon, Apple iPhone, non-Retina with iOS7
+ apple-touch-icon-72x72.png
image
Favicon, Apple iPad, non-Retina with iOS6 or prior
+ apple-touch-icon-76x76.png
image
Favicon, Apple iPad, non-Retina with iOS7
+ apple-touch-icon-114x114.png
image
Favicon, Apple iPhone, Retina with iOS6 or prior
+ apple-touch-icon-120x120.png
image
Favicon, Apple iPhone, Retina with iOS7
+ apple-touch-icon-144x144.png
image
Favicon, Apple iPad, Retina with iOS6 or prior
+ apple-touch-icon-152x152.png
image
Favicon, Apple iPad, Retina with iOS7
+ apple-touch-icon-180x180.png
image
Favicon, Apple iPhone 6 Plus with iOS8
+ browserconfig.xml
IE11 icon configuration file
+ favicon_config.json
RealFaviconGenerator configuration file
+ favicon.ico
image
Favicon, IE and fallback for other browsers
+ favicon.png
image
Favicon generation source image
+ favicon-16x16.png
image
Favicon, default
+ favicon-32x32.png
image
Favicon, Safari on Mac OS
+ index.html
Main HTML file
+ logo.png
image
Logo
+ main.js
Main Javascript file
+ manifest.json
Manifest file
+ maskable_icon.png
image
Favicon, maskable
+ mstile-70x70.png
image
Favicon, Windows 8 / IE11
+ mstile-144x144.png
image
Favicon, Windows 8 / IE10
+ mstile-150x150.png
image
Favicon, Windows 8 / IE11
+ mstile-310x150.png
image
Favicon, Windows 8 / IE11
+ mstile-310x310.png
image
Favicon, Windows 8 / IE11
+ README.md
Readme file
+ robots.txt
Robots file
+ safari-pinned-tab.svg
image
Favicon, Safari pinned tab
+ sitemap.xml
Sitemap file
+ share.jpg
image
Social media sharing
+ sw.js
Service worker file
+ style.css
Main CSS file
+ If you're able to install the CLI version of RealFaviconGenerator, favicon_config.json
contains all settings to generate these images using the following command from the project's root directory. The real-favicon
tool generates images from favicon.png
, so replace favicon.png
prior to running this command. The resulting favicon_data.json
and site.webmanifest
can be discarded.
real-favicon generate favicon_config.json favicon_data.json .
maskable_icon.png
.safari-pinned-tab.svg
.share.jpg
.Looking for inspiration? Check out these PWA directories:
+Want to help improve this? Contributions are welcome! ➡️ GitHub
+