A ServiceWorker is a script file that helps manage pre-loading and caching of the PWA content on the phone. This actually enables PWA’s to work for content that the user has previously accessed, even when it is not connected to the internet. It also helps manage the pre-fetching, pre-caching and pre-loading of of the web content, to help configure it for quick presentation in the app shell. Unfortunately, there is not yet a wizard to help you generate a great ServiceWorker, but there are some good instructions available from Google and a code tutorial available in their web documentation. Just like the App Manifests, ServiceWorkers are not fully supported by all browsers yet, but they are moving in that direction, as shown below. The one big hold-out, in the pack for both App Manifests and ServiceWorkers is Safari. As you can imagine, At one point Apple indicated that they intended to support ServiceWorks, but as you can imagine, enabling a large number of PWA’s to easily work on Apple devices would undermine the economic and perceptual value that Apple has in the iOS App Store. So they have held back, and have not made any clarifications about when and if Safari will support App Manifests and ServiceWorkers. Most people who advocate for PWA development explain that eventually the social pressure to allow PWA’s in Safari will get great enough that Apple will have to make the change, but there are multiple indications that Google may be doing everything it can to force this issue as soon as they can. You can read more on this topic here: Android Announces Side-Loading for PWA APKs.