Craft CMS est un CMS moderne qui rend les développeurs web et les rédacteurs web heureux.

La version 3 de Craft CMS a été officiellement lancée en Avril 2018. Avec un code complètement réécrit (durant 3 ans), il conserve les meilleures choses de la version 2 tout en ajoutant de bonnes pratiques modernes sur le plan du développement.

Il se situe entre des CMS comme WordPress et un site développé sur mesure.
Contrairement à WordPress, il est nécessaire d'avoir des compétences en termes de développement pour le faire fonctionner et construire un site.
Il permet de faire des sites professionnels, performants et facilite la gestion du contenu par les rédacteurs web.

Comment fonctionne Craft CMS ?

Cela peut paraitre surprenant, mais Craft CMS arrive un peu comme une coquille vide à l’installation.
Niveau template, on trouve juste un index pour afficher une page par défaut. Niveau administration, aucun modèle n’existe, donc aucune possibilité de créer du contenu.

Et contrairement à ce que l’on pourrait penser, c’est là toute sa force !

Craft CMS met à disposition des champs, des sections et des entrées pour créer les éléments que l’on désire.

Imaginons que vous voulez créer des éléments "Événements" pour votre site :

  • Vous créez en premier des champs : une date, un body (pour le texte), une image, un lieu.
  • Vous créez ensuite une section Événement et un type d'entrée événement.
  • Vous associez dans cette entrée les champs que vous avez créés juste avant.

Et voilà, vous venez de créer une entrée Événement qui est maintenant accessible dans le menu de l’administration.

Maintenant, vous n’avez plus qu’à créer les templates pour afficher vos événements comme vous le désirez.

Vous pouvez aussi créer des relations entre vos différentes sections très facilement.
On pourrait ajouter par exemple des artistes et les associer à vos événements.
Craft CMS offre un système très flexible.

Edition d'une Section dans Craft Cms Édition d'une section. Vous choisissez l'URL et le modèle pour afficher la page. Ajout De Champs Dans Une Section Ajout et organisation des champs dans une entrée

Sous le capot de Craft CMS

Niveau langage, Craft CMS 3 demande PHP 7 au minimum pour fonctionner et tout le code est développé au-dessus d'un Framework très utilisé aux US, Yii 2.
Moins connu en Europe, il a le mérite d'être très bien écrit et d'avoir une documentation très complète. Yii 2 facilite et accélère vraiment le développement. C'est pour cela, que Craft CMS utilise énormément de méthodes natives au Framework pour éviter de complexifier son code base.
L'installation, les mises à jour et la gestion des dépendances passe par l’indispensable Composer.
Le moteur de templates Twig s’occupe de la partie vue et Craft injecte beaucoup de méthodes disponibles dans les templates pour effectuer la récupération des éléments.
Au premier abord, pour les puristes de la méthode MVC, cela peut paraître antipattern d'effectuer des requêtes dans les vues, mais le code est propre et cela permet de regrouper le code à un seul endroit.

Configuration du serveur

Craft CMS demande d'avoir un serveur avec un accès SSH. C'est obligatoire pour l'installation avec Composer. Pour de l'hébergement mutualisé, j'ai actuellement des sites qui tournent chez OVH avec l'offre Pro. Les seuls problèmes que j'ai pu avoir n’ont pas vraiment de liens avec Craft CMS. Mais j'ai découvert avec bonheur le blocage aux services SMTP pour l'envoi d'email et l'absence de Node JS pour utiliser NPM et les performances en montagne russe des hébergements mutualisés OVH.
Dans l'ensemble, je recommande d'avoir un serveur au-dessus d’une offre mutualisée pour une question de performance. Les offres cloud sont souvent à peine plus chères, mais nécessitent un peu plus de connaissances pour les mettre en place.

Et au niveau des plugins ?

Comme tout bon CMS, il utilise des plugins pour ajouter des fonctionnalités spécifiques. De base, il est possible de faire beaucoup de choses (même du SEO !) sans plugin.

Une boutique de plugin est disponible dans l’administration. Certains sont gratuits et d’autres payants.
On peut évidemment développer ses propres plugins si vous avez vraiment un besoin très spécifique. La documentation (très complète) est disponible pour cela.

Plugin Store Craft Cms Le store de plugin dans l'administration

Les points forts de CRAFT CMS

De base, Craft CMS possède quelques fonctionnalités très intéressantes :

  • Une administration simple et claire
  • Une gestion des ressources (images, documents, médias) très intuitive.
  • Un transformateur d'image intégré qui permet de redimensionner les images sans toucher l'originale pour un affichage optimisé sur la partie front.
  • Multisite et multilangue par défaut et simple en gestion
  • Gestion de traduction de texte statique simple et intégré dans Twig
  • Système de cache intégré.
  • Moteur de recherche intégré et performant
Edition d'une entrée dans Craft Cms Exemple d'édition d'un article de blog

Un CMS payant ?

Sur cette dernière version, on dispose de 2 licences. Une Solo (gratuite) et une Pro (payante). Même si Pixel & Tonic conseillent d’utiliser la version gratuite pour des sites personnels, on peut déjà réaliser beaucoup de choses avec, dont la gestion multisite qui permet de gérer plusieurs langues.
La version Pro donne la possibilité d’avoir une gestion d’utilisateur. Ce qui permet de créer un accès administration sans les fonctions de réglages (une admin encore plus simple) et d'avoir également la création d’utilisateurs cotés publique pour des accès à des parties réservées du site.

La licence Pro coûte 299 dollars (255 euros environ) et 59 dollars par année ensuite.

Vous pouvez vérifier le tarif ici

Pour finir

Après plusieurs sites développés avec Craft CMS, je suis très satisfait de ce CMS et je découvre des fonctions encore assez régulièrement. Je m'étonne souvent que beaucoup de choses logiques aient été prévues par défaut.
Je vous conseille de tester par vous même en suivant la méthode d'installation sur la documentation Craft CMS 3.

Pourquoi j’évite de faire des sites avec WordPress ?
Pourquoi pas une Progressive Web App ?