Summary: Modern SSR frameworks ask developers to reason about server and client boundaries. This article argues the simpler SPA model is a valid default again, provided the server layer handles rendering and SEO.
The complexity tax of server components
React Server Components split an application into server and client halves. That is powerful, but it adds a boundary that every developer on the team has to hold in their head, and it produces a class of hydration bugs that only appear at runtime.
What developers actually want
Most teams want to build features, ship quickly, and not debug why a page rendered differently on the server than on the client. A single-page app gives them that, but historically at the cost of SEO because crawlers saw an empty shell.
That trade-off is what gr8s removes. The app stays a client-only SPA, and the server renders and analyses the exported pages so crawlers get real HTML.
A sane default
This is not a claim that server components are wrong. It is a claim that many projects do not need them, and pay a complexity tax for features they never use.
- Build the app as an SPA, with no server/client boundary in your day to day work.
- Export the build and let the server render it for crawlers and users.
- Score every page for SEO during the build, not weeks later.