---
"@type": Article
"@id": "https://helloloam.dev/nl/principes/bestanden-geen-database"
"@source": "https://helloloam.dev/data/article/files-not-a-database.json"
"@stamp": "2026-11-03T23:08:16+00:00"
about:
  "@type": DefinedTerm
  "@id": "https://helloloam.dev/data/definedterm/files-not-a-database.json"
  name: Bestanden, geen database
  identifier: files-not-a-database
  inDefinedTermSet:
    "@type": DefinedTermSet
    "@id": "https://helloloam.dev/data/definedtermset/basics.json"
    name: Basis
    identifier: basics
author: {"@id":"https://helloloam.dev/#organization"}
datePublished: "2026-10-03"
description: Een site is een map met vier wortels — data, theme, assets en guide. Geen database, en niets achter de schermen dat zich als een database gedraagt.
headline: Bestanden, geen database
identifier: files-not-a-database
inLanguage: nl
publisher: {"@id":"https://helloloam.dev/#organization"}
url: "https://helloloam.dev/nl/principes/bestanden-geen-database"
---

# Bestanden, geen database

[English](https://helloloam.dev/data/article/files-not-a-database.md) • [Nederlands](https://helloloam.dev/nl/data/article/files-not-a-database.md)

## Een site is een map

Content is één JSON-bestand per ding in `data/`. Templates zijn PHP-bestanden in `theme/`. Beelden en andere geserveerde bestanden staan in `assets/`. De eigen regels van de site voor de agents die eraan werken zijn markdown in `guide/`. Vier wortels, elk één soort bestand — dat is de hele site.

## Waarom geen database

Een database is een tweede wereld met een eigen taal, [eigen backups](/nl/principes/backups-als-momentopname) en eigen manieren om stuk te gaan — en hij heeft een interface ervoor nodig. Bestanden zijn de wereld die je besturingssysteem, git, je editor, de webserver en je agent al delen. loam zette de content daar. Alles wat het doet — renderen, controleren, geschiedenis, toegang — leest uit de bestanden en vervangt ze nooit.

## Wat bestanden je geven

- **Herstellen is kopiëren.** Herstel, verhuis of kloon een site door een map te kopiëren. Geen dump om te importeren, geen migratie om te draaien.
- **Geschiedenis is gratis.** Elke wijziging is een diff, elke eerdere toestand een commit. Terugdraaien, audittrail en backup zijn één mechanisme.
- **Niets is verborgen.** Bekijk een map en je ziet de hele toestand van de site. Elke live entiteit is publiek op zijn eigen adres, `/data/<type>/<naam>.json` — het bestand, geserveerd zoals het ligt.
- **Eigendom is letterlijk.** Je content is van jou omdat hij in een map staat die je kunt oppakken.

## Lijsten in plaats van queries

Zonder database is volgorde iets wat je kiest. Een menu, de uitgelichte diensten, het team in de volgorde die je wilt: elk is een lijst die je met de hand bijhoudt, en de pagina die hem toont leest die lijst. Voor machines is er één index van alles wat live staat, `/data.json`, met een woordzoekfunctie erop (`?q=`) — eerst de treffers, dan het bestand. Een overzicht van een type, nieuwste eerst, komt uit dezelfde index.

## Als er iets misgaat

Omdat de bestanden de waarheid zijn, herstel je een verkeerde toestand door het bestand te herstellen, en verkeerd gedrag door de engine te herstellen. Er is geen tabel die alleen de applicatie kan lezen en [geen cache die warm moet zijn](/nl/principes/snelheid-door-caching): verwijder wat de engine afleidde en het volgende verzoek bouwt het opnieuw. Dat ene onderscheid houdt een loam-site begrijpelijk op zijn slechtste dag.

## Wat het kost

Queries. Een database is goed in “elk artikel uit 2025 van deze auteur, nieuwste eerst”; een map niet. loam antwoordt met curatie en één index: lijsten die je met de hand op volgorde houdt, en een volledige index met woordzoekfunctie voor machines. Voor een bedrijf, een organisatie of een kennisbank is dat de juiste ruil. Een marktplaats heeft ander gereedschap nodig.
