A Progressive Web App (PWA) is a web app that uses modern web capabilities to deliver an app-like experience to users. Apps should be able to work offline. Whether that be displaying a proper "offline" message or caching app data for display purpose.
Describe the resources your app will need, i.e. app's displayed name, icons etc.
Service worker provides ability to cache app resources. Be it JavaScript files or JSON data from a HTTP request.
Here's the demo.