Blog

Articles

Des articles de fond signés par notre équipe. Ingénierie, produit et actualités de l’entreprise.

  • Product

    Vos webhooks ne devraient pas faire confiance à l’URL qu’on leur donne

    Le webhook est la seule fonctionnalité où un client saisit une adresse et où vos serveurs vont l’appeler. Ce que j’ai construit pour les webhooks de Kookee et ses intégrations Slack, GitHub et Jira, et huit choses qu’un émetteur de webhooks ne doit pas rater.

  • oauth

    Votre serveur MCP ne devrait pas obliger à coller un token

    Le serveur MCP de Kookee fonctionnait bien avec des tokens personnels, tant qu’on vivait dans un terminal. Les applications de chat de Claude et ChatGPT, elles, se connectent en vous demandant de vous identifier. Ce que j’ai livré pour qu’elles y arrivent, et les sept décisions qui ont pris plus de temps que le code.

  • headless-cms

    Les composants React de votre CMS ne devraient pas récupérer eux-mêmes leurs données

    La plupart des kits de composants des CMS headless enveloppent votre app dans un provider et chargent les données dans les composants. Avec les Server Components, le contenu manque dans le premier HTML, des listes statiques partent en JavaScript et les articles sont envoyés deux fois. Les six règles que j’ai suivies pour les miens.

  • Engineering

    React 19 réécrit votre dangerouslySetInnerHTML à chaque rendu

    Un objet { __html } écrit en ligne pousse React 19 à remplacer tout le HTML d’un élément à chaque nouveau rendu de son parent. Je l’ai découvert à cause d’une table des matières bloquée sur le dernier titre. Pourquoi cela arrive, ce que cela casse, et le correctif d’une ligne.

  • pagination

    La pagination de votre blog cache sans doute des articles à Google

    Bouton « Charger plus », pagination gardée dans l’état du composant, toutes les pages canoniques vers la première, noindex dès la page deux : quatre façons courantes dont la pagination d’un blog cache les anciens articles aux moteurs de recherche, ce qu’il faut faire à la place, et une checklist.

  • security

    Votre lien d’invitation est un mot de passe collé dans Slack

    Envoyer un lien d’invitation, c’est distribuer un secret qui fonctionne pour quiconque le voit un jour. Voici ce que ce lien doit porter avant d’être collé sans risque dans un canal, et les choix que j’ai faits pour celui de Kookee.

  • ai-agents

    Votre serveur MCP ne devrait pas tourner sur une clé API partagée

    Quand un assistant IA modifie votre contenu via un serveur MCP, la première chose à savoir, c’est qui l’a fait. Une clé de projet partagée ne sait pas le dire, et on ne peut pas la retirer à une seule personne. Voici ce par quoi je l’ai remplacée, et les six détails qui ont compté.

  • Engineering

    Pourquoi votre widget de chat ignore votre bouton de mode sombre

    Votre site a un bouton de mode sombre. Le widget de support dans le coin n’en tient aucun compte. Voici pourquoi les widgets intégrés gèrent mal le thème — la media query de l’OS, le shadow root, le remontage — et ce qu’un widget doit proposer pour que le vôtre s’en sorte.