Blog

Artículos

Artículos largos de nuestro equipo. Ingeniería, producto y novedades de la empresa.

  • Product

    Tus webhooks no deberían confiar en la URL que reciben

    Un webhook es la única función en la que un cliente escribe una dirección y tus servidores van y la llaman. Lo que construí para los webhooks de Kookee y sus integraciones con Slack, GitHub y Jira, y ocho cosas que un emisor de webhooks tiene que hacer bien.

  • oauth

    Tu servidor MCP no debería obligar a pegar un token

    El servidor MCP de Kookee funcionaba bien con tokens personales, siempre que vivieras en la terminal. Las apps de chat de Claude y ChatGPT se conectan iniciando sesión. Lo que lancé para que puedan hacerlo y las siete decisiones que llevaron más tiempo que el código.

  • headless-cms

    Los componentes React de tu CMS no deberían obtener sus propios datos

    La mayoría de los kits de componentes de un CMS headless envuelven tu app en un provider y piden los datos dentro de los componentes. Con Server Components, eso deja el contenido fuera del primer HTML, envía JavaScript para listas estáticas y manda los artículos dos veces. Las seis reglas con las que construí los míos.

  • Engineering

    React 19 reescribe tu dangerouslySetInnerHTML en cada render

    Un objeto { __html } escrito en línea hace que React 19 reemplace todo el HTML de un elemento cada vez que su padre se vuelve a renderizar. Lo encontré por un índice atascado en el último encabezado. Por qué pasa, qué rompe y cómo se arregla con una línea.

  • pagination

    La paginación de tu blog seguramente le esconde artículos a Google

    Botones de «Cargar más», paginación guardada en el estado, todas las páginas con la canonical en la primera, noindex en la página dos: cuatro formas habituales en que la paginación de un blog oculta los artículos antiguos a los buscadores, qué hacer en su lugar y una lista de comprobación.

  • security

    Tu enlace de invitación es una contraseña que pegaste en Slack

    Si le mandas a alguien un enlace de invitación, entregas una credencial que funciona para cualquiera que llegue a verla. Esto es lo que ese enlace tiene que llevar antes de que sea seguro pegarlo en un canal, y qué decidí al construir el de Kookee.

  • ai-agents

    Tu servidor MCP no debería funcionar con una clave de API compartida

    Cuando un asistente de IA cambia tu contenido a través de un servidor MCP, la primera pregunta es quién lo hizo. Una clave de proyecto compartida no responde a eso, y no se le puede retirar a una sola persona. Esto es lo que puse en su lugar y los seis detalles que importaron.

  • Engineering

    Por qué el widget de chat ignora el selector de modo oscuro de tu sitio

    Tu sitio tiene un selector de modo oscuro. Al widget de soporte de la esquina le da igual. Por qué los widgets incrustados se equivocan con el tema —la media query del sistema, el shadow root, el remontaje— y qué tiene que ofrecer un widget para que el tuyo no se equivoque.

  • Engineering

    Tu asistente de IA no necesita una copia de tu base de datos

    Todos los proveedores de soporte con IA te piden que subas tus datos. La alternativa: dale al asistente una función, deja que se ejecute en el navegador del visitante y mantén tus datos donde ya están.

  • Engineering

    Feature flags sin despliegue

    Un banner, una regla de descuento, un interruptor de emergencia. Nada de eso merece un ciclo de lanzamiento. Para qué sirve el módulo Config y dónde se queda corto.

  • Engineering

    Un blog con un solo prompt

    Antes publicaba toda la referencia del SDK como un único archivo de texto para que los asistentes lo descargaran. Lo sustituyeron dos fuentes de verdad mejores: los tipos en disco y una conexión en vivo a tu contenido real.