Rendering strategy chosen per page, not by dogma
Next.js lets you render each route the way that route deserves, static generation for pages that rarely change, server rendering for personalised or frequently-updated pages, and client rendering for genuinely interactive widgets.
A lot of Next.js sites are slow because everything is pushed into client components and the browser does work the server should have done. We pick the strategy per page: marketing pages are statically generated and served from the edge; a dashboard is server-rendered with the data it needs; only the interactive islands run on the client. That is how you get both SEO and app-like speed.