Yelp knows their resources are better than your phone.
So they did all the server side rendering themselves
⚡TLDR;
Yelp has been doing Server Side Rendering (SSR) for awhile. But it wasn’t optimized so they made it more optimized.
Do the SSR work on worker threads instead of the main thread
Switch to client-side rendering if server-side rendering would fail.
👏 Yelp’s problem with SSR
SSR was done on a single service and put a lot of stress on that server. Which is one of the biggest cons to server side rendering.
🧠 How it used to happen
There was a single service that built all the server-side rendering bundles.
This meant there was a bundle for each and every entry point to a yelp page on the same server
This meant a server wouldn’t be started until it built all of them (yikes).
♻️ It got so slow that their own alarms marked the server as unhealthy and restarted the server.
🔧 Here’s the requirements
Requirement #1: Don’t block the main thread trying to build the HTML. This also solves the server start problem.
Requirement #2: Fail-fast and faster than that. If SSR doesn’t work, go with client-side rendering.



