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.