-
Trois strings et deux fallbacks : brancher le share sheet natif sur Forgemage.net
Le bouton de partage de la page détail d'une requête sur Forgemage.net ouvre le share sheet de l'OS partout où le système en a un — Android, iOS, Windows, macOS — copie le lien là où il n'y en a pas, et se tait quand tu changes simplement d'avis. Voilà toute l'implémentation : navigator.share avec trois strings, un garde AbortError qui laisse passer au lieu de catcher, un fallback clipboard avec un fallback execCommand en dessous, et le détail Symfony d'une seule lettre qui décide si le lien partagé fonctionne.
Lire l'article ↗ -
Chaque nouveau forgemage rendait la recherche plus lente : tuer le N+1 derrière Forgemage.net
L'annuaire des forgemages de Forgemage.net lançait environ sept requêtes par carte — avis, temps de réponse, statut en ligne, trois relations lazy — plus des compteurs de facettes recalculés à chaque changement de filtre. Voilà comment je suis passé d'une page de 24 cartes à ~168 requêtes à une poignée, avec un cache batch scopé à la requête et une passe paginate-then-hydrate, sans toucher aux pages profil individuelles.
Lire l'article ↗ -
Markdown pour les agents, en self-hosted : un subscriber Symfony plutôt qu'un plan Cloudflare
Cloudflare convertit les pages en markdown pour les agents IA via Accept: text/markdown — sur les plans payants. Le même contrat HTTP tient dans un event subscriber Symfony de 144 lignes. Ma homepage est passée de 59 Ko de HTML à 7,7 Ko de markdown, même URL.
Lire l'article ↗