// BLOG
Kirby CMS - Présentation générale
Je me suis intéressé au CMS Kirby pour la première fois en 2016 suite à des avis positifs que je voyais passer régulièrement sur Twitter. A l'époque, j'utilisais princpalement WordPress. Ajourd'huie, en 2021, j'aimerais faire découvrir ce CMS plus largement à la communauté francophone par une série de "post-vidéo-cast".
Post-vidéo-cast ?
Qu'est ce qu'un post-vidéo-cast ? C'est un mot que je viens d'inventer pour désigner une présentation diffusée à la fois au format texte, vidéo et audio. La présentation se fera autour de quelques slides avec des explications orales et le tout sera retranscrit dans un article, slide par slide. Vous trouverez donc le sujet traité dans un article, une vidéo et un podcast, à vous de choisir le ou les formats qui vous conviennent le mieux.
Vidéo de la présentation + slides au format PDF
Slide 1 - Introduction
Ce post-vidéo-cast est une présentation générale et succinte du gestionnaire de contenu Kirby. Un outil simple et flexible pour construire des sites web et des petites applications.
Slide 2 - Kirby CMS
Le plan de cette présentation est le suivant :
- Présentation
- Caractéristiques
- Les plus et les moins
- Pour qui ?
- Ressources
- Conclusion
- Bonus démo
Slide 3 - Présentation
Kirby est un CMS développé à l'origine par Bastien Allgeier en 2011. C'est donc un produit mature, aujourd'huie profitable pour son auteur. Bastian Allgeier n'en est pas à son premier cout d'essai en terme de développement d'outils web, mais Kirby est son premier produit viable financièrement.
En septembre 2021, l'équipe Kirby est composée de 5 personnes et le CMS en ait à sa version 3.6
Cet outil est développé sur les technologies PHP et VueJS.
Le modèle économique est basé sur la vente d'une licence d'utilisation de 99€ HT pour chaque site accessible via un nom de domaine. Le CMS est gratuit tant que vous l'utilisez dans un environnement de développement. Vous pouvez donc le tester autant de temps que vous le désirez et sur un nombre infini de projets.
L'équipe Kirby accorde des licences gratuites sur demande pour les projets Open Source, en lien avec l'éducation ... Contactez l'équipe directement pour connaitre les conditions.
Slide 4 - Caractéristiques
Kirby par défaut stocke ses contenus dans des dossiers et des fichiers. Si vous avez besoin de mettre en place un système relationnel sans avoir à le gérer, vous pouvez coupler Kirby à une base de données relationnel tel que MySQL ou SQLite.
L'espace d'administration de Kirby, que l'on appelle "Panel", est optionnel et doit être construit de toute pièce à l'aide d'un ensemble de composants et à partir d'un schéma de description au format YAML appelé "Blueprint".
Kirby possède un ensemble de champs à votre disposition pour construire votre panel, c'est un peu l'équivalent d'ACF si vous connnaissez l'environnement WordPress. Kirby fournit également un page builder permettant de définir des layout et d'alimenter ces layouts par des blocs de contenu. On se rapproche ici de l'outil WordPress Guntenberg.
Vous pouvez également étendre le panel avec des nouvelles vues, des champs personnalisés ... et bien d'autres choses. Le système de plugin vous permet d'étendre l'outil à l'infini.
Ce qui est important de comprendre dans Kirby c'est que vous partirez d'une page blanche. Ce sera à vous de construire le panel aidé par les composants à dispositions ou des développements sur mesure sous forme de plugin.
Tout est optionnel dans Kirby, vous n'utilisez que ce dont vous avez besoin.
Enfin, Kirby possède une API pour exposer vos données ce qui le rend compatible pour une utilisation headless (le back et le front sont découplés, les données sont récupérables au format JSON et peuvent alimenter une interface front construite à partir d'un framework javascript ou un générateur de site statique).
Slide 5 - Les plus
Flexible : l'objectif de l'équipe Kirby est de proposer un outil permettant le plus de flexibilité possible pour répondre aux besoins spécifiques de nos clients tout en gardant une certaine simplicité d'utilisation. C'est un challenge difficile et Kirby s'en sort plutôt bien.
Performant : on pourrait penser que l'utilisation d'un système de stockage des données dans des fichiers réduirait les performances par rapport à un système de requêtage dans une base de données. Que néni, Kirby est ultra performant. Pour preuve, l'hebergeur WordPress Kinsta a réalisé un benchmark de performance d'outils PHP et Kirby a explosé tous ses concurents avec un score de 2002 requêtes traitées par seconde.
Les résultats sont les suivants du meilleur au moins bon :
Outil PHP | Requêtes traités par seconde |
---|---|
Kirby 3.5 | 2002 |
Pico 2.1.4 | 642 |
Laravel 8.21.0 | 624 |
Symfony 5.2.1 | 529 |
Photon CMS 1.2.1 | 501 |
CodeIgniter 4.0.4 | 420 |
Drupal 9.1.0 | 363 |
WordPress 5.6 + EDD 2.9.26 | 313 |
CakePHP 4.2.2 | 253 |
Grav 1.6.31 | 234 |
WordPress 5.6 | 233 |
Joomla! 3.9.23 | 189 |
WordPress 5.6 + WooCom 4.8.0 | 108 |
Craft CMS 3.5.17.1 | 82 |
concrete5 9.0.0a3 | 73 |
OctoberCMS 1.0.470 | 59 |
Backdrop CMS 1.18.0-preview | 43 |
PyroCMS 3.8 | 42 |
PrestaShop 1.7.7.1 | 27 |
ExpressionEngine 6.0.0 | 14 |
Les résultats sont basés sur PHP 7 ou 8 selon que l'outil supporte ou pas PHP 8 (Kirby est compatible PHP 8).
Bizarement, l'article ne met pas du tout en avant cette performance incroyable de Kirby par rapport aux autres outils mais conclue plutôt qu'il faut migrer son WordPress sur PHP 8.
Bizare ? quoique ... Kinsta est un hébegeur WordPress et se n'est pas dans son intérêt de promouvoir des concurents.
Simple :
Kirby est simple à utiliser parce que l'UX des composants a été travaillé et que l'on expose à l'utilisateur que les éléments dont il a besoin. Mes clients l'adorent et l'apprentissage de l'interface est très intuitive. Cette simplicité, on la retrouve aussi lorsque l'on développe son site. La partie plugin est un peu plus complexe car elle fait intervenir des notions de PHP et de javascript via le framework VueJS.
Architecture bien pensée :
Tout est bien ordonné est bien pensé et ça j'adore. Controller, snippets, layouts, templates, blueprints, plugins ... tout est rangé dans son répertoire à la racine du dossier /site, on retrouve facilement ses petits !
Extensible :
Vous avez des besoins particuliers, vous pouvez étendre le CMS, écraser et reécrire des parties de Kirby, etendre les fonctionnalités à l'aide de plugins.
API et Headless :
Une API vous permet d'exposer toutes vos données au format JSON et d'utiliser le CMS en mode headless.
Bien documenté, excellent support :
La documentation est claire et bien illustrée. Des ressources existent sous différentes formes (voir ci-dessous) et le support est au top via le forum notamment.
Slide 6 - Les moins
PHP :
PHP étant perçu par une partie des dév comme un langage désué et/ou mal conçu, cela peut rebutter certain.e.s.
Pas de modèle relationnel par défaut :
Si vous avez beaucoup de relations entre les entités de votre projet, il faudra les traiter via des hooks si vous restez sur le système de dossier/fichiers. Peut être vaudrait-il mieux dans ce cas brancher une base de données relationelles à Kirby pour laisser celle-ci gérer ces relations et les cascades.
Payant :
Oui il faut payer. Tout est une question de valeur apportée. Si Kirby ne vous en apporte aucune, effectivement, pourquoi dépenser 99 € ?
Austérité graphique du panel :
Une utilisatrice m'a un jour fait remarquer que le panel manquait de couleur. C'est pas faux mais sachez que les styles css du panel sont entièrement customisables.
Refactorisation du code sur versions majeures :
L'équipe Kirby, sur les versions majeures, n'hésite pas à revoir complètement ses concepts de développement si elle considère que cela peut être bénéfique à Kirby. Il faut donc s'attendre à des adapations de nos sites et/ou de nos plugins de temps en temps.
Petite communauté :
Kirby tourne sur un peu plus de 40 000 sites (chiffre sûrement un peu sous estimé sachant que certaines personnes l'utilisent sans payer la licence). C'est donc un CMS de niche comparé à WordPress ou Drupal. J'ai envie de dire tant mieux car les hackeurs s'en désintèressent totalement.
Nécessite des bases en développement :
Kirby CMS n'est pas un CMS "click an drop" comme pourait l'être WordPress, Wix ou Webflow. Il va falloir mettre les mains dans le camboui et donc avoir au minimum des notions d'HTML/CSS/PHP. Si vous êtes aussi à l'aise avec javaScript et avez des notions de VueJS, vous pourrez programmer des plugins.
Peu de boutiques de thèmes :
On trouve peu de boutiques de thèmes, je pense que la cause est financière. Le marché n'est pas encore assez porteur par rapport au travail que cela nécessite. De plus, les utilisateurs de Kirby sont en grande majorité des dévelopeur.euse.s qui préfèrent probablement développer leur propres thèmes.
Slide 7 - Pour qui ?
J'ai envie de dire un peu tout le monde :
Les agences web
Les institutions
Les entreprises
Les freelances
Les designers
... à partir du moment ou vous avez des bases de développement web ou les ressources en développement à votre disposition.
A savoir que j'utilise personnellement Kirby pour la création de sites web mais aussi pour des applications web.
Slide 8 - Ressources
Kirby offre différentes sources de ressources pour apprendre, discuter, échanger, découvrir, participer au projet :
Je la trouve super bien faite, claire et bien illustrée.
C'est là que vous devez poser vos questions et/ou trouver des réponses.
C'est l'endroit où la communauté discute et échange des idées, c'est aussi là que l'équipe kirby communique avec ses utilisateurs.
Sonia, qui assure aussi le support sur le forum, écrit une newsletter tous les mois pour nous informer des nouveautés autour de Kirby, nous présenter des sites web Kirby remarquables, nous faire découvrir de nouveaux plugins, nous annoncer les nouveaux "Cookbook" etc.
Pour les débutants, Bastian Allgeier a enregistré une douzaine de vidéos accessibles gratuitement sur Youtube.
Biensure, Kirby est accessible publiquement sur un dépôt Github. Vous y trouverez toutes les versions mais aussi le code du site corporate de Kirby, les plugins dévelopés par l'équipe Kirby, le code du "Plainkit" et du "Starterkit". C'est aussi là que vous pourrez remonter vos bugs.
Ces deux sites Kirby sont des points de départ pour vous montrer des exemples concrets. Le code est bien commenté et peut être une source pédagogiques pour l'apprentissage de kirby. Le "Plainkit" est une version avec du contenu alors que le "Starterkit" est un site à minima pour démarrer un projet.
Une boite à idées avec système de votes
Vous pouvez soumettre vos idées de nouvelles fonctionnalités. Un système de votes permet à l'équipe Kirby de hiérarchiser les demandes.
Un répertoire de plugins classé par catégorie est disponible sur le site Kirby. Cette liste n'est pas exhaustive, vous pouvez trouver sur Github d'autres plugins non répertoriés.
Une gallerie de sites de références
Pour convaincre des clients d'adopter Kirby, vous pouvez montrer des exemples de réalisations. Vous trouverez dans cette liste plein d'exemples très professionnels.
kirby est aussi présent sur les réseaux sociaux.
En plus de la documentation technique, l'équipe Kirby a rédigé un guide d'utilisation. Elle propose également des "cookbooks", véritables cas concret avec le code et les explications. Vous pouvez vous-même soumettre des cookbooks, vous recevrez une licence gratuite en échange.
Slide 9 - Conclusion
Kirby est un outil flexible, simple, performant et très plaisant à utiliser.
Je trouve son apprentissage relativement aisé grâce à une conception bien pensée, une documentation claire et un excellent support.
Le modèle "Flat file" (stockage des données dans des dossiers/fichiers) est très pratique. Il facilite le backup, le versioning, la migration des données, la création d'environnement de développement.
L’équipe de développement est à l’écoute des besoins de ses utilisateurs qui sont en grande majorité des développeur.euse.s.
On pourrait presque parler d'un mini-framework tant la flexibilité de Kirby est grande.
Slide 10 - Bonus démo
Démonstration du panel. Voir la vidéo ...
Slide 11 - Questions et coordonnées
Vous pouvez me poser des questions sur Twitter ou par mail. J'y répondrai dans la mesure du possible.
Gilles Vauvarin
contact@pixenjoy.com
Twitter: @pixenjoy