Server-rendered, then live
Prose arrives in the HTML; the CRDT takes over on hydrate.
Server-rendered, then live
View source on any page here and the prose is already in the HTML. A Nitro runner keeps a cache of every document and the page renders straight out of it, so the first paint is content rather than a skeleton. Once the browser hydrates, the same page becomes a live CRDT document and every edit β yours or anyone else's β lands in place.
Why the cache is a pool
The runner syncs each document over its own short-lived connection, through a small pool rather than all at once. Opening one socket per document trips the server's per-IP cap, and the documents past the cap never sync β they render empty, with no error anywhere. Behind a proxy every visitor shares one IP, so that failure is invisible in dev and total in production.
Feeds come from the same place
/feed.xml, /feed.json and /sitemap.xml are all built from the cached tree. A page type opts into syndication explicitly β a grid of project tiles is full-width, but a portfolio is not a publication.