Qu’est-ce que c’est ?
Hugo est un générateur de site statique open-source écrit en Go. Il permet de créer des sites web rapides et performants sans avoir besoin d’une base de données ou d’un serveur dynamique. Hugo est particulièrement apprécié pour sa simplicité d’utilisation, sa flexibilité et sa rapidité de génération.
Pourquoi choisir Hugo ?
J’applique un principe fondamental dès qu’il s’agit de choisir un outil : KISS (Keep It Simple, Stupid). Hugo s’appuie sur du markdown pour la rédaction de contenu, c’est un format que j’apprécie déjà pour la documentation technique. Les commandes pour build, déployer ou ajouter du contenu pré-formaté sont d’une simplicité enfantine, ce qui me permet de me concentrer sur la création de contenu plutôt que sur la configuration de l’outil.
Enfin, Hugo est largement supporté par la communauté et peut être déployé partout facilement : Github Pages, Netlify, AWS/GCP/Azure, etc.
Pour ma part j’ai choisi de m’appuyer sur Cloudflare Pages pour héberger mon site.
Convaincus ? Alors passons à la pratique !
Créer son premier site
Pré-requis :
- Go & Git installés sur votre machine
Je ne m’attarderai pas sur l’installation de Go et Git, il existe de nombreux tutoriels en ligne pour cela. Assurez-vous simplement d’avoir les dernières versions installées.
Installer Hugo
go install github.com/gohugoio/hugo@latest
hugo version
Vous devriez obtenir quelque chose de la sorte :
hugo v0.160.1-d6bc8165e62b29d7d70ede01ed01d0f88de327e6+extended windows/amd64 BuildDate=2026-04-08T14:02:42Z VendorInfo=gohugoio
Créer un nouveau projet
hugo new site mon-site
cd mon-site
Architecture
Voici l’architecture de base d’un projet Hugo :
mon-site/
├── archetypes/ # modèles de contenu
├── content/ # fichiers de contenu (articles, pages, etc.)
├── data/ # données structurées (YAML, JSON, etc.)
├── layouts/ # templates pour le rendu
├── static/ # fichiers statiques (images, CSS, JS)
├── themes/ # thèmes pour le design
├── config.toml # configuration du site
└── ... # autres fichiers et dossiers
Lancer le serveur de développement
hugo server
Félicitations, votre site est désormais accessible via http://localhost:1313
Configuration Git
Initions un nouveau dépôt Git et poussons notre projet sur GitHub (ou toute autre plateforme de votre choix) :
git init
git remote add origin https://github.com/<your-gh-username>/<repository-name>
git branch -M main
git push -u origin main
Personnalisation
Ajouter un thème
Il existe une multitude de thèmes disponibles sur Hugo Themes. Pour en ajouter un à votre projet, suivez les instructions spécifiques à chaque thème.
En ce qui me concerne j’ai choisi le thème PaperMod, que j’ai personnalisé pour répondre à mes besoins.
Voyons ensemble comment l’installer et le configurer
cd mon-site
git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
git submodule update --init --recursive # needed when you reclone your repo (submodules may not get cloned automatically)
NB: Bien que je ne sois pas un grand fan de Git Submodules, c’est la méthode recommandée par les auteurs du thème pour l’installation et la mise à jour.
Dernière étape, il faut indiquer à Hugo d’utiliser ce thème en modifiant le fichier config.toml :
theme: PaperMod
C’est terminé, un petit coup de hugo server et vous devriez voir votre nouveau thème en action !
On déploie ?
Ce n’est pas tout de faire tourner son projet en local, encore faut-il le rendre accessible au monde entier !
J’ai déjà parlé brièvement de l’hébergement sur différentes plateformes plus tôt dans l’article. Pour ma part j’ai choisi de m’appuyer sur Cloudflare Pages, qui offre une intégration transparente avec GitHub et une configuration très simple.
J’ai quelques projets d’articles autour de Cloudflare en tête donc autant commencer à m’y familiariser dès maintenant !
Hébergement
Là encore c’est très simple et je trouve la documentation officielle d’Hugo très bien faite à ce sujet : Hugo Deployment.
Si vous suivez scrupuleusement les étapes votre site devrait être en ligne en quelques minutes seulement !