SPASingle Page Application
A web app that loads one HTML shell and then renders all subsequent views in the browser via JavaScript, without full page reloads.
· Reviewed by senior engineers
A Single Page Application (SPA) is a web app that loads a single HTML document and then rewrites the page in the browser as the user navigates. Routing, data fetching and rendering all happen client-side. React, Vue and Angular popularised the pattern, and it remains the right shape for highly interactive product surfaces — dashboards, editors, admin panels, design tools.
The appeal is responsiveness. Once the JavaScript bundle has loaded, navigation feels instant because there is no round-trip to the server for HTML. Application state lives in memory, so complex interactions like drag-and-drop, optimistic updates and live collaboration are straightforward.
The trade-off is the first paint. Search engines, social previews and users on slow connections all pay for a large initial JavaScript bundle. SPAs are also harder to make accessible — focus management, route announcements and meaningful URLs all need explicit work. For content-led pages (marketing sites, blogs, product detail pages) a pure SPA is usually the wrong choice; SSR, SSG or a hybrid approach wins on Core Web Vitals and SEO.
We tend to build product surfaces as SPAs (often inside a Next.js or Remix app) and content surfaces as server-rendered or statically generated pages. The split keeps the marketing site fast for crawlers and the app responsive for logged-in users.
