CMSstash

GRAV: Das Open Source Flat-File-CMS

Grav ist ein modernes Open Source System und gehört zur Familie der Flat-File-CMS. Das System ist für die schnelle und flexible Erstellung von einfachen Webseiten gedacht. Einer der vielen Besonderheiten von Grav ist ein hauseigener Package-Manager.

Screenshot der Grav-Website

Grav wurde der Öffentlichkeit im Sommer 2014 vorgestellt. Laut seinem Gründer, dem Rocket-Theme-Chef Andy Miller, konzentriert sich Grav auf Geschwindigkeit, Einfachheit und Flexibilität. Das System erreichte in der Community sehr schnell Popularität, wohl auch, weil es als erste echte Open-Source-Alternative zu kommerziellen Systemen wie Kirby oder Statamic wahrgenommen wurde. Und tatsächlich ist der Anspruch, das Konzept und die Technologie von Grav den kommerziellen Mitbewerbern zum Teil ebenbürtig.

Grav für Content Manager

Grav bietet zwei verschiedene Versionen zum Download an: Eine Version mit dem integriertem Dashboard und eine Version ohne Dashboard, die dann nur über die Backend-Konfiguration und mit dem Hochladen fertiger Content-Files funktioniert. Das (recht dunkel geratene) Dashboard ist eine Mischung aus Autoren-Umgebung und Administrations-Oberfläche. Viele Features des Dashboards sind eher für die Arbeit eines Webmasters ausgelegt, während der unerfahrene Autor hin und wieder Schwierigkeiten haben dürfte, den richtigen Button zu finden. Wenn einem das bestehende Dashboard überhaupt nicht zusagt, dann kann man versuchen, es über die vielen Konfigurations-Möglichkeiten an seine Bedürfnisse anzupassen.

Screenshot das Admin-Panels von Grav

Die Autoren werden überwiegend unter dem Menü-Punkt "Page" arbeiten, um Inhalte zu erstellen. Dabei unterscheidet Grav nicht zwischen statischen oder dynamischen Inhalten. Stattdessen wählt der Autor zwischen den unterschiedlichen Templates aus, die der Entwickler vorher anlegt. Die Eingabefelder können bei Grav wie bei anderen High-Level-Systemen im Flat-File-Bereich individuell angepasst werden.

Für die Content-Erstellung bietet Grav einen Markdown-Editor an, der den bekannten WISYWIG-HTML-Editoren recht nahe kommt. Die Arbeit mit Bildern ist relativ leicht und komfortabel, allerdings gibt es kein richtiges Digital-Asset-Management und das gesamte Media-Handling hat seine Grenzen. Die Grenzen spürt man besonders bei den fehlenden Meta-Angaben für Bilder. Man kann zwar spezielle Meta-Files im YAML-Format manuell hochladen, allerdings keine Meta-Angaben über die Autorenoberfläche hinzufügen. Dieses Manko wird zum Beispiel spürbar, wenn man eine Slideshow mit Bildunterschriften erstellen will, was derzeit ohne einen sehr unschönen Autoren-Workflow mit Grav schlicht nicht möglich ist.

Dafür bringt Grav ein anderes spannendes Konzept mit: Mit seinem Modularen Seiten-Konzept ist Grav vor allem für die Erstellung von komplexen One-Pagern geeignet. Die One-Pager setzen sich aus verschiedenen editierbaren Sub-Pages zusammen, die im One-Pager als Sektion erscheinen. Auch hier ist bis Dato noch die Sortierung der einzelnen One-Pager-Elemente eingeschränkt. Dennoch ist dieser Ansatz von Grav ein echtes Alleinstellungs-Merkmal.

Wenn das Webseiten-Konzept nicht allzu sehr auf komplexe Bild-Darstellungen angewiesen ist, dürfte Grav mehr als genug Optionen für Autoren haben. Tags, Multi-Language-Features, Multi-Site-Fähigkeit - das alles ist mit dem System möglich. Allerdings braucht es wohl noch einige Zeit, bis alle von den Autoren erwarteten Standard-Fälle abgedeckt sind und auch die Usability für Autoren entsprechend ausgereift ist.

Grav for Developers

Grav stellt nur minimale Technologie-Anforderungen. Es läuft auf Web-Servern mit PHP 5.5.9 and höher. Der eigene Technologie-Stack ist dagegen modern und recht umfangreich. Grav verwendet:

Wie bei den meisten Flat-File-CMS ist die Installation auch bei Grav sehr einfach. Man lädt die System-Dateien herunter und geht zu seinem lokalen-ordner/ oder zu deiner-webseite.com. Sofern man die Version mit der Administrationsoberfläche heruntergeladen hat, erscheint jetzt ein Formular, mit dem man einen User-Account erstellen und das System konfigurieren kann.

Bei der Erstellung eines neuen Themes für Grav arbeitet man hauptsächlich mit Twig Templates und YAML-Konfigurations-Dateien. Wie bei den meisten Flat-File-Systemen kommt es auf das Zusammenspiel zwischen den Templates, den Konfigurations-Dateien und den in Markdown erstellten Inhalten an:

Eine YAML-Datei für das "Default"-Template, die ein Titel-Feld und einen Markdown-Editor für den Autor definiert, sieht wie folgt aus:

fields:
  header.title:
    type: text
    label: Headline
  content:
    type: markdown
    validate:
      type: textarea

Wenn der Autor das Template "Default"-Template auswählt und eine neue Seite erstellt, sieht das Markdown-File wie folgt aus:

---
title: My page
---

# This is a headline in markdown

This is some text in markdown. There are some formattings like **bold** or even a [Link to a website](http://cmsstash.com).

Mit dem Template "default.html.twig" kann der Entwickler den Inhalt der Datei sehr leicht ausgeben:

{% block content %}
    <h1>{{ page.header.title }}</h1>
    {{ page.content }}
{% endblock %}

Vom Prinzip her funktionieren die meisten modernen Flat-File-Systeme nach diesem Muster. Verglichen mit anderen Flat-File-Systemen ist Grav etwas komplexer und vielleicht auch verwirrender für Einsteiger. Daher sollte man gerade bei Grav die Dokumentation sehr aufmerksam lesen, bevor man in die Entwicklung einsteigt.

Grav für Nicht-Entwickler

Grav ist einfach zu installieren, es bietet eine gute Auswahl an Ressourcen an und über den Administrations-Bereich kann man einige Individualisierungen vornehmen. Von daher konnen auch Nicht-Entwickler dem System eine Chance geben. Dennoch sollte man kein Ready-To-Go-Konzept analog zu WordPress erwarten. Was man erwarten kann sind über 70 Themes, mehr als 150 Plugins und einige Dutzend "Skeletons", die als fertige Packete für diverse Anwendungsfälle benutzt werden können. Die Bandbreite ist dabei recht hoch: Von der Business-Webseite über Portfolio-Seiten, Landing-Pages bis hin zu Blogs sind viele Standard-Fälle abgedeckt.

Empfehlung: Wann eignet sich Grav?

Flat-File-CMS sind generell sehr gut für alle Arten von kleineren Webseiten geeignet, seien es Landing-Pages, Portfolio-Seiten oder kleine Business-Auftritte. Durch die Skeletons ist Grav auch für viele andere Anwendungsfälle geeignet, beispielsweise für Verzeichnisse, Dokumentationen und sogar für kleine E-Commerce-Seiten. Besonders sinnvoll ist der Einsatz von Grav bei One-Pagern.

Allerdings sollte man sich über die zahlreichen Limitierungen von Grav bewusst sein, vor allem die mangelnde Flexibilität im Umgang mit Bildern und die fehlenden Meta-Daten sind für viele Konzepte ungeeignet. Ebenfalls beachten sollte man die recht kurze Historie des Systems. Es ist nicht ausgeschlossen, dass man im Laufe der Entwicklungsarbeit auf weitere Einschränkungen und auch Bugs stößt. Auch die Usability für Autoren ist an der ein oder anderen Stelle noch nicht ganz ausgereift. Wer also eine komplexere Seite für Kunden plant, sollte daher auf etabliertere Systeme zurückgreifen.

Dennoch wurden mit Grav bereits hunderte private Webseiten und kleine Business-Seiten erfolgreich erstellt. Einen guten Eindruck über den Charakter der Projekte erhält man bei der Durchsicht der angebotenen Themes.

Tägliche CMS-News für Entwickler, Designer, Projektmanager und Anwender gibt es von @CMSstash auf Twitter. Twitter kann auch gerne für Hinweise zu Texten genutzt werden.

Zuletzt aktualisert: 19.06.2018