Kobweb, rendered on the server
A Kobweb site whose pages arrive already rendered — no fork of Kobweb, no fork of Compose HTML, nothing patched upstream.
View the source of this page. The text you are reading is in it, and so are the CSS rules that style it. Switch JavaScript off and the site still works — that is the whole claim, and every page here is served that way.
What it does
- Intercepts a page request before Kobweb's routing gets it, renders the page in a headless browser, and answers with the finished HTML.
- Discovers which routes exist from the metadata Kobweb's own KSP processor already writes.
- Carries the visitor's query string and language into the render, and keys its cache on them.
- Refuses to serve a page it cannot render faithfully, rather than serving the wrong one.
- Moves what the composition saved with rememberSaveable across to the client.
What it does not do
- Hydrate. The client still throws the server's tree away and rebuilds it — 11 nodes, 312 ms — and that cannot be fixed from outside Compose HTML.
- Give pages their own <title> or description. Kobweb has no mechanism for it, not even in its static export.
- Serve authenticated pages. They are refused on purpose until there is a design for them.
RENDERED BY THE CLIENT — a marker the test suite looks for; ignore it