On the SSR/SPA side, whilst SSR might seem more complex the reality is (in neither Gatsby or Next) that you just don’t need to use it. Which means you can build a perfectly simple client-only app, it’s no more complex than CRA, and actually it’s helpful over time because the framework tends to take care of a rats nest of migrations and dependencies that CRA used to hand over to you to maintain.