Dev blog
Qué estamos construyendo, y cómo
Notas desde el trabajo: qué pusimos en producción, cómo está armado y qué se rompió en el camino.
Pide el permiso, no la llave: conecta servicios sin el secreto
Copiar la variable de entorno al otro servidor cuesta una línea menos. Pedirle al servicio dueño un link firmado, que abre una sola pantalla y caduca, quita un lugar donde se puede filtrar la llave que abre todas. El criterio y las tres reglas que lo sostienen.
engineeringsecurityintegrationwebCuánto silencio deja cada modelo de voz de ElevenLabs en español
Medimos la misma frase con tres voces y tres modelos de ElevenLabs. Una tabla con los segundos de silencio interno de cada combinación, para elegir con un número.
videovozaiCómo probar un saneador de HTML para que la prueba valga algo
Un saneador con tests verdes puede no hacer nada. Tres pasos para probarlo de modo que la suite mida lo que el saneador impide.
seguridadtestinghtmlUn carrusel, cinco canales: qué cambia en cada red
El mismo carrusel aprobado rebota por un motivo distinto en Instagram, Facebook, Telegram, email y WhatsApp. Los límites que importan, por qué conviene copiarlos del publicador con un test que vigile la copia, y por qué nada se recorta en silencio.
socialcontenttestingReintentos sin duplicados: la clave de idempotencia sale del contenido, no del reloj
Un reintento es normal en cualquier fetch; un post duplicado en el feed de una marca, no. Cómo armar una Idempotency-Key para que el segundo clic devuelva lo ya creado, y por qué la validación tiene que ser todo o nada cuando publicas en varios canales.
engineeringapisreliabilityCards antes que video: por qué conviene revisar una idea en diapositivas primero
Cada intento de video con IA gasta voz y render. Revisar la idea en cards no gasta nada, y sólo lo aprobado se vuelve video. Así funciona el flujo y qué reglas lo cuidan.
videoworkflowaiDónde va un clip generado en un video educativo, y dónde no puede ir
Un clip de stock o generado se ve bien, pero no sabe nada. En un video que enseña puede abrir la pregunta y nunca dar la respuesta. Tres reglas que se escriben como una función y se aplican en cada etapa del armado.
videoeducationaicontentTu alias nunca lo escribe la IA, y nadie te confirma un pago que no viste
Tres cosas que el vendedor con IA de vendear no puede hacer, a propósito, porque tocan tu plata — y qué hace en su lugar en cada caso.
vendearpagoscriterioTarjeta de WhatsApp para una página estática, sin navegador en el servidor
Nuestras propuestas se publican como carpetas estáticas, y pegadas en WhatsApp salían como un link pelado. WhatsApp no muestra SVG, y no queríamos un navegador headless en el contenedor para dibujar una miniatura. Un rasterizador nativo con las fuentes adentro ahora escribe un PNG de 1200×630 en cada publicación. El circuito, los dos ajustes de Next.js que pide y qué pasa cuando falla.
engineeringwebimagesnextjsDale a tu sitio un endpoint que diga de qué commit salió
Treinta líneas en una ruta de Next.js y la pregunta "¿qué versión está en vivo?" se contesta con un curl y un git rev-parse. Cómo lo armamos en vendear, de dónde sale el commit y por qué la respuesta dice también cómo se publicó.
engineeringdeploywebvendearCómo convertir un logo en un fondo animado que nunca tapa el texto
Saca las reglas de dibujo de la marca, haz crecer la forma desde una semilla y mide dónde están las palabras antes de trazar una sola línea. Con los números de contraste que obtuvimos.
designmotionaccessibilityCómo dejar los links compartidos con el dominio correcto: canonical, og:url y barra final
Una variable con una barra de más o con el host de Vercel, y cada link que se comparte sale con el dominio equivocado. La función de seis líneas que lo normaliza en vendear, dónde se usa y por qué apunta a www y no al dominio desnudo.
engineeringseowebvendearCómo decidimos qué probar después en el retrieval: una cola de predicciones escritas
Nuestra hoja de ruta de retrieval es una cola de hipótesis, cada una con su predicción y el resultado que la refutaría escritos antes de medir. Cómo un número ordenó la cola, y cómo la cola se reordenó sola cuando perdió la primera apuesta.
engineeringretrievalragevaluationCómo evaluamos el retrieval: un golden set, una fila sin fuga y un banco de pruebas que se niega a correr
Tres decisiones de diseño de nuestro banco de pruebas de retrieval que no son obvias y que cualquiera que lo herede necesita entender. De dónde sale el set de prueba, qué configuración puede decidir y cuándo el banco dice que no.
engineeringretrievalragevaluationUna página puede estar caída sin devolver un solo error
Nuestro formulario de contacto respondía, se veía bien y no enviaba nada. Dos rutas indexadas devolvían 200 y estaban vacías. Ningún monitor de disponibilidad lo detecta, porque nada falla — lo que falta es la última milla.
engineeringtestingweb