01 — Purpose

Choose rendering on purpose

Rendering strategy affects performance, resilience, and complexity — choose approaches intentionally, not by trend.

Static generation, server-side rendering, and client-side rendering each trade off speed, dynamism, and operational cost. The wrong default — CSR for a marketing site, static for a live dashboard — hurts users and teams alike.

See hydration costs and islands architecture for how interactivity fits after HTML delivery.

02 — Principles

Architecture should match user needs

Not every page needs the same rendering model.

  • Static — pre-built HTML at build time; fast delivery, high resilience, ideal for content-heavy sites
  • SSR — HTML per request; dynamic and personalised content, SEO-sensitive pages
  • CSR — render in the browser; highly interactive apps and client-heavy workflows

03 — Practice

When to use each approach

Mix models per route — not one global choice for the whole product.

  • static for docs, marketing, and standards — like this site; CDN-friendly, minimal TTFB
  • SSR for personalised or frequently changing pages — account home, search results
  • CSR sparingly for dense app shells — dashboards where client state dominates
  • combine static + islands — static HTML with hydrated widgets; see islands architecture
  • measure TTFB and LCP per strategy — see TTFB and backend impact

04 — Avoid

Rendering mismatches

Using CSR unnecessarily for simple content sites is a common and expensive mistake.

  • CSR for content sites — blank shell until JS loads, poor SEO and LCP
  • SSR everything — unnecessary server cost for truly static pages
  • static for highly personalised real-time data — stale or build-heavy workarounds
  • choosing by framework default — not by route requirements
  • ignoring resilience — CSR fails hard when JS errors or networks stall

05 — Close

Match the model to the page

Trends change; user needs and content shape do not.

List your top routes. For each, ask: how often does content change, does it vary per user, and how much client interactivity is required? Pick static, SSR, or CSR — or static plus islands — accordingly.

See progressive hydration, performance budgets, and performance standard.