CMS Headless, “Statamic” ? : mais qu’est ce que c’est ? C’est quoi ce nom !

Alors, je ne sais pas si le nom est très heureux mais Statamic est un système de gestion de contenu Headless aussi appelé CMS Headless.

Une solution « Headless », soit “sans tête”,   signifie en langage technique une application où le Front-End, la partie visible, le visage de votre site auprès de vos utilisateurs, est détachée du Back-End, la machinerie cachée de votre site.

Dans un CMS Headless, les différentes données (texte, images, …) sont envoyés du Back-End au Front-End par API et il est nécessaire de coder le Front-End de manière séparée. A l’opposé, un CMS traditionnel génère systématiquement le code du Front-End (HTML et CSS notamment) lorsque vous créez une page. On retrouve aussi cette approche dans les solutions e-commerce headless.

Ce détachement Front/Back propre au Headless CMS permet de donner une très grande souplesse au design, aux performances ou encore de proposer une expérience utilisateur améliorée. C’est une alternative plus sophistiquée à WordPress, dont l’objectif est de faciliter la création de sites web et d’applications web dynamiques. 

Statamic est développé spécifiquement pour le framework Laravel (ce qui est plutôt un gage de qualité). Alors, même si on a écrit un poste qui expliquait pourquoi WordPress est toujours une option valable (ici), on trouve que Statamic est vraiment pas mal et permet de répondre à de vrais besoins. 

Quelques explications – Comment fonctionne Statamic : 

Côté back-office, Statamic vous permet de créer et de gérer du contenu en offrant une interface administrateur conviviale, même pour les utilisateurs non techniques. L’interface est vraiment bien conçue, en voici un exemple ci-dessous.

Exemple de Back-Office Statamic – Image du site officiel

Vous pouvez créer des pages, des articles de blog, des produits, des formulaires, des catégories, etc. 

Une gestion des assets permet de simplement organiser ses images ou vidéos, avec un système assez malin permettant de choisir la focale d’une image, afin qu’elle soit correctement ajustée sur le front-office quelque soit la résolution de l’écran (smartphone ou ordinateur).

Côté frontend (l’interface visible par l’utilisateur), c’est à votre guise : la force d’un CMS headless comme Statamic est qu’il laisse toutes les possibilités d’intégration. Vous pouvez donc faire un site entièrement sur-mesure en utilisant des technologies modernes comme React ou Vue.js, utiliser le moteur de Laravel Blade, ou même réaliser une intégration avec Antlers, un moteur de rendu de pages parfaitement intégré avec Statamic. Et en plus de tout cela, le CMS expose une API REST, mais aussi GraphQL, afin de ravir tous types d’intégrateurs web. 

Vous pouvez donc construire un site en vous concentrant sur les aspects de gestion de contenu, sans avoir de doutes sur les possibilités de rendu sur le site final.

Techniquement, Statamic est un CMS flat-file, ce qui signifie qu’il ne nécessite pas de base de données pour stocker le contenu et c’est ce qui le rend très particulier. Il utilise des fichiers de texte et des dossiers pour stocker le contenu. Et encore plus fort : si vous avez besoin de changer ce système, et que vous gérer des dizaines de milliers de contenus, vous pouvez tout simplement changer le mode d’enregistrement des données vers un système plus classique, comme une base de donnée MySQL ou même du NoSQL comme MongoDB.

En plus, Statamic offre des fonctionnalités avancées de gestion des utilisateurs, vous permettant de définir des rôles et des autorisations pour contrôler qui peut accéder, créer, modifier ou supprimer du contenu.

Et il existe encore beaucoup plus de fonctionnalités pour mettre en place une plateforme web sur-mesure robuste et scalable. On serait ravi de vous les présenter ! N’hésitez pas à contacter notre équipe de Lyon, spécialisée en la matière.

Quelques points de comparaison entre WordPress et Statamic : 

WordPressStatamic
Type de CMSCMS traditionnel basé sur une base de données.CMS Headless, et “flat-file” (sans base de données).
LicenceLogiciel librePaiement d’une licence d’utilisation (à partir de $7/mois)
Simplicité d’utilisationTrès convivial pour les débutants, avec une grande communauté et de nombreux tutoriels.Plus adapté aux utilisateurs ayant des connaissances techniques, notamment en raison de son intégration avec le framework Laravel.
PersonnalisationOffre une vaste gamme de thèmes et de plugins pour la personnalisation.Permet une personnalisation avancée grâce à ses modèles et sa structure flexible.
SécuritéSusceptible aux attaques, nécessitant des mises à jour et des plugins de sécurité réguliers.Plus sécurisé de par sa structure flat-file, réduisant les risques d’attaques comme les injections SQL, et de par son intégration avec Laravel
PerformancePeut être lent si mal optimisé ou surchargé de plugins.Généralement plus rapide en raison d’une structure plus légère et d’une intégration utilisant des technologies modernes (GraphQL, React, etc.).
Tableau de comparaison Statamic VS WordPress

Comment étendre les fonctionnalités de Statamic ? 

Au-delà des  fonctionnalités déjà présentées, les développeurs pourront étendre les fonctionnalités de Statamic assez facilement, en tirant parti de sa flexibilité et de son architecture modulaire :

  • Développement de Plugins : les plugins peuvent couvrir un large éventail de besoins, comme l’intégration avec des services tiers, l’ajout de nouvelles fonctionnalités, ou l’amélioration des performances du site.
  • Utilisation de l’API : Statamic offre une API robuste qui permet aux développeurs d’intégrer leur CMS avec d’autres systèmes et applications. Cela peut inclure l’intégration avec des outils de marketing, des plateformes de commerce électronique, ou d’autres applications web.
  • Manipulation des données avec Laravel : étant donné que Statamic est construit sur le framework Laravel, les développeurs familiarisés avec Laravel peuvent utiliser ses fonctionnalités pour manipuler les données, effectuer des opérations backend complexes, et étendre les capacités du CMS.
  • Webhooks et Intégrations : les développeurs peuvent utiliser des webhooks et des intégrations pour connecter Statamic à d’autres services en ligne, automatiser des workflows, et étendre les fonctionnalités du CMS au-delà de ses capacités natives.

Conclusion – Un CMS Headless aussi performant et flexible que Jason Statham

Pour conclure, Statamic est un CMS simple et flexible, idéal pour la plupart des sites web qui demandent une souplesse d’intégration. Il offre un équilibre entre facilité d’utilisation et personnalisation, ce qui en fait un choix de plus en plus populaire pour les développeurs et les équipes marketing.

Il est particulièrement adapté aux projets de taille moyenne qui nécessitent une gestion de contenu flexible et des performances élevées. Après, il faut juste pouvoir dire sans sourire : “ je sors un nouveau site web avec Statamic”…

On utilise Laravel Nova et on trouve ça cool ! 

Découvrez pourquoi Laravel Nova simplifie la création de back-offices

Vous cherchez à développer un back-office robuste ? Laravel Nova est certainement une très bonne solution… Il permet de développer une application très rapidement tout en reposant sur des technologies fiables. Et, c’est un peu notre crédo chez TheCodingMachine. Alors lorsqu’on a découvert Laravel Nova, on s’est dit qu’il fallait que l’on vous en parle. 

#1. Bon d’abord, qu’est-ce que Laravel Nova ? 

C’est un outil de conception de back-office, s’appuyant sur le très solide framework PHP Laravel

Laravel Nova permet de réduire à néant toutes les complexités inhérentes à la création d’un back-office d’administration (formulaire de création d’éléments complexes, affichage de listes triées, filtrées et paginées, déclenchement d’actions de masses, etc.), grâce à des outils clés en mains, robustes, et éprouvés.

Conçu pour drastiquement simplifier la mise en place de back-offices sur mesure, voici pourquoi vous devriez envisager d’utiliser Laravel Nova : 

  • Laravel Nova offre une interface utilisateur prête à l’emploi élégante. Vous n’avez pas besoin de créer une interface d’administration complexe depuis zéro. La gestion du menu, des listes, des formulaires, des erreurs, ou encore des dashboards est facilitée à travers des composants déjà pré-établis qualitatifs.
  • Rapidité de développement : en fournissant l’intégralité des vues et des composants du back-office, Laravel Nova permet de gagner du temps et de réduire la charge de travail de développement. Il permet notamment de générer des CRUD (interfaces pour les opérations de création, lecture, mise à jour et suppression des données) rapidement à partir du modèle de données, ou bien encore d’intégrer des fonctionnalités de recherche, tris et filtres  puissants. 
  • Bien que Nova fournisse des modèles de base, il est également personnalisable. Vous pouvez ajouter des champs et des outils personnalisés pour répondre aux besoins spécifiques de votre application. D’ailleurs chez TheCodingMachine, on adore concevoir des nouveaux champs, métriques ou ressources complètes sur-mesure pour nos clients : n’hésitez pas à suivre notre Github, on prévoit bientôt de mettre à disposition des composants Laravel Nova open-source !
  • Nova est spécialement conçu pour fonctionner en cohérence avec Laravel. Il tire parti des fonctionnalités telles que l’authentification, les autorisations, les migrations de base de données, les modèles Eloquent (détaillé ci-dessous), les validations, etc.
  • Nova intègre un système de gestion des autorisations qui vous permet de définir précisément qui peut accéder à quelles parties du back-office. Vous pouvez gérer les rôles et les autorisations de manière centralisée.

Nova propose un journal d’audit qui enregistre toutes les activités effectuées dans le back-office, ce qui peut être utile pour le suivi de l’activité des utilisateurs et la résolution de problèmes. Il est aussi optimisé pour être performant. 

Enfin, Laravel et Nova disposent d’une grande communauté de développeurs, ce qui signifie que vous pouvez trouver un grand nombre de ressources, de packages complémentaires et de documentation pour vous aider dans votre développement.

D’ailleurs, c’est le fondateur de Laravel qui est le créateur de Laravel Nova !

Exemple d'un back-office généré avec Laravel Nova.

#2. Ce qui est le plus cool : interagir simplement avec la base de donnée

Eloquent est l’ORM (Object-Relational Mapping) inclus avec Laravel. Il fournit une manière simple de travailler avec les bases de données, qu’importe la technologie utilisée (MySQL, MariaDB, PostgreSQL, SQL Server, etc.). 

Un modèle Eloquent est une classe qui représente une table dans votre base de données. Chaque modèle correspond à une table, et chaque instance du modèle correspond à un enregistrement dans cette table. Ces modèles permettent donc d’effectuer des requêtes sur la base de données de manière intuitive, en utilisant une syntaxe orientée objet.

Laravel Nova utilise les modèles Eloquent pour interagir avec les données de la base de données. Pour chaque modèle Eloquent que vous souhaitez gérer via l’interface d’administration de Nova, vous créez une « Resource » Nova correspondante qui définit comment ce modèle est présenté dans l’interface Nova, y compris les champs, les filtres, les actions, etc. 

Et ce qui est très fort, c’est que vos modèles peuvent être liés à d’autres entités (par exemple un utilisateur appartient à une entreprise, ou à l’inverse une entreprise est composée de plusieurs utilisateurs), Laravel Nova sait parfaitement représenter ces informations.

En résumé :  Nova étend la fonctionnalité des modèles Eloquent en fournissant une interface utilisateur graphique pour interagir avec ces modèles.

#3. Les alternatives à Laravel Nova

Il existe de nombreuses alternatives à Laravel Nova que nous allons prochainement tester (stay tuned !) : 

Voyager :

Voyager, souvent appelé l’Admin Panel pour Laravel, est une solution complète qui combine un outil d’administration avec un système de gestion de contenu intégré. Il est particulièrement apprécié pour sa simplicité d’installation et son interface utilisateur. Voyager propose une série de fonctionnalités clés telles que le CRUD (Créer, Lire, Mettre à jour, Supprimer) pour les modèles de base de données, un gestionnaire de rôles et de permissions, et un constructeur de menus, rendant la gestion de l’application Laravel plus efficace et intuitive. 

BackPack for Laravel :

BackPack for Laravel est une collection de packages qui fournit une solution d’administration personnalisable pour les applications Laravel. Il excelle dans la création d’interfaces d’administration complexes, offrant des fonctionnalités telles que la gestion des CRUD, des filtres avancés, et des formulaires avec validation. BackPack se distingue par sa capacité à étendre et personnaliser presque tous les aspects de l’interface d’administration, permettant aux développeurs de créer des back-offices qui s’adaptent parfaitement aux besoins spécifiques de leur application. Avec son architecture modulaire et ses nombreuses options de configuration, BackPack est idéal pour les projets nécessitant une approche plus sur mesure de la gestion de l’administration.

Conclusion

Il est nécessaire de parler des limites de Laravel Nova. D’abord, c’est un outil payant, ce qui peut être un facteur à prendre en compte. Il faut aussi avouer que cet outil vient avec les inconvénients de ses avantages comme par exemple, il est complexe de développer certaines fonctionnalités lorsqu’elles sont fournies en standard. 

Mais pour résumer, utiliser Nova avec Laravel simplifie considérablement la création de back-offices pour les applications web. Cela permet aux développeurs de se concentrer sur la logique métier de leur application plutôt que sur la création d’une interface d’administration complexe. 

Et, si vous souhaitez nous solliciter pour un projet Laravel Nova, n’hésitez pas à me contacter ! 

Laravel Nova, c'est cool - Aurélien Mutin