{"slug": "react-server-components", "name": "React Server Components", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 8, "warners": 4, "score": -0.702, "rising": -0.98, "first": "2025-12-03", "latest": "2026-04-14", "why": "it cuts down the number of routes you need by 90% or more", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 1, "compare": 0, "warn": 4}, "spark": [0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "it cuts down the number of routes you need by 90% or more", "kind": "", "icon": true, "domain": null, "github_repo": null, "official_url": "https://react.dev/reference/rsc/server-components", "pricing": "", "aliases": ["React Server Components"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 746381345, "item_id": 46648834, "url": "https://news.ycombinator.com/item?id=46648834", "by": "hydroxideOH-", "date": "2026-01-16", "version": null, "stance": "recommend", "quote": "RSC are designed to solve many of the same problems that Astro does.", "excerpt": "I recently rebuilt my site with Parcel + React Server Components. RSC are designed to solve many of the same problems that Astro does. And Parcel is \u201cjust\u201d a bundler and not a framework, so it has less magic and gives you more control. https://micahcantor.com/blog/rsc-rewrite.html", "context": "", "use_case": "", "switched_from": "", "story": "Astro Joining Cloudflare"}, {"id": 739851504, "item_id": 46240719, "url": "https://news.ycombinator.com/item?id=46240719", "by": "berekuk", "date": "2025-12-11", "version": null, "stance": "recommend", "quote": "it cuts down the number of routes you need by 90% or more", "excerpt": "If I control both the backend and the frontend, yes. Server-only async components on top of layout/page component hierarchy, components -> DTO layer -> Prisma. Similar to this: https://nextjs.org/blog/security-nextjs-server-components-actions You still need API routes for stuff like data-heavy async dropdowns, or anything else that's hard to express as a pure URL -> HTML, but it cuts down the number of routes you nee", "context": "", "use_case": "Server-side component rendering", "switched_from": "", "story": "Denial of service and source code exposure in React Server Components"}, {"id": 738214992, "item_id": 46138437, "url": "https://news.ycombinator.com/item?id=46138437", "by": "switz", "date": "2025-12-03", "version": null, "stance": "recommend", "quote": "There's no system for web development that provides the developer with more grounded flexibility than RSCs.", "excerpt": "They lend you optionality of when and where you want your code to run. Plus it enables you to define the server/client network boundary where you see fit and cross that boundary seamlessly. It's totally fine to say you don't understand why they have benefits, but it really irks me when people exclaim they have no value or exist just for complexity's sake. There's no system for web development that provides the develo", "context": "", "use_case": "", "switched_from": "", "story": "RCE Vulnerability in React and Next.js"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 764258608, "item_id": 47766163, "url": "https://news.ycombinator.com/item?id=47766163", "by": "mb2100", "date": "2026-04-14", "version": null, "stance": "warn", "quote": "without a complex and insecure protocol like RSC", "excerpt": "Agree that TypeScript is nice, especially for sharing templates and types between server and client. But you can still use TypeScript on the server without sending it all to the client, and without a complex and insecure protocol like RSC. I\u2019m working on making this as simple and dependency-free as possible: https://mastrojs.github.io", "context": "", "use_case": "", "switched_from": "", "story": "TanStack Start Now Support React Server Components"}, {"id": 751991072, "item_id": 46999442, "url": "https://news.ycombinator.com/item?id=46999442", "by": "fulafel", "date": "2026-02-12", "version": null, "stance": "warn", "quote": "Are those still in vogue after the recent security disaster?", "excerpt": "The docs start off with server components. Are those still in vogue after the recent security disaster? ref. https://threatprotect.qualys.com/2025/12/04/react-server-components-rsc-remote-code-execution-vulnerabilities/", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: rari, the rust-powered react framework"}, {"id": 739848337, "item_id": 46240521, "url": "https://news.ycombinator.com/item?id=46240521", "by": "reissbaker", "date": "2025-12-11", "version": null, "stance": "warn", "quote": "But I really, really do not like React Server Components as they work today.", "excerpt": "Personally, I love App Router: it reminds me of the Meta monorepos, where everything related to a certain domain is kept in the same directory. For example, anything related to user login/creation/deletion might be kept in the /app/users directory, etc. But I really, really do not like React Server Components as they work today. I think it's probably better to strip them out in favor of just a route.ts file in the di", "context": "", "use_case": "", "switched_from": "", "story": "Denial of service and source code exposure in React Server Components"}]}], "who": [], "tags": [], "use_cases": ["server-side component rendering"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47761609", "title": "TanStack Start Now Support React Server Components", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46236924", "title": "Denial of service and source code exposure in React Server Components", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47704881", "title": "Vercel Claude Code plugin wants to read your prompt", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46993596", "title": "Show HN: rari, the rust-powered react framework", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46646645", "title": "Astro Joining Cloudflare", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46136026", "title": "RCE Vulnerability in React and Next.js", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 2, "warn": 1}, "2026-01": {"recommend": 1}, "2026-02": {"warn": 1}, "2026-03": {}, "2026-04": {"neutral": 1, "warn": 2}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 764258608, "item_id": 47766163, "url": "https://news.ycombinator.com/item?id=47766163", "by": "mb2100", "date": "2026-04-14", "version": null, "stance": "warn", "quote": "without a complex and insecure protocol like RSC", "excerpt": "Agree that TypeScript is nice, especially for sharing templates and types between server and client. But you can still use TypeScript on the server without sending it all to the client, and without a complex and insecure protocol like RSC. I\u2019m working on making this as simple and dependency-free as possible: https://mastrojs.github.io", "context": "", "use_case": "", "switched_from": "", "story": "TanStack Start Now Support React Server Components"}, {"id": 764197440, "item_id": 47762340, "url": "https://news.ycombinator.com/item?id=47762340", "by": "troupo", "date": "2026-04-14", "version": null, "stance": "warn", "quote": "", "excerpt": "> Even bottom of the barrel motorolas are not wimpy nowadays They are: https://infrequently.org/2025/11/performance-inequality-gap-2026/ That said, RSCs and the rest of the \"let's render a static site but let's also send a multimegabyte bundle for 'hydration'\" is still wrong", "context": "", "use_case": "", "switched_from": "", "story": "TanStack Start Now Support React Server Components"}, {"id": 763658336, "item_id": 47728646, "url": "https://news.ycombinator.com/item?id=47728646", "by": "danabramov", "date": "2026-04-11", "version": null, "stance": "neutral", "quote": "", "excerpt": "Hey, appreciate the reply! I\u2019m sorry for lashing out as well. Re: protocol, I see where you\u2019re coming from although I can also see the team perspective and I kind of like it the way it is. The team\u2019s perspective is that this isn\u2019t a \u201cprotocol\u201d in the sense that HTTP or such is. It isn\u2019t designed to have many implementations emitting it. It is an implementation detail of React itself for which React provides both the ", "context": "", "use_case": "", "switched_from": "", "story": "Vercel Claude Code plugin wants to read your prompt"}, {"id": 751991072, "item_id": 46999442, "url": "https://news.ycombinator.com/item?id=46999442", "by": "fulafel", "date": "2026-02-12", "version": null, "stance": "warn", "quote": "Are those still in vogue after the recent security disaster?", "excerpt": "The docs start off with server components. Are those still in vogue after the recent security disaster? ref. https://threatprotect.qualys.com/2025/12/04/react-server-components-rsc-remote-code-execution-vulnerabilities/", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: rari, the rust-powered react framework"}, {"id": 746381345, "item_id": 46648834, "url": "https://news.ycombinator.com/item?id=46648834", "by": "hydroxideOH-", "date": "2026-01-16", "version": null, "stance": "recommend", "quote": "RSC are designed to solve many of the same problems that Astro does.", "excerpt": "I recently rebuilt my site with Parcel + React Server Components. RSC are designed to solve many of the same problems that Astro does. And Parcel is \u201cjust\u201d a bundler and not a framework, so it has less magic and gives you more control. https://micahcantor.com/blog/rsc-rewrite.html", "context": "", "use_case": "", "switched_from": "", "story": "Astro Joining Cloudflare"}, {"id": 739851504, "item_id": 46240719, "url": "https://news.ycombinator.com/item?id=46240719", "by": "berekuk", "date": "2025-12-11", "version": null, "stance": "recommend", "quote": "it cuts down the number of routes you need by 90% or more", "excerpt": "If I control both the backend and the frontend, yes. Server-only async components on top of layout/page component hierarchy, components -> DTO layer -> Prisma. Similar to this: https://nextjs.org/blog/security-nextjs-server-components-actions You still need API routes for stuff like data-heavy async dropdowns, or anything else that's hard to express as a pure URL -> HTML, but it cuts down the number of routes you nee", "context": "", "use_case": "Server-side component rendering", "switched_from": "", "story": "Denial of service and source code exposure in React Server Components"}, {"id": 739848337, "item_id": 46240521, "url": "https://news.ycombinator.com/item?id=46240521", "by": "reissbaker", "date": "2025-12-11", "version": null, "stance": "warn", "quote": "But I really, really do not like React Server Components as they work today.", "excerpt": "Personally, I love App Router: it reminds me of the Meta monorepos, where everything related to a certain domain is kept in the same directory. For example, anything related to user login/creation/deletion might be kept in the /app/users directory, etc. But I really, really do not like React Server Components as they work today. I think it's probably better to strip them out in favor of just a route.ts file in the di", "context": "", "use_case": "", "switched_from": "", "story": "Denial of service and source code exposure in React Server Components"}, {"id": 738214992, "item_id": 46138437, "url": "https://news.ycombinator.com/item?id=46138437", "by": "switz", "date": "2025-12-03", "version": null, "stance": "recommend", "quote": "There's no system for web development that provides the developer with more grounded flexibility than RSCs.", "excerpt": "They lend you optionality of when and where you want your code to run. Plus it enables you to define the server/client network boundary where you see fit and cross that boundary seamlessly. It's totally fine to say you don't understand why they have benefits, but it really irks me when people exclaim they have no value or exist just for complexity's sake. There's no system for web development that provides the develo", "context": "", "use_case": "", "switched_from": "", "story": "RCE Vulnerability in React and Next.js"}]}