Un CMS pour FMJConsulting!

  motivation=on
  if [[ $work="great" and fun="on" ]]; then
    return success
    else try(again)
  fi

FMJConsulting fait peau neuve et souhaite utiliser un nouveau CMS1. C'est l'occasion de découvrir ce que propose la communauté en matière de gestionnaire de contenu. Les technologies du web et des applications mobiles sont en jeux dans une grande majorité des activités digitales. Un jolie pretexte pour s'amuser avec Node.JS, Laravel et consort.

Ceci est donc le premier article du nouvel emballage. Les possibilités offertes par les dernires technologies web sont riches, complexes et en constante évolution. Il ne me suffira donc pas d'un simple mois d'août 2 pour en faire le tour. Surtout si vous avez comme moi laissé s'accumuler une dette technologique connsequente sur le sujet. Nous allons donc faire le tri en usant de méthode, de machines virtuelles et de café. Ainsi une première liste se constituera à partir des deux (ou trois) premières pages de mon ami Google ainsi qu'aux liens secondaires glanés sur les sites consultés par rebond3. Le trie s'effectuera selon un mode opératoire que nous définirons plus bas.

Ce dont nous avons besoin

Aujourd'hui, le marché des CMS est accaparé par WordPress, Joomla et Drupal. Il existe également des CMS spécialisés pour la vente de produits en ligne, comme prestashop ou shopify. Ces outils sont d'excellents choix pour ceux souhaitant se concentrer sur le coeur de leur activité sans se soucier du contenu technologique sous jaccent mais il ne présente pas beaucoup d'intérêt pour le hacker moyen. Ma démarche est plutôt celle d'un architecte web que celle d'un commercant ou même d'un journaliste. Donc j'écarte à priori ces outils.

Il me faut cependant du responsive, du HTML5, du Javascript ou du PHP7 côté serveur. Il me faut de la sécurité pour les bases de données et du filtrage utilisateurs. Il faut qu’il soit beau et facile à lire. Je veux des snippets de codes et des simili-captures d’écran élégament insérées dans le corps des articles. Je veux des plugins pour construire des pages directement a partir de gists. Bref! Je recherche quelque chose d’un peu “technique”, qui profite des dernières technologies matures du marché, tout en restant simple, robuste, et efficace. Enfin j'opte d'emblée pour des technologies ouvertes et opensource, ce qui n'exclut pas le "payant" pour certaines parties spécifiques -themes,skeletons,...

Mais par dessus tout il faut que ce soit rapide. Ce que j'ai en tête c'est d'écrire le texte depuis l'éditeur Atom 90% du temps, le copier/coller dans mon CMS, Et Voila! Les 10% restant peuvent être techniques, mais pas plus.

Réduire sa dette technologique, mais raison garder.

Les applications Web et Mobile sont ludiques et souvent bluffantes. Mais il faut également se méfier du syndrome “tout nouveau, tout beau”. A titre d'exemple :

  • RIP
    • Hatch.js,
    • callipso,
    • pencilblue,
    • cody.js,
    • scotch,
    • InvaNode,
    • etc ...

Sans tomber dans le mélodrame ni forcément viser le standard de demain, ce serait pas mal que l’espérance de vie du framework choisi dépasse les 3 ans.

Bon allez c'est parti6.

Mode Opératoire

  1. Définir le besoin
  2. Le caractériser par des critères évaluables
  3. Conduire l'étude
  4. Construire une matrice de compatibilité des solutions retenues
  5. Conclure


Définir le besoin réel

  • Présenter fmjconsulting.fr, ses partenaires, ses collaborateurs et son actualité.
  • Un blog pour évoquer des points techniques, écrire des billets d'humeur.
  • Un espace pour essayer des applications.


Se référer à des caractéristiques quantifiables

Les critères d'évaluation sont :

  • la cohérence, la richesse et l'exactitude de la documentation
  • les conditions d'installation sur une CentOS 7
  • la facilité d'administration des utilisateurs, des pages et des layouts
  • la capacité à rédiger les billets en Markdown
  • la facilité d'application des thèmes
  • la sécurité liée aux utilisateurs
  • la vitalité du projet
  • la licence opensource, l'accessibilité aux sources et l'esprit communautaire
  • l'esthétique global
  • enfin le potentiel, l'ouverture et la fiabilité technologique des outils sous jaccent aux fonctionnement de l'application : robustesse du framework, ghist, DSL ouverts, etc

Avec dix points par critère sachant que certains sont éliminatoires (l'installation et la sécurité) cela nous permet de définir un score sur 10.

Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
d/10 i/10 a/10 p/10 m/10 t/10 s/10 s/10 p/10 t/10

La démarche ici sera toute simple et rapide. Nous allons utiliser un master virtualbox que nous déclinerons en fonction des téléchargements des sources github.

virtualbox 5.26
CentOS 7.3
Apache
Nginx
MariaDB
MongoDB

Puis nous y ajouterons

Node.JS v6 | Node.JS v8 avec npm(@latest)
PHP v5 | PHP v7 avec composer(@latest)

Enfin nous y grefferons quelques extenssions et au besoin Java, Python, Ruby ... Alors nous devrions avoir tout ce dont nous avons besoin.

Ensuite il convient pour effectuer nos tests :

  • d'écrire deux types de contenu
    • Un post type "Lorem ipsum ..." utilisant toutes les fonctionnalités rédactionnelles du markdown language.
    • Un autre représentant un cas concret, à savoir cet article lui-même.
  • Définir un (ou deux) layout(s) jugés utile pour recevoir les futurs articles.

Il va falloir mettre la main à la patte.

  • du javascript côté serveur? écrire du code!
  • travailler les css via un pre-processeur, less.js par exemple? compiler!
  • concevoir une mise en page (layout) via des viewers comme pug? DSL!

Si vous êtes comme moi un tantinet allergique au DSL4, ca ne va pas être facile.

Donc pour résumer grossierement les technologies : PHP ou Javascript. Et plus finement nous pouvons détailler comme suit.

  • Coté serveur
    • Javascript
      • nodejs
      • npm
      • strongloop
    • Php
      • Laravel
      • composer artisan
    • CSS
    • Less
    • SaSS
    • Pug
    • gulp
    • grunt
    • lexer
    • twig
  • Coté client
    • Javascript
      • AngularJS
      • AngularJS
      • ReactJS
      • View.JS
  • HTML5


Etude

Node.JS

Le framework javascript fork en Ayo à l'heure ou j'écris es lignes. 13 machine testées.

[fredmj@MSI vboxlib]$ ./vboxlistgroup.sh | grep "/Lab CMS/CentOS Lab NodeJS CMS" | cat -n
     1  NAME=name="CENTOS 7 ExpressJS";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     2  NAME=name="CENTOS 7 KeystoneJS";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     3  NAME=name="CENTOS 7 Cody";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     4  NAME=name="CENTOS 7 ghost";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     5  NAME=name="CENTOS 7 Enduro.JS";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     6  NAME=name="CENTOS 7 Apostrophe2";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     7  NAME=name="CENTOS 7 Total.JS";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     8  NAME=name="CENTOS 7 HEXO";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
     9  NAME=name="CENTOS 7 taracot";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
    10  NAME=name="CENTOS 7 bucket.io";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
    11  NAME=name="CENTOS 7 Assemble";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
    12  NAME=name="CENTOS 7 NodeJSv8";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
    13  NAME=name="CENTOS 7 Node.JS v6";GROUP=groups="/Lab CMS/CentOS Lab NodeJS CMS"
Express.
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
8/10 7/10 4/10 6/10 4/10 6/10 7/10 9/10 8/10 9/10

C’est un framework Node.JS. Comme beaucoup d'autres choix testé ici, ce n'est pas un CMS à proprement parler. Il est très ouvert, efficace, assez complet, robuste et surtout rapide. Tout ce que j’aime. C'est un standard. Nous sommes ici essentiellement dans le monde MVC et le but affiché est l’assistance à la création d’application. Essayer les fonctionnalités rentre dans le cadre d’essais orientés NodeJS et application Javascript. Pour un autre billet donc. Ceci dit et pour se faire une idée, les premiers pas du guide de mise en route du site expressjs.com sont plutot bien fait. Mais attention c’est (très) addictif. Vous serez prévenu!

KeystoneJS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
8/10 7/10 7/10 8/10 7/10 6/10 7/10 9/10 8/10 9/10

C'est LE cms du framework Express. Minimaliste, robuste, large communauté. Très bien écrit. Généraliste certes mais tout de même orienté DevOps.Il faut pratiquer le pug (ex jade) et le less.js. Mais aussi Handlebars, Grunt. Ce qui signifie : encore des DSL. Mais cela s'accommode bien de l’esprit “hacking”.

ghost
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
3/10 4/10 5/10 5/10 4/10 8/10 6/10 8/10 3/10 6/10

Riche en technologies misent en oeuvre :

  • Node.js
  • Amber.JS
  • Handlebar.js
  • npm/Yarn.

Mais la documentation se contredit souvent et n’est pas vraiment à jour. Du coup quelques inquiétudes sur la maintenabilité de l’application socle. Le projet github est très actif mais très orienté Ubuntu/Nginx. Officiellement CentOS n'est pas supporté même s'il est tout fait possible d'y faire fonctionner Ghost.

enduro.js
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 6/10 3/10 4/10 4/10 7/10 6/10 8/10 6/10 6/10

Une installation à l’opposé de ghost: Simple et efficace. Simple comme "minimalistic" ?! Oui car tout le reste est à faire pour obtenir l'équivalent du même ghost. Mais c’est intéressant si le temps et l’envie de s’y mettre est à votre disposition. Handlebars et Sass pour la mise en place des css qui vont bien, et Hop! le tour est joué. J’ai même vu des modules Angular.js. Il manque peut-être quelques thèmes.

Apostrophe2
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
5/10 6/10 4/10 4/10 6/10 6/10 6/10 8/10 7/10 t/10

Une installation plutôt simple, même si la documentation est orienté OSX. Une “philosophie” de construction très orienté développement. Pour ajouter du contenu à la page home il est necessaire d'éditer lib/modules/apostrophe-pages/views/pages/home.html qui hérite des propriétés de lib/modules/apostrophe-templates/views/outerLayout.html pour y ajouter ce que l'on souhaite. La documentation propose par exemple:

{{ apos.area(data.page, 'body', {
      widgets: {
        'apostrophe-images': {
          size: 'full'
        },
        'apostrophe-rich-text': {
          toolbar: [ 'Styles', 'Bold', 'Italic', 'Link', 'Unlink' ],
          styles: [
            { name: 'Heading', element: 'h3' },
            { name: 'Subheading', element: 'h4' },
            { name: 'Paragraph', element: 'p' }
          ]
        }
      }
    })
}}

Un outil fiable et une doc complète. Parfait pour progresser avec l'environnement JS. Un peu juste pour servir de CMS out-of-the-box.

Total.js
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 8/10 5/10 6/10 6/10 7/10 6/10 9/10 7/10 8/10

Une mise en route ultra simple et du code pour la suite. Un vrai framework! Tout est offert dès le début. Mais ce n’est pas un CMS en l'état. La documentation est bien faite et le framework est solide. Et pour ceux et celles qui aiment coder, le bonheur est au bout des doigts. Ideal pour apprendre.

Hexo
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
5/10 5/10 5/10 6/10 5/10 6/10 6/10 8/10 7/10 6/10

Quelques petites difficultés d’installation mais suffisamment d’informations disponible pour contourner les problèmes. Le projet est actif grace à NoahDragon [https://github.com/NoahDragon]. C’est un Framework NodeJS orienté blog, ce qui correspond assez bien à mon besoin. Beaucoup de thèmes, utilise le langage markdown et s’avère sobre, efficace et rapide. Il manque peut-être un plugin type administration des pages et des posts. En tout cas, j’aime beaucoup.

Taracot
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
5/10 5/10 5/10 5/10 4/10 6/10 5/10 7/10 5/10 6/10

Un framework à priori destiné à beaucoup de choses: commerce, blog, réseaux sociaux… Une techno MongoDB et Redis, orienté utilisateurs OSX. Quelques difficultés techniques avec l’étape node install-system et pas assez de temps pour que je puisse aboutir à une installation sur CentOS 7. Mais bon, le sujet commence apparemment à dater sur github.

Bucket.io
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
5/10 3/10 5/10 5/10 4/10 6/10 6/10 8/10 3/10 5/10

Simple et rapide graçe à mongodb, mais RIPed depuis 2015. Un simple npm install buckets --save-dev bloque sur une bonne cinquantaine d’erreurs. Il me faut surement utiliser plus en avant grunt et les grunt-plugins pour aboutir. Mais quelque chose me dit que ce projet est R.I.P. Dommage, je manque de temps.

Assemble
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
4/10 5/10 5/10 6/10 5/10 6/10 6/10 7/10 5/10 6/10

Outils 'As-code'. Documentation d'une qualité légèrement en retrait par rapport aux ténors JS. Mais grace au travail de Jon Schlinkert [https://github.com/jonschlinkert] il existe tout un tas de boilerplates disponnibles pour illustrer des templates. Peut-etre pour une prochaine génération de FMJConsulting.

Ember.JS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
8/10 7/10 6/10 7/10 6/10 7/10 7/10 8/10 8/10 7/10

Excellente documentation. Elle permet d'aborder le framework simplement mais avec une courbe d'apprentissage à forte pente. C'est ludique, puissant et efficace. La manipulation des pages, routes, templates crées se fait à la main. Mais la generation et la "réutilisabilité" des composants est particulièrement bien assisté par le client ember-cli. A noter que Ember.JS utilise l'excellent watchman. Un standard. Peut-etre un peu en retrait dans l'utilisation des Markdown.

Laravel.

18 machines testées pour le framework Php

[fredmj@MSI vboxlib]$ ./vboxlistgroup.sh | grep "/Lab CMS/CentOS Lab PHP CMS" | cat -n
1   NAME=name="CENTOS 7 Croogo";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
2   NAME=name="CENTOS 7 Subrion";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
3   NAME=name="CENTOS 7 TYPO3";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
4   NAME=name="CENTOS 7 Concrete5";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
5   NAME=name="CENTOS 7 apache HTML5Up";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
6   NAME=name="CENTOS 7 Grav";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
7   NAME=name="CENTOS 7 CMS MadeSimple";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
8   NAME=name="CENTOS 7 SPIP";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
9   NAME=name="CENTOS 7 ZWII";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
10  NAME=name="CENTOS 7 AasgardCMS";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
11  NAME=name="CENTOS 7 PHP7/HTTPD2 bare";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
12  NAME=name="CENTOS 7 October";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
13  NAME=name="CENTOS 7 BootstrapCMS";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
14  NAME=name="CENTOS 7 Lavalite";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
15  NAME=name="CENTOS 7 quarx";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
16  NAME=name="CENTOS 7 Laravel";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
17  NAME=name="CENTOS 7 PyroCMS";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
18  NAME=name="CENTOS 7 TypiCMS";GROUP=groups="/Lab CMS/CentOS Lab PHP CMS"
Laravel lui-même

Laravel, Homestead et Vagrant. Un trio gagant pour mon architecture de test. Un framework PHP vraiment riche et actuel qui se partage le marché avec Node.JS. Déjà un standard. Riche et généraliste mais trop simple pour être utilisé en CMS directement.

CakePHP
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 7/10 6/10 6/10 5/10 7/10 5/10 8/10 6/10 6/10

Un excellent framework, ancien, robuste qui s'accompagne d'une documentation claire et complète. Mais beaucoup de chose à construire pour en faire un CMS en l'état.

Croogo
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
4/10 5/10 7/10 6/10 5/10 4/10 5/10 7/10 6/10 6/10

La documentation d'installation est sommaire, puisqu'il s'agit d'un lien vers le Readme.md du depot github. S'appuie sur CakePHP il manque quelques thèmes. Les plugins (administration, themes, taxonomie, ...) simplifient pas mal l'administration du site. Moyennement convaincant mais pas mal pour un "vieux" CMS.

Subrion
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 7/10 5/10 6/10 4/10 6/10 5/10 6/10 7/10 6/10

Une documentation correcte. Facile à installer et assez complet. Plutôt orienté shop CMS. Certains plugins/template sont payant. Pas de support natif pour la rédaction en Markdown. Des themes (templates) parfait pour créer une agence dédiés à un vendeur automobile par exemple. Un plugin quasi parfait pour l'administration. Un bon support pour créer out-of-the-box une application web commercante.

TYPO3
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
8/10 6/10 7/10 6/10 4/10 6/10 5/10 6/10 6/10 6/10

Un CMS capable de prendre en charge toutes les attentes. Une documentation complète. Une interface d'administration riche et complète. Un esprit PAO dans la rédaction des pages. Il s'agit d'une application très pro. Peut-etre un peu trop complexe. Il manque la prise en charge des markdown pour cette version v9.0. pour atteindre la perfection. Attention tout de même à la stabilité du cache et aux écritures en base qui peuvent jouer des tours lors de phase de restauration/sauvegarde.

Concrete5
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 7/10 6/10 7/10 3/10 5/10 6/10 6/10 5/10 6/10

Une documentation relativement complète, tant pour l'utilisateur que pour le développeur. La gestion du contenu est bien assuré par une nouvelle version du dashboard. La mise en page est simple et efficace. Drag and drop de blocs, choix de mock-up, c'est presque ludique. Pas mal de plugins et thèmes mais beaucoup sont payants. Même si les prix restent abordables. Néenmoins, sans acheter le plugin pour la rédaction en Markdown (commonMark) je ne peux pas essayer correctement mes pages templates.

Html5up
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
7/10 7/10 5/10 5/10 5/10 6/10 5/10 6/10 7/10 6/10

Juste des templates, du CSS et du talent. Un design simple et épuré. Cela nous donne toute la mesure de ce que nous avons réellement besoin. Bluffant. Mais du travail reste à faire pour construire la gestion des utilisateurs, la taxonomie, etc

Grav
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
8/10 7/10 8/10 9/10 9/10 7/10 7/10 7/10 8/10 8/10

Aboutie. Très simple à installer. Efficace et esthétiquement sobre. Facilement administrable. Des skeletons, des thèmes et des plugins de qualité et en quantité. La documentation contrairement à beaucoup d’autres est de très bonne qualité, complète et explique partout la même chose 5. Enfin l'utilisation est d'une simplicité parfaite. Vous aurez un site esthétique, robuste, sécuritaire et facilement enrichissable en 10 minutes chrono. Tout en restant ouvert aux manipulations techniques de type twig, lexer et autres. Vous écrivez un texte en markdown via l'interface d'administrion ou directement depuis votre Atom et c'est fini. Le standard pour moi.

CMSMadeSimple
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 6/10 5/10 6/10 3/10 5/10 4/10 7/10 6/10 5/10

Des sources disponnibles via ... subversion. Et un repo github mise à jour il y ... 7 ans. Un produit d'une acienne génération qui tente de resister vaillament aux assauts du temps. Des plugins et des thèmes additionnelles honorables, mais le module d'administration est un peu viellisant. Pas d'éditeur compatible markdown (à la place il y a tinyMCE) ni de gestionnaire de themes. Ceci dit je trouve le theme simplex d'une grande qualité. Mais l'utilisation n'est pas fluide. Par exemple l'insertion de snippet est problèmatique, dès qu'il y a un couple '{}'. Ceci qui est éliminatoire pour moi. Une autre source d'interrogation réside dans la partie installation qui se présente sous forme d'un binaire et pas d'un script clairement lisible. Juste par soucis d'encapsuler le .phar. Ce qui est expliqué sur le site : "Q: Why is there a .php file inside the archive, and not a .phar? A: Most web servers are not configured to treat files ending with .phar as executable PHP scripts. Therefore we have renamed the file as a .php file so that web servers will know to execute the script. Please note however, that this is a binary file and must be treated as such." Après avoir lu la documentation et avec un peu de HTML5/CSS, cmsms devient malgré tout un choix crédible. Mais ces quelques petits détails le place en retrait.

SPIP
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 7/10 6/10 7/10 4/10 5/10 7/10 8/10 8/10 7/10

Apache, Php 7 et Mysql (ou sqlite3). C’est simple, c’est sobrement esthetique, et c’est fonctionnel dès la première installation. De plus c’est ancien! Donc robuste. Ancien et Moderne : un mariage passionnant. La prise en main est Ultra rapide. Je n’avais pas fini d’installer SPIP que je commencais à rédiger la première page, installer le logo, etc. La documentation existe dans toutes les langues, et est aussi complète que clair. Par contre la rédaction des billets se fait via le modèle de SPIP et il n'est pas question ici de Markdown. Cela reste malgré tout assez ressemblant et très fonctionnel. Un plugin existe mais il ne semble pas compatible avec la version 3.2 (issue #5).

Zwii
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
4/10 5/10 5/10 4/10 3/10 3/10 3/10 7/10 5/10 6/10

Un de ceux que j’aurais aimé essayer mais l'installation me laisse sur une page vierge. Le forum répond à mes questions, mais le staff technique est en vaccances. Comme moi. Dommage, pour une prochaine fois car cela pourrait être intéressant.

AasgardCMS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
7/10 6/10 7/10 7/10 7/10 6/10 6/10 7/10 8/10 7/10

Une documentation fournie et bien faite. Une rédaction en Markdown nativement prise en charge. Un module d'administration complet. Par contre le projet est actif et productif. Le temps de la rédaction de cet artcile asgardcms est passé de la version 2 a la version 3 pour prendre en charge laravel5. La communauté sous Github et #Slack aussi très active (si vous êtes polie et précis). En passe de devenir un standard.

October
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
7/10 7/10 7/10 7/10 4/10 6/10 6/10 7/10 8/10 7/10

Laravel ici aussi. La documentation semble complète et cohérente, le chan IRC est assez actif ainsi que la #slack room. Les sources sont sur Github et le projet fonctionne (cf issue#3038. Quelques difficultés techniques lors de l'installation et des problèmes à l'exploitation mais rien de bloquant. Le seul point rédibitoire est le manque de support natif en markdown. J'ai du passer par l'éditeur interne (/backend) pour y accéder. Il y a sûrement une autre façone de procéder mais je n'ai pas trouver dans le temps qui m'étais imparti. D'autres solutions plus intuitives passent donc devant. Un très bon produit.

Quarx
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
4/10 3/10 3/10 3/10 3/10 5/10 6/10 7/10 6/10 6/10

Ne s’installe pas correctement sous ma CentOS7 (issue #89). La documentation manque de cohérence, et n'est pas très claire. Le projet semble moyennement actif mais le tout me semble porter un beau potentiel.

PyroCMS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
7/10 8/10 6/10 7/10 7/10 6/10 6/10 7/10 7/10 7/10

Un 'top' pour Laravel. Installation rapide et documentation parfaitement en phase. Riche en fonctionnalités, prise en main aisée et sobriété esthétique sont au rendez-vous. Mais helas la version pro est payante. Ceci dit elle semble terriblement efficace, l'import à partir d'Atom a parfaitement fonctionné par exemple.

Bootstrap CMS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 6/10 6/10 7/10 5/10 7/10 7/10 7/10 5/10 7/10

Notoriété et Bootstrap Héritage, tout un programme. Malheureusement le projet semble figé sou Github, il s'adresse plutôt aux initiés. Du coup vous risquez de faire des aller/retour dans les fichiers de configuration pour comprendre à "taton" qui fait quoi. Ceci dit c'est en forgeant... Par exemple ne pas oublier l'étape php artisan key:generate a placer dans config/app.php. Mais Graham Campbell a tellement écrit sur le sujet que vous devriez retrouver vos petits. Un excellent representant du framework Bootstrap

TypiCMS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
6/10 5/10 4/10 6/10 4/10 5/10 6/10 7/10 6/10 7/10

Sur la base de Laravel 5, s'installe assez facilement (Mariadb, nodejsv8, composer, npm, php7.1 et quelques plugins). Difficultés avec le markdown et l'administration. Et une technologie hybride, à mis chemin entre PHP et javascript. Interressant mais risque d'en rendre confus plus d'un avec la gestion des paquets et des outils de dépendances. A suivre.

CoasterCMS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
7/10 7/10 7/10 6/10 4/10 6/10 6/10 6/10 7/10 7/10

Facile à installer, Facile à administrer. Rapide, responsive et ouvert. Vraiment (très) complet dans ses fonctionnalités d'où la suspicion d'une charge d'administration peut-être plus forte que certains autres. Les layout utilisent le blade.php engine de laravel. La documentation est de bonne qualité et permet de passer rapidement du coté dev. Parfait pour une petite équipe de 2 à 5 personnes. Un excellent CMS, en passe de devenir un standard grace à une communauté #slack très active.

Lavalite
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
4/10 3/10 3/10 3/10 3/10 6/10 6/10 7/10 5/10 6/10

Ne s'installe pas correctement sur ma CentOS7 avec un Laravel opérationel. La documentation est trop succinte.

PageKit
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
3/10 3/10 3/10 3/10 3/10 t/10 s/10 s/10 p/10 t/10

Ne s'installe pas correctement sous ma CentOS7. Dommage car l'outil semble prometteur, même si l'usage de tinyMCE est rédibitoire et éliminatoire.

BotbleCMS
Doc Install Admin Pages Markdown Themes Secu Sources Projet Techno
7/10 8/10 6/10 6/10 6/10 6/10 8/10 4/10 7/10 4/10

Payant.

Et les Headless CMS ?

Se concentrer sur le contenu et laisser le reste dans les nuages? Pile dans la mouvance du moment. Un peu de cloud et un peu de local : l'hybridation salvatrice. Je ne m’embête plus avec l’administration technique du blog (IT + socle) et je ne m’intéresse qu’a la rédaction des articles. Une parfaite solution pour une activité purement tournée vers la publication de contenu. Vous allez me dire c'est le principe initial du CMS. Certes, mais ce n'est pas le mien. Si vous vous interessez plus au contenu qu'a l'aspect FullStack, alors vous serez certainement séduit par ces solutions. Ensuite intervient une notion d'opportunnité économique. Mais nul doute que la démocratisation des pratiques Cloud et de Virtualisation placeront bientôt cette solution parmis les leader du marché.


Matrice de compatibilité

Name installed Tested Status Name installed Tested Status
Ghost Yes Yes ExpressJS Yes Yes Approved
KeystoneJS Yes Yes total.js Yes
Hatchjs No No cody.js No
Croogo Yes Yes nodize CMS No
CakePHP Yes Yes Hexo.io Yes
subrion No No Scotch No
snipcart No No InvaNode No
Typo3 Yes Yes taracot Yes
concrete5 Yes Yes butterCMS No No Approved
html5up Yes Yes bucket No No Failed to install
Grav Yes Yes AsgardCMS Yes
MadeSimple Yes Yes October Yes
SPIP Yes Yes lavalite Yes
Zwii Yes No botble No No notfree
WebGUI No No quarx No No Failed to install
eZ Publish No No pyrocms Yes
ghost Yes No thinmartian No
enduroJS No No typicms No
callipso No No coastercms Yes Yes Approved
pencilblue No No quarx Yes
apostrophe2 Yes No Simpla Yes
Assemble Yes No Bootstrap Yes
Amber.js Yes Yes upstage Yes
PageKit No No


Conclusion

Il faut qu’il soit simple, rapide, un minimum pérène, ne nécessitant pas trop de développements pour être viable et compatible avec les VPS standard du marché. Son installation et les manipulations associés pour y ajouter quelques futurs plugins ne doivent pas non plus être synonyme de nuits blanches. Et il faut qu’il soit sobrement esthétique. C’est à dire que je dois pouvoir y écrire des billets contenant des exemples de code, insérer des captures d’écran ou des images, mettre en page des textes de façon professionnel sans m’arracher les quelques cheveux qui me restent. Comme mentionné précédement j’ai donc créé deux pages type que j’ai soumis aux quelques framework/CMS que j’ai testé. Une utilisant un layout me permettant d’afficher l’article que vous lisez. L’autre reprenant l’ensemble des éléments visuels que je souhaite avoir à ma disposition comme les titres, bullet, insertion de code et d’image etc, en un seul lieu. De tel sorte qu'il me soit possible de juger de l'aspect esthetique global d'un seul coup d'oeil. Pour toutes ces raisons je garde une short list avec GRAV et KeystoneJS. Php pour le site institutionnel. et Javascript pour le site personnel.

J'ai l'impression d'avoir sous estimé la tache qui m'attendais. Inutile de vous expliquer que le monde des applications web risque de donner une bonne claque a beaucoup de vieux quinquagénaires dans mon genre. C’est beau, c’est rapide, mais maitriser ces technologies cela reste un métier. Et je ne me suis pas improvisé Guru Web Developper du jour au lendemain. Donc naturellement, lorsqu’un dinosaure comme moi décide de refaire son site web il hume le doux parfum de l’extinction des espèces. Mais comprenons nous, je trouve cela plutôt motivant. Les sites web à la bon papa (LAMP, Flash, JBOSS, Tomcat) c'est fini. Et il a fallu que je prenne le temps de bousculer mes vieux reflexes. Dépoussiérer tout cela m'a dailleurs fait le plus grand bien. Les logiciels sont aujourd’hui orientées web et mobiles. Ils sont rapides, UX friendly et technologiquement agnostiques. Ils tiennent en leurs seins des promesses d’uniformisation jadis rêvé par JAVA. Ces applications reposent de moins en moins sur l’antique modèle 3 tiers monolithique. La diversités des langages explose, ils sont de plus en plus spécifiques à des contextes d’exploitation (DSL). L’architecture logiciel de ces frameworks s’appuient sur des solutions facilement virtualisables et aisément hébergeable dans le cloud. Il reste évidemment quelques lieux ( des entreprises) construis sur le modèle historique (serveurs physiques, applications compilées embarquées, client lourds, architectures monolithiques) qui n'est plus le modèle standard. Mais ces lieux sont tristes et appelés à disparaître. L’un des points intéressant ici est le modèle économique associé à cette utilisation côté utilisateur et son impacte sur le futur de cet écosystème. L’autre aspect qui m’intéresse est la façon dont ce même eco-système va (di)gérer l’accélération des cycles de vie de ces nouvelles applications. Et je ne parle pas des stratégies d'interconnection entre ces nouveaux canaux de communications dit légers ou mobiles avec les besoins impératifs de sécurités. Mais ces questions et quelques autres comme l’adaptabilité à la transformation digitale des grosses structures organisationnelles seront l’objet de prochains articles.

Notes

1

CMS signifie "Content Management System"


2

Cet article a été écrit en août 2017


3

Ce qui abouti tout de même à une liste d'une bonne cinquantaine d'entrées.


4

DSL: Domaine Specific Language - Domain-specific_language


5

Beaucoup d’autres sites expliquent une façon différente d’installer l'application, selon que l’on consulte le site web, github, une Doc pdf, la FAQ, etc. C'est éliminatoire pour moi.


https://www.opensourcecms.com/general/cms-marketshare.php


6

La bonne démarche serait de s’inspirer d’autres sites qui me semblent correspondre à ce que je recherche et de m'en inspirer. mais le manque de temps et de motivations lorsque j’en croise un ont eu raison de cette bonne idée. C’est un tord que je devrais m’empresser de rectifier.

D'autant qu'il n’est pas difficile d’en trouver quelques uns de très bon niveau :

  • http://dev.glicer.com/
  • https://davidwalsh.name/
  • http://www.phpied.com/
  • https://blog.codinghorror.com/
  • https://alexsexton.com/
  • https://www.paulirish.com/
  • https://scotch.io/
  • https://www.smashingmagazine.com/

Et à l’heure où j’écris ces lignes il est possible d’en trouver une bonne synthèse sur le site: securityinnovationeurope. Mais cela est un autre sujet.


Jetez un coup d’oeil à

  • http://passportjs.org/
  • https://www.hotjar.com
  • https://www.polymer-project.org/

Ils sont assez bluffant: Des ghists pour générer entierement votre blog!


RIP est l'acronyme anglais de 'Repose in peace' ce qui signifie 'Repose en paix'.

Previous Post