Instead of going:
Fetch index.html -> Fetch JS bundle -> Evaluate -> Fetch /users/me
You do:
Fetch index.html (your page is rendered at this point) -> rehydrate with client side JS for interactivity in the background
It's a pretty smart solution I think, and many people are still sleeping on the whole SSR topic.
It makes sense for sites with a lot of static pages, but you barely need react in that case. NextJS does not perform that well out of the box. I’d argue that a basic SPA with no SSR using something like preact would be a better choice for many building dashboards or applications (not marketing/docs sites). It’s also easier to host & operate and has fewer footguns.
Getting SSR right is tricky and barely even matters for a lot of use cases I’m seeing with Next.
Better server/client integration when it comes to rendering UIs is neat, but there are other technologies that solve for that at a more fundamental level (htmx, phoenix)