Why TanStack.com Removed React Server Components
TanStack removed React Server Components from tanstack.com, shrinking its markdown/highlight stack and returning to simpler, faster regular SSR.
TanStack creator Tanner Linsley detailed why the team removed React Server Components from tanstack.com after months of using it as a flagship RSC example. The original move was a real win: rendering markdown and Shiki-based syntax highlighting on the server cut client JS by up to 153 KB on blog and docs pages, improving Lighthouse scores and Total Blocking Time significantly. But over time, the Flight payloads, strict server/client boundary rules, manual chunking, and serialization layers made a fundamentally simple content pipeline hard to reason about.
The team eventually asked whether RSC was solving an application problem or just hiding one oversized dependency from the browser. To test this, they replaced the old markdown/Shiki stack with purpose-built, narrowly scoped @tanstack/markdown and @tanstack/highlight packages. The result: the content renderer now ships at roughly 27 KiB, only 18-19 KiB more than the RSC version.
Once the dependency itself was small, RSC's core justification largely disappeared. The team reverted to regular SSR, passing raw content through server functions instead of serialized component trees. Production measurements showed the new SSR site was smaller and had lower Total Blocking Time than the old RSC site on both blog and docs routes—and unlike RSC, subsequent navigations only resend changed content data instead of re-serializing rendered component trees each time.
The case is a useful reminder that RSC isn't always the right fix: sometimes shrinking a heavy dependency is a simpler, more maintainable solution than building an entire architecture around keeping it off the client.
This synthesis was produced from its source by AI; there is no human editor or manual review step. How we work