Headless CMS

Shortcut
Ein Headless CMS System ist ein Content Management System bei welchem der Frontend-Bereich fehlt und dafür eine API-Schnittstelle bereitstellt. Dies ermöglicht eine entkoppelte Entwicklung mit unabhängiger Technologiewahl. Das wiederum ergibt schlussendlich eine bessere Userexperience und glücklichere Entwickler um nur einige Vorteile aufzuzählen.

Web development
Code
domenico-loia-EhTcC9sYXsw-unsplash.jpg

Nur ganz kurz vorab, du befindest dich gerade auf einer Internetseite welche ein Headless CMS System im Hintergrund verwendet.

 

Content Management System (CMS)

Klassische CMS, oder auch Monolithic, regular, coupled CMS genannt, haben das Bearbeiten von Content auf Webseiten revolutioniert. Dank ihnen können auch nicht Web-Entwickler Inhalte auf einer Webseite erstellen, anpassen und wieder entfernen.

 

1. Aufbau

Bei klassischen CMS Systeme, wie z.B.: Wordpress, Drupal, Joomla, Magento oder Typo3, um nur einige zu nennen, handelt es sich um eine All-In-One Lösung. Sie haben alle eine Datenbank, ein Admin-Backend-Bereich und ein Frontend-Bereich. Die Content Creators können im Admin-Bereich Blog Artikel erstellen, bearbeiten und wieder löschen. Dem Besucher der Seite wird allerdings nur den Frontend-Bereich angezeigt, welcher wiederum auch im Admin-Bereich konfiguriert wird. Architektonisch sind die beiden Bereiche ein grosses System, von da kommt auch der Name Monolith.

2. Vorteile

Das bringt auch Vorteile mit sich, es muss zum Beispiel nur ein einziges System installiert werden um eine vollumfängliche Webseite mit Admin-Bereich für Autoren aufzusetzen. Die meisten grossen CMS laufen mit PHP, einer Programmiersprache, welche nativ auf einem günstigen Webserver läuft und nicht kompiliert werden muss. Das bringt uns zu einem weiteren Vorteil, die kosten können extrem günstig gehalten werden. Heutzutage bietet auch die hinterletzte Hosting Firma One-Click Installationen für CMS System wie Wordpress an. Die Installation braucht kein Fachwissen und kann von jedem Beliebigen ausgeführt werden und dauert in der Regel nur wenige Sekunden.

3. Nachteile

Aber genug von den Vorteilen, die regulären CMS Systeme sind langsam veraltet und bringen auch einige Nachteile mit sich. Zum Beispiel ist da das Problem von PHP. Technisch gesehen ist PHP eine Programmiersprache wird aber unter den Entwickler nicht wirklich ernstgenommen. Security Probleme und eine veraltete Syntax sind nur zwei Problemstellungen mit welchen PHP seit Jahren zu kämpfen hat.

Das andere ist die harte technologische Kopplung von dem Frontend-Bereich mit dem Admin-Bereich. Verwendet das CMS System PHP muss auch der Frontend-Bereich in PHP geschrieben werden. Möchte man noch eine separate Mobile App aufsetzen und auf die gleichen Daten zugreifen, geht das nur mit Umwegen und wird je nachdem komplexer da das CMS nicht für solche Fälle ausgelegt ist. Möglich aber immer etwas Buggy.

cms_vs_headless_cms.png

Headless CMS

Ein immer häufiger auftretender Begriff ist Headless CMS. Headless CMS Systeme lösen langsam ein immer grösser werdender Teil der klassischen CMS Systeme ab. 

 

1. Wort Herleitung

Das Wort Headless, in deutsch Kopflos, kommt daher das viele den Frontend-Bereich als Head und das Backend also den Admin-Bereich als Body anschauen. Also möchte man damit sagen das es eine Entkopplung von Front- und dem Admin-Beriech gibt, die beiden Systeme sind vollständig voneinander getrennt. Das Frontend kann mit einer X beliebigen Programmiersprache auf einem Y beliebigen Hosting deployed werden. Die Verbindung zwischen den beiden entkoppelten Systemen läuft über eine API-Schnittstelle wie REST oder GraphQL.

 

2. Was ist eine API-Schnittstelle

Eine Anwendungsprogrammierschnittstelle ist eine Verbindung zwischen Applikationen. Sie ist eine Art Softwareschnittstelle, die einen Dienst für andere Applikationen anbietet. Ein immer gleichbleibender definierter Standard, in dem beschrieben wird, wie eine solche Schnittstelle aufgebaut und verwendet werden kann, wird als API-Spezifikation oder kurz API bezeichnet.

Zwei weit verbreitete Standards für Webapplikationen sind REST (Representational State Transfer) und GraphQL. REST galt lange als einziger Standard. GraphQL welcher von Facebook ins Leben gerufen wurde, gibt es seit 2015 und findet langsam immer mehr Anwendungsgebiete.

 

3. Headless

Der Einzige Fokus eines Headless CMS ist es das Speichern und Bereitstellen von strukturierten Inhalten. Es ermöglichen die Zusammenarbeit von «Content Creators» an neuen Inhalten.

Stell dir ein klassisches CMS System mit einer Datenbank und einem Admin-Bereich ohne den Frontend-Bereich vor. Zusätzlich hat ein Headless CMS von Hause aus eine gut funktionierende und meisten eine automatisierte generierte API-Schnittstelle. Wenn im Admin-Bereich eine neue Entität hinzugefügt wird, wird im Hintergrund ebenso eine identische API-Schnittstelle bereitgestellt um von der externen Frontend-Applikation auf die Daten zugreifen zu können.

Die gewonnene Entkopplung der beiden Systeme mag zwar zuerst als Mehraufwand gesehen werden, hat aber den entscheidenden Vorteil, das auf beiden Seiten passende Technologien eingesetzt werden können, welche es einem Erlaubt schnellere, sichere und für den Besucher der Seite eine erhöhte Benutzerexperience zu verschaffen. Was sich wiederum auf ein besseres Marketing und eine stärkere Kundenbindung Auswirkungen haben kann.

 

4. Entwicklung und Hosting

Ja Okay, ein separates Frontend mit unabhängiger Technologiewahl ist schön, aber was ist mit den Entwicklungskosten und dem zusätzlichen Hosting?

Das ist ein sehr guter Punkt, zwei Systeme bedeutet auch man benötigt zwei verschiedene Hosting Plätze um sie zu betreiben. Auch müssen zwei Systeme gewartet und überwacht werden. Also alles mit dem Faktor zwei multiplizieren? Wir sagen Nein, klar entstehen Mehrkosten und Mehraufwand durch ein zusätzliches Hosting und dem Aufsetzen des zusätzlichem Frontend. Aber die Aufwände welche eingespart werden auf der Seite des CMS um den Frontend-Bereich aufzubauen und zu konfigurieren können dem externen Frontend mitangerechnet werden. Und wenn wir die späteren Erweiterungs- bzw. Skalier-Möglichkeiten uns vor Augen halten wird der anfängliche zusätzliche Mehraufwand allemal gerechtfertigt. Generell können wir aus der Erfahrung sagen das eine Implementation einer Funktionalität in ein bestehendes klassisches CMS System mehr Zeit in Anspruch nimmt als bei einem entkoppeltem Headless CMS System mit externem Frontend.

Fazit

Für diejenigen die eine Single Page Applikation (SPA), als Frontend Technologie einsetzen möchten und dennoch nicht auf ein CMS verzichten möchten, für den ist ein Headless CMS genau das richtige. Eine Software sollte genau eine Sache machen und dafür diese extrem gut. Mit der Entkopplung des Frontend-Bereiches von dem CMS Systems haben wir genau das erreicht.

Das Ganze kann zwar auf den ersten Blick etwas technisch aussehen und man könnte sich fragen ob das alles überhaupt nötig ist, wir sagen klar Ja, das ist es auf jeden Fall. Jede Verbesserung der Userexperience kann wahres Wunder bewirken. Glücklichere Besucher bleiben länger auf Seite und glücklichere Entwickler schreiben qualitativeren Code. Eine klassische Win-win-Situation.

 

 

  Zurück zur Übersicht