Booster des Talents IT

Générateurs de sites statiques : bonne ou mauvaise idée ?

Générateurs de sites statiques : bonne ou mauvaise idée ?

Les générateurs de sites statiques (SSG) gagnent en popularité depuis plusieurs années, plus particulièrement auprès des développeurs. Réputés pour offrir des sites web plus rapides et plus sécurisés, ils bénéficient d’un écosystème et d’une communauté en pleine croissance.

 

Progressivement, ils deviennent une réelle alternative aux CMS dynamiques. Mais les générateurs de sites statiques, est-ce une bonne ou une mauvaise idée ?

 

 

Générateur de sites statiques : définition

Générateurs de sites statiques

Un générateur de sites statiques, ou Static Sites Generator en anglais (SSG), génère, comme son nom l’indique, des fichiers statiques pour un site web. Pour cela, il sépare contenu et mise en page, qu’il rassemble ensuite pour générer les pages statiques correspondantes.

 

Concrètement, nombre de ces générateurs utilisent le Markdown pour les contenus, qu’ils associent à des structures de code préfabriquées, à savoir des thèmes et templates.

 

Le résultat est donc sous formes de fichiers statiques à publier sur un serveur ou sur un cloud, contrairement aux CMS classiques et dynamiques qui construisent les pages à la demande de l’utilisateur. Ici, pas de contenu stocké dans les bases de données : le serveur a seulement pour mission de servir les pages demandées et non de les « construire » sur le tas.

 

Néanmoins, la popularité des générateurs de sites statiques spécifiquement auprès des développeurs n’est pas anodine : l’installation et les opérations d’un SSG se réalisent le plus généralement via une interface de commandes.

 

Il paraît aussi difficile d’imposer Markdown à ses clients, qui préfèreront sûrement les éditeurs WYSIWYG proposés par les CMS classiques.

 

Heureusement, les SSG disposent aujourd’hui de nombreuses solutions pour faciliter leur utilisation comme l’architecture web JAMstack (JavaScript, APIs, Markup) qui permet de rendre le site dynamique, tout en sachant qu’ils permettent l’utilisation d’headless CMS.

 

Générateur de site statiques vs CMS dynamiques

Générateurs de sites statiques ou CMS dynamiques

Les CMS classiques se sont largement imposés au fil du temps, à l’image de WordPress qui est aujourd’hui utilisé par un peu plus d’un tiers des sites web. Faciles à prendre en main, régulièrement mis à jour, personnalisables, flexibles, optimisés, populaires (certains plus que d’autres) … ils permettent de créer un site aisément et de gérer du contenu sans connaissances spécifiques (HTML, CSS, …).

 

Finalement, ils sont aujourd’hui la solution de facilité, connue à la fois des développeurs et du grand public.

 

Sauf que ces « usines à gaz » offrent parfois bien plus que ce dont on a besoin ! Si nous prenons l’exemple d’un site vitrine, les contenus sont peu nombreux, tout comme les pages qui le composent, et il ne risque pas d’être mis à jour très souvent.

 

Dans ce cas, est-il réellement utile de stocker les contenus dans une base de données, de les faire afficher de manière dynamique ou encore de disposer d’une tonne de fichiers qui tendent à allonger les temps de traitement ? Pas vraiment… De plus, les sites réalisés via des CMS classiques sont souvent lourds et sensibles au niveau sécurité.

 

Bref, la morale de l’histoire, c’est que les sites statiques sont souvent plus adaptés et offrent globalement plus de contrôle.

 

Le problème c’est que ces générateurs nécessitent des compétences spécifiques (bien que cela puisse s’apprendre) et qu’ils manquent d’un back-office, qui se révèle bien pratique pour la gestion du site et des contenus, imposant ainsi la gestion de chaque fichier de manière individuelle.

 

C’est donc là qu’interviennent les générateurs de sites statiques !

 

Avec les SSG, il suffit de commencer par créer les contenus, qui sont ensuite mis en forme en local ou via le cloud grâce à un compilateur pour finalement créer des pages statiques. Et voilà !

 

Bon, c’est évidemment un peu plus compliqué que cela mais l’intérêt, c’est que les temps de chargement sont globalement plus rapides (moins de ressources à charger/afficher) et que les risques de piratage sont diminués (pas de base de données). Équipés d’un headless CMS avec une architecture JAMstack, les contenus deviennent même plus simples à gérer pour les non-développeurs.

 

Les générateurs de sites statiques c’est alors un compromis entre le site statique from scratch et les CMS dynamiques plutôt surchargés.

 

Générateur de sites statiques, JAMstack…comment ça marche ?

Générateurs de sites statiques

Avec les générateurs de sites statiques, les contenus sont rédigés en langage léger tel que Markdown. Ils sont ensuite assemblés, à l’aide du générateur, à des fichiers template pour produire les fichiers HTML. Ces derniers se modifient d’ailleurs d’eux-mêmes dès que le fichier markdown associé ou le template est modifié. Ils sont ensuite à publier via un serveur web.

 

JAMstack…qu’est-ce que c’est ?

La JAMstack est une architecture web dont l’abréviation « JAM » provient de JavaScript, APIs et Markup, qui permet d’apporter du dynamisme à des sites statiques.

 

Processus basé sur la JAMstack
Un site Web statique développé à l’aide d’un processus basé sur la JAMstack – Jamstatic.fr

 

Ces fonctionnalités dynamiques sont donc gérées par JavaScript uniquement. On peut d’ailleurs utiliser la bibliothèque ou le « >framework JS que l’on souhaite. Côté serveur, les opérations sont abstraites sous forme d’APIs réutilisables, dont l’accès se fait en HTTPS avec JavaScript. Enfin, les fichiers du site web sont sous forme statique, en HTML, et peuvent être générés via des fichiers en Markdown, par exemple.

 

En termes de bénéfices, la JAMstack apporterait :

  • Performance : grâce à un CDN
  • Sécurité : notamment car pas de base de données avec un site statique
  • Économies financières : car l’hébergement de fichiers statique est souvent moins cher
  • Bonne Developer Experience (DX) : puisque l’on se focalise sur la partie client.
  • Adaptabilité : le CDN permet, entre autres, de mieux s’adapter aux hausse importantes de trafic.

 

Pour en savoir plus, vous pouvez vous rendre sur jamstack.wtf, un site donnant une vue d’ensemble de la JAMstack, ainsi que sa version traduite en français jamstatic.fr.

 

Headless CMS (CMS Statiques)

Un des inconvénients des générateurs de sites statiques, c’est que l’édition d’une page ou d’un article (dans le cas d’un blog), force l’accès au fichier original, souvent en Markdown. Pour pallier à ce manque de confort, il existe donc des headless CMS, aussi appelés CMS statiques.

 

Ces outils ressemblent aux CMS dynamiques que l’on connaît tous mais en version plus restreinte. Ici, l’importance est clairement à la gestion de contenu, notamment l’édition qui devient plus simple grâce à des interfaces visuelles. Il est également possible de gérer les utilisateurs et leurs permissions comme tout CMS. Finalement, ces solutions permettent de découpler le back-end du front-end.

 

Pour relier un CMS statique à son site web, il convient d’utiliser une REST API au travers d’une architecture web type JAMstack.

 

La plupart de ces CMS statiques peuvent s’utiliser peu importe la technologie front-end utilisée. Néanmoins, certains sont aussi conçu pour fonctionner avec des outils spécifiques en priorité.

 

Utiliser les API pour plus de dynamisme

Aujourd’hui, les sites web créés avec la JAMstack sont souvent bien plus dynamiques que statiques. Il se trouve que le marché des API est plutôt très florissant, offrant de nombreuses possibilités que l’on peut combiner selon ses besoins.

 

Accessibles via HTTPS avec JavaScript, les API permettent réellement d’enrichir le site statique de base de fonctionnalités, à la fois pour l’internaute et le développeur/client.

 

Voici une liste non exhaustive de ce qu’il est possible d’ajouter :

  • Envoi de formulaires
  • Systèmes d’authentification
  • Outils back-end + headless CMS
  • Fonctionnalités e-commerce (panier, paiement, …)
  • Ajout de commentaires et avis
  • Fonctionnalité de recherche.

 

Pourquoi passer à un générateur de site statique ?

Avantages des générateurs de sites statiques

Si vous n’étiez pas encore convaincu, voici les principaux avantages des générateurs de sites statiques.

Vitesse

Puisque le contenu est statique, pas besoin d’aller le chercher dynamiquement dans une base de données, tout ce que le serveur a à faire est retourner le fichier correspondant. Ceci permet d’améliorer la vitesse de chargement, et même davantage si l’on utilise un CDN. A noter que la vitesse de chargement est un bon point en matière de SEO.

Contrôle de version de contenu

Les SSG peuvent s’utiliser avec un dépôt de fichiers versionnés tel que GIT ou Subversion qui permettent de gérer les différentes versions, de faciliter la correction d’erreurs ou encore d’aider au développement.

Sécurité

Avec des pages statiques, il n’y a pas d’interactions avec des bases de données ce qui réduit les risques de piratages (injections SQL, …). A ajouter que les SSG permettent d’éviter les attaques fréquentes que connaissent les CMS classiques.

Bonne gestion du trafic

Les sites dynamiques ont souvent du mal à gérer les pics de trafic car avec un grand nombre de requêtes vers la base de données, le serveur peut vite saturer, même avec des processus de mise en cache. Parce qu’ils n’ont pas ce genre de requêtes, les sites statiques peuvent donc généralement supporter plus de trafic. Bien sûr, cette capacité se réduit selon le nombre d’éléments dynamiques ajoutés à un site statique de base.

Ils peuvent être associés à des CMS

Comme nous l’avons mentionné dans la partie fonctionnement, il n’y pas de craintes à avoir pour l’utilisateur final du site. Les headless CMS propose les fonctionnalités permettant d’éditer les rôles et contenus de manière simplifiée.

Un écosystème qui grandit

JAMstack, APIs, headless CMS, nouveaux SSG… les solutions existantes pour améliorer l’expérience SSG se développent, en partie grâce à une communauté qui grandit elle aussi.

Meilleur contrôle sur les options du client

Une fois le site livré, le client peut souvent opérer certains changements « ruinant » votre beau travail avec les CMS classiques. Les sites statiques permettent de garder le contrôle sur divers éléments tels que le design ou l’installation de plugins, comme il est possible de le faire avec un CMS classique, mais aussi le changement de polices, l’ajout de couleur, etc.

Quels sont les inconvénients des générateurs de sites statiques ?

Inconvénients des générateurs de sites statiques

Parce que rien n’est jamais parfait, voici quelques inconvénients des générateurs de sites statiques.

Compétences techniques exigées

Un SSG demande un minimum de compétences en développement, d’autant plus que les ressources officielles ou en provenance de communautés sont moins courantes. Aussi, contrairement à un certain nombre de CMS dynamiques, un utilisateur sans compétences techniques ne pourra pas installer de thèmes ou plugins ce qui, une fois le site installé, pourra créer une certaine dépendance avec le développeur ou l’agence qui l’a réalisé.

Complexité du choix

Il existe beaucoup de générateurs de sites statiques, mais même les outils les plus populaires sont utilisés par une infime proportion de la communauté web. Vous aurez besoin de temps pour rechercher et évaluer les options. Le champion incontestable est aujourd’hui Jekyll mais, bien que vous n’ayez pas forcément besoin d’une expertise en Ruby, cela sera plus simple si vous avez déjà utilisé le langageauparavant.

Gérer des gros sites

Entre la grande quantité de pages, la haute fréquence de publication, le nombre important d’auteurs, la publication en temps réel… l’utilisation d’un générateur de sites statiques peut s’avérer bien plus complexe qu’un CMS classique car ces utilisations ne sont pas disponibles nativement et donc peuvent nécessiter de nombreux ajouts ou modifications.

Installation et mise en place légèrement longues et complexes

Si WordPress propose une installation en 5 minutes accessibles aux non-initiés, il en est tout autre pour les générateurs de sites statiques. En effet, il faut pour cela un minimum de compétences techniques et les étapes sont plutôt nombreuses : rien que l’ajout d’un headless CMS peut rallonger et complexifier ce temps d’installation.

Contenu dynamique en option

Un site statique de base n’est pas supposé contenir des éléments dynamiques, pourtant, il est courant de devoir y rajouter ne serait-ce qu’un formulaire de contact. Par conséquent, c’est encore du temps supplémentaire à y consacrer, comprenant la recherche d’une solution à implémenter ou à réaliser soi-même.

 

Quand utiliser un générateur de sites statiques ?

Quand utiliser les générateurs de sites statiques

Les générateurs de sites statiques peuvent s’utiliser dans de nombreux cas, néanmoins certains nécessiteront plus ou moins d’ajustements, parfois conséquents, pour passer du statique pur à plus dynamique.

 

Voici quelques exemples d’utilisations possibles :

  • Sites peu fréquemment mis à jours : site vitrine, portfolio, site concours ou campagne spécifique (lié à une action marketing)
  • Documentation
  • FAQs
  • Blogs.

 

On aura plutôt tendance à préférer les CMS dynamiques ou frameworks si le contenu est révisé régulièrement, si l’utilisateur final doit avoir la main entière sur le site ou encore s’il s’agit d’un gros site, comme mentionné plus tôt.

 

Le tout est de savoir de quelles ressources vous disposez en termes de compétences, de temps ainsi que de moyens humains et financiers. Les générateurs de sites statiques sont souvent une bonne base pouvant être complétée mais à un certain coût (pas seulement financier), qui n’est parfois pas nécessaire voire non envisageable.

 

A savoir que la cible première est avant tout les développeurs, notamment pour leurs sites personnels. Mais avec l’évolution qu’ils connaissent, il se pourrait bien que les choses changent à l’avenir. Des sites d’entreprises sont d’ailleurs déjà réalisés via un SSG, comme Spotify for Developers, Twitch Developers ou encore Netflix Devices.

 

Les générateurs de sites web statiques les plus populaires en 2019

Top 10 générateurs de sites statiques les plus populaires 2019

Le nombre de générateurs de sites statiques augmentent grandement depuis ces dernières années et ceux existants ne cessent de grandir. GitHub est d’ailleurs une ressource importante si vous en cherchez.

 

Pour faire votre choix, vous pouvez vous diriger vers Staticgen.com, qui offre une vue d’ensemble des SSG les plus populaires, notés et filtrable selon divers critères (langage de programmation utilisé, licence, moteur template).

 

Retrouvez les 10 générateurs de sites statiques les plus populaires en 2019 (sur staticgen.com) :

Générateur de sites statiquesLangage de programmationLicenceMoteur templates
JekyllRubyMITLiquid
HugoGoApache 2.0Go
VuePressJavaScriptMITVue
PelicanPythonAGPL v3.0Jinja2
MetalsmithJavaScriptMITHandlebars, Any JS
MiddlemanRubyMITERB, Tilt, Haml
ExposeBashMITHTML
AssembleJavaScriptMITHandlebars
WintersmithCoffeeScriptMITJade
CactusPythonBSD 3-ClauseDjango

Conclusion

Il est vrai que les générateurs de sites statiques possèdent de bons arguments, particulièrement au niveau des performances. Ce point est d’ailleurs en enjeu majeur aujourd’hui puisque l’utilisateur souhaite pouvoir accéder rapidement au contenus en ligne. Il semble également que les grandes entreprises s’en préoccupent de plus en plus avec l’apparition d’applications lite ou même la création d’un moteur React Native permettant un affichage plus rapide sur des smartphones d’entrée de gamme.

 

S’ils sont encore méconnus du grand public, il semble que les SSG aient de plus en plus la côte auprès des développeurs. L’évolution de ces solutions ne risque donc pas de s’arrêter de sitôt ! Dans un avenir pas si lointain, les générateurs de sites statiques pourraient même s’inviter progressivement dans la création de sites web pour les entreprises.