Diese Website nutzt Cookies, um bestmögliche Funktionalität bieten zu können. Weitere Informationen siehe Datenschutzerklärung.

Headless CMS – Eine kurze Einführung

Headless CMS – Eine kurze Einführung

Sehr viele Webseiten verwenden zur Verwaltung ihrer Inhalte ein sogenanntes Content-Management-System (kurz CMS).

Um zu erklären, was es mit einem Headless CMS auf sich hat, gehen wir noch einmal einen Schritt zurück und beschreiben ein traditionelles Content-Management-System (CMS).

Bestandteile traditioneller CMS

Ein traditionelles CMS besteht in der Regel aus drei Komponenten:

  • einem Backendsystem zur Verwaltung des Contents,
  • einer Datenbank zum Speichern des Contents und
  • einem Frontend zur Aufbereitung des Contents für die Anzeige des Contents im Browser des Nutzers.

 

Backend

Das Backend ist eine Web-Anwendung um Content (d.h. Seiten, Beiträge und Medien (z.B. Bilder, Videos, Audio, …)) zu erfassen und zu bearbeiten. Das Backend bietet hierzu eine Reihe von Funktionen:

  • Nutzerverwaltung: Unterschiedliche Rollen mit unterschiedlichen Rechten (Admin, Autor, Redakteur, …)
  • Workflow: Ein von einem Autor geschriebener Beitrag muss z.B. von einem Redakteur explizit freigegeben werden, bevor er auf der Internetseite erscheint.
  • WYSIWIG (What you see is what you get) – Editor zur Bearbeitung von Inhalten.
  • Versionshistorie von bearbeiteten Dokumenten
  • Strukturierungsmöglichkeit des Contents: Seitenbaum
  • Konfigurationsmöglichkeiten (Templates, Views, Themes), die das Erscheinungsbild der Seite für den Nutzer der Web-Seite beeinflussen.
  • Möglichkeit, Funktionserweiterungen (sog. Plugins) zu installieren.

Datenbank

Der Content muss serverseitig irgendwo gespeichert werden. Dazu wird in der Regel eine Datenbank verwendet. Digitale Medieninhalte (Bilder, Videos, Audios, …) werden bei den meisten CMS nicht in einer Datenbank, sondern im Filesystem abgelegt. Einige CMS verzichten komplett auf eine DB und legen alle Inhalte im Filesystem ab.

Frontend

Das Frontend dient dazu, die in der Datenbank bzw. im Filesystem abgelegten Daten so aufzubereiten, dass der Endnutzer die Internetseite im Browser anzeigen kann. Das Frontend generiert basierend auf den ausgewählten und konfigurierten Templates / Themes sowie anhand des Seitenbaums HTML-Code.

Grenzen traditioneller CMS

Serverseitig gerenderte HTML-Seiten sind heutzutage nur noch eine Möglichkeit, dem Nutzer Inhalte zu präsentieren. Webseiten werden zunehmend dynamischer. Die Inhalte sollen in einer JavaScript-Anwendung per AJAX-Aufruf als Rohdaten abgeholt werden und in clientseitig generierten HTML-Code eingebettet werden. Solche Webseiten werden als Single-Page-Applications (SPA) bezeichnet und werden mit JavaScript-Frameworks wie z.B. Vue.js, React oder Angular entwickelt.

Neben einer Anzeige im Browser sollen die Inhalte evtl. auch in nativen iOS- oder Android-Apps angezeigt werden, oder gar über einen Sprachassistenten zugänglich gemacht werden.

Eine Unterstützung dieser Vielzahl an möglichen Endgeräten überfordert die Frontend-Komponente eines traditionellen CMS.

Außerdem gibt es Web-Anwendungen, die sich aufgrund einer komplexen Businesslogik oder der Anbindung von Fremdsystemen nicht oder nur mit großem Aufwand mit einem traditionellen CMS realisieren lassen. Aber selbst solche Web-Anwendungen  haben oft bestimmte Bereiche, die sich gut mit einem CMS abbilden lassen würden (z.B. statische Seiten wie Impressum, Datenschutz oder ein FAQ-Bereich oder ein News-Bereich). Aufgrund der Komplexität der restlichen Funktionalität wird in solchen Fällen aber oft auf die Verwendung eines CMS verzichtet.

Headless CMS

Anstatt zu versuchen die Frontendkomponente eines CMS funktionell immer weiter auszubauen, um möglichst viele Einsatzszenarien abzudecken, geht man bei einem Headless CMS den umgekehrten Weg:

Man verzichtet komplett auf die Frontendkomponente und stellt stattdessen eine API zur Verfügung, um auf die Inhalte in Form von Rohdaten zugreifen zu können.

Vorteile

Hierdurch ergeben sich eine Reihe von Vorteilen:

  • Der Frontend-Entwickler (hier ist der Frontend-Entwickler der Web-Seite, App, etc. gemein, nicht der Frontend-Entwickler des CMS) kann in seinem Ökosystem (PHP, Java, JavaScript, iOS, Android, …) arbeiten und muss sich nicht in die Technologie des CMS einarbeiten.
  • Der Frontend-Entwickler hat volle Flexibilität bei der Entwicklung des Frontends. Er holt sich die Rohdaten aus dem CMS und kann sie je nach Frontend entsprechend aufbereiten (HTML-Liste bei Web-Anwendung, ListView in Android, Sprachausgabe eines Sprachassistenten)
  • In einer komplexen Web-Anwendung, die aus den weiter oben genannten Gründen nicht als Ganzes als CMS-Anwendung realisiert wird, können bestimmte Bereiche (Impressum, Datenschutz, FAQs, News) über ein Headless CMS integriert werden.

Für wen ist ein Headless CMS interessant?

Je nach Einsatzzweck ist die Verwendung eines Headless CMS mehr oder weniger sinnvoll. Der oben aufgeführte Punkt „Der Frontend-Entwickler kann in seinem Ökosystem arbeiten“ ist nicht in jedem Fall ein Vorteil. Wenn z.B. der Inhaber eines kleinen Betriebs selbst eine Firmenhomepage erstellen möchte und dabei keine weitreichenden IT-Kenntnisse mitbringt, dann sollte besser ein traditionelles CMS verwendet werden. Damit lassen sich recht schnell ansprechende Ergebnisse erzielen.

Wenn man hingegen etwas komplexere Anwendungen erstellen möchte, die nach Möglichkeit auf unterschiedlichen Plattformen laufen, dann sollte man die Verwendung eines Headless CMS ernsthaft in Erwägung ziehen.

Wer bereits ein traditionelles CMS im Einsatz hat, die Vorteile von eines Headless CMS aber z.B. im Rahmen einer Single-Page-Application einmal testen möchte, muss nicht zwangsläufig eine aufwändige Migration durchführen. Viele traditionelle CMS haben den Trend erkannt und bieten inzwischen oftmals parallel zur Frontend-Komponenten auch eine API an, über die man sich die Rohdaten per AJAX-Aufruf abholen kann.


Autor

Ähnliche Beiträge