Headless-CMS: Ein Traum für Frontend-Gurus
Was ist ein Headless-CMS?
Bei dem oben genannten Szenario kommen wir mit einem „normalen“ CMS an unsere Grenzen. Möglicher Ausweg ist ein sogenanntes Headless-CMS. Was ist der Unterschied? Bei einem traditionellen CMS sind das Front- und Backend eng verzahnt. Das sieht bei der Headless-Variante anders aus. Hier kümmert sich das Backend – verbunden mit einer Datenbank – um die Bearbeitungsfunktionalitäten sowie die Bereitstellung einer API (Programmierschnittstelle) und verzichtet komplett auf ein Frontend. Für die Erstellung eines Frontends, welches die im Backend eingetragenen Daten ausliefert, muss sich der Betreiber in Eigenregie kümmern.
Mit Headless ist alles möglich
Technisch funktioniert das Ganze wie folgt: Das Backend speichert die Content-Daten in einer Datenbank (z. B. MySQL). Diese Daten werden vom Headless-CMS mit einer REST-API bereitgestellt, über die sie eine Frontend-Applikation abrufen kann. Das ist mit den verschiedensten Programmiersprachen und Technologien möglich. Egal, ob React, vue.JS oder Angular, hier sind euch keine Grenzen gesetzt.
Somit könnt ihr mit einem Headless-CMS bspw. eine Website in PHP und eine iOS-App in Swift entwickeln. Anders als bei einem üblichen CMS, seid ihr nicht nur an PHP und MySQL gebunden. Der Vorteil: Die Daten werden vom Headless-CMS verwaltet und standardisiert bereitgestellt. Somit können sie von unterschiedlichsten Clients und Programmiersprachen einheitlich im JSON-Format abgerufen werden.
Natürlich gilt hierbei immer: Abgerufen werden kann nur das, wofür Berechtigungen vergeben sind. Ihr müsst also keine Angst haben, dass alle Daten über die öffentliche API zur Verfügung stehen.
Eure Vorteile
Ihr könnt ein und dieselbe Datenquelle für eure Applikationen verwenden. Denn die Inhalte werden serverübergreifend über die API abgerufen. Im Umkehrschluss habt ihr es mit weniger Komplexität zu tun, als bei einem normalen CMS. Außerdem könnt ihr eure Frontends in verschiedenen Sprachen entwickeln und habt zumeist zusätzlich eine hervorragende Skalierbarkeit.
Ein Nachteil
Es ist euch nicht möglich, „mal eben“ eine Microsite zusammenzuklicken. Schließlich ist hierfür immer ein Frontend-Entwickler von Nöten, der die Anpassungen macht.
Headless-CMS in verschiedenen Varianten
Zudem sei noch gesagt, dass es verschiedene Varianten eines Headless-CMS gibt. Einige sind in PHP geschrieben, andere in Node.js oder Go. Ein Richtig oder Falsch gibt es hier nicht – schaut selbst, welches System euch zusagt. Eine Übersicht findet ihr unter: https://headlesscms.org/.
Directus
Bei Mittwald haben wir mit Directus ganz gute Erfahrungen gemacht. Das Programm ist in PHP geschrieben und arbeitet mit MySQL als Datenspeicher. So kann es problemlos auf jedem Hosting-Account bei uns betrieben werden. Schaut gerne mal auf deren Webseite vorbei und probiert das System aus.
Ich wünsche viel Spaß dabei! Solltet ihr Fragen dazu haben, schreibt sie gerne in die Kommentare. ;-)
Kommentare
Ja, wir brauchen wirklich dringend node.js, um effektiver als Entwickler arbeiten zu können.
Wann bietet Mittwald endlich nodejs an?
bin gerade über den Mittwisser-Podcast auf diesen Beitrag gestoßen.
Interessante Entwicklung:
Directus wird künftig als node-first weiterentwickelt, die PHP-Version soll weiterhin bestehen bleiben als Priorität 2.
Siehe https://twitter.com/directus/status/1330642898610688002
VG
Sicherlich kann man auch TYPO3 oder WordPress als Headless nutzen. Und dann im Frontend Sachen, wie von Euch beschrieben, wie React.JS. Damit sind die Webseiten dann auch schneller beim laden.
Ich beschäftige mich nun seit einiger Zeit mit dem Thema. Danke nochmal für die Informationen.
Viele Grüsse
Sascha Thatti
Viele Grüße, Matthias
Der Headless Ansatz lässt sich auch wunderbar in Neos CMS realisieren: In Neos werden die Inhalte gepflegt und dann die Ausgabe einfach im gewünschten Format bestimmt. Entweder in HTML, in JSON oder GraphQL. Die GraphQL API steht aktuell noch als eigenständiges Package zur Verfügung. Der Plan ist es aber die Schnittstelle mittelfristig in den Core von Neos aufzunehmen.
GraphQL Package auf Github:
https://github.com/bwaidelich/Wwwision.Neos.GraphQL
Why monolith? Go headless! Using Neos as content API provider:
https://www.youtube.com/watch?v=KwSwoSKx4cY
Viele Grüße
Mirko
vielen Dank – auch für den Hinweis zu Neos. ;-)
Gigahertzliche Grüße
Kristina