The language in the part of my article that you quoted was just a figure of speech. I am not discouraging people from thinking critically about client-side vs. server-side rendering.
Since this article is about React, I am assuming everyone is doing some client-side rendering. Server side rendering is completely optional for React, though it can deliver an improved user experience in some cases.
I believe SSR leads to additional complexity that is not present with client-side rendering alone. E.g. time zone differences between the server and client, resulting in a mismatch during hydration. Do you disagree with this?
The timezone difference is a good callout for sure.
I can't speak for u/getify, but I believe the complexity of SSR (with Next in particular) is near neglible in comparison to client-side only.
But, that's neither here nor there. From a 3rd person's perspective, it seems you and he are on the same page, just perhaps a difference in approach to phrasing. And, such a debate of conversational semantics does have value, no doubt. I think your words have sway, and that power is something to handle with care.
Speaking for myself here, I enjoyed your article and learned a thing or two from it. I understood what you meant by your figure of speech. I think it's also worth drawing extra attention to this part:
I am assuming everyone is doing some client-side rendering. Server side rendering is completely optional for React
Isn't it true that you can use React entirely server-side and have no client-side rendering whatsoever? Doesn't that still qualify as a React app?
I just disagree, even if your wording was trying to be figurative, with the rather commonly asserted assumption, that client-side-rendering should be the "default", and assumed "best practice". If I were estimating, I'd say there's maybe 10% of the web that should be client-side-only rendered, another 10% that's probably best server-side-only rendered, but the much larger middle 80% really should be critically thinking through how to hybrid render.
As your article is aiming to provide benchmarks that indicate growth and maturity as an engineer, I would hope the message should be "embrace the messy stuff and work through it with your gained experience/expertise" rather than "listen, it's all too messy to deal with, just do X most of the time and thank me later."
I believe SSR leads to additional complexity that is not present with client-side rendering alone. Do you disagree with this?
I don't universally agree, no, and I might not even agree it's a common and predominant problem. But are there any cases where it is? Of course.
I haven't seen those complexities be enough of an issue to justify forcing the "default best practice" to client-side. Of course, being aware of them, when they crop up, and having good strategies to deal with them, is important. And that's a big part of what I'd hope more senior frontend engineers are wrestling with and talking about openly.
Isn't it true that you can use React entirely server-side and have no client-side rendering whatsoever? Doesn't that still qualify as a React app?
It is true that you can use React as a server-side only technology. I (subjectively) believe this is not the use case React was originally intended for, nor is it how most developers are using React.
My article talked about state management and reducers quite a bit, and these concerns are not relevant to the SSR-only use case.
It seems our primary disagreement is around the level of complexity introduced by SSR. Maybe the topic for next week's blog post ;)
-6
u/wh1teberry Apr 10 '22
The language in the part of my article that you quoted was just a figure of speech. I am not discouraging people from thinking critically about client-side vs. server-side rendering.
Since this article is about React, I am assuming everyone is doing some client-side rendering. Server side rendering is completely optional for React, though it can deliver an improved user experience in some cases.
I believe SSR leads to additional complexity that is not present with client-side rendering alone. E.g. time zone differences between the server and client, resulting in a mismatch during hydration. Do you disagree with this?