CMSC'est un système de gestion de contenu. signifie Content Management System. C’est un outil qui permet de gérer du contenu sous du contenu WEB. On peut citer par exemple WordPress comme étant le plus connu des CMS. L’objectif d’un CMS est de travailler de manière efficace un ensemble de contenu, souvent de manière coopérative.
Un CMS permet de manipuler des posts, ou des pages, par l’intermédiaire d’un éditeur type WYSIWYG. Une fois le post créé, celui-ci est converti à la volée vers une page web (en HTMLHTML (HyperText Markup Language) est un langage permettant de décrire le découpage d'une page web. et CSSFeuilles de style qui permettent de mettre en forme des pages web.).
Tout l’intérêt de ce type de CMS est d’offrir la possibilité à des non-informaticiens de créer des pages web facilement et d’offrir du contenu à travers le web.
Pour ce faire, le CMS type WordPress stocke les contenus que vous écrivez sous la forme de base de données que vous pouvez travailler en ligne.
À l’opposé d’un CMS tel qu’on le connait, un CMS statique permet de générer, une bonne fois pour toutes, votre site vers des pages statiques en HTML en CSS. L’idée d’un CMS statique est donc d’avoir un moteur de génération de pages web statiques "en dur" depuis une source de données. La plupart du temps, cela se fait à partir d’un format pivot (Markdown, JSON, YAML...).
La "force" du système est de générer tout le site pendant la phase de compilation. Cela inclut toutes les pages mais aussi toutes les catégories, tags... et permet de vous sortir un répertoire complet de votre site. Ceci implique que toutes les pages sont créées ! Si votre site est complexe, ça peut faire beaucoup de fichiers. Certains se diront que c’est un retour au web du 20e siècle… et ils n’auront pas complètement tort ! À l’époque, on savait faire des trucs bien quand même :)
De prime abord, on comprend bien que la performance d’un tel système est optimal. Il suffit de livrer la page HTML pour l’utilisateur final, et ce, sans avoir accès à une base de données et sans avoir besoin de faire des calculs (que ce soit en PHP, JAVA, Ruby... )
Constat : 99% des sites n’évoluent pas rapidement… c’est donc pas super malin de recalculer à chaque fois des pages alors qu’elles n’évoluent pas souvent, voire pas du tout!
Par ailleurs, ne plus avoir besoin d’avoir de PHPLangage de programmation s’exécutant côté serveur et permettant la création dynamique de pages web ou d'APIs. ou de base de données permet d’héberger son site sur un pur conteneur de fichier type Amazon S3. Ce qui permet d’avoir des coûts d’exploitation ridicules (quelques centimes par mois seulement !)
En termes de référencement, on y gagne aussi ! Le site est plus performant, et l’algorithme de Google aime ça (il en a d’ailleurs fait un de ces éléments indispensables dans sa notation). Avec un CMS statique, il est assez facile d’avoir des pages qui se chargent en moins de 100ms.
L’autre gain substanciel est la sécurité. Comme vous n’avez plus besoin de PHP ou de BDD, vous pouvez mettre tous vos fichiers en lecture seule, ce qui rend 99% des attaques strictement impossible pour les hackers ! Et c’est assez agréable quand on voit la prolifération des attaques sur le web, et en particulier sur les CMS les plus courants du marché.
Comme votre CMS statique se passe de BDD, il est hyper facile de mettre en place tout le site web sous Git ! Ainsi, vous pouvez gérer de manière intégrale un pipeline d’intégration continue par exemple sous GitLab. Et c’est fort appréciable !
Ce qui est pratique c’est que votre site étant généré entièrement, il est facile de le tester et de valider chacun des liens rapidement !
Qui dit statique, dit que vous n’avez pas de formulaire dynamique... donc il faut dire adieu au moteur de recherche, au formulaire de contact et à d’autres fonctionnalités dynamiques du site web !
Néanmoins, il est tout à fait possible de faire sans et de manière assez intelligente pour que ce compromis reste une très bonne idée.
Comme nous avions envie de tester cette technologie, nous l’avons appliqué à notre blog sur lequel vous lisez cet article ! Historiquement, nous avions un WordPress qui, même avec toutes les optimisations du monde, nous faisait bénéficier d’un score inférieur à 50% sur Google.
Après étude des différents CMS, nous avons choisi le CMS Hugo pour sa facilité de mise en oeuvre et sa rapidité de compilation. Il existe autant de CMS statiques que de langages, donc vous pourrez trouver votre bonheur facilement si celui-ci ne vous satisfait pas.
Nous avons réalisé une migration des contenus depuis WordPress vers Hugo en choisissant le format pivot Markdown. Une fois tous les posts exportés, nous avons créé un template hyper simple pour afficher le tout.
Pour l’hébergement nous avions une machine virtuelle sur OVH que nous avons échangé contre un S3 sur AWS avec un cloudfront. En moins d’une semaine nous avons réussi à faire notre migration sans aucun problème !
C’était simple et rapide, on vous le conseille !
Pourquoi entre WordPress et les développeurs, ce n’est pas toujours le grand amour ? On vous donne quelques pistes pour comprendre le point de vue des développeurs sur la question :)
Découvrez la planche #39 !
Découvrez la planche #58 !