Pourquoi RAISESHERPAS a financé Strapi : comprendre ce qu’est un headless CMS Open Source
May 27, 2021
👉 L’idée de ce post est de comprendre ce qui fait actuellement le succès de Strapi et pourquoi nous avons décidé de les financer chez RAISE Sherpas grâce à notre Venture Loan Expansion.💰
Pour bien analyser et vulgariser “pour les nuls”, nous passerons en revue 4 grands aspects :
1. Comprendre les logiciels Open Source ;
2. Comprendre les CMS et les headless CMS ;
3. Le rôle des APIs dans la Tech aujourd’hui ;
4. L’utilisation de la technologie Node.js (basée sur le langage JavaScript).
Les Logiciels Open Source
Le terme “open source” signifie que le code source d’un logiciel est public et accessible. Le logiciel peut donc être modifié et diffusé par n’importe qui, GRATUITEMENT. Bien entendu, il y a tout de même des règles à respecter, mais nous ne rentrerons pas dans les détails ici.
On oppose généralement Open Source et logiciels dits propriétaires, dont les modèles SaaS par exemple, font partie → on paye une licence pour avoir le droit d’utiliser le code source d’une entreprise, lequel donne accès à un service, mais ce code reste la propriété de l’entreprise qui l’a développé.
🥤 Exemple d’Open Source célèbre : Coca-Cola → la recette est à ce jour toujours secrète ; on peut essayer de l’imiter, mais personne ne peut la voir ni la modifier, on ne peut donc encore moins la copier à l’identique.
Les logiciels Open Source ne sont pas tous récents, les premiers logiciels libres ont fait leur apparition dans les années 80, et les années 90 ont vu émerger de manière plus importante les logiciels Open Source (que certains puristes différencient du logiciel libre). Open Office par exemple est considéré comme un logiciel Open Source, tout comme le système d’exploitation Linux.
(Pour en savoir plus sur la définition de l’Open Source, retrouvez une petite vidéo explicative par ici 👈)
🔥 Pourquoi les développeurs préfèrent-ils l’Open Source ?
- Permet de ne pas être “enfermé” au sein d’une brique technologique ;
- Liberté de pouvoir modifier, contribuer, ajouter des extensions et nouvelles fonctionnalités pour améliorer le code source et le développer grâce à une communauté ;
- Souplesse et flexibilité, en plus de davantage de sécurité, car le code est consultable par tout le monde ;
- Prix : il n’y a pas de licence à payer, le code source est disponible d’accès — sans frais supplémentaires— à tout le monde sans restriction ;
- Quiconque peut le modifier et le redistribuer librement, il ne limite pas le contenu qui peut être présenté.
❄ Quelques inconvénients, tout de même…
- Il faut quand même s’occuper des contributions de la communauté et faire en sorte que le logiciel continue d’être maintenu, le tout en rappelant que l’Open Source n’est pas source de revenus…
- …d’où la barrière de la monétisation, via du hosting, du support client ou le développement de fonctionnalités sur mesure premium pour certains clients (Open Core) ;
- Qualité : difficile de s’y retrouver parmi les projets Open Source, qui peuvent être de qualité très variables ;
- Le support, s’il est gratuit, est plus hasardeux puisqu’il repose sur la bonne volonté de la communauté ;
- La publication du code source le rend aussi plus vulnérable aux attaques.
💡 Revenons-en à Strapi pour illustrer la force d’un modèle Open Source et de sa communauté : déjà 2 millions de téléchargements, 36k “stars” sur GitHub à avril 2021, +500 contributeurs, ce qui fait donc un bon nombre d’extensions potentielles (300 plugins et +15k commits à date) et autres fonctionnalités à explorer.
Les Content Management System (CMS) et l’émergence des headless CMS
- Le “client” (vous, ou moi, depuis notre ordi) envoie une requête à un serveur (une adresse, un url etc.) ;
- Le serveur va ensuite l’interpréter dans son propre langage informatique (généralement du PHP) et réunir les informations nécessaires pour construire la page web et la base de données associée ;
- Pour cela, il “demande” les données à la base de données, qui communique avec le serveur en langage SQL ;
- Le serveur va renvoyer à son tour au “client” (votre ordinateur par exemple) la page web construite, la plupart du temps avec du HTML (structure), du CSS (mise en forme) et du JavaScript (animation du contenu) ;
- On appelle back-office la partie du site web qui permet de modifier/ajouter/retirer des informations et du contenu sur notre page web (PHP/SQL), et front-office celle qui permet d’afficher ces informations (HTML/CSS/JavaScript) ;
- Enfin, il existe des pages web statiques : pas de serveur et/ou de base de données, c’est-à-dire qu’elles seront toujours les mêmes, quel que soit le moment où vous les consultez (ex : un fichier HTML), et à l’inverse des pages web dynamiques, avec un serveur et une base de données, qui peuvent évoluer avec les utilisateurs (comme une page Facebook) ou au cours du temps (comme un blog).
🤷♂️ Et les CMS dans tout ça ?
💡 Un CMS est un logiciel ayant pour but de faciliter ou d’automatiser les tâches de conception et de mise à jour d’un site Internet.
C’est un peu difficile à situer, mais on estime que les premiers CMS sont apparus dans les années 2000. Depuis, le marché a explosé et il en existe plusieurs milliers.
Le CMS gère automatiquement les tâches d’affichage des pages (front-office) et de mise à jour du contenu (back-office et lien avec la base de données). Autrement dit, les CMS gèrent à votre place tout ce qui permet de relier le client au serveur, et le serveur à la base de données.
Pour résumer, c’est un site web dynamique pré-construit qui dispose d’un back-office et qui automatise à notre place la gestion de l’affichage des pages et la relation avec la base de données.
🟢🔴 Caractéristiques, avantages et inconvénients
- Simplicité : les CMS permettent de bâtir un site web (presque) sans la moindre connaissance en programmation, tout se fait sur des interfaces graphiques et sans ligne de code (il faut quand même réaliser l’intégration au niveau du frontend dans certains cas, non détaillés ici) ;
- De la même manière que Word met en forme du texte, le CMS met en forme votre site web sans avoir à écrire du HTML — il sera généré automatiquement ;
- Séparation entre contenu et design → 3 avantages :
- Une fois le design choisi, il peut automatiquement s’appliquer à toutes les pages d’un seul coup ;
- On peut modifier le design sans se soucier du contenu ;
- On peut récupérer des templates (soit des designs préconçus).
- Gestion des droits d’accès simplifiée ;
- Extensions : on peut avoir un coeur de CMS et développer ensuite de nouvelles fonctionnalités pour le rendre plus flexible (d’où l’avantage d’un outil Open Source 😃).
🔥 Avantages des CMS
- Accessibles sans langage de programmation ;
- Rapides à mettre en place, de quelques heures à quelques minutes ;
- Gain de temps vs. développer un site web en parant de zéro ;
- Lorsqu’ils sont Open Source, la communauté ;
- Faciles à faire évoluer et à maintenir selon les dernières évolutions Web (design, techno, ergonomie, etc.).
❄ Inconvénients des CMS
- Manque de flexibilité : il est tout de même compliqué et coûteux d’ajouter des fonctionnalités non prévues initialement ;
- Moins performants ;
- Plus susceptibles d’être attaqués : un même CMS partage un code source commun → s’il est mal protégé, cela peut faire des dégâts sur plusieurs sites web… ;
- Difficile à migrer : changer de CMS est plus long que de faire évoluer un site web sans CMS ;
- Moins faciles à référencer (car pages redondantes) et moins stables (un bon CMS mis à jour régulièrement peut pallier ces défauts).
💡 Quelques exemples de CMS notables : WordPress (le plus connu), Prestahop pour le e-commerce, ou encore Wix ou Webflow parmi les plus récents, qui sont davantage des website builders.
🚀 L’émergence des headless CMS
Nous l’avons vu, un CMS dispose d’une partie back-office et d’une partie front-office, en UN SEUL produit, car il sont liés. Ces CMS sont donc particulièrement adaptés à la génération de sites web. Cependant, depuis plusieurs années, nous voyons émerger de nouvelles interfaces comme les smartphones, les tablettes ou encore les montres connectées et autres assistants vocaux, ce qui nécessite donc une certaine adaptation côté frontend. C’est ici qu’interviennent les headless CMS.
L’architecture des systèmes headless CMS est fondamentale pour relever ces nouveaux défis en matière de contenu.
💡 Le “head” de “Headless CMS” se réfère au front-office. Un système de gestion de contenu headless se compose principalement d’une API et de la technologie de back-office requise pour gérer le contenu. L’approche headless permet aux développeurs de fournir un contenu en tant que service, abrégé en CaaS, ce qui signifie simplement que le stockage et la livraison du contenu sont gérés par un logiciel distinct.
✨ Cela marque une petite révolution car :
- En perdant le head, vous pouvez donc intégrer n’importe quelle base de code et utiliser votre langage préféré — et cela permet surtout aux développeurs d’utiliser des technologies modernes, pour de meilleurs expériences et produits digitaux ;
- D’un point de vue technique, un CMS headless utilise simplement les appels API pour rendre le contenu dans la base de code du site, plutôt que de créer des relations complexes entre le code et le contenu (comme le ferait un CMS traditionnel) ;
- Pour cette raison, de nombreux développeurs trouvent l’architecture headless plus facile à maintenir ;
- Contrairement à un CMS traditionnel, un CMS headless n’a pas systématiquement besoin d’hôte, et des options d’auto-hébergement existent ;Vous n’avez pas non plus à vous soucier de toutes les mises à jour de sécurité et d’autres problèmes de maintenance liés à l’utilisation d’un CMS traditionnel comme WordPress.
🔥 Quelques avantages
- Flexibilité : création infrastructure de front adapté à chaque projet ;
- Mise sur marché rapide et compatibilité : pas besoin de se préoccuper de l’affichage sur les différentes interfaces ;
- Sécurité : publication du contenu pas accessible à partir du CMS → une potentielle cyber-attaque se limite donc à l’API et ne peut atteindre la base de données (cf. ci-dessous);
- Évolutivité : en gardant le back-office et le frontend séparés, aucune maintenance n’est nécessaire, vous pouvez donc mettre à niveau et personnaliser votre site web sans en compromettre les performances. De plus, la mises à jour du contenu, qui se fait depuis une seule et même source, est donc plus efficace.
Le rôle des API dans la Tech aujourd’hui
Les APIs sont devenues INCONTOURNABLES pour les startups aujourd’hui dans la construction d’applications web.
🤷 OK cool, mais c’est quoi ?!
Les APIs (Application Programming Interface) sont un ensemble de fonctions informatiques par lesquelles deux logiciels vont interagir sans intermédiation humaine, selon des conditions déterminées et documentées.
Elles peuvent fonctionner dans un environnement interne (au sein d’une même entreprise) ou dans un environnement ouvert (c’est le cas de Zapier par exemple, qui permet de connecter un service à un écosystème externe, ou encore Paypal et son module de paiement e-commerce).
Enfin, il en existe plusieurs types :
- Les APIs de système d’exploitation ;
- Les APIs de langage de programmation ;
- les APIs d’infrastructure ;
- Les APIs des services web : c’est la catégorie connaissant actuellement la plus forte croissance. Par exemple, le service Airbnb utilise l’API Google Maps pour transformer les adresses des biens à louer en des points géolocalisés.
👉 Il faut simplement retenir qu’aujourd’hui, les APIs sont quasiment au centre de toutes les interactions logiciels, et c’est un marché à part entière. (Vous trouverez ici un article pour aller plus loin.)
L’utilisation de la technologie Node.js : le cas Strapi
Pour bien comprendre cette dernière partie et en venir (enfin !) au cas Strapi, il faut d’abord un peu évoquer le langage JavaScript et son histoire.
Comme vous le savez peut-être, HTML, créé dans à la fin des 80’s, est souvent présenté comme l’ancêtre du web. Les années 90’s marquent également l’émergence des premiers effets sur les pages web, via l’utilisation du dynamic HTML, qui se veut être l’ancêtre de JavaScript.
Les années 2000 démocratisent largement le langage JavaScript, de plus en plus utilisé pour créer des interfaces côté “client” (souvenez-vous, la partie front-end).
Enfin, les années 2010 marquent un tournant dans l’utilisation de JavaScript, qui était jusque là un langage assez basique et pas tellement apprécié des développeurs. Deux raisons :
- L’apparition de Google Chrome (2008) et son “V8” → le “moteur” de Chrome se base principalement sur du JavaScript, ce qui en accélère considérablement le développement, puisque jusque là, peu de navigateurs lisaient efficacement le JavaScript ;
- Cet engouement donne naissance à une nouvelle technologie : Node.js 💪 qui permet d’exécuter des requêtes PHP (et donc des requêtes serveur ou encore backend), et surtout de manière beaucoup plus efficace, notamment pour ce qui est d’éditer des applications web dynamiques (comme des serveurs chat par exemple).
👆 Une des raisons est liée au fait que Node.js soit du code “non bloquant”. Contrairement à d’autres langages, il permet de faire deux tâches à la fois, sans avoir à attendre qu’une tâche soit finie pour en lancer une autre : c’est la fonction de callback (ex : télécharger deux fichiers simultanément).
Plus d’infos par ici 👉 Le non bloquant avec Node.js 🤓 (il y a également un très bon cours sur OpenClassrooms).
🦄 Le cas Strapi (c’est pas trop tôt…)
Strapi vient récemment d’entrer dans le cercle de nos lauréats RAISE Sherpas. Voici un résumé des raisons pour lesquelles nous leur avons octroyé un financement 👇
Strapi a levé $10M auprès d’Index Ventures.
💡 Bon, vous l’aurez compris, l’idée de cet article était de dresser une par une quelques clés de compréhension des récentes évolutions du web, afin de faire ressortir les avantages de la solution développée par Strapi.
Strapi est donc un headless Content Management System (plutôt un framework en réalité, mais ne compliquons pas les choses ici), Open Source, et basé sur Node.js 🤩
On dit qu’il est basé sur un modèle JAMstack (JavaScript, API, Markup, à savoir fichiers HTML servis sans serveur web).
🤯OK, mais j’ai du mal à comprendre… Quelques explications 👇
🔥 Strapi permet à des développeurs ou fonctions métiers de concevoir des sites ou applications Web en mode “API” car c’est un CMS API first (ie headless). Cette premières spécificité le rend très flexible et surtout “multi distribuable”. Il peut donc adresser n’importe quel device, usecase ou solution digitale car “il faut simplement se brancher” (cf. notre partie sur les APIs).
🔥 Open Source avec une communauté grandissante et très impliquée : même si on y connaît rien, ça reste un signal très positif. D’autant que maintenant, on connaît les avantages de l’Open Source 🤓
🔥 Node.js : il n’existe pas beaucoup de CMS headless basés sur Node.js. Cette caractéristique permet à Strapi de proposer un produit 100% JavaScript, du frontend au backend. Cela permet notamment de connecter des technologies de pointe en termes de frontend sans les limiter, et de créer des contenus dynamiques même en langage serveur.
🔥 Déjà des premiers signes intéressants sur leur modèle Entreprise (B2B), ce qui signifie sûrement que la capacité de Strapi à proposer des fonctionnalités Premium est importante, vs. des modèles SaaS et CMS traditionnels moins flexibles ou plus coûteux.
A titre d’exemple, IBM, la NASA, Delivery Hero ou encore Walmart utilisent déjà Strapi en mode Open Source. Ce sont donc de potentiels (énormes) clients qui ne sont plus à acquérir 😎
(Plus d’infos sur le use case Delivery Hero par ici 👈)
🏁 Pour résumer :
On comprend donc que Strapi réunit à peu près toutes les récentes évolutions des CMS, ce qui en fait un Top Produit. Index a d’ailleurs complètement préempté le deal :
- C’est un headless CMS par définition souple, adaptable, personnalisable et multi-affichages ;
- Il est Open Source et bénéficie déjà d’une belle communauté de 500+ contributeurs et de potentielles fonctionnalités poussées à développer dans le futur (déjà 3M+ de téléchargements, 36k “stars” sur GitHub, 33k projets mensuels actifs et des centaines de plugins publiés) ;
- Il utilise des technologies de pointe avec un modèle moins coûteux et très scalable comparé à un CMS traditionnel → la preuve par ici (rachat de Npm par Microsoft)
- Le marché tend à évoluer, avec d’un côté les website builders (ex. Wix) orienté affichage du contenu, et de l’autre les CMS qui auront seulement vocation à gérer du contenu (coucou Strapi 🤘 et exit les CMS traditionnels 👋);
- Quand on sait que WordPress, créé en 2003, détient encore 35% du marché, on comprend donc tout le potentiel de Strapi !
- Une TRES belle équipe, une très belle exécution, un énorme marché en mutation… Bref, Strapi apparaît comme une évidence ❤ difficile donc de ne pas les accompagner 😀
, Co-Head de RAISE Sherpas
Retour aux articles