Ein Flat-File-CMS speichert Inhalte als einzelne Dateien im Dateisystem statt in einer Datenbank. Jede Seite ist eine Datei, meist in Markdown mit einem Kopfbereich für die übrigen Felder.
- Flat-File-CMS
Ein CMS, das Inhalte in Dateien speichert statt in einer Datenbank.
Beispiel: „Das Flat-File-CMS legt jede Seite als eigene Datei ab.“Auch: Dateibasiertes CMS. Bekannte Vertreter sind Statamic, Kirby und Grav.
Die übrigen Unterscheidungen: wo die Inhalte liegen Datenbankbasiertes CMS; wie Inhalt und Ausgabe zusammenhängen Headless und Decoupled CMS; wer den Betrieb verantwortet SaaS-CMS und Selbst gehostetes CMS.
Was ein Flat-File-CMS einfacher macht
Die Versionierung vor allem. Wenn Inhalte Dateien sind, lassen sie sich mit derselben Versionsverwaltung führen wie der Quelltext. Jede Änderung ist eine nachvollziehbare Fassung mit Zeitpunkt und Urheber, und ein älterer Stand ist mit einem Befehl zurückgeholt.
Der zweite Gewinn ist der Umzug. Eine Installation auf einen anderen Server zu bringen heißt, Dateien zu kopieren. Es gibt keinen Export, keinen Import und keine Datenbank, deren Zeichensatz nicht passt.
Wo die Grenze liegt
Bei großen Mengen und bei Abfragen über viele Inhalte. Eine Datenbank findet in einer Million Datensätzen den passenden in Millisekunden, weil sie Indizes führt. Ein dateibasiertes System muss dafür einen eigenen Index aufbauen und im Speicher halten.
Praktisch heißt das: Bis in den niedrigen fünfstelligen Bereich an Inhalten ist das kein Thema, darüber gehört geprüft, wie das jeweilige System den Index verwaltet und was er an Arbeitsspeicher braucht. Auch eine Suche über alle Inhalte oder eine Filterung über mehrere Merkmale gehört in dieser Größenordnung gemessen und nicht geschätzt.
Was im Betrieb zu beachten ist
Dass das Dateisystem beschreibbar sein muss, und zwar von dem Prozess, unter dem die Anwendung läuft. Auf Hostings mit mehreren Anwendungsservern hinter einem Verteiler liegt dieselbe Datei dann möglicherweise nicht auf allen; das muss über ein gemeinsames Laufwerk oder eine Auslieferung aus dem Versionsstand gelöst werden.
Umgekehrt entfällt alles, was eine Datenbank an Pflege verlangt: kein Nutzerkonto, kein Backup zweier getrennter Teile, keine Abstimmung, ob Dateistand und Datenbankstand zueinander passen.