Je vous en avais parlé il y a 4 mois, mon vieux blog Geeek.org a subi un relifting technologique complet. AprÚs pas moins de 14 années passées sur Dotclear, Geeek.org a définitivement migré sur la plateforme Ghost, un CMS (Content Management System) léger et innovant en NodeJS.

Le pari à l'époque était risqué, je possédais pas moins de 2400 articles à migrer d'un format Wiki Dotclear vers un format Markdown supporté par la plateforme Ghost.

Cette migration a été réussie grùce à un script en NodeJS de 300 lignes développé spécifiquement pour mes besoins et disponible sur GitHub.

AprÚs 5 mois d'utilisation de Ghost sur ce blog, voici un retour d'expérience sur cette nouvelle plateforme de blog / CMS qui selon moi concurrencera de plus en plus la plateforme Wordpress que tout le monde connait aujourd'hui.

La Technologie derriĂšre le CMS Ghost

Ghost est un CMS OpenSource conçu en NodeJS et fonctionnant pour le coup nativement sur Windows et Linux.
Le projet a démarré en 2013 autour d'un appel à projet de crowfunding sur Kickstarter. 6 ans plus tard, la version 2 du CMS voit le jour avec un look bien loin des images partagées sur la page du projet Kickstarter de l'époque.

ghost-kickstarter

Les releases de Ghost sont aujourd'hui quasi hebdomadaires, heureusement un script shell fourni par Ghost permet la mise Ă  jour de la plateforme trĂšs rapidement.

Ghost s'appuie sur une base de données MySQL ou SQLite pour permettre de stocker ses contenus.
Enfin, Ghost est un CMS headless pouvant ĂȘtre intĂ©grĂ© directement via des API depuis une application Web de type SPA (Single Page Application). Ce qui fait de lui un excellent choix pour hĂ©berger des contenus pour des applications Web tierces.

ghost-features-app-diagram

L'Installation du CMS Ghost

L'installation d'un site Ghost est trÚs rapide et automatisée grùce au script shell "ghost admin" qui permet en quelques secondes d'initialiser un nouveau site.

L'outil peut ĂȘtre installĂ© sur un environnement disposant de NodeJS d'installĂ© :

# npm install ghost-cli@latest -g
$ ghost install local

Ghost est nativement multi-sites, cependant chaque site est hébergé sur une base de données dédiée et possÚde son propre processus node pour fonctionner correctement.

L'Interface de contribution du CMS Ghost

La grande force de Ghost est son interface de contribution qui dépasse les interfaces de nombreux CMS du marché. Celle-ci permet de structurer des articles trÚs rapidement et offre deux principaux modes de rédaction, un mode WISIWIG et un mode Markdown pour les rédacteurs les plus avancés.
Dans le cas de Geeek, j'ai pris le choix de tout rédiger au format Markdown pour permettre une portabilité du contenu si à l'avenir je dois migrer vers une autre plateforme de blog.

ghost-desktop

Il est possible de contribuer sur Ghost au travers de 3 solutions :

  • Le portail Web, via son interface d'administration.
  • Une application mobile Ghost disponible depuis le Market place Android.
  • Une application PC/MAC qui semble encapsuler les pages d'administration du portail.

Ghost fournit un mécanisme de profils sur son portail d'administration qui permet de donner des droits restreints à des contributeurs tiers. Par défaut, quatre niveaux de profils sont proposés : Administrateur, Editeur, Auteur, Contributeur.

Le SEO

En termes de SEO, la plateforme est optimisĂ©e en fournissant nativement l'ensemble des fonctionnalitĂ©s nĂ©cessaires Ă  un CMS pour ĂȘtre correctement rĂ©fĂ©rencĂ© sans plugin aditionnel : SiteMap, Metadata, Microschema ...

Attention cependant au thĂšme graphique que vous choisirez, celui-ci peut-ĂȘtre plus ou moins performant et optimisĂ© pour le SEO.

Pour compléter cette partie SEO, Ghost fournit la capacité à configurer un fichier contenant des rÚgles de redirections pour permettre de ne pas perdre de trafic entrant. Ce fichier contenant les rÚgles de redirection est uploadable depuis l'interface d'administration de Ghost.

[
{"from":"^/[0-9]{4}/[0-9]{2}/[0-9]{2}/([^/.]*)(.html|/)?$","to":"/$1/","permanent":true}
]

Le changement de format d'URL de mes articles imposĂ© par Ghost m'a fait tout de mĂȘme perdre pas moins de 30% de traffic. Google n'ayant pas tout Ă  fait indexĂ© l'ensemble des articles avec les nouvelles URL ...

Les Plugins du CMS Ghost

Ghost a pris le pari d'interdire les plugins tiers et de permettre à des services comme Zapier par exemple de pouvoir s'intégrer nativement et permettre ainsi d'enrichir les fonctionnalités de la plateforme.

J'y vois deux avantages Ă  cette stratĂ©gie, le premier est la sĂ©curitĂ©, la plateforme ne peut pas ĂȘtre corrompue par du code tiers. Enfin, le second avantage concerne les performances, il n'est pas possible de dĂ©grader les performances du CMS au travers l'installation de plugins.

Les Performances du CMS Ghost

Ghost dispose nativement d'excellentes performances, ses auteurs l'ont notamment conçu autour de cela.

Pour aller plus loin en termes de performances offertes par la plateforme, je vous recommande d'utiliser les fonctions de "Proxy Cache" fournies en standard par le serveur Web NGinx. Configuré avec un TTL de quelques minutes, ce cache vous permettra de décharger NodeJS en termes de sollicitations, réduire la consommation CPU / RAM de votre serveur et ainsi les temps de réponse.

La Stabilité du CMS Ghost

J'imaginais avoir plus de plantages sur mon serveur, cela ne s'est pas encore produit. Le SLA du site est aujourd'hui de 100%, le site n'a subi aucune rupture de service malgrĂ© les millions de requĂȘtes HTTP par mois.

Cette stabilité est d'autant augmentée via l'utilisation de Nginx en reverse proxy du site.

Les ThĂšmes du CMS Ghost

La plateforme ne dispose pas aujourd'hui de centaines de thÚmes comme Wordpress. Cependant les dizaines de thÚmes proposées sur sa Market Place sont de qualité et peuvent répondre à de nombreux besoins de sites et son mécanisme de templating est trÚs simple à prendre en main.

Les Fonctionnalités du CMS Ghost

Ghost fournit des fonctionnalités minimalistes, la plateforme se restreint à l'essentiel, mais elle le fait bien !

On peut cependant noter l'absence de deux fonctionnalités importantes pour un CMS :

  • Un moteur de recherche, afin d'offrir des fonctionnalitĂ©s de recherche aux visiteurs du site. Cette fonctionnalitĂ© est aujourd'hui couverte par les thĂšmes Ghost qui tĂ©lĂ©chargent tous les articles en JSON et offrent une fonction de recherche au travers de librairies Javascript telles que Fuze.js. Pour pallier Ă  ce besoin, je me suis appuyĂ© sur ElasticSearch pour indexer les contenus de ma base de donnĂ©es. J'ai dĂ©crit cette intĂ©gration dans un prĂ©cĂ©dent article.
  • Un outil de gestion de bibliothĂšque de contenus, l'ensemble des mĂ©dias publiĂ©s sont transmis dans un rĂ©pertoire horodatĂ©, ce qui rend complexe la rĂ©utilisation d'images dans diffĂ©rents articles.

Ces deux fonctionnalités aujourd'hui manquantes font probablement partie de la roadmap de la plateforme Ghost aujourd'hui.

Conclusion

AprÚs 5 mois d'utilisation, Ghost est définitivement adopté, malgré sa pauvreté fonctionnelle, il fait trÚs bien ce que j'attends d'une plateforme de blog et offre des thÚmes légers et performants.
A contrario de Wordpress qui me donne des allergies cutanĂ©es quand j'ouvre le code source des thĂšmes, Ghost est aujourd'hui est un CMS Ă  Ă©tudier de prĂȘt quand on souhaite crĂ©er un site Internet rapidement et de qualitĂ©.

Vous ĂȘtes correctement abonnĂ© Ă  Geeek
Bienvenue ! Vous ĂȘtes correctement connectĂ©.
Super ! Vous ĂȘtes correctement inscrit.
Votre lien a expiré
VĂ©rifiez vos emails et utiliser le lien magic pour vous connecter