CMSstash

Kirby: Der Flat-File-Pionier

Autor: Sebastian Schürmanns

Kirby gehört zu den Pionieren unter den Flat-File CMS und steht für eine hohe Kontinuität und Professionalität. Das System ist bereits im Jahr 2009 entstanden und hat als kommerzielles Flat-File-CMS Maßstäbe gesetzt. Im Januar 2019 ist mit Kirby 3 eine modernisierte Version veröffentlicht worden, die für Autoren und Entwickler zahlreiche neue Features mitbringt. Kennzeichen für Kirby bleibt jedoch die extrem einfache Handhabung für beide Anwendergruppen.

Screenshot der Homepage von Kirby

Kirby wurde von Bastian Allgeier gegründet. Inzwischen hat sich um den Gründer ein kleines Team geschart. Mit einem moderaten Preis richtet sich Kirby vor allem an Freelancer, Web-Agenturen und generell an Unternehmen, die eine schlanke Lösung für ihre Kunden bzw. ihre Webseite suchen.

Kirby für Autoren

Die Autorenoberfläche von Kirby ist ausgesprochen aufgeräumt und nutzerfreundlich. Wie bei anderen ausgereiften Flat-File-Systemen hängen die Details jedoch von der Konfiguration des Systems ab. Im Starter-Kit demonstriert Kirby 3 vor allem die neuen Möglichkeiten des Bild-Managements mit den komfortablen Bilder-Gallerien.

Je nach Konfiguration lassen sich die Bilder-Gallerien zu einer Seite hinzufügen und anschließend mit dem Tag {{ gallery }} in den Content-Bereich integrieren, ähnlich wie man es mit den Shortcodes von WordPress gewohnt ist. Die verwendbaren Inhaltstypen sind zwar abhängig von der Konfiguration durch den Entwickler. Allerdings zeigt dieses kleine Beispiel sehr deutlich den Stellenwert, den eine gute Autoren-Usability bei Kirby genießt:

Screenshot des Kirby-Editors

Der Kirby-Editor arbeitet mit Kirby-Text, einer Erweiterung der Auszeichnungssprache Markdown. Bei der Erstellung der Syntax können Autoren Formatierungsbuttons nutzen. Die Buttons fügen allerdings nur die Syntax ein, einen WYSIWYG-Modus gibt es für den Content zumindest in der Core-Version nicht. Dennoch sollten auch unerfahrenere Autoren mit der einfachen Syntax schnell zurechtkommen.

Neu hinzugekommen ist bei Kirby 3 ein erweiterter und von einem Entwickler modifizierbarer Publishing-Workflow. Neben den üblichen nicht öffentlichen "Drafts" und der publizierten Version gibt es nun auch eine "Review". Die Review ist zwar über eine URL öffentlich zugänglich, jedoch nirgendwo gelistet oder verlinkt. Dieser Status ist durchaus nützlich, wenn die Seite während der Überarbeitung nicht depubliziert werden soll, um zum Beispiel ein Entfernung aus dem Google-Index zu vermeiden. Redakteure und Autoren werden sich über diese im Redaktionsalltag häufig auftretende Anforderung sehr freuen. Gleichzeitig wundert man sich, dass selbst etablierte Systeme wie WordPress für diesen üblichen Workflow keine Lösung im Core-System anbieten. Ein Zeichen mehr, dass sich das Team um Kirby Gedanken über Redaktions-Abläufe macht.

Kirby für Entwickler

Kirby ist ein extrem schlankes PHP-CMS mit nur wenigen MBs, sofern man den Beispiel-Content ausklammert. Angesichts der vergleichsweise langen Geschichte von Kirby ist dieser Minimalismus eine erstaunliche Leistung. Kirby verzichtet vollständig auf Backend-Frameworks und setzt nur die notwendigsten Bibliotheken ein. Dieser Minimalismus ermöglicht es auch einem sehr kleinen Team, das System permanent zu erneuern und auf den aktuellsten Stand zu halten.

Und der neueste Stand bei der Version 3 von Kirby hat es in sich: Die Autoren-Oberfläche wurde komplett auf das schlanke und beliebte Framework Vue.js umgestellt und im Backend gibt es nun eine vollwertige REST-API, die auch Headless-Ansätze, Single Page Applications (SPA) oder die Integration von statischen Site Generatoren (SSG) ermöglicht. Während in letzter Zeit eher Statamic neue Trends aufgegriffen hatte, setzt Kirby mit diesen Features ein echtes Ausrufe-Zeichen. Headless, SPAs und SSGs sind gleich drei Themen, die heute fast jeden Entwickler umtreiben.

Geblieben ist die bewährte Zero-Click-Installation. Nach wie vor kann man Kirby einfach herunterladen, auf localhost oder auf einen Live-Server schieben und ohne jede weitere Konfiguration die Seite besuchen. Der Zugang zur Autoren- bzw. Administrations-Oberfläche erfordert lediglich die Registrierung als Nutzer. Geblieben ist nach wie vor auch die sehr vorbildliche Dokumentation, die Entwicklern den Einstieg in das System sehr vereinfacht.

Wie die meisten modernen Flat-File-Systeme nutzt auch Kirby YAML-Dateien für die Konfiguration des Systems. Anders als andere Systeme nutzt Kirby allerdings keine separate Template-Sprache wie Twig, sondern arbeitet mit reinem PHP und HTML. Beim Templating arbeitet man überwiegend mit den beiden Objekten $site für seitenweite Informationen und $page für den Content der aktuellen Seite. Ein einfaches Template kann beispielsweise so aussehen (entnommen aus der Kirby-Dokumentation):

html>
<head>
  <meta charset="UTF-8">
  <meta name="description" content="<?= $site->description() ?>">
  <meta name="keywords" content="<?= $site->keywords() ?>">
  <title>
    <?= $page->title()->html() ?> | <?= $site->title()->html() ?>
  </title>
</head>
<body>
  <header>
    <h1>
      <a href="<?= $site->url() ?>">
        <?= $site->title()->html() ?>
      </a>
    </h1>
  </header>
  <main>
    <h1><?= $page->title()->html() ?></h1>
    <?= $page->text()->kirtbytext() ?>
  </main>
  <footer>
    <p class="copyright"><?= $site->copyright()->html() ?></p>
  </footer>
</body>
</html>

Neben der Erweiterbarkeit über Plugins dürfte vor allem die REST-API von Kirby 3 für Entwickler spannend sein. Die API erfordert eine Authentifizierung und die Übergabe eines CSRF-Tokens. Eine externe Nutzung der API ist über die HTTP-Basic-Authentifizierung möglich. Das folgende Beispiel zeigt, wie die Daten einer Seite mit JavaScript abgerufen werden können (ebenfalls der Kirby-Dokumentation entnommen). Selbstredend kann man dazu auch Framework wie Vue.js oder React nutzen:

<html>
  <head>
    <title>API Example</title>
  </head>
  <body>
    <script>
      const csrf = "<?= csrf() ?>";
      fetch("/api/pages/example", {
          method: "GET",
          headers: {
            "X-CSRF" : csrf
          }
        })
        .then(response => response.json())
        .then(response => {
          const page = response.data;
          // do something with the page data
        })
        .catch(error => {
          // something went wrong
        });
    </script>
  </body>
</html>

Es gibt bereits eine umfangreiche Dokumentation der REST-API, sodass Entwickler keine Probleme bei der Nutzung haben dürften. Ansonsten wird man bei einzelnen Problemen sicherlich auch von der Kirby-Community im Forum Hinweise bekommen. Es wird wohl auch nicht lange dauern, bis das Cookbook von Kirby mit Snippets zur API angereichert wird.

Alles in allem kann man sich kaum mehr von einem kleinen Team rund um ein schlankes Flat-File-System wünschen. Mit der Version 3 hat Kirby erneut sein Gespür für Trends bewiesen und ist gleichzeitig seinem minimalistischen Prinzip treu geblieben.

Kirby für Nicht-Entwickler

Kirby richtet sich in erster Linie an Entwickler, Freelancer, Web-Agenturen und Unternehmen, die mit einem schlanken und modernen CMS ohne wochenlange Einarbeitung eine Webseite erstellen wollen. Zwar gibt es für Kirby inzwischen deutlich über 100 Themes. Die Anpassungsmöglichkeiten sind ohne Code-Kenntnisse jedoch eingeschränkt.

Durch die Verwendung von reinem PHP, einer sauberen Code-Basis und einer sehr guten Dokumentation eignet sich Kirby bestens für PHP-Einsteiger. Im Vergleich zu WordPress ist das System sehr schlank und überschaubar, gleichzeitig gibt es ein klares Konzept und eine einheitliche Herangehensweise, was den Einstieg für Neulinge vereinfacht. Die REST-API und die damit geschaffenen Andock-Stellen für Frontend-Frameworks machen Kirby natürlich auch zu einem sehr guten Einstiegspunkt für Frontend-Entwickler.

Preise

Mit der Version 3 von Kirby wird es nur noch eine einheitliche Lizenz für 99,- Euro pro Webseite geben (bzw. 89,- Euro bei der Einführung). Die günstige Lizenz für private Webauftritte wurde abgeschafft. Klar ist, dass eine Software wie Kirby nur über nachhaltige Einnahmen in diesem Umfang weiterentwickelt werden kann.

Eine Test-Version für Entwickler kann man kostenfrei herunterladen und lokal verwenden. Einzelne Gruppen wie Studenten, Bildungsprojekte, Open-Source-Projekte oder Non-Profits können unter bestimmten Bedingungen Rabatte erhalten. Zusätzlich soll es künftig Mengenrabatte geben. Preisnachlässe gibt es ebenfalls bei einem Upgrade von Kirby2 auf Kirby3.

Empfehlung: Wann eignet sich Kirby?

Kirby eignet sich grundsätzlich für kleine und auch etwas größere Web-Projekte, bei denen Einfachheit, Flexibilität und eine gute Usability für die Autoren gefragt sind. Mit der neuen Version 3 und der REST-API öffnet Kirby außerdem eine Spielwiese für Single Page Applications oder Static Site Generatoren und ermöglicht die Kombination mit modernen Frontend-Frameworks wie Angular, React und Vue. Grundsätzlich dürfte über die HTTP-Basic-Auth auch ein echter Headless-Ansatz im Sinne eines Content-Services möglich sein, bei dem Inhalte von fremden Seiten oder Applikationen konsumiert werden.

Eine kleine Einschränkung gibt es bei Kirby: Das System ist nicht darauf ausgelegt, ein Theme per Knopfdruck zu wechseln. Stattdessen ist das Theme stark mit dem System verwoben. Wer also häufiger Design-Umstellungen plant, sollte gegebenenfalls auf ein anderes System setzen.

Kirby ist zwar ein kleines Projekt, wurde aber bereits von einer Reihe namhafter Unternehmen und Projekten eingesetzt. Darunter das Smashing Magazine und die Corporate Site von Yeebase, dem Unternehmen hinter dem Tech-Magazin T3N. Außerdem werden große Konzerne wie Philips und Mercedes-Benz sowie Organisationen wie die Harvard University auf der Kirby-Seite aufgeführt.

Regelmäßige Neuigkeiten über Content-Management-Systeme und Website-Publishing gibt es von CMSstash auf Twitter.

Zuletzt aktualisert: 22.01.2019