La JAMStack est une architecture de développement web populaire depuis quelques années, qui consiste à compiler un site web dynamique sous forme de pages statiques, afin d'accélérer son rendu et donc d'améliorer l'expérience utilisateur.
Cette architecture permet notamment de simplifier la scalabilité des sites, puisque les pages statiques générées peuvent être hébergées par un CDN, et ainsi être délivrées de manière scalable et rapide tout autour du monde. Sur le plan de la sécurité, elle offre moins de points d'entrée aux attaquants, et empêche par exemple les attaques DDoS. Enfin, le coût de l'hébergement est réduit par rapport à une application web standard, puisque le coût des serveurs est remplacé par le seul coût du CDN.
JAM est l’acronyme de "JavaScript, APIs, Markup", qui correspond aux trois composantes clés d'un site en JAMStack : des pages HTML statiques ("Markup"), du code JavaScript pour l’aspect dynamique, et des APIs.
Pour mettre en place un site en architecture JAMStack, vous avez généralement besoin de 4 ingrédients :
un CMS headless pour éditer et servir le contenu dynamique (ex. : Contentful, Strapi...)
un générateur de sites statiques, pour générer vos pages à partir du contenu dynamique (ex. : Gatsby, Gridsome...)
une pipeline qui compile votre site à chaque changement de contenu ou modification de code (ex. : Gitlab CI/CD, Netlify Build...)
un CDN pour héberger votre site (ex. : Amazon CloudFront, Netlify Edge...)
Le blog que vous êtes en train de lire est construit sur les principes de la JAMStack :
les articles sont rédigés et hébergés sur Contentful ;
à chaque publication ou modification d’un article, Contentful appelle un webhook sur notre serveur de développement ;
notre serveur compile le site : en récupérant les articles via l’API de Contentful, les pages HTML sont générées ;
le site est uploadé sur Amazon S3 et Amazon CloudFront pour être servi aux lecteurs.
Si la JAMStack vous intéresse et que vous souhaitez poursuivre vos recherches à son sujet, voici quelques liens qui pourront vous intéresser :
La page dédiée à la JAMStack sur le site de Netlify, l'un des pionniers de cette architecture
Une explication colorée des avantages de cette architecture et de son histoire
Une liste de générateurs de sites statiques : staticgen.com
Une liste de CMS headless : headlesscms.org