von Andy Pillip

Ein weiteres entkoppeltes CMS im Portfolio

Jetzt arbeiten wir auch mit dem CMS Statamic

Mit dem CMS Statamic können wir unsere Kunden jetzt mit einem übersichtlichen und extrem einfach zu erlernenden CMS ausstatten und dabei die best mögliche Qualität im Frontend liefern – weil wir Inhaltstypen und Frontend-Code vollständig selbst entwickeln.

Seit einiger Zeit bin ich auf der Suche nach entkoppelten CMS, die mir von Anfang an die komplette Datenmodellierung überlassen, um unser Web-Know-How auch in hochwertige Webseiten umsetzen zu können.

Zunächst haben wir Erfahrungen mit ProcessWire gesammelt, hier stelle ich jetzt Statamic 1 vor – mittlerweile ist Statamic 2 erschienen, womit wir gerade Erfahrungen sammeln.

Darf ich vorstellen? Statamic

 ist das Statamic LogoBasierend auf den Anforderungen des Kunden und unseren eigenen Ansprüchen an ein CMS, haben wir für unser letztes Projekt, die Webseite der Aicher Ambulanz Union, das CMS Statamic evaluiert und die Seite damit umgesetzt.

Statamic ist ein datei­basiertes CMS, es kommt also ohne Daten­bank aus. Es ist entkoppelt, genauer gesagt Headless, was es uns ermöglicht Kunden­wünschen mit hoher Flexibilität bei geringem Aufwand nachzukommen.

Die Stich­probe: Ein zu­sätz­liches Feld hinzufügen

Ein häufiger Kunden­wunsch ist der nach Such­maschinen­optimierung (SEO) oder Content-Marketing über Sharings oder andere Einbettungen von Inhalten (Adaptive Content).

Hierfür müssen die Autoren in die Lage versetzt werden, Inhalte um Metadaten (Zusatzinformationen) anzureichern, die dann maschinenlesbar im Frontend mit ausgegeben werden, zum Beispiel im Format HTML, RDF oder OpenGraph. Die zentrale Frage ist also:

Wie aufwändig ist es, ein neues Eingabefeld anzulegen? Von der Eingabe im CMS bis zur Ausgabe im Frontend im gewünschten Format.

Statamic unterstützt von Anfang an die Definition eines eigenen Datenmodells, also von Inhaltstypen und ihren Eingabefeldern: Eine paar neue Zeilen in der Kon­fi­gu­ra­tions­datei und die entsprechende Zeile im HTML genügen, um ein neues Feld anzulegen.

Einfach zu lernen

Aus meiner Sicht ist ein CMS dann einfach zu lernen, wenn es mit der Begriffswelt des Kunden aufwartet, statt mit Inhalts-Einheiten, die sich der CMS-Entwickler ausgedacht hat.

Kunden kennen je nach Branche zum Beispiel Begriffe wie Mitarbeiter, Filialen, Kurse, Filme, (Radio)Sendungen, Modelabel. Autoren sollten also diese Dinge anlegen und verwalten, und nicht Artikel, Beiträge oder Inhaltselemente.

In Statamic lässt sich erst dann Inhalt erfassen, wenn das Datenmodell definiert wurde: Das bedeutet der Entwickler entscheidet gemeinsam mit dem Kunden, welche Inhaltstypen es gibt, und welche Eingabefelder dafür nötig sind.

Der einzige Begriff, den der Kunde nicht selbst definiert hat, ist in Statamic die Seite – ein Konzept das aber sicher jeder Webautor versteht.

Was mir in Statamic besonders gut gefällt ist der Start­bild­schirm nach dem Login: Dort werden Autoren nur mit der ihnen bekannten Seitenstruktur begrüßt und mit Links zu gemeinsam definierten Sammlungen (Hier: Stellen, News, Geschichten und Standorte).

Abwechs­lungs­reiche Artikel für die Multi-Device-Welt

In modernen Online-Artikeln wechseln sich verschiedene Formate ab – und zwar in der Reihenfolge, die der Autor definiert. Auf Fließtext folgt zum Beispiel eine Bildergalerie, später ein Video. Eine Tabelle fasst Ergebnise dann abschließend zusammen.

Im Frontend muss sich jedes dieser Elemente teilweise extrem an das Umfeld, in dem der Artikel gelesen wird, anpassen. Zum Beispiel an die Bildschirmgröße. Es muss Responsive sein.

In Statamic kann der Entwickler diese Elemente mit ihren Eingabe­feldern definieren, hat damit die Darstellung voll­ständig unter Kontrolle, die Autoren können dann Artikel aus diesen Bau­steinen beliebig zusammen setzen und per Drag & Drop später auch umsortieren.

Bei der Aicher Ambulanz Webseite können Autoren Artikel aus folgenden Inhaltsbausteinen aufbauen: Text, Zitat, Bild, Video, Galerie, Störer, Kontakt, Interner Link, Externer Link, Download, Begriffsdefinition(en), Tabelle, Akkordeon

Formulare

Auch Formulare lassen sich (mit der Erweiterung Raven) über Konfigurationsdateien definieren.

Raven hat den CSV-Export bereits mit eingebaut und es stehen für die Autoren hilfreiche Widgets zur Verfügung, die Durchschnitte, Summen oder Zählungen in einem Dashboard anzeigen können.

Bei der Aicher Ambulanz Webseite können Autoren Artikel aus folgenden Inhaltsbausteinen aufbauen: Text, Zitat, Bild, Video, Galerie, Störer, Kontakt, Interner Link, Externer Link, Download, Begriffsdefinition(en), Tabelle, Akkordeon

Formulareingaben werden per E-Mail verschickt und wenn gewünscht gespeichert – und landen dann auch in einer übersichtlichen tabellarischen Darstellung.

Eingabefelder aufräumen war gestern

Weil die Entscheidung über die Darstellung von Inhalten über verschiedenste Geräte und Kontexte hinweg eine komplexe ist, und damit Autoren sich auf ihre wesentliche Arbeit konzentrieren können, ist es verbreitete Praxis, die entsprechenden Eingabefelder im CMS vor Autoren zu verstecken.

Bei Statamic ist das überhaupt nicht nötig: Es gibt kein Eingabefeld, das man nicht selbst angelegt hat.

Das bedeutet für den Entwickler keinesfalls, dass man beim Coden mehr Arbeit hätte. Im Gegenteil: man muss sich über weniger Sonderfälle Gedanken machen und kann ordentliche Frondend-Entwicklung betreiben.

Unterstützung im Frontend

Für mich der größte Vorteil: Ich kann endlich nach gutem Gewissen im Frontend entwickeln: Ich wähle meine JavaScript Bibliotheken selbst, kann allen Frontend-Code unter git verwalten und mit bower und npm meine Abhängigkeiten, kann einen Buildprozess über npm, gulp oder grunt definieren.

Besonderes Schmankerl: Weil Statamic dateibasiert ist, kann ich lokal mittels watch auf die Änderung von Inhalten horchen und meinen Browser aktualisieren lassen.

Die Frontend-Technologie ist theoretisch komplett frei: Man kann z.B. JSON Templates schreiben und eine HTML5-Web-App anhängen.

Das macht den Anschein, Statamic würde dem Frontend-Entwickler außer der Templatesprache recht wenig bieten. Das Gegenteil ist der Fall: es ist alles an Bord, was für hochwertige Webseiten nötig ist:

  • Es kann Seiten cachen, nur den Inhalt oder sogar HTML
  • Es liefert Bilder in jeder gewünschten Größe aus
  • Über Environments kann man verschiedene Einstellungen für Entwicklungsumgebung, Staging und Live-Umgebung festlegen