Askr documentation
Rendering

Server-Side Rendering

Render a route to HTML on the server, including how request data and loader results reach the renderer.

Example

const html = renderToString({
  registry,
  url: request.url,
});

Render requests

`resolveRequest` from `@askrjs/askr/ssr` takes a URL plus the same explicit `RouteRegistry` used by boot and SSG, returning a `RouteRequestResult`. `renderRouteRequest` goes a step further and actually renders: given `url`, `registry`, optional `auth`/`authContext`, and a `request`, it resolves to either a `{ kind: 'render', html, params, record }` result, an access redirect/deny decision, or `{ kind: 'no-match' }`.

Document composition

Pass a `document: DocumentRenderer` to wrap the rendered `appHtml` in your full page shell; it receives `DocumentRenderContext` with `mode: 'ssr'`, the resolved `pathname`, `search`, `hash`, `params`, and the render `seed`. `renderToStringSync` and `renderResolvedToStringSync` are the lower-level, synchronous entry points when you already have a component or a matched handler and just need an HTML string without going through full request resolution.

Data transfer

SSR renders happen inside a `RenderContext` (created by `createRenderContext`) that carries `data: SSRData`, `params`, `dataRuntime`, and a `queryPrefetch: QueryPrefetchContext` for server queries fetched ahead of render. That same context exposes `renderData` and `hydrationData` as `PageRenderEnvelope` objects — the mechanism by which data fetched on the server is serialized and handed to the client for hydration without a second round trip.

Operational boundaries

`renderRouteRequest` accepts a `signal: AbortSignal` so a slow render can be cancelled when the underlying request is aborted, and an optional `telemetry: CoreTelemetry` hook for instrumenting render duration. `SSRDataMissingError` (code `SSR_DATA_MISSING`) is thrown when a component expects server-provided data that wasn't supplied, giving you a distinct error to catch separately from generic render failures.