Retours du terrain.
Des notes de terrain sur PHP, Symfony, PrestaShop, la CI/CD et l'ingénierie peu glamour qui garde la prod silencieuse. Pas de blabla — juste ce qui a vraiment marché, et pourquoi.
-
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 ↗ -
Claude Code depuis mon téléphone : Tailscale, Termius, et toute la machine dans la poche
Le /remote-control de Claude Code mirror une session sur ton téléphone. SSH via Tailscale te donne toute la workstation : reprendre des sessions, en lancer de nouvelles dans n'importe quel repo, suivre les logs, redémarrer des containers — sans rien exposer sur internet.
Lire l'article ↗ -
RepoWrapped : le Spotify Wrapped d'un dépôt GitHub, et l'API qui m'a résisté
Une idée de week-end — une page de stats partageable et un badge README pour n'importe quel dépôt GitHub et n'importe quel contributeur — qui a viré au combat avec l'API stats de GitHub : des 202 qui ne se résolvent jamais, un mur au top 100, et une date de premier commit qu'il faut extorquer à un header.
Lire l'article ↗ -
Permettre à des chefs de projet non-techniques d'interroger la codebase en langage naturel
Pourquoi j'ai construit un analyste IA en lecture seule qui laisse les chefs de projet poser des questions sur une codebase et repartir avec un ticket Jira créé automatiquement — et pourquoi tout ne tient que parce que l'IA peut lire mais jamais écrire.
Lire l'article ↗ -
Ajouter une revue de code par IA à un GitLab self-hosted — sans lui donner les clés
Comment j'ai branché Claude sur la pipeline de merge requests d'un vieux GitLab self-hosted, et pourquoi tout le design repose sur une règle : ne jamais laisser l'IA lire un diff non fiable et détenir un token en même temps.
Lire l'article ↗