Statamic : le CMS Laravel à connaître (présentation complète)
Quand on développe avec Laravel, on se retrouve souvent face au même problème :
comment gérer un site vitrine ou du contenu sans repartir sur WordPress… ni recréer un CMS à la main ?
C’est exactement là que Statamic entre en jeu.
Statamic est un CMS basé sur Laravel, qui permet de gérer du contenu (pages, articles, données, formulaires…) tout en restant dans un environnement Laravel propre.
Dans cet article, je vous propose une première découverte du CMS, basée sur un cas concret.
Statamic en quelques mots
Statamic est un CMS complet qui permet de gérer :
-
des pages
-
des collections (articles, produits, etc.)
-
des utilisateurs
-
des formulaires
-
des fichiers
-
des navigations
Bref, tout ce qu’on attend d’un CMS.
La grosse différence, c’est que tout repose sur Laravel.
On n’est pas sur un outil “à part” avec sa logique propre :
on est sur un vrai projet Laravel, avec une couche CMS par-dessus.
Un CMS pensé pour les développeurs
Statamic permet de tout personnaliser.
On ne subit pas un modèle imposé, on construit sa structure de contenu.
Par exemple, pour créer une page ou un type de contenu, on va définir :
-
les champs (titre, image, description…)
-
leur type (texte, rich text, répéteur, etc.)
-
leur comportement
Il existe plus de 40 types de champs, ce qui permet de construire des interfaces très adaptées au besoin.
Et surtout, tout ça se fait directement via le back-office, sans forcément écrire du code.
Exemple concret : gestion de contenu
Dans mon cas, j’utilise Statamic pour gérer un site qui présente mes formations.
J’ai par exemple :
-
une collection de “cours”
-
des pages classiques (accueil, etc.)
Chaque type de contenu possède un blueprint, qui définit les champs disponibles.
Par exemple pour un cours :
-
titre
-
description
-
prix
-
image
-
contenu
Si j’ai besoin d’ajouter un champ, je peux le faire en quelques clics.
Une fois ajouté, il est immédiatement disponible dans l’interface… et utilisable dans le front.
Le live preview
Un point très appréciable côté client : le live preview.
Quand on modifie un contenu, on peut voir directement le rendu sur le site.
Pas besoin de sauvegarder puis rafraîchir :
on visualise immédiatement l’impact des changements.
C’est simple, mais très efficace pour améliorer l’expérience utilisateur côté back-office.
Multi-site et multi-langue
Statamic permet aussi de gérer facilement :
-
plusieurs langues
-
plusieurs sites
-
ou des sous-domaines
Par exemple :
-
site en français / anglais
-
ou plusieurs versions pour différents clients
Le tout sans complexité excessive.
Flat file ou base de données
Autre point intéressant : Statamic laisse le choix sur le stockage.
On peut :
-
utiliser une base de données classique
-
ou travailler en flat file (fichiers YAML / Markdown)
Personnellement, pour des sites vitrines, j’utilise souvent le flat file.
Cela permet de :
-
versionner le contenu avec Git
-
synchroniser facilement production et local
-
éviter les problématiques de base de données
Concrètement, je peux :
-
modifier du contenu en production
-
faire un
git pullen local -
récupérer instantanément les données
Et inversement.
Exemple concret : synchronisation du contenu
Dans la vidéo, je montre un cas simple :
-
j’ajoute un contenu en production
-
je commit les fichiers
-
je pull en local
Résultat : j’ai exactement les mêmes données des deux côtés.
C’est simple, mais extrêmement pratique au quotidien.
Un vrai projet Laravel
Côté code, on reste sur du Laravel classique.
On retrouve :
-
app/ -
config/ -
database/ -
etc.
Et Statamic vient ajouter ses propres dossiers :
-
blueprints
-
content
-
configuration CMS
Mais rien de déroutant.
On garde toutes ses habitudes Laravel.
Un écosystème complet
Statamic propose aussi :
-
des addons (modules)
-
des starter kits
-
une communauté active
Comme dans n’importe quel CMS, on peut étendre les fonctionnalités sans repartir de zéro.
Démo vidéo
Si vous voulez voir tout ça en pratique, voici la vidéo complète :
Conclusion
Statamic est une excellente solution si vous :
-
utilisez déjà Laravel
-
voulez éviter WordPress
-
ne voulez pas recréer un CMS à chaque projet
Il permet de gagner du temps, tout en gardant un contrôle total sur le code et la structure.
Dans les prochains articles, on ira plus loin avec :
-
l’installation
-
la structure
-
les blueprints
-
des cas concrets