What it means
Everything that gives a site its form lives in theme/. The engine renders; the theme decides what the rendering looks like. There is no page builder between you and the markup, no block library to stay inside, no build step to feed.
How loam does it
- Plain files. Page shells in
templates/, blocks insections/, fragments insnippets/, interface words instrings/. Stylesheets, scripts and fonts are files inassets/— you link them, the server serves them. - A shell per type, or per page. A page finds its template by a short ladder: one named on the entity, then one named after its type, then the floor every page can land on. A newly claimed page renders the moment it exists.
- Defaults you can take over. Every page the engine serves by itself — the 404, the offline page, the install guide, the explainer at
/admin— gives way to a theme file of the same name. - What a plugin would add, you own. There are no plugins: what one would bring lives in your theme, in your own files, on your own schedule.
- Your data, your words. Content is Schema.org, but a page can carry what it needs to render — colours, a focus point, a chosen shell — stripped from the machine view so the claim stays true.
What it costs
Templates are code. Whoever may change them can make the site do anything, so that right goes only to people you fully trust. And loam is opinionated about the engine's side: where icons live, how assets are versioned, what the offline page is called. The form is yours; the mechanics are not up for configuration.