The Framework Decision That Haunts SaaS Founders Later
Countless SaaS products started as Create React App SPAs and spent 6–12 months rebuilding in Next.js when they realized they needed SEO for organic growth. The framework choice is worth getting right from day one.
React SPA: When It's the Right Choice
A React SPA (Create React App, Vite + React) renders entirely in the browser. HTML arrives blank, JavaScript fills it in. Right for: internal tools with no public-facing pages, apps behind authentication with no SEO requirement, highly interactive applications like drawing tools or IDEs, dashboards that don't need server rendering.
Next.js: The Default for Public-Facing SaaS
Next.js enables server-side rendering (SSR), static generation (SSG), and a mix of both. The public marketing site, pricing pages, blog, and feature pages are server-rendered — Google indexes them instantly. The authenticated dashboard can still behave like an SPA.
The SEO Argument
If any part of your SaaS needs organic search traffic — marketing pages, feature pages, blog — you need server rendering. A React SPA sends Google an empty HTML file. Google's crawler executes JavaScript, but inconsistently. With Next.js SSG/SSR, Google gets fully rendered HTML on first request.
Performance Argument
Next.js Server Components in v15 fetch data and render HTML on the server. Users see content immediately (LCP improves). React SPA requires download → parse → execute → fetch → render — typically 3–5 seconds before content appears. For SEO, LCP under 2.5 seconds is required.
The Verdict
Build on Next.js unless you have a specific, justified reason for a pure SPA. The flexibility cost (learning the framework) is far less than the refactoring cost of migrating from SPA to SSR later.