Jamstack est une architecture web moderne où les pages sont pré-générées (pre-rendered) au moment du build et servies depuis un CDN. Pas de serveur dynamique à chaque requête — le contenu est STATIC et affiché instantanément. Résultat : TTFB < 100ms, Lighthouse score > 90, SEO amélioré.
Jamstack = JavaScript + API + Markup. Les composantes : (1) Pre-rendering — les pages HTML sont générées au build time (au moment du déploiement) via des générateurs statiques (Hugo, Jekyll, Next.js, Astro, Nuxt), (2) CDN delivery — les fichiers HTML pré-générés sont déployés sur un CDN (Netlify, Vercel, Cloudflare Pages) et servis depuis le serveur le plus proche du visiteur, (3) Dynamic via APIs — les fonctionnalités dynamiques (panier, commentaires, recherche) sont obtenues via des APIs client-side (Stripe, Disqus, Algolia). Cette architecture élimine les goulots d'étranglement des serveurs dynamic — pas de database query, pas de template rendering à chaque requête.
Jamstack, c'est comme un restaurant qui prépare tous ses plats à l'avance et les garde au chaud. Quand le client arrive, le plat est prêt en 30 secondes — pas besoin de commencer à cuisiner. Le restaurant peut servir 1000 clients/heure sans s'effondrer. Le problème : si le client veut un plat qui n'est pas au menu (personnalisé), il faut le préparer à la demande — c'est là que les APIs entrent en jeu.
Les SSG (Hugo, Jekyll, Astro, Next.js) génèrent du HTML statique à partir de templates et de contenu. Hugo est le plus rapide (génère 10K pages en 10 secondes), Astro le plus flexible (support React, Vue, Svelte), Next.js le plus populaire (React framework). Le contenu peut venir de : fichiers Markdown, CMS headless (Contentful, Sanity), ou bases de données. Le build est déclenché à chaque déploiement — nouveaux contenus = rebuild.
Les fichiers pré-générés sont déployés sur le CDN le plus proche du visiteur. Chaque fichier est un fichier statique — pas de computation au moment de la requête. Résultats mesurés : TTFB moyen < 50ms (vs 200-500ms pour un serveur dynamic), Time to First Byte < 100ms sur tous les continents. Les CDNs modernes (Cloudflare, Netlify) offrent aussi : (1) Incremental Static Regeneration (ISR) — mises à jour partielles sans rebuild complet, (2) On-demand Revalidation — purge du cache quand le contenu change.
Les fonctionnalités dynamiques sont implémentées via des appels API côté client. Exemples : (1) E-commerce — Stripe pour les paiements, Algolia pour la recherche, (2) Commentaires — Disqus ou Hyvor, (3) Formulaires — Formspree ou Netlify Forms, (4) Auth — Auth0 ou Firebase. Cette séparation permet de garder les avantages de la performance statique tout en ayant des fonctionnalités dynamiques. L'inconvénient : plus de JavaScript côté client, ce qui peut impacter les performance sur mobile.
Site média avec WordPress (TTFB 800ms, Lighthouse 45). Migration vers Astro + Contentful : (1) Pages générées au build (10K articles en 45s), (2) Deploy sur Netlify (CDN global), (3) Recherche via Algolia, commentaires via Disqus. Résultat : TTFB 35ms (-96%), Lighthouse 94 (+49 points), traffic organique +25% (amélioration du ranking grâce aux Core Web Vitals), coût hébergement 80$/mois → 0$ (Netlify free tier).
| Métrique | Valeur |
|---|---|
| TTFB Jamstack typique | < 100ms |
| TTFB WordPress typique | 500-1000ms |
| Lighthouse score moyen Jamstack | 90-100 |
| Hugo build speed | 10K pages en 10 secondes |
| Coût hébergement Jamstack | 0$ (Netlify/Vercel free) |