Skip to content

Framework support

scrollsheet is SSR-safe by design, not by special-casing. The dialog only exists once JS runs on the client: it’s gated behind a mount flag that starts false and flips in a useEffect, so the server render and the first client render before hydration finishes produce identical markup, no dialog, just your trigger.

Framework Works out of the box Notes
Next.js App Router Yes "use client" is already on every file that needs it, including the dist chunk boundary.
Next.js Pages Router Yes No RSC boundary to worry about; "use client" is inert but harmless.
Remix / React Router v7 Yes Same SSR + hydration shape scrollsheet already handles.
Astro Yes See the caveat below.
Vite (SPA, no SSR) Yes renderToString never runs, so this is the simplest case.