PWA, a Progressive Web Application, is a term coined by Google recently, and it’s more of a mindset than a technique. It doesn’t have a specific definition and different people mean different things when they say PWA. The most commonly referred feature, though, is usage of service workers which makes it possible for the application to be available offline. However, it doesn’t stop there: you also need to use HTTP, make the user experience smooth on mobile, work cross-browser, enable SSR, etc. Check out Google’s PWA checklist for more. A Single Page Application (SPA) can be a Progressive Web App (PWA) but a PWA doesn't need to be a SPA. They are two different things. A PWA as defined by Google is:
Reliable - Load instantly and never show the downasaur, even in uncertain network conditions.
Fast - Respond quickly to user interactions with silky smooth animations and no janky scrolling.
Engaging - Feel like a natural app on the device, with an immersive user experience.
The Google PWA site is a good place to start learning about PWA and why and how you would build one.