Was ist Strapi

Strapi ist ein auf Node JS basierendes Open Source** Self-hosted Headless CMS** womit wir in der Lage sind in kürzester Zeit unsere Clients mit Daten zu füttern, und das äußerst effizient und zuverlässig. Der Begriff Rapid Development, welcher unter Entwicklern gebräuchlich ist, nimmt hier ganz neue Dimensionen an. Im Backend kann man allgemein ohne jegliche Programmierkenntnisse schon viele operative Sachen erledigen, man kann sich sogar die komplette Datenbank zusammenklicken. Erst beim Erstellen der Services, zB. E-Mail Service oder File Upload Service, muss man den Code, bzw. eigentlich auch nur das Terminal anfassen, um das npm Modul zu installieren. Hat man diesen Provider dafür dann installiert kann man auch diesen im Backend auswählen.

text

So funktioniert das ECO-System, letztendlich wird alles in Provider ausgelagert und die Daten in Clouds gespeichert. Trotzdem hat man volle Kontrolle über den Code und kann auch problemlos daran arbeiten was das System super flexibel macht.

Strapi aufsetzen

Get ready to get Strapi up and running in less than 5 minutes 🚀

Das behauptet zumindest Strapi selber, ich selbst habe zwar nicht die Zeit gemessen aber es geht wirklich sehr schnell.

Datenbank aufsetzen

Eine Datenbank ist die einzige Voraussetzung für das Aufsetzen von Strapi.
Strapi supported zum aktuellen Zeitpunkt sqlite, postgress, mysql und mongodb.
Sich einmal entschieden gibt es vorerst kein Weg zurück, ob man sich jetzt für eine SQL wie MySQL oder NoSQL Datenbank wie MongoDB entscheidet man bei der Erstellung der DB Struktur nacher erstmal nicht. Strapi regelt das für uns.

Datenbank Tabellen anlegen

Jetzt sind wir in der Lage Tabellen anzulegen. Es gibt Collection Types, Single Types und Components.
Collection Types sind einfach mehrere Objekte vom selben Typ, Single Types ein Object desselben Typs und Components immer wiederkehrende Objekte
die man innerhalb der Collection Types anlegen kann. Hier ein Beispiel wie mann einen kleinen Blog mit Kategorien in 2 Minuten anlegen kann.

Standardmäßig gibts immer schon 3 Collection Types: Permission, Role und User.
text

Jetzt erstelle ich eine neue Collection Type: Posts
text

Hier gibts alle Feldtypen, Component habe ich bereits angeschnitten, Dynamic Zones sind neu - womit man sich über
Komponenten eigene Layouts definieren kann, darauf im Detail einzugehen würde den Rahmen sprengen, außerdem gibt es von Strapi
selbst genug Videos zu:

https://strapi.io/blog/release-beta-18-dynamic-zones

text

Nachdem wir außerdem noch eine **Collection Type: Category ** angelegt haben wird es jetzt Zeit diese Beiden über Beziehung zu verbinden

text

Jetzt existiert eine Beziehung zwischen Post und Kategorie und man ist in der Lage beim Anlegen eines neuen Posts direkt eine oder mehrere Kategorien anzulegen!
text

So sieht das in meinem Blog aus:

text

Wie man an dem Beispiel gesehen hat, kann man sich ganz schnell ganz leicht mit wenig Klicks eine Datenbankstruktur anlegen und die Tabellen mit Daten füttern.

Rollen & Rechte

Wie erwähnt gibt es 3 Standard Collections die immer vorhanden sind: Permission, Role & User, dazu zwei Rollen: Authenticated & Public
Die Tabellen, die wir zuvor angelegt haben sind direkt über die API erreichbar, allerdings sind die Types, oder auch Models genannt, standardmäßig auf Authenticated gesetzt damit nicht jeder direkt die Daten über die API abrufen kann. Möchte ich meine Daten freigeben kann ich das ganz einfach über die Oberfläche von Strapi tun und anschließend sind diese dann auch über die API direkt erreichbar, das kann man einfach über einen Client wie Postman testen.

Hosting & Deployment

Hier sind von Strapi selbst folgende Provider gelistet:
https://strapi.io/documentation/3.0.0-beta.x/getting-started/deployment.html#hosting-provider-guides
Fast all dieser Provider bieten auch effiziente Wege die Node JS Applikationen zu deployen, mit Heroku zum Beispiel kann man es direkt über den Commit machen.
Wie direkt im ersten Screenshot gesehen bietet Strapi für jeden Service drei Instanzen an, eine Development, eine Staging und eine Produktion Instanz. Das ist hilfreich um den jeweiligen Content
vom Development zur Produktion über Staging zu unterscheiden, das funktioniert beim Deployment problemlos.

Entwicklung & Zukunft

Aktuell befindet sich Strapi immer noch in der Beta, gefühlt kommen monatlich große Updates raus, über die man aber auch immer direkt über das Backend unterrichtet wird.
Strapi liefert mit dem Update aber auch immer gleich Updates für alle Provider, so dass das System problemlos ab- und aufwärtskompatibel ist, deshalb kann man Strapi auch jetzt schon
problemlos im Produktionsmodus verwenden.

Fazit

Strapi ist eine hervorragende Wahl um seine Kanale schnell und effizient zu bedienen. Im Gegensatz zu reinen cloud-basierten Lösungen wie Contentful hat man bei Strapi vollen Zugriff auf den Code und kann das System problemlos
verändern, was in den meisten Fällen aber gar nicht nötigt ist. Wer also auf der Suche nach einem kostenfreien Self-hosted Headless CMS ist wird um Strapi nicht herumkommen.