Single-Page Application
A web app that loads one HTML page and then rewrites it with JavaScript as the user navigates, trading a slower, heavier first load for app-like transitions afterwards.
A single-page application (SPA) loads one HTML document, then handles every later navigation in JavaScript: it fetches data, renders the new view into the existing page and updates the address bar without a full page load. The traditional alternative, now called a multi-page application (MPA), asks the server for a new document on every click.
Gmail (2004) and Google Maps (2005) showed what in-page updates could do, and the term AJAX, coined in 2005, named the technique. Frameworks followed: Backbone, then Angular, React and Vue made client-side rendering the default way to build web apps through the 2010s.
Client-side routing makes it work. Early SPAs kept their state after a # in the URL, since changing the fragment never reloads the page. The History API (pushState, standardized with HTML5) let apps change the real path instead, so URLs look normal and can be bookmarked and shared. The router must then reproduce what the browser used to do for free.
The model's costs come from moving the browser's job into application code:
- Slow first load. Nothing appears until the JavaScript downloads, parses and runs, which hurts Core Web Vitals. Large Bundler output makes it worse, which is why Code Splitting by route became standard.
- Broken basics. Back and forward buttons, scroll restoration, the loading indicator and opening links in new tabs all have to be reimplemented, and are often done badly.
- Accessibility. A screen reader announces a new page load but not a DOM swap. Each route change needs deliberate Focus Management and an announcement.
- Crawlers. Content rendered only in JavaScript is indexed late or not at all, a problem for Search Engine Optimization.
- Long sessions. A tab that stays open for days accumulates listeners and caches, so a memory leak that a page load would have cleared keeps growing.
In return, navigation after the first load can be instant. Shared layout stays mounted, state survives between views, and techniques like Optimistic UI and prefetching make the app feel local.
The pendulum has since swung back toward the server. Server-Side Rendering with Hydration sends real HTML first and adds the SPA behavior after. Islands Architecture hydrates only the interactive parts, and React Server Components move rendering back across the client-server boundary. Meanwhile browsers have closed the gap for MPAs: View Transitions animate between full page loads, and the back/forward cache restores pages instantly. Many sites now use a hybrid, rendering documents on the server and navigating like an SPA, built on Progressive Enhancement. The label now describes a spectrum more than a category.
See also2
URL
The address format that names every resource on the web, its parts from scheme to fragment, and why parsing one correctly is harder and more security-relevant than it looks.
Web Platform20 connections
Screen Reader
Software that turns an interface into speech or braille for people who can't see the screen, which navigates by structure rather than reading top to bottom, and exposes every shortcut a sighted design took.
Design & Interface25 connections
Linked from11
- Back-Forward CacheWeb Platform
Browsers keeping a whole page frozen in memory when you navigate away, so pressing Back restores it instantly, unless something on the page makes it ineligible.
- Code SplittingWeb Platform
Dividing an application bundle so a page downloads only the code it needs.
- Deep LinkingWeb Platform
Linking straight to a specific page or item rather than a site's front door, once fought over in court and now a feature that apps and web apps must work to support.
- Islands ArchitectureWeb Platform
Rendering a page as static HTML with small independently interactive regions.
- Layout ShiftWeb Platform
Visible content jumping position after it first appears, usually because something loaded late without reserved space, measured by browsers as Cumulative Layout Shift.
- Open GraphWeb Platform
The meta tags a page uses to describe its own preview card when a link is shared, how chat apps and social networks fetch them, and why a preview shows only what the page claims about itself.
- Progressive Web AppWeb Platform
A website that can be installed like a native app, launched from the home screen in its own window and used offline, built from a manifest, a service worker and HTTPS.
- Screen ReaderDesign & Interface
Software that turns an interface into speech or braille for people who can't see the screen, which navigates by structure rather than reading top to bottom, and exposes every shortcut a sighted design took.
- URLWeb Platform
The address format that names every resource on the web, its parts from scheme to fragment, and why parsing one correctly is harder and more security-relevant than it looks.
- View TransitionsWeb Platform
A browser API that animates between two states of a page, or between two pages, by snapshotting the old and new views and morphing between them.
- Web CrawlerWeb Platform
A program that discovers the web by fetching pages and following their links, the machinery behind search engines and training datasets, and the voluntary etiquette that governs it.