You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tabs / Steps / FileTree parse HTML at render time via Sätteri, breaking non-Node SSR runtimes (Cloudflare workerd) #4194
Tabs, Steps and FileTree call htmlToHast() from satteri at render time (dist/user-components/{tabs,steps,file-tree}-processor.js). Sätteri ships only a native .node binding and a WASI binding, and neither can run in Cloudflare's workerd runtime:
the native .node addon cannot be loaded at all;
the WASI binding (@bruits/satteri-wasm32-wasi) touches node:wasi at module evaluation, and workerd's stub throws The WASI method is not implemented.
So any page containing <Tabs> fails with the Cloudflare adapter, whose default prerenderEnvironment is 'workerd':
[ERROR] Error: The WASI method is not implemented
at new WASI (node:wasi:27:15)
[ERROR] [build] Caught error rendering /example:
Failed to prerender https://example.com/example/: The WASI method is not implemented
The WASI binding's browser entry (satteri_napi.wasi-browser.js) is not usable either — it needs top-level fetch() of the .wasm, new Worker() and a shared WebAssembly.Memory, none of which exist in workerd.
Activity
delucis commentedon Sep 11, 2026
Thanks for reporting @314systems and apologies for the inconvenience!
There is work ongoing to make Sätteri compatible with workerd (see http://github.com/bruits/satteri/pull/248), but I’ll admit this was not something we tested or considered when switching to use it for those components in v0.42. I think for now unfortunately the best path is probably to stick to Starlight v0.41.11 where these components should still work and hopefully a compatible build of Sätteri will be available soon!
chore(deps): hold zod at ^4.4.3 in the catalog
chore: support Starlight v0.41 and use it in the docs