Les CMS encore présents en nombre dans la gestion des blogs, site vitrine ou même site e-commerce commencent à voir débarquer de plus en plus des sites statiques qui surfent sur le mouvement JAM stack. Mais une JAMstack c'est quoi ? Est-ce que je peux développer mon site avec cette technique ? Et au final, pour un SysAdmin, ça change quoi ?

Un peu d'histoire 🦕

Depuis maintenant plusieurs années, la "stack" ( comprendre la pile de service nécessaire à l'éxecution d'une tâche ) web classique est très clairement la suivante : Linux/Apache/Mysql/Php ou encore Windows/Apache/Mysql/Php ( pour les néophytes ces deux stacks sont le plus souvent appelées : LAMP et WAMP ).

Au final quand je souhaite appeler une page web, celle-ci est générée côté serveur avant d'être envoyée à mon navigateur :

Génération d'une page en JAMstack : Crédit https://jamstatic.fr/2017/03/16/5-raisons-de-tester-la-jamstack

Mais voilà, toi qui passe par ici, tu as pour passion le monde informatique. Les technologies évoluent et avec elles notre façon de travailler. Pourquoi installer wordpress et toutes ces fonctionnalités pour un site vitrine ? Et même pour un blog ( comme celui-ci 😃 ) sans prétention ? J'ai vraiment besoin de payer mon hébergement pour ça ?

La JAMstack essaye de répondre à ces besoins.

Développement statique

Ok mais que se cache t-il derrière le mot JAMstack :

  • JavaScript : Langage de programmation dynamique, il est exécuté entièrement côté client.
  • API : Plus de base de données en direct, on réalise des appels HTTP pour récupérer ou envoyer des informations depuis le navigateur client.
  • Markup : Le HTML est pré-généré ( c'est lui qui est statique ! )

Bien sûr, le terme statique pourrait nous laisser croire que ces sites sont figés dans le marbre et qu'aucune interaction n'est possible. Mais ce mot est surtout là pour rappeler que côté serveur, les pages ne sont plus générées de façon dynamique.

Génération d'une page en JAMstack : Crédit https://jamstatic.fr/2017/03/16/5-raisons-de-tester-la-jamstack

Si on résume, on diffuse des pages pré-compilées via un CDN ( un serveur devient moins utile car la diffusion de vos pages ne nécessitent plus de ressources serveurs ). Qui vont intéragir avec des API ( par exemple pour vos formulaires ) au travers de script Javascript.

Ok mais pourquoi utiliser une JAMstack ?

En fait il peut y avoir plusieurs raisons à cela, et ces arguments vont combler aussi biens les développeurs que les SysAdmins ( vous commencez à comprendre la popularité du mouvement ! 😉 ) :

  • Les performances : Pas d'attente de construction de la page pour l'utilisateur final, comment faire plus rapide ?
  • La sécurité : Plus de base de données, plus de modules pour gérer ceci ou cela sur votre CMS favori. Les interactions sont gérées au travers d'API... Bref votre site devient une vraie forteresse inviolable.
  • Un développement facilité : On sépare complètement la partie CMS et développement du front. On va distinguer le contenu ( votre front ), du gestionnaire de contenu ( CMS ). Il existe également de plus en plus de CMS headless qui vont diffuser leurs contenus sur des API ( Même wordpress permet d'accèder au contenu via une API REST ).

Enfin je terminerai par un point de vue complétement "DevOps" :

  • Votre pipeline CI/CD facilité :

Une des bases du développement en JAMstack, c'est l'utilisation d'un dépôt Git. Ce qui veut dire bien des choses dont en autres : versionning, roll back simplifié, utilisation des pipelines CI/CD de Git, etc.

Bref ça facilite grandement la vie pour l'intégration continue de son site.


De nombreux outils existent déjà afin de générer vos sites et vous faciliter la vie. Les plus connus pour le moment étant Gatsby, Jekyll et Hugo. Il existe également de nombreux CMS headless comme Forestry pour faciliter l'édition du contenu dans les dépôts Git. Bref le mouvement a quelques années maintenant et semble parfaitement mature.

N'étant absolument pas un développeur, j'essaierai tout de même dans mes prochains articles de vous relater mes essais sur Gatsby afin de réecrire ce blog avec un procédé JAMstack !