combines the benefits of server-side or static generation with . The flow is typically:

  • The server delivers finished .
  • Crawlers can read the content immediately.
  • The browser loads the JavaScript.
  • The JavaScript makes the existing page interactive.

This is generally beneficial, because content is available before interactivity. Problems arise with a hydration mismatch, when the server-generated version does not match what the client expects.

Typical causes are different data on server and client, time or random values during render, diverging locale settings, or asynchronous data. A mismatch can cause content to flicker, disappear, or look different in the browser than in the delivered HTML.