What it means
There is no build step. A page is produced when it is requested, from the files as they are at that moment: the entity is read, its references resolved, the template applied. Static-site generators rebuild everything on every change; compiled systems bake a graph on publish. Both buy fast reads with a second copy of the truth — one that can be stale, half-built or out of step.
Loam keeps one copy, and caches what it derives from it. A cache is disposable and never consulted for truth.
How loam does it
- A render cache. A rendered page is kept and served again until something beneath it changes. A publish clears it at once.
- Freshness is a look, not a search. A change marks its folder and every folder above it. Whether a cache is still good is one glance at a timestamp — never a walk through the site.
- Indexes in memory. The site's indexes are stored as compiled code that PHP keeps in shared memory, so loading one costs next to nothing.
- Assets for a year. Every image, stylesheet and script carries its own version string. Browsers and CDNs keep them for a year; change the file and only that file is fetched again.
- No cascade. Change a person's name in one file and every page that mentions them shows it on the next request. Nothing to recompute, nothing to interrupt.
What it costs
Work per request instead of per change: a few file reads and a template whenever a page is not in the cache. For hundreds of pages and a change a day, that is milliseconds. And because every page carries a fresh security nonce, HTML is not cached at the edge — each page view reaches the server, where the render cache answers it. Millions of pages and a change a second would want a different trade.