Antofica

Technologie

Warum ich mir mein eigenes CMS gebaut habe

Jahrelang habe ich mit großen, teuren Content-Management-Systemen gearbeitet. Am Ende habe ich mir ein eigenes geschrieben, für mich.

Der plain-Editor: links Markdown, rechts die Vorschau der Seite
Der Browser-Editor von plain: links schreiben, rechts entsteht die fertige Seite.

Ein CMS — ein Content-Management-System — ist das Programm, in dem man die Texte einer Website schreibt, bevor man auf „Veröffentlichen" drückt. WordPress ist das bekannteste davon. Ich habe jahrelang mit größeren gearbeitet: Sitecore, Umbraco, Sitefinity. Ernsthafte Systeme, gebaut für Banken und Konzerne, für Seiten mit Tausenden von Unterseiten und Dutzenden Menschen, die darin schreiben.

Sie sind mächtig. Sie sind auch schwer. Jedes bringt Server mit, die am Leben gehalten werden müssen, eine Datenbank, die gesichert werden muss, Lizenzen, die jedes Jahr fällig werden, und alle paar Jahre ein großes Update, nach dem immer irgendetwas kaputt ist. Ich habe mehr Zeit damit verbracht, das Werkzeug zu pflegen, als darin zu schreiben.

Was ich eigentlich wollte

Ein persönlicher Blog braucht nichts davon. Er braucht einen Ort, an dem man einen Text schreibt, und einen Knopf, der ihn öffentlich macht.

Einfachere Werkzeuge gab es längst — Jekyll, VuePress —, die aus ein paar Textdateien eine Website machen. Ich habe sie mir hoffnungsvoll angesehen. Aber auch dort fand ich Frameworks über Frameworks, Hunderte von Bibliotheken, die irgendwoher geladen werden, und Projekte, die sich ein Jahr später nicht mehr bauen lassen.

Ich wollte etwas, das in meinen Kopf passt. Dateien, die ich mit eigenen Augen lesen kann. Schlichtes JavaScript, ohne alles Modische darin. Etwas, das auch in zehn Jahren noch startet, wenn ich zurückkomme.

So ist plain entstanden

Ich habe es nicht gebaut, damit es jemand verkauft. Ich habe es für mich gebaut, weil ich nicht fand, wonach ich suchte. Inzwischen laufen mehrere meiner Seiten darauf, auch die, die du gerade liest.

Für alle, die nicht programmieren, sieht das so aus: Jeder Artikel ist eine ganz normale Datei in einem Ordner. Es gibt auch einen Editor im Browser, für die Tage, an denen ich vom Handy aus schreiben will. Veröffentlichen ist ein Knopfdruck, und die Historie bewahrt jede Fassung jedes Textes auf — nichts geht je verloren. Es gibt nichts zu aktualisieren und nichts, das um drei Uhr nachts ausfallen kann.

Das letzte Stück: jetzt kann ich einfach fragen

Dieser Tage habe ich etwas hinzugefügt, von dem ich nicht dachte, dass ich es so oft benutzen würde: eine Reihe von Anleitungen für Claude, den Assistenten, mit dem ich direkt im Terminal arbeite.

Ich sage ihm in normalen Worten — „schreib einen Artikel darüber, wie ich dazu kam, mir mein eigenes CMS zu bauen" —, und er weiß, wohin die Datei gehört, welche Angaben oben hineingehören und wie man prüft, ob sich die Seite danach wirklich noch bauen lässt. Er zeigt mir, was dabei herauskam, ich lese es, ich ändere es, und erst dann entscheide ich, ob es in die Welt geht. Das Veröffentlichen ist bei mir geblieben: Das war die eine Regel, von der ich nicht abrücken wollte.

Dieser Artikel hat, ehrlich gesagt, genau so angefangen.

Falls du hineinschauen möchtest

plain ist kostenlos und offen: Der Code liegt offen da, jeder darf ihn benutzen oder verändern. Wenn dir die Idee gefällt, gib ihm einen Stern auf GitHub — mir bringt das nichts ein, aber es hilft anderen, das Projekt zu finden: github.com/plain-cms/plain.

Ich habe jahrelang Websites für andere gebaut. Das hier ist die erste, die ich gebaut habe, damit ich an ihr keine Arbeit mehr habe.

unelteplain