PWAs are built using progressive app features including service workers, a web application manifest, and an app shell. A service worker is a script that runs in the background to support offline web applications and push notifications. A manifest makes it possible to add web apps to the home screen and adapt to various screen sizes. An app shell ensures instant, reliable performance when cached offline.