Vous devez utiliser le javascript

Quel CMS pour ma Progressive Web App ?

Marion LE CORRE - le 06 Avril 2018

Lorsque l’on développe une Progressive Web App, une question se pose rapidement, celle de la gestion et la récupération du contenu (de type articles, pages, commentaires, etc.). Nous allons donc voir dans cet article comment coupler un CMS à sa PWA et surtout faire un comparatif des CMS compatibles avec les PWA.

CMS Content as a service

On le sait, les Progressive web apps (PWA) font leur entrée dans le monde du web et commencent à être utilisées par les plus grands (twitter / trivago). Mais qu’en est-il des sites utilisant un outil de gestion de contenu ? Comment faire communiquer un CMS et une Progressive Web App afin de pouvoir garder un espace d’administration complet et simple d’utilisation tout en permettant aux utilisateurs de bénéficier de la navigation fluide et mobile first qu’offrent les Web Apps ?

La solution la plus pertinente à ce jour est l’utilisation de solutions de type “content as a service”.

Jusqu’à il y a peu, les CMS étaient pour la plupart “monolithiques”. C’est à dire que la partie gestion du contenu et la partie affichage de celui-ci ne formaient qu’un seul bloc. Il était donc difficile de créer son contenu via l’espace d’administration et de l’afficher sans passer par le CMS lui-même. Pour palier ce manque de modulabilité sont apparus les solutions “Content as a service”. Cela permet de créer son contenu et de l’utiliser de manière indépendante. Ceci est possible notamment grâce aux API REST qui permettent d’accéder aux données (pages, articles, médias) depuis n’importe quelle application sans avoir à passer par le CMS.

Ainsi, on constate l’apparition de Headless CMS (CMS “sans-tête”) mais également l’évolution des CMS les plus utilisés comme WordPress et Drupal afin de s’adapter à cette nouvelle demande en terme de content as a service.

Les CMS traditionnels : WordPress / Drupal s'adaptent aux PWA

Les CMS comme WordPress ou Drupal ont bien compris le besoin d’accéder au contenu depuis n’importe quelle interface. C’est pourquoi ils s’adaptent à cette nouvelle tendance en mettant à disposition une API RESTful.  Une API REST est un service web permettant à des applications (CMS et PWA par exemple) de communiquer indépendamment d’une plate-forme ou d’un langage et ce grâce à un format de données spécifique (tel que le Json ou le XML par exemple).

Dans le cas de WordPress cette fonctionnalité est intégrée de base et ne nécessite aucune installation. En effet, depuis la version 4.7 Wordpress intègre une API de type REST repensée de zéro pour être compatible avec les nouveaux usages du web. En revanche, depuis la version 8 du CMS Drupal, il est possible d’utiliser une API REST mais cela nécessite l’installation d’un plugin (qui reste relativement simple).

Dans les deux cas il est possible de configurer son API afin de l’adapter au mieux aux besoins de chacun. Il suffit ensuite d’effectuer des requêtes de type GET depuis n’importe quelle application (depuis votre PWA par exemple) afin de récupérer les contenus souhaités. Il est également possible d’activer une authentification pour accéder ou modifier du contenu via l’API REST afin de sécuriser l’accès aux données et autoriser uniquement certaines applications.

Les Headless CMS

Face aux géants en terme de gestionnaires de contenus, des CMS dit “Headless”, plus adaptés aux web apps ont vu le jour. Un CMS “sans-tête” est un système de gestion de contenu qui se concentre uniquement sur les données et se contente d’une API en façade. Cela permet de dissocier back et front en les faisant communiquer via un web service. Ainsi, grâce à un espace d’administration simple, les CMS ne servent plus que de “réservoir à contenu” (positionné sur le cloud) dans lesquels les interfaces vont puiser pour afficher les données. Ils permettent donc d’avoir accès au contenu depuis plusieurs interfaces (PWA, Site web, applications natives, etc.) et donc de créer des projets multi-clients.

Un des avantages également est le fait de n’avoir aucun accès à la base de données depuis l’interface ce qui est plus sécurisé.

Les headless CMS sont donc parfaitement adaptés aux PWA de part la scission entre contenu et affichage et leur simplicité de communication avec l’interface. Il est désormais facile de créer son contenu, d’une part, sans se soucier de son apparence finale et d’autre part de récupérer les données et de pouvoir les utiliser à souhait.

Conclusion

Ainsi, face à la montée des headless CMS, les CMS dits “monolithiques” ne se laissent pas faire grâce à leur volonté de s’approcher d’un fonctionnement “sans tête” avec l’implémentation des API RESTful dans leurs dernières versions. Pour le développement de sa PWA, pas besoin donc de mettre WordPress ou Drupal au placard mais il est nécessaire de réfléchir à la solution la plus adaptée à ses besoins.

Sources

Exemples de Headless CMS :

https://www.contentful.com/ (un des acteurs majeurs du marché)

https://prismic.io/

https://getdirectus.com/

Gravatar
Marion LE CORRE
Ingénieure Informatique diplômée de l’IMAC, Marion a rejoint Alphalives en 2012. Marion s’occupe de l’architecture technique des projets et de la mise en place des CMS.