Changer le thème

Qu'est-ce qu'Astro ? Zéro JS, architecture Islands et priorité au contenu en 3 minutes

Easton editorial illustration: one large content page with three isolated interactive islands

Il y a peu, j’ai monté un blog technique avec Next.js. Au build, le JavaScript a filé à 500 Ko — pour un site qui affiche surtout des articles en texte et images, pourquoi autant de JS ?

Dans Chrome DevTools, c’était pire : premier affichage ~3 s, alertes « JavaScript inutilisé ». J’ai commencé à me demander si React/Vue pour un site de contenu, ce n’était pas un peu excessif.

Puis Astro. L’idée est simple : la plupart des sites n’ont pas besoin de autant de JavaScript. Ça paraît radical ; en regardant l’architecture, ça tient la route.

À la fin de cet article, vous saurez ce que signifient les trois piliers (priorité au contenu, zéro JS par défaut, architecture Islands), en quoi Astro diffère de Next.js et React, et quand le choisir — ou non. Sans jargon inutile.

Pourquoi les frameworks « lourds » — et 500 Ko de JS pour un site statique ?

Reprenons le fonctionnement d’une SPA classique.

Avec React, le navigateur charge le runtime (~130 Ko), puis votre code, puis l’hydratation : le HTML statique devient des composants interactifs. Logique — sauf que sur une page d’article, 90 % du contenu est du texte et des images sans interaction : pourquoi tout ce JS ?

Une statistique frappante : en moyenne, 60 % des ~500 Ko de JS d’une SPA ne servent à rien. Vous attendez 3 s pour charger du code qui « dort ».

Le décalage est clair : site de contenu vs application très interactive. Un éditeur collaboratif a besoin de beaucoup de JS ; une page produit, vraiment ?

Astro part de là : ne pas envoyer de JS par défaut.

Pilier 1 : priorité au contenu (Content-Focused)

Ce n’est pas « écrivez plus », c’est une philosophie : le cœur du site, c’est montrer du contenu, pas une logique applicative complexe.

Astro distingue :

  • Présentation : blog, docs, corporate, fiche produit
  • Application : collaboration, back-office, chat, formulaires lourds

Astro vise la première catégorie. Next.js peut faire un blog — comme un tank pour les courses.

Citic Bank a une plateforme de métadonnées niveau finance avec Astro ; migration depuis Next.js : −90 % de JS, +30 % de performance (cas documenté).

"Citic Bank a une plateforme de métadonnées niveau finance avec Astro ; migration depuis Next.js : volume JS −90 %, performances +30 %."

- Cas réel Citic Bank

Si le site montre surtout texte, images, vidéo, la plupart des pages restent du HTML statique, rapide et SEO-friendly. Seuls les blocs interactifs (commentaires, recherche) chargent du JS.

L’architecture sert le contenu, pas l’inverse.

Pilier 2 : zéro JavaScript par défaut (Zero JS by Default)

« Zéro JS par défaut » ne veut pas dire « pas de framework moderne », mais aucun JS envoyé au client sauf si vous l’ajoutez.

Next.js (SSG/SSR) envoie souvent React + vos composants pour une hydratation complète — même pour un paragraphe de texte.

Astro : HTML statique pur d’abord. Vous marquez les composants qui ont besoin de JS.

Même site de docs : Next.js ~150 Ko de JS minimum ; Astro parfois 11 Ko, Lighthouse 99.

Un carrousel ? Marquez le composant ; le reste reste statique.

Pas d’interdiction du JS : JS là où c’est utile. Dix modules, neuf statiques → un seul charge du JS.

Pilier 3 : architecture Islands

Imaginez un océan de HTML statique avec quelques îles interactives.

L’océan charge vite sans JS ; chaque île charge son JS sans bloquer les autres.

Le concept vient de Katie Sylor-Miller (Etsy, 2019), popularisé par Jason Miller (Preact). Astro l’a industrialisé tôt.

Techniquement : hydratation partielle — pas tout le virtual DOM, seulement les composants marqués interactifs.

Exemple page d’article :

  • Titre et corps (statique)
  • Table des matières (statique)
  • Commentaires (interactif)
  • Boutons de partage (interactif)

Un framework classique hydrate tout ; Astro hydrate commentaires et partage. TTI jusqu’à −300 %.

Directives utiles :

  • client:load — dès le chargement (interaction critique)
  • client:idle — quand le navigateur est inactif
  • client:visible — à l’affichage (carrousel, vidéo)

Chaque île est indépendante : commentaires lents ≠ partage bloqué.

L’architecture Islands, c’est le « chargement à la demande » poussé au maximum.

Trois philosophies de construction web

1. React / Vue / Svelte purs — client lourd

Le navigateur est le runtime ; interactions fluides, gros JS.

  • Pour : SaaS, éditeurs, formulaires complexes
  • Exemples : Figma, Notion, Google Docs

2. Next.js / Nuxt — plateforme full stack

SSR/SSG + hydratation + API : « plateforme complète ».

  • Pour : e-commerce complexe, social, données fréquentes
  • Exemples : Netflix, TikTok, Hulu

3. Astro — contenu d’abord

HTML statique par défaut + JS à la demande.

  • Pour : blog, docs, corporate, landing, vitrine produit
  • Atouts : JS −83 à −90 %, SEO, vitesse
CaractéristiqueAstroNext.jsReact seul
Volume JSTrès faible (dès 11 Ko)Plus lourd (dès ~150 Ko)Lourd (dès ~130 Ko)
Courbe d’apprentissageFaible (proche JSX)Moyenne (SSR)Faible
FrameworkAgnostiqueReact onlyReact only
Cas d’usageContenuFull stackInteraction forte
SEOExcellent (HTML statique)Bon (SSR)Faible (config extra)
Premier affichageLe plus rapideRapidePlus lent

Astro est agnostique : React, Vue, Svelte, même projet mixte. Il ne remplace pas React ; il permet de ne l’utiliser que quand il le faut.

Quand choisir Astro — et quand éviter

✅ Bien adapté :

  1. Blog, documentation

    • Texte et images, peu d’interaction (commentaires, recherche)
    • SEO important
  2. Site corporate, landing

    • Présentation produit/service
    • Vitesse = conversion
    • Contenu relativement fixe
  3. Fiche produit e-commerce

    • Vitrine, pas panier/checkout complet
    • SEO produits
  4. Portfolio, page perso

    • Projets et compétences
    • Simple et rapide

❌ Moins adapté :

  1. Apps très interactives

    • Collaboration type Figma/Miro
    • Tableaux de bord temps réel
    • Back-office lourd
  2. Temps réel

    • Chat, bourse, co-édition live
    • Astro excelle en statique, pas en flux live
  3. SPA pure sans SEO

    • React/Vue directement suffisent

Test rapide :

  1. Contenu ou interactions complexes ?
  2. Le site reste-t-il lisible sans JavaScript ?

« Contenu » + « oui » → Astro probablement. « Interaction » + « non » → Next.js ou SPA.

Débutant : courbe d’apprentissage

Syntaxe familière.astro proche de JSX/Vue. Contenu aussi en .md, .jsx, .vue, mix possible.

ThèmesMarché Astro : blog, docs, portfolio ; personnalisation rapide.

Dev — Vite + Esbuild, HMR rapide.

DocsDocumentation officielle claire, communauté active.

Pour un blog ou une doc, Astro est souvent le chemin le plus court : peu de config, routing simple.

Conclusion

Les trois piliers :

  1. Priorité au contenu — architecture au service du message
  2. Zéro JS par défaut — JS seulement où il sert
  3. Architecture Islands — îles interactives, hydratation ciblée

Expérience de framework moderne, performances proches du HTML pur : composants, HMR, TypeScript — avec la vitesse du statique.

Blog, docs, corporate, landing : essayez Astro. Ce n’est pas universel ; sur son terrain, c’est très efficace.

Astro n’interdit pas le JS : il évite de vous imposer tout le runtime. Interactif là où il faut — pas partout.

Pour commencer : astro.build et le marché de thèmes. Testez.

FAQ

Qu'est-ce qu'Astro ? En quoi diffère-t-il de Next.js et React ?
Astro est un framework frontend orienté contenu : zéro JS par défaut et architecture Islands pour des performances de blog jusqu'à 3× meilleures.

Différences clés :
• Volume JS : Astro très faible (dès 11 Ko), Next.js plus lourd (dès ~150 Ko), React seul encore plus (dès ~130 Ko)
• Cas d'usage : Astro pour sites de contenu (blog, docs, corporate), Next.js pour apps full stack, React seul pour interactions complexes
• Architecture : Astro agnostique (React/Vue/Svelte), Next.js et React = React only
• SEO : Astro excellent (HTML statique), Next.js bon (SSR), React seul faible (config supplémentaire)
Quels sont les trois piliers d'Astro ?
1) Priorité au contenu (Content-Focused) :
• Conçu pour les sites de présentation
• L'architecture sert le contenu, pas l'inverse

2) Zéro JS par défaut (Zero JS by Default) :
• Aucun JavaScript envoyé au client par défaut
• JS ajouté uniquement où c'est nécessaire
• Volume JS réduit de 83 à 90 %

3) Architecture Islands :
• Îles interactives dans un océan HTML statique
• Hydratation indépendante, sans blocage mutuel
• TTI (temps jusqu'à l'interactivité) jusqu'à −300 %
Pour quels types de sites Astro convient-il — ou non ?
Convient :
• Blog perso, documentation, site corporate, landing, fiche produit e-commerce, portfolio
• Surtout affichage, peu d'interaction, besoin SEO

À éviter :
• Apps web très interactives (collaboration en ligne, tableaux de bord complexes, back-office)
• Apps temps réel (chat, bourse)
• SPA pure

Test : deux questions :
1) Le site montre surtout du contenu ou offre des interactions complexes ?
2) Sans JavaScript, le site reste-t-il utilisable ?
Si réponse « contenu » + « oui », Astro convient probablement.
Astro est-il difficile à apprendre pour un débutant ?
Courbe d'apprentissage faible, très accessible.

1) Syntaxe familière :
• Fichiers .astro proches de JSX/Vue
• Si vous connaissez React ou Vue, prise en main rapide

2) Formats multiples :
• Contenu en .md, .jsx, .vue
• Mélange possible dans un même projet

3) Thèmes prêts à l'emploi :
• Marché de thèmes : blog, docs, portfolio
• Texte et couleurs ajustés, mise en ligne en ~30 min

4) Expérience de dev fluide :
• Vite et Esbuild, démarrage et HMR rapides

5) Documentation :
• Docs officielles claires
• Tutoriels et vidéos dans la communauté
Quelles performances en pratique ? Des exemples ?
Excellentes en pratique.

Données comparatives :
• Même site de docs : Next.js ~150 Ko de JS minimum
• Astro parfois 11 Ko ou moins
• Lighthouse performance jusqu'à 99

Cas réel :
• Citic Bank a construit une plateforme de métadonnées niveau finance avec Astro
• Migration depuis Next.js : volume JS −90 %, performances +30 %

En moyenne, 60 % du JS (~500 Ko) des SPA classiques n'est pas utilisé ; Astro n'hydrate que les composants marqués interactifs.
Que signifie l'architecture Islands ? Quels avantages ?
Architecture Islands : imaginez un océan de HTML statique avec quelques « îles » interactives.

Implémentation :
• Océan (statique) : chargement très rapide, sans JS
• Îles (interactif) : chacune charge son JS, sans se gêner
• Hydratation partielle : seuls les composants marqués interactifs
• Pas d'hydratation complète du virtual DOM comme les frameworks classiques

Avantages :
1) TTI jusqu'à −300 %
2) Directives d'hydratation pour contrôler le chargement JS :
• client:load — immédiat
• client:idle — quand le navigateur est inactif
• client:visible — quand visible à l'écran
3) Chaque île rendue indépendamment : un commentaire lent n'empêche pas le bouton partager

6 min de lecture · Publié le: 2 déc. 2025 · Mis à jour le: 27 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog