Basis

Bestanden, geen database

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.

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 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: 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 oplost