A single-page application (SPA) is a Web app that is presented to the user through a single HTML page to be more responsive and to more closely replicate a desktop application or a native app.
An SPA is sometimes referred to as a single-page interface (SPI).
Other web apps, in contrast, present the user with an intial page that is linked to parts of the application on separate HTML pages, which means that the user has to wait for a new page to load every time they make a new request.
SPAs use HTML5 and Ajax to enable smooth and dynamic responses to user requests, allowing content to update immediately when a user performs an action.
Once the page is loaded, interactions with the server are through Ajax calls and data is returned, typically in JSON format, to update the page without requiring reloads.
Progressive Web Apps are a type of SPA.