What it means
Content is one JSON file per thing in data/. Templates are PHP files in theme/. Images and other served files sit in assets/. The site's own rules for the agents that work on it are markdown in guide/. That is the whole site.
A database is a second world with its own language, its own backups and its own failure modes — and it needs an interface in front of it. Files are the world your operating system, git, your editor, the web server and your agent already share.
How loam does it
Everything loam does — rendering, checking, history, access — reads from the files and never replaces them.
- Recovery is copying. Restore, move or clone a site by copying a folder. No dump to import, no migration to run.
- History is free. Every change is a diff, every earlier state a commit. Undo, audit trail and backup are one mechanism.
- Nothing is hidden. List a folder and you see the entire state of the site. Every live entity is public at its own address,
/data/<type>/<name>.json— the file, served as it lies. - Ownership is literal. Your content is yours because it sits in a folder you can pick up.
What it costs
Queries. A database is good at “every article from 2025 by this author, newest first”; a folder is not. Loam answers with curation and one index: lists you keep in order by hand, and a full index with word search for machines. For a company, an organisation or a body of knowledge that is the right trade. A marketplace needs a different tool.