CMSstash

Statamic: Flat-File-CMS on Steroids

Autor: Sebastian Schürmanns

Statamic ist ein junges und aufstrebendes Flat File CMS, das zuletzt auch von der großen Unternehmenwelt entdeckt wurde. So setzt zum Beispiel der Spiegel für Spiegel Plus und Bento inzwischen Statamic ein. Durch seine hohe Flexibilität und seine hervorragende Usability eignet sich Statamic jedoch vor allem für kleinere Unternehmen und den Mittelstand. Für kleine Privatseiten ist das kommerzielle System möglicherweise schon zu kostspielig und anspruchsvoll.

Statamic Website

Statamic ist im Jahr 2012 als Nebenprojekt von Jason Varga und Jack McDade entstanden. Auf Grund des großen Erfolges machten die beiden Entwickler zwischen 2014 und 2015 aus Statamic ein eigenes Unternehmen. Nach einem weiteren Jahr veröffentlichten sie mit Statamic 2 eine komplett neue Version. Bereits mit der ersten Version brachte Statamic als sehr modernes kommerzielles System frischen Wind in den Flat-File-Markt. Mit der Version 2 transformierte Statamic dann endgültig zu einem Premium-System für ein etwas höheres Preis-Segment.

Job-Angebote für CMS-Experten

CMS-Experten wie Web-Entwickler, Produkt-Owner oder Projekt-Manager sind heiß begehrt. Daher bietet CMSstash in Zukunft ein Job-Board an. Job-Board ansehen

Statamic richtet sich vornehmlich an Entwickler und Web-Agenturen, die ihr Portfolio um ein modernes und flexibles CMS ohne Datenbank erweitern wollen. Statamic bietet sich auch als datenbanklose Alternative zu dem beliebten Craft CMS an, denn beide Systeme sind aus dem Umfeld von Expression Engine entstanden und folgen ähnlichen Prinzipien.

Statamic für Content Manager

Die übersichtliche und hell gestaltete Autoren- und Administrations-Oberfläche von Statamic folgt einer klassischen Zwei-Teilung mit den Inhalten in der Mitte und einer Menüleiste am linken Rand. Unter dem Menü-Punkt "Content" unterscheidet Statamic zwischen statischen Seiten ("Pages") und dynamischen Einträgen ("Collections") wie Blogs oder News. Weitere Punkte im Content-Menü sind Tags, ein ausgereifter Medien-Manager und die sogenannten "Globals", mit denen sich globale Inhalte wie ein Footer, eine Sidebar oder der Seitentitel bearbeiten lassen.

Die Bearbeitung der Inhalte fällt bei Statamic höchst unterschiedlich aus, da die Autoren-Oberflächen vom Entwickler individuell an die Bedürfnisse der jeweiligen Seite angepasst wird. Grundsätzlich setzt Statamic auf klassische Eingabe-Formulare, die jedoch immer wieder um Inline-Elemente mit direkter Preview ergänzt werden. Ausgesprochen gut funktionieren zum Beispiel das Bild-Management oder sortierbare Listen-Elemente.

Das Autoren-Dashboard von Statamic

Für die Haupt-Inhalte nutzt Statamic einen stark reduzierten Markdown-Editor mit einem klassischen Preview-Mode. Markdown in dieser reinen Form stellt für viele Autoren jedoch eine recht hohe Hürde dar. Darauf hat Statamic inzwischen reagiert und mit "Bard" einen sehr modernen und flexiblen Inline-Editor als Alternative entwickelt.

Inline Editing mit dem Bard-Editor von Statamic

Mit Bard hat Statamic beim Content-Editing schon sehr früh auf neue Trends reagiert, die unter anderem von Medium oder Slack forciert wurden. Zwar steht derzeit noch nicht jeder Autor dieser modernen Form des Inline-Editings offen gegenüber. Im Vergleich zu den reinen Markdown-Editoren senkt Bard jedoch die Einstiegshürden für Autoren ohne Markdown-Kenntnisse drastisch und hilft Statamic auf dem Weg in den Mainstream-Markt.

Bard ist jedoch nicht das einzige Alleinstellungsmerkmal von Statamic. Denn Statamic hat mit Version 2 auch einen Manager für Frontend-Formulare integriert. Damit kann ein Autor oder Administrator beispielsweise Kontakt-Formulare komplett ohne die Hilfe eines Entwicklers erstellen:

Der integrierte Formular-Manager von Statamic

Der Formular-Builder basiert auf dem gleichen Prinzip wie der Fieldset-Manager, mit dem die Eingabe-Formulare für die Autoren-Oberfläche erstellt werden. Auch im Vergleich zu vielen etablierteren Content Management Systemen dürfte man nur wenige Kandidaten finden, die einen derart komfortablen und flexiblen Umgang mit Formularen ermöglichen. Wie schon erwähnt schlägt sich das bei Statamic allerdings auch in den Lizenz-Kosten nieder.

Statamic für Entwickler

Statamic läuft auf Apache-, Nginx- und IIS-Servern. Für den Betrieb ist PHP ab Version 5.5.9 mit seinen Standard-Bibliotheken erforderlich. Beim Technologie-Stack ist Statamic mit Version 2 im März 2016 von dem Micro-Framework Slim auf das populäre PHP-Framework Laravel und das Frontend-Framework Vue.js umgestiegen. Das System ist damit nicht mehr unbedingt leichtgewichtig, sondern belegt mit gut 50 MB ebenso viel Speicherplatz wie andere mittelkomplexe Content Management Systeme.

Für die Installation von Statamic lädt man im einfachsten Fall nur die Dateien herunter und packt sie auf den Server. Für die Überprüfung der System-Voraussetzungen und die Einrichtung eines Admin-Users erreicht man unter deiner-domain.com/installer.php einen Installations-Wizzard. Die Installation in einen Sub-Folder (üblich in der lokalen Umgebung) bereitet bei Statamic traditionell etwas mehr Kopfschmerzen, die aber nach ein paar einfachen Änderungen in den Settings und in der htaccess schnell wieder verfliegen. Glücklicherweise hat Statamic inzwischen eine kurze Anleitung zur Installation in Subfoldern in seine Dokumentation integriert.

Ähnlich wie Craft CMS und Expression Engine verfügt auch Statamic im Admin-Dashboard über einen sehr komfortablen visuellen Formular-Builder. Zur Auswahl stehen fast 40 unterschiedliche Feld-Typen, mit denen sich sehr bequem und ohne Programmier-Aufwand neue Eingabe-Formulare für die Autoren erstellen lassen. Ein neues Fieldset im Formular-Builder ist gleichzeitig auch ein neues Seiten-Template, beispielsweise lassen sich Fieldsets für Blogs oder für About-Pages erstellen.

The field-manager of statamic

Die Fieldset-Definitionen werden im Ordner fiedsets unter site und settings als YAML-Konfiguration abgespeichert, und tatsächlich hat man in frühen Versionen von Statamic diese YAML-Definitionen per Hand geschrieben. Eine Field-Definition für die About-Page sieht in YAML wie folgt aus:

title: About
hide: true
sections:
  main:
    display: Main
    fields:
      title:
        type: text
        width: 66
        localizable: true
      slug:
        type: text
        width: 33
      content:
        type: markdown
        display: Content
      fun_facts:
        type: list
        display: 'Fun Facts'

Statamic speichert die Inhalte, die der Autor über die Formulare eingibt, in Markdown und FrontMatter ab. Im FrontMatter werden dabei mehr oder weniger alle Inhalte abgespeichert, die nicht aus dem normalen Markdown-Content-Feld kommen. Dadurch wirkt das FrontMatter teilweise leider recht aufgebläht:

---
title: About Me
template: about
fieldset: about
id: 72c016c6-cc0a-4928-b53b-3275f3f6da0a
fun_facts:
  - "I grew up in West Virginia but moved to California in the mid 90s"
  - "My life is about as organized as the $5 DVD bin at Wal-Mart"
  - "My first computer was a Commodore 64"
  - "I'm a paper cut survivor"
  - "I have a restraining order against me from J.K. Rowling but I promise it's just a misunderstanding"
  - "I hope one day I love something the way women in commercials love yogurt"
  - "I’m not smart. I just wear glasses."
---
My name is Niles Peppertrout. I am a relatively new Park Ranger working at Redwood Nation Park with a background in Applied Harry Potter Sciences from [Frostburg University](http://frostburg.edu). I've always loved the outdoors but never dreamed I'd get paid to wander them. [Join me on my adventure](/blog)!
![Me](/assets/img/me.jpg)

Bei der Theme-Entwicklung können die Markdown-Inhalte über das Template-Tag {{ content }} ausgegeben werden. Die Inhalte aus dem FrontMatter sind über die jeweiligen Namen erreichbar, in diesem Beispiel also {{ fun_facts }}:

<section class="regular">

    <header>
        <h1>{{ title }}</h1>
        {{ sub_title wrap="h2" }}
    </header>
    <article class="content">
        {{ content }}
        <h2>Fun Facts</h2>
        {{ fun_facts | ul }}
    </article>

</section>

Die Template-Sprache erinnert zunächst an Twig, ist aber tatsächlich eine Eigen-Entwicklung von Statamic unter dem Namen Antler. Es gehört sicherlich zu den eher zwiespältige Entscheidungen von Statamic, den weit verbreiteten Standard Twig durch eine eigene Template-Sprache zu ersetzen. Wer mit Twig vertraut ist, wird jedoch absolut keine Probleme mit Antler haben, da sich die Syntax in weiten Teilen an Twig orientiert.

Wer von älteren Systemen wie WordPress oder Joomla! auf Statamic umsteigt, wird sich erst einmal an die neue Logik gewöhnen müssen. Ist das Prinzip jedoch einmal verstanden, erweist sich die Entwicklung mit Statamic als unglaublich einfach, flexibel und sauber. Statamic gehört zusammen mit Craft CMS sicherlich zum State of the Art unter den CMS in der PHP-Welt und es ist beeindruckend, was das immer noch sehr kleine Team aus dem Norden von New York State über die Jahre hingezaubert hat.

Statamic für Nicht-Entwickler

Im Marketplace von Statamic gibt es zwar eine handvoll Themes. Statamic richtet sich jedoch auch in der Preisgestaltung eher an Web-Agenturen und Entwickler. Als normaler User kann man Statamic zwar leicht installieren und bedienen. Eine individuelle Anpassung ist jedoch nur mit Entwickler-Skills möglich.

Für Code-Einsteiger ist Statamic eine gute Wahl, da die Entwicklung sehr klar, sauber und direkt funktioniert. Auch die Dokumentation von Statamic ist eine viel gepriesene und unterhaltsame Wohltat. Die Community ist jedoch vergleichsweise klein und es tummeln sich dort eher Profi-Entwickler und professionelle Dienstleister. Wer die Grundlagen der Entwicklung beherrscht, wird den Einstieg dennoch gut meistern.

Preise

Statamic hat sich in den letzten Jahren zunehmen als Flat-File-CMS im Premium-Segment etabliert. Nach zahlreichen Preis-Umstellungen und Experimenten mit Lizenz-Modellen sieht die Preisgestaltung derzeit so aus:

Statamic bietet eine unbeschränkte Test-Version im Tausch gegen eine E-Mail-Adresse an. Damit können Entwickler und Anwender das System ausgiebig in einer lokalen Entwicklungs-Umgebung prüfen, bevor man sich für den Kauf einer Lizenz entscheidet.

Empfehlung: Wann lohnt Statamic?

Kunden wie der Spiegel, Disney oder Asana beweisen, dass sich Statamic inzwischen zu einem sehr reifen System gemausert hat und auch komplexe Anforderungen gut meistert. Daneben dürfte der Mittelstand die Hauptzielgruppe sein, denn Statamic bietet im Vergleich zu vielen etablierten Systemen ein wesentlich einfacheres, flexibleres und auch nutzerfreundliches System an. Ein Argument dürfte sein, dass mit Statamic die Kosten für die Weiterentwicklung und für den Betrieb der Seite auf mittlere Sicht günstiger sind, denn größere Wartungen, permanente Sicherheitsupdates und eine aufwändige Erweiterung durch Plugins bleiben bei Statamic dank der flexiblen Flat-File-Architektur eher die Ausnahme.

Statamic 2 hat allerdings die E-Commerce-Erweiterung von Statamic 1 weitestgehend aufgegeben. Sicherlich eine gute Entscheidung, da spezialisierten E-Commerce-Lösungen auf lange Sicht wohl außer Konkurrenz laufen und die Flat-File-Architektur beim E-Commerce sicherlich an seine Grenzen stößt.

Auch andere Experten lesen gerne gute Inhalte und freuen sich, wenn Du diesen Artikel zum Beispiel über Twitter teilst. Auf Twitter gibt es außerdem von @CMSstash tägliche Updates.

Zuletzt aktualisert: 05.11.2018