Was ich an Craft CMS mag

Avatar of Marko Ilic
Marko Ilic am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Wenn man sich die CMS-Szene heute ansieht, gibt es über 150 Optionen zur Auswahl – und das schließt keine selbst entwickelten kundenspezifischen Alternativen ein, die Leute vielleicht betreiben. Der Begriff „Content Management System“ ist breit und die meisten Website-Builder passen in das CMS-Modell. Craft CMS, eine relativ neue Wahl in diesem Bereich (eingeführt 2013), sticht für mich hervor.

Mein Team und ich verwenden Craft CMS seit zwei Jahren, um ein paar Websites zu entwickeln und zu pflegen. Ich möchte meine Erfahrungen mit diesem System mit Ihnen teilen.

Bitte beachten Sie, dass sich dieser Erfahrungsbericht auf unsere Erfahrungen mit der Nutzung von Craft konzentriert und daher kein Versuch unternommen wurde, es mit anderen verfügbaren Optionen zu vergleichen. Für uns war die Nutzung von Craft eine sehr positive Erfahrung und wir überlassen es Ihnen, dem Leser, sie mit anderen Erfahrungen zu vergleichen, die Sie möglicherweise gemacht haben.

Zuerst eine kurze Einführung in Craft

Craft ist die Kreation von Pixel & Tonic, einem kleinen Softwareentwicklungsunternehmen aus Oregon. Gegründet von Brandon Kelly, bekannt für Premium-Erweiterungen für ExpressionEngine. Während der Entwicklung einiger der meistgenutzten Erweiterungen beschloss Pixel & Tonic, ein eigenes CMS namens „Blocks“ zu entwickeln. Dies geschah bereits 2010, während der Entwicklung wurde der Name in Craft CMS geändert.

Betrachtet man den Markt, so kann man feststellen, dass Craft gut angenommen wird. Zum Zeitpunkt der Erstellung dieses Artikels nutzen rund 70.000 Websites Craft.

Zeigt das Marktwachstum über einen Zeitraum von fünf Jahren.

Craft wurde entwickelt, um das Leben von Entwicklern und Content-Managern angenehmer zu gestalten. Im Jahr 2015 bewies Craft dies, indem es den Preis als Best CMS for Developers von CMSCritics gewann. Im Laufe der Jahre hat Craft mehrere Auszeichnungen gewonnen, die beweisen, dass Craft auf dem richtigen Weg ist.

Wenn ich gefragt werde, wo Craft in der gesamten CMS-Landschaft angesiedelt ist, sage ich, dass es sich an kleine bis mittelständische Unternehmen richtet, bei denen es ein Team von Content-Managern gibt, die keine vollständig kundenspezifische Lösung benötigen.

Im Grunde ist Craft ein CMS im gleichen Sinne wie WordPress und andere traditionelle Angebote – nur mit einem anderen Geschmack und Ansatz für das Content-Management, der es von anderen abhebt, worauf wir als Nächstes eingehen werden.

Crafts Anforderungen

Serveranforderungen für ein Craft-Setup sind einfach und Standard. Craft benötigt Folgendes:

  • PHP 7.0+
  • MySQL 5.5+ mit InnoDB, MariaDB 5.5+ oder PostgreSQL 9.5+
  • Mindestens 256 MB Arbeitsspeicher für PHP zugewiesen
  • Mindestens 200 MB freier Festplattenspeicher

Sofort können Sie Craft schnell zum Laufen bringen. Sie benötigen keinen umfangreichen PHP- oder Datenbankhintergrund, um loszulegen. Sie kommen sogar mit wenig bis gar keinen PHP-Kenntnissen aus. Das macht sowohl die Einstiegshürde als auch die Zeit von der Installation bis zur Entwicklung extrem gering.

Es ist gleichzeitig einfach und komplex

Craft ist einzigartig, da es sowohl ein einfaches als auch ein komplexes CMS ist.

Sie können Craft verwenden, um komplexe Websites zu gestalten und zu entwickeln, die mit PHP, Datenbanken und Abfrageoptimierungen erstellt werden und stark auf diese angewiesen sind.

Sie können Craft aber auch verwenden, um einfache Websites zu gestalten und zu entwickeln, bei denen Sie keines dieser Dinge tun.

Das war für mich einer der Hauptverkaufsargumente. Es ist einfach, mit sehr wenig loszulegen, aber wenn Sie etwas Komplexeres tun müssen, können Sie das tun. Und es fühlt sich nie so an, als würden Sie es „hacken“, damit es etwas tut, wofür es nicht gedacht war.

Craft hat die gesamte Feld-Erstellung und -Einrichtung in das Admin-Panel ausgelagert. Sie müssen nur auf das richtige Twig verweisen und dann die verbundenen Felder verwenden. Darüber hinaus bietet es Lokalisierung und Multi-Site-Management „out of the box“ ohne die Notwendigkeit von Plugins. Das ist im Wesentlichen das, was es von anderen Content-Management-Systemen unterscheidet. Sie können die Struktur, Felder und alle Formulare erstellen, ohne jemals Code anfassen zu müssen.

Manche CMS treffen viele Entscheidungen für Sie, und manchmal führt das zu unnötigem Ballast. Front- und Back-End-Performance sind mir sehr wichtig und dementsprechend schätze ich es, dass Craft vieles davon mir überlässt, falls ich es brauche. Es bietet ein vollständiges Anpassungserlebnis, das Anfänger sofort unterstützt, aber Fachleute nicht einschränkt.

Crafts Template-Engine

Manche Entwickler sind davon nicht begeistert, aber Craft verwendet Twig als seine Template-Engine. Das Wort „verwenden“ sollte als Anforderung betont werden, da es keine Option gibt, rohes PHP irgendwo im Template zu schreiben. Hier sind meine Gedanken dazu:

  1. Es ist standardisiert, sodass ich bei der Durchsicht der Pull Requests meines Teams keine 100 Zeilen benutzerdefinierten PHP erwarte, die keinen Sinn ergeben. Ich sehe nur den Code, der sich auf das Templating bezieht.
  2. Twig ist bereits mächtig genug, um fast alle Anwendungsfälle abzudecken und gleichzeitig erweiterbar für alles andere zu sein.

Nehmen wir an, Sie mögen Twig nicht oder Sie möchten lieber eine der neuesten Technologien verwenden (hallo Static Site Generatoren!). Das Templating-System von Craft ist nicht der einzige Weg, um Inhalte aus Craft zu erhalten. Seit Craft 3.3 bietet es einen „Headless“-Modus und GraphQL integriert mit den Pro-Funktionen von Craft. Das bedeutet, dass Sie Tools wie Gatsby oder Gridsome verwenden können, um statische Websites mit dem Komfort von Craft CMS zu erstellen. Das stellt Craft auf eine Stufe mit WordPress, das seine eigene REST-API zur Abfrage von Inhalten bereitstellt, die anderswo verwendet werden können.

Es gibt einen voll funktionsfähigen GraphQL-Editor direkt in der Craft-Benutzeroberfläche.

Wenn wir schon von REST sprechen, gibt es sogar eine Option dafür in Craft, falls Sie z. B. kein Fan von GraphQL sind. Die Element API ist eine schreibgeschützte REST-API, die über das First-Party-Plugin Element API verfügbar ist. Wieder einmal bietet Craft genau das, was Sie mindestens brauchen, und kann erweitert werden, um mehr zu tun.

Crafts Erweiterbarkeit

Das bringt mich zu meinem nächsten Punkt: Craft CMS ist extrem erweiterbar. Es basiert auf dem Yii Framework, einem bekannten PHP-Framework, das robust und schnell ist. Das ist wichtig, da alle Erweiterungen entweder über Module oder Plugins geschrieben werden, die in Yii und der Craft API geschrieben sind. Module sind ein Konzept, das von Yii-Modulen übernommen wurde und eine Möglichkeit bietet, Kernfunktionalitäten zu erweitern, ohne den Quellcode zu ändern. Auf der anderen Seite sind Plugins ein Craft-Konzept und tun dasselbe wie Module, können aber installiert, deaktiviert und entfernt werden. Wenn Sie mehr darüber lesen möchten, finden Sie es in den Craft-Dokumenten.

Sowohl Module als auch Plugins haben vollen Zugriff auf die API von Craft und Yii. Das ist ein großer Vorteil, da Sie von der Community und Dokumentation von Yii profitieren können. Sobald Sie sich an Yii gewöhnt haben, ist das Schreiben von Plugins einfach und angenehm. Mein Team hat in den letzten zwei Jahren mehrere benutzerdefinierte Plugins und Module erstellt, wie z. B. eine Pardot-Formularintegration, eine Google reCAPTCHA-Integration, benutzerdefinierte Suchverhalten und andere. Im Grunde sind die Möglichkeiten endlos.

Das Schreiben von Plugins und Modulen ist in den Dokumenten behandelt, aber ich denke, hier hat das System von Craft Raum für Wachstum. Ich würde empfehlen, ein bekanntes Plugin auf GitHub zu öffnen, um ein Gefühl dafür zu bekommen, wie es gemacht wird, da ich dies als viel hilfreicher als die Dokumente empfunden habe.

Anfänglich mag Ihnen dieser Aspekt des Systems schwierig erscheinen, aber sobald Sie die Struktur verstanden haben, wird es einfacher, da der Code im Wesentlichen aus Modellen, Ansichten und Controllern besteht. Es ist, als würde man eine kleine MVC-App innerhalb seines CMS erstellen. Hier ist ein Beispiel für eine Plugin-Struktur, mit der ich gearbeitet habe:

.
├── assetbundles
├── controllers
├── migrations
├── models
├── records
├── services
├── templates
│   ├── _layouts
│   └── _macros
├── translations
│   └── en
├── variables
├── icon-mask.svg
├── icon.svg
└── Plugin.php

Wenn Sie keine Lust haben, PHP zu schreiben und mit Yii/Craft zu experimentieren, können Sie jederzeit Plugins aus dem offiziellen Craft Plugin Store herunterladen. Es gibt eine Vielzahl von Plugins, von Bildoptimierung bis zur Erweiterung des WYSIWYG-Editors. Eines von vielen Dingen, die Craft richtig gemacht hat, ist, dass Sie kostenpflichtige Plugins in der Entwicklungsumgebung beliebig ausprobieren können, anstatt zuerst einen Kauf tätigen zu müssen.

Der Craft Plugins-Bildschirm.

Im Laufe von zwei Jahren haben wir mehrere Plugins ausprobiert. Es gibt einige, die ich nicht nur empfehle, sondern die ich für fast jedes Projekt verwende.

  • ImageOptimize – Das ist ein Muss für Performance-Enthusiasten, da es eine Möglichkeit bietet, hochgeladene Bilder automatisch in responsive Bilder mit Komprimierung zu verwandeln und in modernere Formate zu konvertieren.
  • Navigation – Craft wird nicht mit integrierter Navigationsverwaltung geliefert, obwohl man dies technisch mit benutzerdefinierten Feldern tun kann. Aber Verbb hat mit diesem einfachen Plugin großartige Arbeit geleistet, und für uns ist es eines der ersten Plugins, das wir bei jedem Projekt verwenden.
  • Seomatic – Das ist, was das Yoast SEO-Plugin für WordPress ist: eine Out-of-the-Box-Lösung für alle Ihre SEO-Bedürfnisse.
  • Redactor – Das ist ein Muss und sollte in jedem Projekt enthalten sein. Craft wird nicht mit einem WYSIWYG-Editor geliefert, aber mit Redactor erhalten Sie ein Redactor-Feld, das einen solchen enthält.
  • Super Table – Dieses leistungsstarke Plugin bietet Ihnen die Möglichkeit, wiederholbare Felder zu erstellen. Sie können integrierte Craft-Feldtypen verwenden, um eine Struktur (Tabelle) zu erstellen, und der Content-Manager erstellt Inhaltszeilen. Es erinnert mich an ACF Repeater für WordPress.

Crafts Autoren-Erlebnis

Obwohl wir bisher das Entwicklungserlebnis behandelt haben, ist die Sache, die Craft extrem gut gemacht hat – meiner Meinung nach sogar so gut, dass sie andere CMSs in den Schatten stellt – das Autoren-Erlebnis. Ein CMS kann allerlei Wunderdinge tun, aber es muss am Ende des Tages auch angenehm zu schreiben sein.

Craft bietet eine einfache Reihe von Optionen zur Konfiguration der Website direkt im Admin-Bereich.

Das gesamte Konzept des CMS besteht darin, dass es mit zwei einfachen Dingen aufgebaut ist: Felder und Bereiche, wobei Felder zu Bereichen hinzugefügt werden und Einträge von Content-Managern erstellt werden.

Der Standard-Post-Editor von Craft ist einfach und für Blog-Posts konzipiert. Benötigen Sie mehr Felder oder Bereiche? Diese sind in den Website-Einstellungen konfigurierbar und machen es zu einem vielseitigeren Werkzeug für jede Art von Content-Veröffentlichung.

Eines der raffiniertesten Autorenmerkmale ist die Versionskontrolle. „Moment, was?“ fragen Sie. Ja, alle Inhalte werden versioniert, so dass Autoren Änderungen nachverfolgen und aus beliebigen Gründen auf frühere Versionen zurückgreifen können.

Craft zeigt Revisionen für jeden Eintrag an.

Zu jedem Zeitpunkt können Sie zu einer beliebigen Revision zurückkehren und diese als aktuelle Version verwenden. Sie wissen nicht, wie sehr Sie diese Funktion benötigen, bis Sie sie ausprobiert haben. Für mich vermittelt sie ein Gefühl der Sicherheit, dass niemand Bearbeitungen oder Änderungen verliert, genauso wie Git bei Entwicklern.

Der Spaß hört hier nicht auf, denn Craft hat eines der (meiner Meinung nach) schwierigsten Dinge im Content-Management gemeistert, und das ist die Lokalisierung. Leute finden das auch im Jahr 2020 noch schwierig und geben normalerweise auf, weil es sowohl schwer zu implementieren als auch dem Autor in der Benutzeroberfläche richtig darzustellen ist.

Sie können so viele Websites erstellen, wie Sie möchten.

Und Sie können mehrere Websites in einer einzigen Craft 3-Instanz hosten. Sie können eine oder mehrere Websites unter verschiedenen Domains definieren, verschiedene Versionen des Eintragsinhalts und eine andere Vorlagensammlung verwenden. Wie bei allem in Craft ist es so einfach und offen gestaltet (im guten Sinne), dass es Ihnen überlassen bleibt, was die anderen Websites sein werden. Sie können eine Website mit derselben Sprache, aber anderem Inhalt erstellen oder eine Website mit einer anderen Sprache erstellen und damit das Lokalisierungsproblem lösen.

Alle oben genannten Funktionen sind bereits in Craft integriert, was für mich ein Muss für ein gutes Autoren-Erlebnis ist. Sobald Sie die essentielle Autorenfunktionalität mit Plugins aufbessern, geht das großartige Autoren-Erlebnis verloren. Das liegt daran, dass in der Regel, wenn Sie Funktionalität hinzufügen möchten, mehrere Plugins (Wege) dafür existieren, was zu einem unterschiedlichen Autoren-Erlebnis auf derselben Plattform, aber unterschiedlichen Instanzen führt.

Crafts Community

Es lohnt sich, die Bedeutung einer Gemeinschaft hervorzuheben, an die man sich wenden kann. Bis zu einem gewissen Grad lesen Sie diesen Beitrag wahrscheinlich, weil Sie gerne von anderen in der Entwicklergemeinschaft lernen. Bei CMSs ist das nicht anders, und Craft hat eine großartige Gemeinschaft von Entwicklern.

Crafts Stack Exchange ist voller Fragen und Antworten, aber viele der Informationen müssen aktualisiert werden, um Craft 3 widerzuspiegeln.

Gleichzeitig ist die Community noch klein (im Vergleich zu z. B. WordPress) und hat keine lange Erfolgsbilanz – obwohl viele Leute in der Community schon recht lange dabei sind und von ExpressionEngine kommen. Das liegt nicht nur daran, dass Craft selbst relativ neu auf dem Markt ist. Es liegt auch daran, dass nicht jeder auf der Stack Exchange von Craft CMS so viel postet, dass viele der älteren Antworten noch nicht einmal für Craft 3 aktualisiert wurden. Sie werden feststellen, dass die meisten Community-Mitglieder auf Discord anzutreffen sind, wo sogar die Entwickler von Craft, Pixel & Tonic, aktiv sind und bereitwillig Fragen beantworten. Es ist auch sehr hilfreich, wenn Sie sehen, dass Craft-Kernmitglieder und große Plugin-Entwickler, wie Andrew von nystudio107 (ein großer Performance-Fan), fast rund um die Uhr zur Verfügung stehen, um zu helfen.

Auf dem Craft-Discord ist immer jemand da, der Ihnen hilft. Selbst das Kernteam antwortet oft.

Eine Sache, die ich noch ansprechen möchte, sind die begrenzten Lernressourcen. Aber andererseits braucht man sie kaum. Wie ich bereits sagte, ist die Kombination aus Craft und Twig einfach genug, dass Sie keinen vollständigen Kurs zum Erstellen eines Blogs benötigen.

Crafts Konferenz, Dot All, ist eine großartige Ressource für sich. Chris nahm letztes Jahr mit einer großartigen Präsentation teil, die öffentlich verfügbar ist.

Und schließlich nutzt und erzwingt Craft Open Source. Für mich ist Open Source immer gut, weil man seinen Code mehr Leuten (Entwicklern) zugänglich macht. Craft hat das richtig gemacht. Die gesamte Plattform und auch die Plugins sind Open Source.

Preise

Das ist der Elefant im Raum, denn es gibt gemischte Gefühle, für Content-Management-Systeme Geld zu verlangen. Und ja, Craft hat ein einfaches Preismodell:

  1. Es ist kostenlos für ein einzelnes Benutzerkonto und eine kleine Website.
  2. Es kostet 299 US-Dollar pro Projekt für das erste Jahr mit Updates. Danach kostet es nur noch 59 US-Dollar pro Jahr, aber sie zwingen Sie nicht, für Updates zu bezahlen, und Sie können Lizenzaktualisierungen jederzeit zum gleichen Preis für ein weiteres Jahr aktivieren.
Die Solo-Version von Craft ist durchaus in der Lage, die Bedürfnisse vieler Websites zu erfüllen, aber die kostenpflichtige Pro-Option ist ein kostengünstiges Upgrade für erweiterte Funktionen und Anwendungsfälle.

Ich halte dieses Preismodell für fair und nicht besonders teuer – zumindest nicht so teuer, dass es unerschwinglich wäre. Craft bietet eine kostenlose Lizenz für eine kleine Website, die Sie für einen Freund oder ein Familienmitglied erstellen können. Auf der anderen Seite ist Craft eher eine professionelle Plattform, die zum Erstellen von mittelgroßen Unternehmenswebsites verwendet wird, und dementsprechend sind die Lizenzkosten vernachlässigbar. In den meisten Fällen werden Entwickler (oder Agenturen) die Anfangskosten übernehmen, damit sich die Kunden keine Gedanken über diese Preise machen müssen.

Und Kudos an Craft für die Bereitstellung einer Option, die Pro-Version kostenlos auf einer lokalen Domain auszuprobieren. Das gilt auch für alle Plugins.

Fazit

Abschließend möchte ich Craft CMS und dem Pixel & Tonic-Team für eine großartige und unterhaltsame Fahrt danken. Craft hat fast alle unsere Bedürfnisse erfüllt, und wir werden es auch weiterhin für zukünftige Projekte nutzen. Es ist flexibel, um sich jedem Projekt anzupassen, und es fühlt sich an wie ein CMS, das für diesen Anwendungsfall entwickelt wurde.

Für mich ist Craft letztendlich ein Content-Management-Framework. Out of the box ist es nichts weiter als Nüsse und Bolzen, die nach den Bedürfnissen des Benutzers zusammengebaut werden müssen. Das ist das, was Craft auszeichnet und warum es sowohl ein großartiges Autoren- als auch ein Entwickler-Erlebnis bietet.

Wie Sie im Lizenzmodell gesehen haben, ist es für einen einzelnen Benutzer kostenlos. Probieren Sie es aus und hinterlassen Sie Ihr Feedback in den Kommentaren.