React (and Vue, et al) was built with client side rendering in mind. It just does not seem to fit the server side rendering pattern.
What are the use cases? From my perspective, if your app is a rich web app with a lot of interactivity, you probably want CSR and don’t benefit much from SSR.
If you have a content-centric site, or a site with some interactivity but not much, you want a static site generator, or SSR. But in that case, a template engine with some smaller client side libraries (jQuery or AlpineJS or idk what all is out there).
Using React SSR for all of these seems like the wrong tool. What am I missing?
You can configure nextjs to compile as only client-side-rendering, so that it runs like before!
Another thing: NextJS is not only SSR. It’s hybrid. The advantage here is that it decreases the visible first load time.
First load pre-rendered HTML and styling is sent to the browser. So the page is already fully visible. After that all scripts and secondary CSS will be loaded. And even after that the bindings will be done.
Where as with pure CSR, all JavaScripts need to be loaded and executed and only then stuff will become visible to the user