Browse documentation

Template rendering / Reference

Streaming SSR across framework boundaries

Keep React and Vue output streaming inside Typed, and identify the boundaries that buffer a component body.

React and Vue can forward HTML chunks into Typed before their complete output is ready. Other integration directions collect the embedded component’s body first; the table identifies each boundary.

Streaming support by direction

“Incremental” means the embedded component’s HTML crosses the framework boundary in chunks, before its complete body is ready.

Typed Host means the framework renders inside Typed. Integration Host means Typed renders inside that framework.

IntegrationTyped HostIntegration HostNotes
ReactYesNoReact notes
VueYesNoVue notes
SvelteNoNoSvelte notes
AstroN/ANoAstro notes

A No applies to the embedded component’s body; the host may still stream surrounding markup or a fallback. N/A means that integration direction is not supported.

React notes

React’s dangerouslySetInnerHTML accepts a completed HTML value, not a foreign stream. Our adapter collects each Typed child’s HTML before inserting it into React.

Vue notes

Vue’s v-html accepts a completed HTML value, not a foreign stream. Our adapter collects each Typed child’s HTML before inserting it into Vue.

Svelte notes

With Typed as host, Svelte’s server render returns a completed body string, not a stream of HTML chunks.

With Svelte as host, {@html} accepts a completed HTML value, not a foreign stream. Our adapter collects each Typed child’s HTML before insertion.

Astro notes

The Astro integration supports Typed inside Astro only. Astro’s framework renderer contract requires an html string from renderToStaticMarkup, so the adapter collects each Typed island.

Send the stream to the browser

Consume renderToHtml inside the request Scope, or use streamingSsrForHttp for the Effect HTTP adapter. renderToHtmlString intentionally collects the result. Your HTTP writer and deployment must also forward chunks for the browser to receive them incrementally. The React and Vue recipes show the response boundary.

For the chunk/completion protocol, see HTML render events. For the server-to-browser handoff, read server rendering and hydration.