This project is discontinued - it's a demo. All data is fake and resets on refresh.
Driftboard
Ada Marin
9 days ago
Shell = server, hot path = client, and keep the boundary brutal. Anything in the interaction loop must not touch the server synchronously. We pass server data into the client island as initial props and then it is fully client-driven.
The waterfall trap is real - fetch the island data in the same server component that renders the island, not nested below it. Otherwise you serialize round trips and the editor feels sticky.
Honestly for the canvas itself RSC buys you nothing and costs you sanity. Use it for the comments/sidebar shell where the data is server-owned and not latency-critical.