Skip to content

Commit 3ac2cdc

Browse files
committed
checkpoint
1 parent 5348d52 commit 3ac2cdc

File tree

1 file changed

+3
-21
lines changed

1 file changed

+3
-21
lines changed

src/blog/tanstack-start-rsc.md

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ authors:
1111
React Server Components are a genuine leap for React. They reduce bundle size, stream UI as it resolves, and move work off the client.
1212

1313
But the way RSCs have been implemented so far comes with a tradeoff: **the server owns the component tree**.
14-
Your client code opts into interactivity with `'use client'`. **Composition flows one direction**server decides, client receives. The React model you knowprops, context, client-led compositiongets fragmented across environments.
14+
Your client code opts into interactivity with `'use client'`. **Composition flows one direction**: server decides, client receives. The React model you know (props, context, client-led composition) gets fragmented across environments.
1515

1616
What if it didn't have to?
1717

18-
What if RSCs were actually components? **Fetchable. Cacheable. Composable by the client.** Primitives that flow through your router, your cache, your data layerwithout special directives or framework lock-in.
18+
What if RSCs were actually components? **Fetchable. Cacheable. Composable by the client.** Primitives that flow through your router, your cache, your data layer, without special directives or framework lock-in.
1919

2020
That's what we built in **TanStack Start**.
2121

@@ -261,24 +261,6 @@ You choose patterns **per-route, per-component, per-use-case**. The architecture
261261

262262
---
263263

264-
## The Philosophy
265-
266-
React Server Components are powerful. They unlock patterns that weren't possible before.
267-
268-
But the traditional model makes a choice: **the server owns the tree, and interactivity is an escape hatch.** That works for content-heavy sites. It creates friction for apps that are fundamentally interactive.
269-
270-
**TanStack Start doesn't make that choice for you.**
271-
272-
> RSCs are a serialization format, a way to stream React elements from the server. They're a primitive, not a paradigm. Use them when they help. Compose around them when you need control. The client and server are peers, not a hierarchy.
273-
274-
The server can render interactive elements directly. It can also defer to the client through slots. **The client still owns the final composition.**
275-
You decide the balance, per-component, based on what makes sense.
276-
277-
Because it's not about client or server.
278-
**It's about using both, intentionally.**
279-
280-
---
281-
282264
## Current Status: Experimental
283265

284266
This is the first experimental release of RSCs in TanStack Start. A few things to know:
@@ -299,7 +281,7 @@ If you hit rough edges, [open an issue](https://github.com/tanstack/router/issue
299281

300282
Next.js App Router is server-first: your component tree lives on the server by default, and you opt into client interactivity with `'use client'` boundaries.
301283

302-
TanStack Start is **isomorphic-first**: your tree lives wherever makes sense, and RSCs are a primitive you pull in when helpful. The key difference is **client-led composition**Composite Components expose slots so the client can assemble the final tree, not just accept a server-owned one.
284+
TanStack Start is **isomorphic-first**: your tree lives wherever makes sense, and RSCs are a primitive you pull in when helpful. The key difference is **client-led composition**. Composite Components expose slots so the client can assemble the final tree, not just accept a server-owned one.
303285

304286
Both approaches support RSCs. They differ in who owns the tree by default and how composition flows.
305287

0 commit comments

Comments
 (0)