J'ai refait mon site avec Zola 🍾

Do or do not, there is no try.Yoda, CTO at Jedi inc.

Petit historique auto-critique

On dit que les cordonniers sont les plus mal chaussés n'est-ce pas ? Et bien les développeurs web n'ont pas les meilleurs sites webs…
Cela fait plus de 15 ans que j'ai un site internet pour faire la promotion de mon activité, au départ c'était essentiellement de l'illustration et des prestations de graphiste, mais progressivement j'ai appris à coder proprement, appris le SEO, affûté ma culture de l'UX/UI.

En 2018 j'ai revu mon identité graphique avec des couleurs bien pêchues, pour sortir de mes habitudes de discrétion maladive.
Jaune / Noir : ça claque, et c'est accessible.

Voici le design juste avant celui que vous avez sous les yeux :

Screenshot de gil-web.com en 2018

J'ignore quelle mouche m'a piqué (enfin, si je sais : la flemme, le manque de temps), mais j'avais trouvé que c'était un bon point pour l'UX d'avoir un menu de forme différente en homepage et en sous-page… Et j'ai laissé cette abomination en ligne des années. 💩

Screenshot d'une sous-page de gil-web.com en 2018

😓 Pardon.

Choix technique

J'ai toujours fait mes sites porfolio en HTML/CSS pur, pour des questions de performances et de simplicité. Et aussi parce que je n'avais pas de contenu dynamique.
Aujourd'hui j'ai envie de causer, de partager des connaissances, des anecdotes, des dessins. Besoin d'un blog quoi.

Bien que je maîtrise parfaitement le CMS Wordpress pour la réalisation de blogs, solution très demandée par mes clients, et que j'arrive à obtenir d'excellentes performances (en faisant des thèmes from scratch), je trouve que c'est une solution très lourde, une véritable usine à gaz PHP, qui plus est, peu sécurisée par défaut (et étant très populaire, les attaquants sont très nombreux).

Pour moi qui prône l'éco-conception, il était hors de question d'utiliser une usine à gaz pour afficher quelques pages web. Je mets un point d'honneur à optimiser toutes mes réalisations, à rester frugal sur l'utilisation des milliers d'outils web disponibles.

Zola c'est le mec qui a écrit des gros livres non ?

Oui, aussi !
Mais Zola c'est également le nom d'une application pour générer des sites statiques.

Aujourd'hui il existe des alternatives aux CMS pour réaliser des sites vitrine ou blogs, plutôt que de fabriquer les pages à la demande (en PHP ou autre), du HTML est construit et mis en ligne. Autour de ces solutions on peut ajouter un outil pour faciliter l'administration (qui se fait généralement avec des fichiers Markdown, pas aussi ergonomique qu'un WYSIWYG pour un néophyte), gérer les formulaires, ou autres fonctionnalités qui demandent plus qu'un simple affichage.
On parle de jamstack, et ce site liste un grand nombre de projets de ce type.

Emile Zola contre Victor Hugo

Pourquoi avoir choisi Zola ? Et bien déjà par conviction personnelle, j'ai écarté toutes les solutions à base de JavaScript ou TypeScript, pour moi le JS est un monstre qu'il faudrait enterrer au plus vite, et le TS est une surcouche très rigoureuse mais… qui se compile en… JS. Vraiment, ça me bloque.
Bien que je parle Python couramment, j'estime que la rapidité d'exécution et la puissance de calcul (écologie, tout ça…) est un facteur important.
Ça élimine beaucoup de candidats, et donc on sent bien qu'on va se rapprocher des langages compilés. Deux ont bien la côte : Golang et Rust.

Mais j'ai tout de même opté pour Zola, qui est codé en Rust, parce que :

🤩 Moi quand je vois ça, ça me rassure :

Langages utilisés dans Zola

Bilan : Zola, oui, c'est bien

Je suis arrivé à mes fins, et je suis plutôt content de l'outil, malgré tout de même quelques galères : la documentation est très laconique, et il n'y a pas des tonnes de forums sur le sujet, donc j'ai parfois dû aller chercher des exemples ou regarder dans le code source.
Un jour je testerai Hugo, son concurrent en Golang, pour me faire une idée.

Si cela peut vous aider, le code source de mon site est disponible sur mon Github.
Si vous débutez avec Zola, gardez la doc de Tera sous le coude, et pensez à logger les variables, ça aide énormément ({{__tera_context}}) !

‹‹ Revenir à la liste des articles