Le code source de ce site est disponible ici.
Comme l’indique le pied-de-page du site, ce dernier est construit avec :
- Hugo, un générateur de site web statique qui dispose d’une prise en main très simple, et
- Papermod, un thème pour ce dernier qui permet de produire des sites web élégants et particulièrement légers.
Mon but en choisissant ces technologies était de tenter d’endiguer à mon échelle l’un des nombreux cancers qui rongent internet, tout droit issu du paradoxe de Jevons : à mesure que la bande passante et les capacités des serveurs augmentent, on fait des sites optimisés avec le cul et reposant sur des couches d’abstractions empilées les unes sur les autres. Bien que ça crée de l’emploi dans le développement web et permette à de grandes entreprises d’avoir des sites web stylés avec des vues éclatées 3D de leurs produits qui s’animent quand on scrolle, ça fait surtout que l’Internet des années 2020s n’est pas vraiment plus rapide à l’usage que celui des années 2000s : une page met toujours plusieurs secondes à se charger et occupe toujours ~5% de mémoire vive sur votre machine, quand bien même la vitesse des connexions est passée de 56 kbps à 300 Mbps (×5000) et la quantité de RAM de 512 Mo à 32 Go (×64). Plus d’infos là-dessus à lire ici.
Pour illustrer un peu la puissance d’Hugo, le présent site pèse seulement 400 Ko et se génère en 50 ms ! Si ça vous intéresse pour votre site perso, n’hésitez pas à consulter la documentation d’Hugo, ainsi que leur page de thèmes. L’un des gros avantages d’Hugo est qu’il permet de ne pratiquement pas écrire d’HTML / CSS puisque tout se fait en Markdown. Il est aussi possible d’ajouter certaines fonctionnalités pour rendre le site un peu plus dynamique, telles qu’un formulaire de contact ou une section commentaire. Ça permet au final d’avoir un site minimaliste, mais à des années-lumières d’un WordPress et consorts en termes de temps de chargement. Pour savoir comment intégrer un formulaire de contact, n’hésitez pas à consulter le code source du site, ainsi que cette page.