I have given this a lot of thought, and I haven't been able to come up with any reasonable long-term solution that avoids major refactors or swapping out libraries and tools. I am leaning toward pairing React with React Router for creating server-side rendered web apps. My thinking is that React has "won" the JavaScript wars, maintaining its popularity consistently over the past decade, and React Router is one of the most downloaded libraries for React. (At this point, I’ve come to terms with the fact that React Router will likely introduce breaking changes in its next major update, as it has done many times in the past.)
So I mostly agree with you, but I think there's some real dissatisfaction with React and Remix/React-Router's emphasis on SSR. If you don't care about SEO, there's really not that much SSR gives you that CSR doesn't. React and Remix seem to have gone all-in on SSR, and I just don't quite understand why.
Yeah, I like have an express or python backend that just is the api. I know I can test and validate what comes out easily, and control auth from there.
The backend is the real app, and the frontend is the ui peice.
With a solid backend, you can yank out the FE and replace it, or have it power some other apps easily. You can identify issues, and not have to traverse much code to get to them.
Your browser network tools will quickly help you identify if your problem is on the backend or the frontend regarding data.
SSR, well it is like going back to PHP days. The problem could be anywhere in the codebase.
If SEO is important, then yeah, it becomes an issue, but in that case I think periodic caching of client side rendered code to make it so that it shows that to the crawlers works best.