Build log
Construir este sitio como un activo, no como una landing
Las decisiones detrás de onesebdel.com: por qué el naranja se eligió con un cálculo de contraste y no a ojo, por qué se rechazó TypeScript 7, y por qué la carpeta de agentes se entrega vacía a propósito.
4 min de lectura
- El problema
- Una marca personal sin sitio propio depende de plataformas que no controla y no puede ser citada como fuente.
- Human gate
- El posicionamiento, el copy publicado y cualquier afirmación sobre resultados. Nada de eso se automatiza.
Actualización del 18 de septiembre de 2026: este artículo registra las decisiones iniciales. La identidad oficial entregada después por mi director creativo reemplaza el naranja original por #FF8A00 y #EA6B00, con #B45300 para texto accesible sobre blanco, e incorpora el logo y el monograma definitivos. Las mediciones que siguen corresponden a la primera versión.
Una marca personal sin sitio propio depende de plataformas que no controla. Los perfiles se rankean por algoritmos ajenos, el contenido se pierde en un feed, y sobre todo: no se puede citar. Cuando alguien, o un motor de respuesta, busca qué significa "compañía AI-native", no hay una URL estable que responda.
Este es el registro de cómo se construyó onesebdel.com, con las decisiones que costaron algo y las que se descartaron.
El naranja no se eligió a ojo
La marca pedía "naranja neón" sobre negro y blanco. El problema es que neón y accesible tiran en direcciones opuestas, y hubo dos restricciones reales.
La primera: Daleki Trade ya usa #FF7800 como color oficial. Los banners de YouTube de SEBDEL usaban un naranja muestreado alrededor de #FF8A01. Prácticamente el mismo tono. Si la marca personal y una de las compañías comparten firma cromática, el sistema de marcas del grupo deja de leerse: no se distingue quién habla.
La segunda: el contraste. Se midieron doce candidatos contra el negro del canvas y contra blanco. El resultado que ordenó la decisión:
#FF5C00sobre#0A0A0A→ 6.39:1, pasa AA como texto.#FF5C00sobre blanco → 3.10:1, no pasa AA como texto.- Negro sobre
#FF5C00→ 6.78:1, pasa AA. - Blanco sobre
#FF5C00→ 3.10:1, no pasa.
De ahí salió una ley del sistema que no es negociable: un botón naranja lleva texto negro, nunca blanco. Es la trampa más fácil de este color, porque blanco sobre naranja parece correcto.
Y como el sitio tiene secciones claras, hizo falta un segundo naranja: #C43F00, que da 5.17:1 sobre blanco. No es una variante decorativa: es el único naranja que funciona como texto ahí.
Nada de esto vive en la cabeza de nadie: tests/contrast.test.ts lee app/globals.css y vuelve a medir los ratios en cada verificación. Si alguien cambia un hex dentro de seis meses, el test cae antes que el deploy.
Se rechazó TypeScript 7
TypeScript 7.0.2 es la versión estable más reciente y trae el compilador nativo en Go, con builds mucho más rápidos. Era tentador.
No se usó. El paquete typescript@7 ya no incluye lib/typescript.js, la API de compilador en JavaScript, y Next.js 16 la necesita para detectar TypeScript: con TS 7 instalado, Next reporta que TypeScript no está instalado. Hay soporte, pero detrás de experimental.useTypeScriptCli.
La decisión fue pinear typescript: ^5. El razonamiento no es "lo nuevo da miedo": es que la velocidad de compilación no era el cuello de botella de este proyecto, y una bandera experimental en la base de un activo que debe durar años se paga con intereses.
La carpeta de agentes se entrega vacía
El proyecto usa un modelo operativo de tres capas (Workflows, Agents, Tools) y la tentación obvia era crear un archivo por cada agente mencionado: uno de SEO, uno de QA, uno editorial.
.claude/agents/ está vacía, con un README que explica por qué.
Hoy hay dos agentes reales: el que implementa y el que audita. Un subagente se gana su lugar cuando el trabajo es intensivo en lectura, verificable de forma independiente, y contamina el contexto. Con seis páginas, auditar el SEO del sitio entero es más rápido leyéndolo directamente que explicándole el encargo a un subagente.
Lo mismo pasó con los workflows. El modelo pedía cinco; se escribieron cuatro. Validación de schema no tiene disparador propio: es un test y un paso dentro del workflow de calidad SEO. Publicación del build log es el workflow de contenido con otro tipo de entrada. Darles archivo propio garantizaba dos documentos que divergen en un mes.
Cumplir una nomenclatura creando abstracciones vacías es la forma más limpia de que un modelo operativo deje de significar algo.
Lo que no se construyó
Sin base de datos, sin autenticación, sin API, sin librería de componentes, sin gestor de errores, sin analítica más allá de la de la plataforma. Sin páginas legales, porque el sitio no recolecta nada: una política de privacidad para un sitio que no guarda datos es ficción copiada.
Y sin rutas vacías. /ideas y /frameworks no existen todavía porque no hay contenido para ellas. Sus tipos sí están definidos, para fijar el vocabulario antes de que haya URLs indexadas que renombrar. Un test verifica las dos direcciones: no puede haber contenido sin ruta, ni ruta sin contenido.
Lo que quedó en manos humanas
El posicionamiento, el copy publicado, y cualquier afirmación sobre resultados.
Este sitio no publica cifras de ingresos, ahorro ni porcentajes de automatización. No porque no existan, sino porque no se pueden mostrar de forma verificable, y una afirmación que nadie puede comprobar no es un argumento, es ruido con formato de dato.
Lo que sí se puede verificar está a un clic: cinco compañías con sitio público, cada una en una industria distinta.