# 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!