What are RSCs?
So far, we have been using the traditional React architecture, where all components are client components. We started with client-side rendering. However, there are some downsides to client-side rendering:
- The JavaScript client bundle must be downloaded from the server before the client can start rendering anything, delaying the first contentful paint (FCP) for the user.
- Data must be fetched from the server (after all JavaScript is downloaded and executed) to show anything meaningful, delaying the first meaningful paint (FMP) for the user.
- Most of the load is on the client, even for pages that are not interactive, which is especially problematic for clients with slow processors, such as low-end mobile devices or old laptops. It also uses more battery to load a heavy client-side rendered page.
- In certain cases, data is fetched sequentially (for example, loading posts first and then resolving the authors of each post), which is especially a problem...