Systèmes de gestion de contenu sous Ruby on Rails

  • VersionDude
  • Archive
  • 5 min de lecture

Rails est plus connu pour les applications que pour les CMS, mais une lignée de systèmes de contenu basés sur Rails — depuis Railfrog — a toujours existé.

Ruby on Rails a rendu le développement d'applications web célèbre pour ses conventions et sa rapidité. En privilégiant des réglages par défaut sensés plutôt qu'une configuration sans fin, il a permis à de petites équipes de construire des applications adossées à une base de données remarquablement vite, et il a façonné une génération de frameworks web qui ont suivi. Compte tenu de cette productivité, il était naturel que les développeurs veuillent un jour gérer du contenu éditorial au sein du même écosystème confortable.

Au fil des années, donc, une lignée de systèmes de gestion de contenu a été construite par-dessus Rails. Leur objectif commun est de combiner les fonctionnalités éditoriales que l'on attend d'un CMS — pages, gestion des médias, flux de publication, contenu structuré — avec la flexibilité d'une application Rails complète posée en dessous. La promesse est le meilleur des deux mondes : une expérience de rédaction conviviale sans renoncer à la puissance et à la personnalisation du framework.

Railfrog et l'héritage des débuts

Du code de programme sur un écran.
Du code de programme sur un écran.

Railfrog a été l'un des premiers entrants de cette histoire. CMS basé sur Rails historiquement distribué sous forme de plugin, il représentait une tentative d'apporter une gestion de contenu clés en main au monde Rails alors qu'il était encore jeune. À ce titre, c'est un repère utile de la façon dont la communauté a d'abord abordé le problème, même si, comme beaucoup de projets de son époque, il n'est plus activement développé.

Il est important d'être honnête sur ce statut plutôt que de le recommander pour de nouveaux travaux. Railfrog doit être compris comme un projet historique — une partie de l'héritage de la gestion de contenu sous Rails — et non comme un outil à adopter pour un site que vous construisez aujourd'hui. Sa valeur réside désormais dans le contexte : il montre où la lignée a commencé et quelles étaient les premières ambitions, ce qui rend les options ultérieures et maintenues plus faciles à apprécier.

Le modèle d'engine des options actuelles

Les options plus récentes et actuellement maintenues adoptent une forme architecturale sensiblement différente. Des projets comme Comfortable Mexican Sofa et Spina s'intègrent en tant que moteurs (engines) à une application Rails existante, plutôt que de fonctionner comme une plateforme autonome distincte que vous installez et exploitez seule. Ils ajoutent des capacités de gestion de contenu à une application que vous contrôlez déjà, au lieu de vous demander de bâtir autour du CMS.

Ce modèle de « CMS en tant que bibliothèque » est la distinction clé à comprendre au moment de choisir. Un CMS autonome traditionnel est le centre de votre site, et vous l'étendez via son propre système de plugins ou de thèmes. Un CMS de type moteur est un composant que vous montez à l'intérieur de votre propre application, laissant votre code Rails fermement aux commandes. Les deux modèles conviennent à des équipes très différentes et à des projets très différents.

Le contenu comme code, et son compromis

Pour les équipes qui développent déjà en Rails, l'approche par moteur est souvent la plus naturelle. Elle permet aux développeurs de traiter le contenu comme une simple partie de leur base de code, géré avec les mêmes outils, tests et pipeline de déploiement que tout le reste, plutôt que d'apprendre et de maintenir une plateforme distincte aux côtés de leur application. Le CMS devient une capacité parmi d'autres plutôt qu'un système avec lequel s'intégrer.

Cela dit, la commodité de traiter le contenu comme du code s'accompagne d'un compromis sur le raffinement éditorial. Une plateforme dédiée et autonome — y compris des options non-Rails comme WordPress — offre généralement une expérience prête à l'emploi plus riche et plus mature pour les auteurs non techniques, avec de nombreux plugins et thèmes. Un CMS Rails de type moteur donne souvent aux éditeurs de contenu une interface plus épurée, ce qui convient aux équipes pilotées par des développeurs mais peut sembler dépouillé à une grande équipe éditoriale.

Cela dit, la commodité de traiter le contenu comme du code s'accompagne d'un compromis sur le raffinement éditorial. Une plateforme dédiée et autonome — y compris des options non-Rails comme WordPress — offre généralement une expérience prête à l'emploi plus riche et plus mature pour les auteurs non techniques, avec de nombreux plugins et thèmes. Un CMS Rails de type moteur donne souvent aux éditeurs de contenu une interface plus épurée, ce qui convient aux équipes pilotées par des développeurs mais peut sembler dépouillé à une grande équipe éditoriale.

— VersionDude

Cadrer le choix pour votre équipe

Le cadrage honnête du choix est donc une question plutôt qu'une recommandation unique. Dans quelle mesure avez-vous besoin d'une interface éditoriale clés en main que des auteurs non techniques adoreront, par rapport à la liberté de traiter le contenu comme une simple tranche de votre base de code Rails que les développeurs contrôlent entièrement ? Votre réponse pointe clairement soit vers une plateforme autonome, soit vers un moteur que vous montez à l'intérieur de votre propre application.

Rails n'a jamais été le premier choix évident pour un CMS comme il l'est pour les applications web, et cela vaut la peine de l'énoncer clairement. Mais pour les équipes déjà investies dans le framework, les options basées sur des moteurs offrent un moyen cohérent d'ajouter la gestion de contenu sans quitter l'écosystème dans lequel elles sont productives. Connaître la lignée — des premiers efforts comme Railfrog aux moteurs maintenus d'aujourd'hui — vous aide à prendre cette décision avec une vue d'ensemble complète.

Projet lié