🧱 Ce qu'on récupère, ce qu'on branche
On ne part pas d'une page blanche. Une partie de ce qui fait Soliguide existe déjà et mérite d'être reprise : les couleurs, les icônes, les logos, la mesure d'audience. Le reste, ce sont des outils tiers qu'on branche sur Astro.
La question à se poser à chaque fois est la même : est-ce qu'on copie, ou est-ce qu'on pointe vers la source ? Une copie devient fausse dès que l'original bouge. Un lien vers la source ne peut pas mentir, mais crée une dépendance. Le bon choix dépend de la vitesse à laquelle la chose évolue.
♻️ Ce qu'on récupère de l'existant
Six briques, avec pour chacune la façon dont elle arrive ici et l'état d'avancement.
🎨 Les couleurs et les tailles
en placeVient de : Figma officiel Soliguide
Les 502 valeurs qui définissent l'identité visuelle : couleurs, arrondis, espacements, polices.
➡️ Exportées depuis Figma vers un fichier qu'on ne modifie jamais à la main. Un second fichier les traduit pour DaisyUI.
🎯 Les icônes de catégories
en placeVient de : packages/taxonomy de l'ancien dépôt
140 icônes qui représentent les besoins — un repas, une douche, un accompagnement — générées à partir de dessins vectoriels.
➡️ Récupérées par une commande qui va chercher la version produite là-bas. Le générateur, lui, reste dans l'ancien dépôt tant que la taxonomie n'a pas été réorganisée.
🖼️ Les logos et visuels
en placeVient de : Ancien dépôt et boîte à outils
Le logo Soliguide, les visuels d'accueil de chaque pays, et les logos des organisations partenaires.
➡️ Copiés et rangés par pays. On a laissé de côté ce qui ne servait plus, et noté ce qui reste beaucoup trop lourd.
📊 La mesure d'audience
à faireVient de : Module Angular de common-angular
PostHog, avec son service, son module et un intercepteur qui ajoute l'identifiant de la personne aux appels.
➡️ À refaire ici sans Angular. Doit rejoindre le socle commun plutôt qu'être recollé dans chaque application — sinon on se retrouvera avec trois intégrations légèrement différentes.
🐞 Le suivi des erreurs
à faireVient de : Toutes les applications actuelles
Sentry, déjà présent sur le site, sur la web-app et sur l'API.
➡️ Une intégration Astro officielle existe. On reste sur l'outil que l'équipe connaît plutôt que d'en apprendre un nouveau.
📦 Le modèle de données
à faireVient de : packages/common de l'ancien dépôt
La description des lieux, des structures, des catégories, des horaires — 529 fichiers, modifiés en moyenne tous les deux jours.
➡️ Volontairement PAS recopié. On passe par le contrat de la nouvelle API publique, qui décrit les mêmes données de façon stable et versionnée. Copier ce modèle reviendrait à le voir diverger dès la première semaine.
🧰 Les outils tiers qu'on branche
Chaque ligne part d'un besoin réel, pas d'un catalogue. On a d'abord regardé ce que les applications actuelles utilisent, puis ce que nos objectifs réclament, et seulement ensuite ce qu'Astro propose pour y répondre. 5 à retenir,3 à étudier, 2 écartés.
| Besoin | Ce qu'on branche | Verdict | Pourquoi |
|---|---|---|---|
| Rendu serveur Fabriquer les pages sur un serveur, pour que le HTML contienne le contenu avant même que le navigateur exécute quoi que ce soit. | @astrojs/node | ✅ à retenir | C'est la raison d'être du chantier. Sans rendu serveur, on refait ce qu'on veut justement quitter. |
| Plan du site Donner aux moteurs de recherche la liste de nos pages. | @astrojs/sitemap | 🤔 à étudier | L'intégration génère un plan à partir des pages du projet. Mais nos fiches sont des dizaines de milliers, servies depuis la base — l'API produit déjà des plans régionaux. Il faut décider qui fait quoi avant de brancher. Déjà en place : L'API produit déjà des plans par région, avec un défaut de cache connu. |
| Suivi des erreurs Être prévenu quand une page casse chez un visiteur, avec assez d'informations pour comprendre. | @sentry/astro | ✅ à retenir | Sentry est déjà utilisé partout : sur le site actuel, sur la web-app et sur l'API. Il existe une intégration Astro officielle, on reste donc sur l'outil que l'équipe connaît. Déjà en place : @sentry/angular sur le site, @sentry/sveltekit sur la web-app, @sentry/node sur l'API. |
| Mesure d'audience Comprendre ce que les gens cherchent et où ils abandonnent, pour améliorer le produit. | posthog-js | ✅ à retenir | PostHog est déjà en place. Aujourd'hui son intégration vit dans un module Angular de common-angular : un service, un module et un intercepteur qui ajoute l'identifiant utilisateur aux appels. Tout cela est à refaire ici, sans Angular. Déjà en place : posthog-js sur la web-app, posthog-node sur l'API, et un module Angular dans common-angular. |
| Scripts tiers isolés Empêcher les scripts de mesure de ralentir l'affichage. | @astrojs/partytown | 🤔 à étudier | Partytown déplace les scripts tiers dans un fil d'exécution séparé, ce qui protège la vitesse d'affichage. Séduisant pour PostHog, mais il complique le suivi et casse certaines fonctions. À mesurer avant de décider. |
| Contenu éditorial Écrire les pages d'aide et les mentions légales dans un format lisible, sans passer par du code. | @astrojs/mdx | 🤔 à étudier | Vingt pages légales déclinées par pays et une page d'aide : autant de contenu qui gagnerait à s'écrire en texte balisé plutôt qu'en composants. À confirmer selon qui les rédige. |
| Optimisation des images Servir des images au bon format et à la bonne taille, sans y penser. | astro:assets | ✅ à retenir | Fourni par Astro, rien à installer. Nos images reprises pèsent lourd — un logo de 720 Ko, un visuel d'accueil de 276 Ko. Cette brique règle le problème à la source. |
| Gestion des langues Servir le site en douze langues, avec les bonnes adresses et les bonnes balises. | astro:i18n | ✅ à retenir | Fourni par Astro, rien à installer. Indispensable : douze langues, trois pays, et des règles d'indexation qui diffèrent selon la langue. |
| Compression des pages Réduire le poids des pages livrées. | @playform/compress | 🚫 écarté | La compression se fait normalement au niveau du serveur qui sert les pages. L'ajouter au build revient à faire deux fois le même travail, avec une dépendance de plus. |
| Balises de référencement Écrire les balises de titre, de description et de partage. | astro-seo | 🚫 écarté | Une vingtaine de lignes de HTML qu'on maîtrise mieux en les écrivant nous-mêmes, dans un composant à nous. Nos besoins d'attribution sortent de toute façon de ce que propose la bibliothèque. |