← All posts

We Tried Server-Side Rendering — And Reverted It

GrooveShouter originally shipped with Angular SSR, chiefly for SEO and a faster first paint. In practice, it added a steady stream of friction: PLATFORM_ID checks scattered across the codebase every time something touched the browser, a heavier and slower container build, and extra non-root/permission complexity in the SSR image on top of everything from the CI post above.

For a client-rendered PWA that guests mostly reach via a QR code rather than a search engine, that overhead didn't earn its keep. We ripped SSR back out and solved discoverability afterward with a dedicated SEO service instead (more on that in a future post). Note: this is our best reconstruction of the reasoning from the commit history — see docs/blog-needs-input.md for the exact decision-making context still to be confirmed.