--- name: streaming-ssr description: Add streaming SSR to a merjs page. Use when the user wants shell-first rendering, skeleton placeholders, or parallel data fetching that resolves inline. argument-hint: "[page-name]" disable-model-invocation: true --- # Add Streaming SSR to a merjs page Scaffold or upgrade `app/$ARGUMENTS.zig` to use `renderStream` — shell-first streaming with skeleton placeholders that resolve as data arrives. ## How it works 1. `renderStream` is called instead of `render` when the route is hit 2. `stream.write(html)` flushes bytes to the browser immediately (chunked transfer encoding) 3. `stream.placeholder(id, skeleton_html)` writes a shimmer skeleton + `
` into the live DOM 4. `mer.fetchAll()` fetches multiple URLs in parallel (threads on dev server, two-phase WASM bridge on Cloudflare Workers) 5. `stream.resolve(id, real_html)` injects a hidden div + inline `