How are PWAs different than normal web apps?

How does a Progressive Web App differ from a normal web application? Fortunately, you're most likely already doing most of what's needed for a PWA, like responsive web design.

PWA do rely on a couple of new technologies on top of what you may be used to. These are:

Web App Manifest

The Web App Manifest is a JSON file that describes the application to the browser. It defines the application's name, colors, icons and how it should run if installed to a device. Creating one is as easy as creating a JSON file and linking it from your HTML file. The manifest file can be linked from several pages to indicate to the browser that they all make up one app.

ServiceWorker

In order to provide most of the functionality that we associate with PWA, you need a ServiceWorker. The service worker is a JavaScript worker script that sits between your application and the network. With it, you are able to intercept and handle any network requests so your application can work reliably even in poor network conditions or offline situations. Common use cases for the ServiceWorker are caching of static assets and providing fallback content for network requests when they fail.

ServiceWorker is event driven and can be woken up by the browser if needed, even when the user is not on the page. This allows you to send users push notifications for important events like when an item is shipped or when a user receives a message. Because it is event driven, it cannot run tasks by itself and consume resources on your device.