Rendering Modes
Which rendering strategies each meta-framework supports and how you opt into them per route.
Next.js
Next.js supports static generation, server-side rendering, incremental static regeneration (revalidate), and streaming SSR via React Suspense, all configurable per route or per fetch call rather than as a single global mode. The App Router defaults to static rendering where possible and falls back to dynamic rendering when it detects request-time data access.
Nuxt
Nuxt supports universal (SSR), static site generation (nuxt generate), and pure client-side rendering, with hybrid rendering allowing different rules per route via routeRules (e.g., prerender one path, SSR another, cache a third). Nitro’s caching layer also enables ISR-like behavior on supported hosts.
SvelteKit
Each route can independently opt into prerendering (export const prerender = true), SSR, or client-side-only rendering (ssr = false) via page options, giving a hybrid model where a single app mixes static and dynamic routes. Streaming is supported by returning promises from load functions that resolve client-side.
SolidStart
SolidStart supports SSR, SSG (via prerendering routes at build time), and streaming SSR built on Solid’s fine-grained rendering, with per-route configuration for which mode applies. Client-side-only rendering is also available for routes that don’t need server output.
TanStack Start
TanStack Start is primarily SSR-first, rendering routes on the server with streaming support and hydrating on the client, with static prerendering achievable for routes without dynamic per-request data. As a newer framework, its rendering mode configuration is less granular than more established competitors but is evolving quickly.
Remix
Remix renders every route on the server per request by default (SSR), with no built-in static generation step, though its streaming support via deferred loader data lets slow data resolve after initial paint. Fully static output is possible only indirectly, by treating build-time data as effectively static within the SSR model.
Astro
Astro defaults to zero-JS static output (SSG) at build time, but supports on-demand server rendering per page or globally via an adapter, plus a hybrid mode mixing prerendered and server-rendered routes in one project. Islands architecture means interactive components hydrate independently regardless of the page’s overall rendering mode.
Qwik City
Qwik City can prerender routes to static HTML at build time or serve them per-request via an adapter, but its distinguishing trait is resumability: rendered HTML includes serialized state so the client resumes execution instantly without a hydration pass. This makes the SSR/SSG distinction less costly than in hydration-based frameworks.