• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
CMS

Et si on essayait un CMS en Go ?

De nombreuses solutions de gestions de contenus sont disponibles et répondent parfaitement aux besoins traditionnels comme Drupal, WordPress, … Pour autant, un outil n’est parfait que dans le contexte d’une utilisation donnée, et ne répond pas à l’ensemble des problématiques. Alors quand on se pose la question de la meilleure solution pour un nouveau projet de site éditorial, on commence par identifier les particularités du sujet, afin de proposer la meilleure solution possible.
En PHP, d’abord : CraftCMS ? Victoire ? Quelques belles alternatives pointent leur nez depuis quelques temps. On sait tous qu’il faut une solution moderne pour remplacer Wordpress, le mastodonte et ses 30% de parts de marché, et chaque mois compte sa nouvelle tentative.
Seulement peut-on espérer améliorer le problème de la performance en continuant à se baser sur un langage de script pour servir des centaines de connexions concurrentes (oui, Javascript, c’est toi que je regarde) ?

Le Go, sa vie, son œuvre

Développé chez Google par Rob Pike et Ken Thompson (auxquels on doit, entre autres, l’UTF-8), le Go est un langage compilé destiné à être :

  • rapide, avec une vitesse d’exécution proche de celle du C,
  • productif, avec une syntaxe lisible, légère et un agnosticisme assumé de tout IDE,
  • fun, avec un environnement de développement complet comprenant un gestionnaire de paquet, un formateur de code, un outil de documentation et un compilateur. Sans parler de la gestion automatique de la mémoire, du typage statique et de l’intégration native de fonctions relatives à la concurrence et au réseau (et notamment au web).

Le marché du CMS en Go

Il existe quelques petites dizaines de CMS en Go à l’heure actuelle mais un seul CMS « complet » (mêlant backoffice et frontoffice comme le ferait WordPress) :

Fragmenta

Fragmenta logo

Fragmenta, est un CMS classique. La persistance de ses données peut être assurée via PostgreSQL ou MySQL.

Les pours

  • Opérationnel en quelques lignes de commande
  • Interface d’administration simple
  • Éditeur WYSIWYG utilisant les styles du site
  • Permet de créer en une ligne 3 types d’application différents : Application, CMS ou blog

Les contres

  • L’installation automatique n’est valable que pour PosgreSQL. Pour MySQL il faudra jouer les migrations à la main.
  • L’éditeur WYSIWYG ne gère pas l’ajout d’image, sauf à à drag and drop une image et la voir intégrée au contenu en base 64
  • Il n’y a pas d’extension

Fragmenta semblait être un choix parfait, seulement ces trois derniers points laissent à penser qu’il n’a pas été conçu pour le grand public.

On ne peut plus lâcher un utilisateur sur un nouveau CMS sans lui offrir un minimum de confort et d’indépendance. Sans la possibilité d’ajouter une image convenablement dans un contenu ou celle d’étendre facilement (sans avoir à programmer) le fonctionnement de l’outil qu’il va utiliser au quotidien, il paraît difficile de proposer Fragmenta à un utilisateur lambda à l’heure actuelle.

L’alternative headless

Ponzu

Ponzu logo

Ponzu est un CMS headless. Il intègre nativement l’HTTP2, TLS et une base de données NoSQL facilitant le déploiement.

Les pours

  • L’interface intuitive du backoffice permet une prise en main rapide par n’importe quel utilisateur
  • Opérationnel et rapide au sortir de la boîte grâce à sa base de données NoSQL
  • La création d’un type de contenu tient en une commande

Les contres

  • La documentation, bien qu’assez complète, manque de cohésion (éparpillée entre le README et https://docs.ponzu-cms.org/) et d’une méthode de mise en œuvre rapide
  • Il n’y a pour le moment que très peu d’addons (4 dont 1 payant)

Entre les deux se trouve la raison pour laquelle on ne peut pas choisir Ponzu pour remplacer WordPress : c’est un CMS headless.

Parfait pour un projet avec un front en React ou VueJS, seulement il faut atteindre un nombre conséquent d’entrées pour que la question de la performance se pose et l’on aura alors de grandes difficultés à arguer contre l’appel de l’isomorphisme.

Enfin il n’est pas complètement opérationnel au sortir de la boîte (par choix), ce qui n’en fera jamais un concurrent direct de WordPress.

L’option statique

Hugo

Hugo logo

Hugo est un générateur de sites statiques. Ce qui le disqualifie d’office en tant que concurrent de WordPress.
Pourtant il ajoute son propre langage par dessus Markdown au cas où ce dernier ne serait pas suffisant, il sait retailler les images comme pas deux, il est capable de parler JSON ou AMP, il dispose d’une honorable galerie de thèmes et il existe même de la documentation pour vous aider à migrer votre contenu de votre CMS vers Hugo !
C’est dommage. Rien ne sera jamais aussi rapide et sécurisé qu’un site statique. En fait ce qu’il manque à Hugo c’est une interface pour rédiger et gérer les contenus grâce à un outil facile à prendre en main.

On vous la fait pas : ces outils existent. Ils permettent à l’utilisateur de s’abstraire complètement de la connaissance de Markdown, du versionning et du déploiement pour se concentrer sur ce qui l’intéresse : son contenu.

Parmi ces interfaces, on compte Forestry et Netlify. Ces deux services se basent sur Github pour le stockage des données, le versionning et l’authentification. On leurs donne les droits de lecture et d’écriture sur le dépôt et ils se chargent de proposer à l’utilisateur une interface claire et efficace d’édition de ses contenus, de commit le tout et de le déployer.
Tout simplement.

Conclusion

Fragmenta, reste un produit porté par deux développeurs et si l’on exclu un fix en janvier, le projet n’a pas bougé depuis mai 2017.

Ponzu est plus actif et compte beaucoup plus de contributeurs mais sans la possibilité d’ajouter un thème et davantage de plugins, il reste limité.

Quant à Hugo, couplé à un service d’édition et de publication des contenus, il paraît être l’alternative la plus viable mais appuyer son projet sur un service tiers a ses inconvénients et, souvent, son coût.

Pour l’instant les CMS PHP tenant le haut du pavé – WordPress, Drupal – restent donc la meilleure solution en terme de fonctionnalités, d’accessibilité et de rapidité de mise en œuvre.

22/03/2018 5 MIN READ TAGS: Go, Golang BY: Benjamin Goetz 0 COMMENT
SHARE
LIRE LA SUITE

Benjamin Goetz

Développeur fullstack senior à tendance devops

Inspiration, expertise et méthodo : comment transcender le rôle de Product Owner ?

GitLab [1/6] : Git clone

VOUS POURRIEZ AIMER

CMS Présentation du fonctionnement de base d’un CMS

Backend CMS Développement Framework Strapi + Socket.io

CMS e-Commerce Vider le panier de Woocommerce avant d’ajouter un produit

CMS WordPress : Comment protéger son site en tant qu’utilisateur

CMS Simplifier les shortcodes

CMS e-Commerce Woocommerce : Ajouter des coûts administrables pour un produit

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect