Studio · Guide technique
Headless CMS :
derrière le terme technique.
"Headless" est partout dans les conversations sur l'architecture web moderne. Voici ce que ça veut dire concrètement, pourquoi c'est pertinent pour votre site, et comment ça s'articule avec une stack Astro + Grav.
La définition
CMS traditionnel (WordPress)
Le CMS gère à la fois le contenu et l'affichage. Il stocke vos articles, et il génère aussi les pages HTML avec ses templates PHP. Le contenu et la présentation sont couplés — vous ne pouvez pas facilement utiliser ce contenu ailleurs.
Headless CMS
Le CMS gère uniquement le contenu. Il n'a pas de "tête" — pas de système de templates, pas de rendu HTML. Il stocke et expose les données via une API. C'est le frontend (Astro) qui décide comment afficher ce contenu.
La métaphore : un CMS traditionnel est comme un restaurant où la cuisine et la salle sont dans le même bâtiment — tout est couplé. Un headless CMS est comme une cuisine centrale qui prépare les plats et les livre à plusieurs restaurants différents — chacun les présente à sa façon.
Les deux grandes familles de headless CMS
Headless CMS API-first (SaaS)
Contentful, Sanity, Prismic, Storyblok… Votre contenu est hébergé sur leurs serveurs. Votre site le récupère via une API au moment de la compilation ou à la requête. Puissant, mais avec un abonnement mensuel (souvent 100–500 €/mois pour les plans pro) et une dépendance à une infrastructure tierce.
Headless CMS flat-file (auto-hébergé)
Grav, Kirby, Statamic… Le CMS est hébergé avec votre site. Les contenus sont des fichiers texte (Markdown + YAML) — pas de base de données. Moins spectaculaire sur le papier, mais autosuffisant, sans abonnement et sans dépendance à un service tiers. C'est l'approche que j'utilise.
Pourquoi headless pour un site vitrine
Le contenu est découplé du design
Vous modifiez un texte dans le CMS — le CMS ne touche pas au HTML, au CSS, au layout. Il met à jour un fichier de contenu. Astro recompile et génère les pages avec le nouveau contenu. Le design reste intact parce qu'il est dans le code, pas dans le CMS.
Le frontend est optimisé indépendamment
Astro peut générer des pages statiques ultra-performantes sans être contraint par les limitations techniques du CMS. WordPress génère du HTML via PHP à chaque requête — une contrainte qu'Astro n'a pas.
Le contenu peut être utilisé partout
Vos contenus Grav sont des fichiers Markdown + YAML versionnables avec Git. Demain, si vous changez de framework frontend, vous migrez les fichiers — pas une base de données avec 400 tables.
Comment Grav s'intègre dans la stack Astro
Grav est un CMS flat-file PHP. Il expose une API JSON que je connecte à Astro au moment de la compilation. Astro récupère les contenus, génère les pages HTML, et les déploie en statique. Grav reste comme interface d'administration — vous éditez vos pages depuis son interface web, déclenchez un rebuild, et le site est mis à jour en quelques secondes.
Grav
Interface d'admin · Stockage des contenus · API JSON · Gestion des utilisateurs
Astro
Récupère les contenus · Génère le HTML · Optimise les assets · Déploie en statique
Votre hébergeur
Sert les fichiers HTML statiques · Netlify, Vercel ou hébergement classique
Quand le headless n'est pas nécessaire
Pour un site très simple — une page de présentation, un portfolio de 5 pages, un site sans mise à jour fréquente — le contenu peut être directement dans les fichiers Astro en Markdown. Pas de CMS, pas d'interface d'admin, juste des fichiers que vous éditez. C'est encore plus simple et encore plus rapide à mettre en place. Le headless CMS n'a de sens que si vous avez besoin d'une interface d'édition pour des non-développeurs.
Pour aller plus loin
L'interface d'édition concrète, champ par champ, sans WYSIWYG libre.
Comment fonctionne la génération statique et pourquoi c'est important pour les performances.
Les limites concrètes de WordPress et la stack qui les résout.
Vous voulez un backoffice headless sur votre site ?
Décrivez votre projet et votre stack actuelle. Je vous dis si Grav est adapté à votre cas et comment l'intégrer.
Discuter de mon projet