The smallest document this renderer can render into.
Server rendering needs a shell carrying the two placeholders it splices into, the element the client
hydrates, and a <title> — a page's title is replaced in place rather than inserted, so a shell
without one silently loses it. The real shell is generated from the project's index.html at build
time and carries the stylesheet and the client bundle; this one carries nothing but the contract.
It exists because there is a legitimate context with no build step: a test. Booting an application
in memory and rendering a page is exactly what @stone-js/testing does, and refusing to render
there served nobody — the shell is the renderer's own business, so the renderer can produce it.
The smallest document this renderer can render into.
Server rendering needs a shell carrying the two placeholders it splices into, the element the client hydrates, and a
<title>— a page's title is replaced in place rather than inserted, so a shell without one silently loses it. The real shell is generated from the project'sindex.htmlat build time and carries the stylesheet and the client bundle; this one carries nothing but the contract.It exists because there is a legitimate context with no build step: a test. Booting an application in memory and rendering a page is exactly what
@stone-js/testingdoes, and refusing to render there served nobody — the shell is the renderer's own business, so the renderer can produce it.