Docs/renderingv1.0.0-rc.1

Server-side rendering

Use the public @tagna/udiot/web layer for page discovery, loaders and server bootstrap, or @tagna/udiot/server for Express/template integration. SSRRenderer is exported from /web; SSRServer, SSRContext and createServer are not public npm imports from a /ssr entry point.

Typed page contract

import assert from 'node:assert/strict';
import { definePage } from '@tagna/udiot/web';

const page = definePage({
  route: '/',
  render: 'ssr',
  loader: async () => ({ props: { message: 'Hello from the server' } }),
});
assert.equal(page.render, 'ssr');

This demonstrates the contract, not a complete renderer. Connect the page's component and discovery layout using the web guide. Use server helpers to integrate existing Express routes.

Request safety

Keep user/tenant data request-scoped. Authenticate before resolving authorization or private data; host-based tenant selection is not authorization. Escape untrusted content for its output context. Do not embed credentials, session tokens, or server-only configuration in HTML or serialized initial state. Do not place personalized responses in a shared cache.

Web/server APIs remain stable candidates for this RC. Verify redirects, error responses, headers, startup/readiness, concurrency and cleanup in your deployment.

From the canonical UDIOT public documentation.Try it in the playground ↗