Fetching price…

This demo shows off Next.js App Router with RSC streaming a Promise (source) from the server which gets use()’d by the client (source).

The chart is not rendered on the server, but that does not come at the expense of having to perform a fetch() on the client. No roundtrips or waterfalls.

This demo shows how App Router can stream “server-rendered data”, not just UI, a great solution for data-heavy apps, “SPAs”, or libraries which rely on browser APIs (and have no SSR support).

The best part: thanks to PPR, the 🖼️ initial page shell is instantly & statically delivered by the Vercel edge, followed by the dynamic stream.


Deployed on Vercel (source). Data by Kraken API. Charts by shadcn & Recharts.