18 ms·
We've been using similar architecture at Yahoo for many years now. We tried to go all in on a React framework that worked on the server and client, but the clie
by redonkulus 3y ago
We've been using similar architecture at Yahoo for many years now. We tried to go all in on a React framework that worked on the server and client, but the client was extremely slow to bootstrap due to downloading/parsing lots of React components, then React needing to rehydrate all the data and re-render the client. Not to mention rendering an entire React app on the server is a huge bottleneck for performance (can't wait for Server Components / Suspense which are supposed to make this better ... aside: we had to make this architecture ourselves to split up one giant React render tree into multiple separate ones that we can then rehydrate and attach to on the client)
We've moved back to an MPA structure with decorated markup to add interactivity like scroll views, fetching data, tabs and other common UX use cases. If you view the source on yahoo.com and look for "wafer," you can see some examples of how this works. It helps to avoid bundle size bloat from having to download and compile tons of JS for functionality to work.
For a more complex, data-driven site, I still think the SPA architecture or "islands" approach is ideal instead of MPA. For our largely static site, going full MPA with a simple client-side library based on HTML decorations has worked really well for us.
- vosper 3y ago> We've been using similar architecture at Yahoo for many years now. At all of Yahoo? I imagined such a big company would have a variety of front-end frameworks and patterns.
- redonkulus 3y agoNope, not all. Yahoo homepage, News, Entertainment, Weather all use this architecture. Yahoo Mail uses a React/Reduct architecture on the client. Other Yahoo properties with more complex client-side UX requirements are using things like Svelte or React. It's not a one size fits all architecture at Yahoo, we let teams determine the right tools for the job.
- pier25 3y ago> simple client-side library based on HTML decorations has worked really well for us What library are you using?
- redonkulus 3y agoWe developed an internal library, but there are similar libraries in open source (although I can't remember their names).
- thomond 3y agoI had no idea Yahoo