Mehr Infos
Wir nutzen Cookies auf unserer Website. Einige sind essenziell, während andere uns helfen, die Website und Ihre Nutzererfahrung zu verbessern.
Zur Datenschutzerklärung
CMS ANGEBOT

Headless Content Management Systeme (CMS) sind in aller Munde

Strapi CMS | Headless | Open-Source

Ein Erfahrungsbericht zum Strapi headless CMS (open-source)

Content-Management-Systeme (CMS) sind heutzutage in aller Munde und aus einem modernen Entwicklungs-Stack kaum mehr wegzudenken. Besonders der Headless-CMS-Ansatz hat sich in den letzten Jahren klar etabliert und durchgesetzt.
Mittlerweile gibt es zahlreiche Anbieter von Headless CMS-Lösungen. Zu den bekannteren zählen unter anderem Sanity, Strapi CMS, Payload und Builder.

In diesem Beitrag möchten wir uns bewusst auf Strapi CMS, eines der führenden Open-Source Headless CMS, konzentrieren und unsere persönlichen Erfahrungen aus einem konkreten Projekt teilen.

Was ist ein Headless CMS?

Falls du dich jetzt fragst: “Was kann ich mir genau unter einem Headless CMS vorstellen? .Was ist der Unterschied zu traditionellen CMS?”

Kurz gesagt trennt ein Headless-CMS die Content-Verwaltung vom Frontend. Inhalte werden zentral im CMS gepflegt und anschliessend über APIs an beliebige Clients ausgespielt – zum Beispiel an Websites, Mobile Apps oder andere Anwendungen.

Für einen schnellen Einstieg empfehlen wir das bekannte Erklärungsvideo von Sanity, das den Headless-Ansatz sehr anschaulich erklärt.

Wie du dir vorstellen kannst, gibt es zahlreiche Anbieter von Headless CMS Lösungen. Einige prominente Headless CMS Systeme sind:

Im folgenden Beitrag wollen wir uns auf Strapi konzentrieren und dir unsere Erfahrungen damit teilen.

Strapi CMS – Was ist das eigentlich?

Strapi ist eines der führenden Opensource Headless-CMS. Strapi kann für die Entwicklung von Web-Applikationen, Mobile Apps, eCommerce Anwendungen sowie APIs verwendet werden. Dabei besteht Strapi 100 % aus JavaScript und ist auf allen Ebenen erweiterbar und anpassbar. Die gesamte Codebasis von Strapi ist auf GitHub verfügbar. Auf GitHub ist Strapi mit über 51k Stars ein Big-Player. Strapi zeichnet sich vor allem durch die hohe Anpassbarkeit und Erweiterbarkeit aus. Dabei können vom Entwickler sämtliche Aspekte vom Strapi CMS angepasst und erweitert werden. Dazu gehören:

  • Look & Feel vom Admin UI
  • Funktionen der API
  • Verwendete Plugins
  • Hosting

Strapi bietet dem Entwickler weiter mehrere Möglichkeiten, den Content, welcher im CMS gespeichert ist, zu beziehen. Das CMS erstellt basierend auf dem erstellten Content automatisch APIs. Die Daten können also entweder via RESTful API oder GraphQL bezogen werden. Und das beinahe von jedem beliebigen Client. Ähnliches gilt für das Hosting. Da Strapi den “self-hosted” Ansatz verfolgt, kann frei entschieden werden, wo und wie Strapi gehostet werden soll.

Einige weitere Facts über Strapi CMS:

  • Strapi ist im Community Plan kostenlos.
  • Strapi ist relativ einfach zu erlernen und Projekte können somit mit einer guten Time-to-Market abgewickelt werden
  • Strapi kann mit ganz unterschiedlichen Frontend-Technologien kombiniert werden (React, Vue, Angular, Svelte, Flutter etc.)

Vorteile von Strapi CMS

Wie bei jedem CMS gibt es Vor- und Nachteile. Im nachfolgenden Abschnitt gehen wir auf die Vorteile von Strapi ein, die sich bei der Arbeit mit dem Headless-CMS in unseren Projekten konkret gezeigt haben.


Einfacher Einstieg

Dank der guten Getting-Started-Dokumentation und den vorgefertigten Templates kann innerhalb weniger Minuten mit der lokalen Entwicklung gestartet werden.
Der gesamte Setup-Prozess ist aus unserer Sicht übersichtlich und gut nachvollziehbar – insbesondere im Vergleich zu klassischen, monolithischen CMS.

Der integrierte Onboarding-Flow führt schrittweise durch die wichtigsten Funktionen: von der Erstellung des ersten Content-Typs bis zum Abrufen der Inhalte über die Content-API. Gerade für Teams, die neu mit einem API-first Headless CMS arbeiten, ist das ein klarer Vorteil.


Benutzerfreundlich und einfach zu bedienen

Strapi bietet ein benutzerfreundliches Admin-Interface, das intuitiv zu bedienen ist und sofort einsatzbereit zur Verfügung steht.
Ein separates Backend-UI muss nicht zuerst selbst entwickelt werden, was gerade zu Beginn eines Projekts Zeit spart.

Gleichzeitig bleibt das System flexibel: Logo, Theme und UI-Struktur lassen sich an projektspezifische Anforderungen anpassen. Diese Kombination aus sofortiger Nutzbarkeit und Anpassbarkeit hat sich für uns im Projektalltag bewährt.

Strapi Admin-UI

Strapi Admin-UI

Content-Typen können via Admin-UI oder via Code erstellt werden

Neue Content-Typen können entweder direkt über das Admin-UI oder alternativ per Code über JSON-Schemas definiert werden.
Wird ein Content-Typ über das UI angelegt, generiert das System automatisch die entsprechende Struktur, die anschliessend erweitert oder angepasst werden kann.

Aus unserer Erfahrung heraus ist die Arbeit über das Admin-Interface in den meisten Fällen effizienter. Man muss sich weniger mit internen Konfigurationsdetails befassen und kann sich stärker auf die Modellierung strukturierter Inhalte konzentrieren – ein typischer Vorteil eines Headless-CMS.


Automatisch generierte APIs für Content

Sobald ein Content-Typ erstellt wird, stellt Strapi automatisch die passenden Endpunkte zur Verfügung.
Diese Content-APIs unterstützen alle gängigen HTTP-Verben wie GET, POST, PUT, DELETE und OPTIONS und können direkt von beliebigen Frontends konsumiert werden.

Die generierten Default-Endpunkte bilden eine solide Basis. In der Praxis entstehen jedoch häufig zusätzliche Anforderungen, etwa für Filterlogik oder spezielle Datenaufbereitung.
Hier zeigt sich die Stärke der API-first-Architektur:

  • Endpunkte können komplett individuell implementiert werden
  • bestehende Core-Funktionalität kann gezielt erweitert werden
  • Anpassungen lassen sich pro HTTP-Verb vornehmen
Custom Implementation von GET mit Core-Funktionalität von Strapi (Beispiel)

Custom Implementation von GET mit Core-Funktionalität von Strapi (Beispiel)

Integriertes Authentication & Authorization System

Ein Login- und Rechtesystem gehört zu den Standardanforderungen vieler Apps und Webportale.
Strapi deckt diesen Bereich direkt ab und fungiert damit nicht nur als Content-Backend, sondern auch als zentrales Auth-System.

Es lassen sich Benutzer, Rollen und Berechtigungen definieren, die sowohl für das Admin-Interface als auch für externe Clients gelten.
Unterstützt werden unter anderem JWT-basierte Authentifizierungs-Flows mit Access- und Refresh-Tokens, die sich problemlos in frontend-unabhängige Architekturen integrieren lassen.


Flexibles Hosting und Datenbankwahl

Als self-hosted Headless CMS lässt sich Strapi flexibel betreiben – lokal, im Docker-Container oder auf einer Managed-Hosting-Plattform.
Diese Freiheit bei der Infrastruktur war für uns insbesondere in frühen Projektphasen hilfreich.

Auch bei der Datenbankwahl bleibt man flexibel. Unterstützt werden unter anderem:

  • SQLite
  • MySQL
  • PostgreSQL
  • MariaDB

Ein späterer Wechsel ist ohne grossen Migrationsaufwand möglich, was gerade bei wachsenden Projekten relevant ist.

Plugin-System und Community

Strapi verfügt über eine aktive Community, unter anderem auf GitHub und Discord. Der Austausch dort war für uns mehrfach hilfreich, insbesondere bei spezifischen Fragen rund um Konfiguration oder Erweiterungen.

Zusätzlich basiert das System auf einem Plugin-Ansatz. Viele Funktionen, die man aus klassischen CMS kennt, lassen sich dadurch gezielt nachrüsten, etwa:

  • Mehrsprachigkeit
  • Google-Analytics-Integration
  • Swagger / OpenAPI-Support

Gerade diese Modularität passt gut zum Gedanken eines Headless CMS, bei dem nur die wirklich benötigten Features eingesetzt werden.

Nachteile von Strapi

Nebst den vielen Vorzügen von Strapi gibt es auch einige Punkte, mit welchen wir schlechte Erfahrungen gemacht haben. Diese Punkte möchten wir euch nicht vorenthalten:

Limitierter Support für TypeScript

Strapi supported TypeScript nicht “out of the box”, was ziemlich uncool ist. Es ist jedoch möglich, TypeScript in Strapi zu konfigurieren und auch zu verwenden. Zudem bietet Strapi auch bereits einige Types für TypeScript an. Jedoch gibt es noch lange nicht für alle Funktionen und Typen die entsprechenden TypeScript Types. Während der Entwicklung ist das häufig störend, da man sich auf die voll auf die Dokumentation verlassen muss und kein Typen Support innerhalb der IDE geniessen kann. Entwickler, welche fast ausschliesslich TypeScript verwenden, fühlen sich in den ersten Momenten mit Strapi etwas hilflos. Gemäss Communitymanager und Roadmap wird jedoch an vollständigem TypeScript Support gearbeitet.

Strapi ist nicht komplett Open Source und kostenlos

Strapi ist zwar im “Community Plan” kostenlos und Open Source. Mit dem “Community Plan” stösst man aber gerade bei grösseren Applikationen schnell einmal an Grenzen und muss ein kostenpflichtiges Upgrade durchführen. Die “Pro” Version von Strapi sind nicht mehr kostenlos und bieten zusätzliche Funktionen an, welche nicht Open Source sind.

Regelmässige Updates & veraltete Dokumentation

Strapi verbessert sich ständig und bringt neue Funktionen oder Verbesserungen auf den Markt. Das ist auf der einen Seite cool, auf der anderen Seite führt das häufig zu Verwirrung und Bugs. Während unserem Testprojekt mit Strapi, welches ca. 1 Monat in Entwicklung war, gab es einige Version-Updates. 2 der Updates auf die aktuellste Version mussten leider rückgängig gemacht werden, da Funktionen teilweise nicht mehr oder anders funktionierten, als in der Dokumentation beschrieben.

Deployment

Bei Strapi besteht die Möglichkeit, die Applikation bei verschiedenen Hosting Providern mit unterschiedlichen Methoden zu hosten. Diese Flexibilität ist auf der einen Seite sehr hilfreich und nützlich, da man flexibel je nach Projekt und Anforderungen die Hosting Lösung anpassen kann. Strapi offeriert für die verschiedenen Hosting Provider auch entsprechende Guides an, wie man Strapi erfolgreich deployen kann.

Während unserem Testprojekt haben wir mehrere dieser Deployment Guides getestet und ausprobiert. Leider mussten wir während diesem Prozess feststellen, dass die Guides komplex und eher schwer zu verstehen sind. Zusätzlich waren zu unserem Zeitpunkt die Guides teilweise veraltet resp. nicht auf dem neusten Stand. Dieser Umstand war ärgerlich und zeitaufwändig, da wir zuerst ein paar Hosting Guides ausprobieren mussten, bis wir eine funktionierende Lösung gefunden haben.

Fazit zu unseren Erfahrungen mit Strapi

Insgesamt bietet Strapi sehr viele nützliche Features, welche man bei anderen Headless CMS nicht findet. Gerade die automatisch erstellten APIs zu den Content-Typen, welche sehr flexibel anpassbar sind, sowie die unzähligen Plugins bilden aus unserer Sicht die Highlights von Strapi. Dank dem Open Source Gedanken und der sehr grossen Community können neue Features rasch implementiert und hinzugefügt werden. Man bleibt mit Strapi am Puls der Zeit, auch in den nächsten Jahren. Wenn zusätzlich zu den Highlights die Developer Experience (TypeScript Support, stets aktuelle Dokumentation, keine Breaking-Releases, einfache Deployments) mittels den nächsten Releases noch gesteigert werden kann, wird Strapi zu einem unverzichtbaren CMS-Partner für die Zukunft.