Il y a quelques mois, j’ai migré mon site depuis Jekyll vers Gatsby. Aujourd’hui je viens de faire machine arrière et je suis retourné vers Jekyll.

Gatsby et Jekyll sont deux générateurs de sites statistiques bien différents. Voici donc mon petit retour d’expérience et mes explications sur ce choix.

La hype!

Pourquoi j’avais choisi Gatsby? Et bien, il faut se le dire, essentiellement par effet de mode.

Je code énormément en JavaScript. Si tu ne connais pas le monde JavaScript, tu dois savoir que tout évolue extrêmement vite. C’est a la fois ce qui fait que c’est excitant mais aussi épuisant à suivre. Cette évolution constante du JavaScript et cette grosse communauté fait que l’écosystème de plugin de Gatsby grossi très vite. Et beaucoup de choses intéressantes s’y passent. Je pense notamment à Gatsby Image.

L’excitation m’a poussé à choisir Gatsby, car j’avais envie je voulais retrouver cet écosystème dans mon petit site perso.

La philosophie de Jekyll est très différente de Gatsby.

La philosophie de Jekyll

Jekyll décrit sa philosophie en quatre points:

  1. No magic
  2. Just works
  3. Content is king
  4. Stabilty

No magic & Just works

Jekyll va choisir la simplicité la ou Gatsby va aller beaucoup plus loin dans la technologies utilisées.

Concrètement, Gatsby intègre React qui permet de découper ton site sous forme de composants. Par dessus ça, Gatsby va te proposer le Server Side Rendering (SSR) pour faire en sorte que tout soit compilé et que a la fin tu n’ai même plus besoin de JavaScript côté client. Et pour rajouter une couche, Gatsby intègre une abstraction GraphQL qui permet de récupérer et modéliser les données de ton site pour créer tes pages. Ça te paraît cool? Oui moi aussi.

Le problème c’est que ce que fait Gatsby lors du build extrêmement complexe. Et toute cette complexité est complètement démesurée pour un petit site comme le mien.

De l’autre côté, Jekyll ne propose pas de framework frontend, pas de language de requête. il propose juste un language de templating simple (Liquid) qui va convertir les pages en HTML, et c’est tout. Tout est fait en Ruby, et les plugins sont documentés. Alors oui, c’est moins fun, mais ça marche depuis des années.

Pour t’en rendre compte, le package-lock.json1 de mon site en Gatsby faisait plus de 40 000 lignes pour 1.6Mb alors que le Gemfile.lock2 fait actuellement 108 lignes.

Content is King

Avec Jekyll, il me suffit de lancer jekyll new et j’ai un template de site pour écrire un blog. Si j’ai besoin d’un design sympa, il en existe plein. Cela signifie que je peut obtenir un site fonctionnel en quelques minutes et commencer à écrire un article. Bref, me concentrer sur le contenu.

Avec Gatsby c’est plus compliqué. La courbe d’apprentissage est plus grande. Tu peux faire ce que tu veux mais tu dois découvrir cet outil.

Stability

La stabilité est vraiment ce qui m’a fait quitter Gatsby. Lorsque j’ai utilisé Gatsby, j’étais sous version 2. Aujourd’hui, Gatsby a sorti la version 3, et les breaking changes sont nombreux.

Alors oui, rien d’insurmontable, mais pour un petit site comme le mien ou je sort un article tous les 6 mois, je n’ai pas envie de devoir lire des changelogs pour publier un nouvel article.

Conclusion

Si je devait resumer mon choix, c’est choisir la technologie la plus ennuyeuse.

Ce que je veux dire par boring technology, c’est que Jekyll est mature et qu’il n’est plus amené à évoluer fondamentalement. Ce n’est plus un outils excitant mais il marche.

Jekyll a été un des premiers générateur de site statique et il est encore très present. Cela signifie que si tu te pose une question avec Jekyll, quelqu’un se l’est déjà posé.

Footnotes

  1. le fichier qui liste toutes les librairies a télécharger pour faire fonctionner le projet avec Node.js

  2. le fichier qui liste toutes les librairies a télécharger pour faire fonctionner le projet avec Ruby

Voir les autres articles liés