## Contexte Les métadonnées Open Graph et Twitter sont définies une seule fois dans `apps/web/index.html`. Les URLs de recette `/r/...` doivent exposer **titre**, **description** et **image** adaptés au partage. **Contrainte SPA** : modifier `` ou les meta **uniquement en JavaScript après chargement** ne suffit souvent pas pour les robots d’aperçu (Facebook, X, LinkedIn) : ils lisent le HTML initial. ## Objectif Pour chaque recette partageable, fournir des métadonnées correctes : `og:title`, `og:description`, `og:image`, `og:url`, `twitter:card` (idéalement `summary_large_image` si visuel adapté), éventuellement `canonical`. ## Options à trancher (documenter le choix dans README ou `docs/`) | Approche | Effort | Aperçus réseaux | |----------|--------|-----------------| | Pré-rendu statique des routes `/r/*` au build (catalogue / pipeline recettes) | Moyen | Bon pour crawlers statiques | | Middleware / route serveur (Worker, reverse proxy, petite app Node) injectant le HTML minimal avec meta | Variable | Très bon si bien déployé | | Meta uniquement côté client (Solid) | Faible | Insuffisant pour la majorité des partages | Données : titres localisés, description courte, images de couverture produites par le pipeline recettes. ## Critères d’acceptation - [ ] Partager une URL `/r/...` affiche un aperçu avec **titre et image recette** (validation manuelle : Meta Sharing Debugger / Twitter Card Validator ou équivalent). - [ ] Balises OG/Twitter cohérentes (`og:type`, `og:url`, etc.). - [ ] Documentation de la stratégie retenue (build vs serveur). ## Références - `apps/web/index.html` - Parcours e2e et URL partagée dans `tests/e2e/builder.e2e.ts`