🚀 Développer avec Astro
Astro a été retenu au terme d'un comparatif de huit candidats, qu'il termine en tête. La raison tient en une phrase : il produit du HTML complet par défaut, et n'ajoute du JavaScript que là où on le demande. C'est exactement le contraire de ce qu'on a aujourd'hui.
Cette page rassemble ce qu'il faut avoir en tête en écrivant du code. Les règles de qualité, elles, sont dans nos règles.
🧭 Les six principes
Chacun découle directement de nos objectifs. Aucun n'est une préférence de style.
🖥️ Les pages se fabriquent sur le serveur
Quand quelqu'un demande une page, elle est assemblée côté serveur et arrive complète. Le contenu est déjà là avant que le navigateur exécute la moindre ligne de JavaScript.
💡 C'est toute la raison du chantier. Les robots des moteurs génératifs n'exécutent pas de JavaScript : si le contenu n'arrive qu'après, ils voient une page blanche. On a mesuré le problème sur la production actuelle — aucune page testée ne montre son contenu sans JavaScript.
🏝️ L'interactivité arrive par petits îlots
Une page est faite de HTML immobile, dans lequel on place des zones interactives — une carte, un filtre, un formulaire. Seules ces zones embarquent du JavaScript, et seulement quand elles en ont besoin.
💡 Le reste de la page ne coûte rien à afficher. Sur un téléphone ancien avec une connexion lente, la différence n'est pas cosmétique : c'est la différence entre une page qui s'affiche et une page qu'on abandonne.
⏳ Un îlot ne se charge qu'au dernier moment
Chaque zone interactive dit quand elle veut s'activer : quand elle devient visible, quand le navigateur n'a plus rien d'autre à faire, ou immédiatement. On choisit toujours le plus tardif qui fonctionne.
💡 Une carte placée en bas de page n'a aucune raison de se charger tant que personne n'a descendu jusqu'à elle. Le chargement immédiat est un dernier recours, pas un défaut.
🔗 L'adresse porte l'état
Chaque combinaison de filtres, chaque page de résultats, chaque langue correspond à une adresse distincte. Rien d'important ne vit uniquement dans la mémoire du navigateur.
💡 Une recherche qui n'a pas d'adresse ne peut être ni partagée, ni mise en favori, ni indexée, ni retrouvée avec le bouton retour. Elle n'existe que pour la personne qui l'a faite, sur l'onglet où elle l'a faite.
🌍 Douze langues, gérées par Astro
Astro sait router par langue, générer les balises qui indiquent aux moteurs les versions équivalentes d'une page, et gérer les adresses par défaut. On n'installe rien de plus.
💡 Douze langues, trois pays, et des règles d'indexation qui diffèrent : les langues natives de chaque pays sont poussées à l'index, les autres restent servies mais désindexées, pour éviter d'être pénalisé sur des traductions approximatives.
🖼️ Les images passent par Astro
On ne sert jamais une image telle qu'elle a été déposée. Astro la convertit au bon format et à la bonne taille au moment de la fabrication.
💡 Nos images reprises pèsent lourd : un logo de 720 Ko, un visuel d'accueil de 276 Ko. Le poids des images est le premier poste d'un budget de performance, et c'est celui qui se règle le plus facilement.
⌨️ Au quotidien
Quatre réflexes qui évitent l'essentiel des erreurs qu'on peut faire avec ce genre d'outil.
| Réflexe | Pourquoi |
|---|---|
| 🚫 Pas de fenêtre ni de document pendant la fabrication | Le code qui assemble une page tourne sur un serveur, où le navigateur n'existe pas. Y appeler `window` ou `document` ne plante qu'une fois en ligne. Le linter refuse ces usages dans les composants. |
| 👀 Vérifier une page en coupant le JavaScript | Avant de considérer une page comme finie : désactiver JavaScript dans le navigateur et la relire. Si une information a disparu, elle était dans un îlot alors qu'elle devrait être dans le HTML. |
| 🧩 Un îlot sert à interagir, jamais à afficher | Un filtre, une carte, un formulaire : oui. Une liste de résultats, un horaire, une adresse : non. Si le lecteur doit pouvoir le lire, ça vient du serveur. |
| 📄 Une page = un fichier, une adresse | Astro construit les adresses à partir de l'arborescence des fichiers. C'est une contrainte utile : on trouve toujours la page qu'on cherche, et il n'y a qu'un endroit possible où la créer. |
⚠️ Le piège à connaître
Changer d'outil ne suffit pas. Passer à Astro règle la question du HTML complet, et c'est déjà beaucoup. Mais les données structurées, l'attribution de la source, le fichier qui autorise les robots, les plans du site et la qualité de ce qu'on écrit pèsent au moins autant dans le résultat final.
Autrement dit : on peut très bien faire un site Astro qui ne remonte pas mieux que l'actuel. L'outil enlève l'obstacle principal, il ne fait pas le travail à notre place. 🙂