Este post documenta el proceso completo de crear barontech.io usando Claude Code como copiloto de desarrollo: las decisiones técnicas, el flujo de trabajo iterativo, los problemas que surgieron y cómo los resolvimos. De cero a un portfolio cyberpunk funcional en una sola sesión de trabajo.

El punto de partida

Llevaba tiempo con un portfolio genérico de LinkedIn como única presencia online. Quería algo que reflejara realmente mi perfil técnico, con una estética que se saliera de los templates de Squarespace o Webflow que todo el mundo usa.

Tenía dos inputs claros:

El brief inicial que le di a Claude Code fue algo tan sencillo como: "Quiero un portfolio personal con estética cyberpunk similar a este informe. Usa mi perfil de LinkedIn como contenido. HTML estático, sin frameworks."

Por qué HTML estático

La decisión de no usar ningún framework fue deliberada y merece una explicación, porque va contracorriente de lo que se suele hacer en 2026.

// RATIONALE

Un portfolio personal no necesita React, Next.js ni ningún bundler. Un archivo HTML se despliega en cualquier sitio (GitHub Pages, Netlify, S3), carga en milisegundos, no tiene dependencias que se rompan y no necesita mantenimiento. La complejidad tiene un coste real; hay que justificarla.

El stack final:

La estética cyberpunk: sistema de color y tipografía

Una de las primeras cosas que establecimos fue el sistema de diseño. Claude Code definió las variables CSS que dan coherencia a toda la web:

:root {
  --cyan:    #00f5ff;   /* acción, links, highlights */
  --magenta: #ff00aa;   /* alertas, fechas, énfasis */
  --yellow:  #ffee00;   /* brand, compañías, headers */
  --green:   #00ff88;   /* estado activo, éxito */
  --dark:    #050810;   /* fondo principal */
  --panel:   #0b1120;   /* paneles y cards */
  --border:  #1a2a4a;   /* bordes sutiles */
  --text:    #a8c0d6;   /* texto principal */
  --text2:   #6a8aaa;   /* texto secundario */
}

Para tipografía: Rajdhani (geométrica, bold, impacto) para headings y body, y Share Tech Mono para todo lo técnico — etiquetas, fechas, badges, código. Esta combinación crea ese contraste entre humanidad y máquina que buscaba.

Los efectos de ambiente — scanlines, grid de puntos, partículas flotantes — se implementan con CSS puro usando ::before y ::after en el body, sin una sola imagen.

Extrayendo contenido: el problema de los premios

El contenido básico del portfolio era directo — experiencia, skills, idiomas — pero la sección de premios presentó un reto interesante.

La app CaixaBank Note había ganado más de 50 premios internacionales entre 2019 y 2023. Tenía los nombres pero no las fechas ni las organizaciones. Claude Code investigó cada uno, los verificó y construyó un timeline completo y verificado.

// INSIGHT

Para una sección con tantos items, el diseño importa tanto como el contenido. Mostrar 50+ premios en una lista plana sería ilegible. La solución fue un accordion colapsable: los más recientes visibles por defecto, el resto detrás de un botón "ver más". Claude Code propuso e implementó el patrón completo.

El flujo de trabajo iterativo

El proceso real no fue lineal. Fue una conversación continua de describe → revisa → ajusta, con Claude Code como pair programmer que mantiene el contexto completo del proyecto.

Un ciclo típico de iteración:

Lo que hace especialmente efectivo este flujo es que Claude Code puede razonar sobre trade-offs de diseño, no solo implementar instrucciones literales. "¿Por qué no usar un grid de iconos?" obtiene una respuesta que considera la legibilidad, la escalabilidad y la coherencia con el sistema de diseño existente.

Problemas que surgieron

No todo fue fluido. Algunos problemas reales que resolvimos durante el proceso:

La arquitectura CSS: de monolito a módulos

El portfolio empezó con todo el CSS en un único bloque <style> inline en el HTML (~1100 líneas). Funcional, pero un problema de mantenimiento cuando añadí el sistema de blog.

El blog (LABS) necesitaba los mismos estilos base — variables, nav, footer, tipografía — pero también sus propios componentes específicos. Copiar el CSS era una deuda técnica obvia.

La refactorización final separó el CSS en tres archivos:

shared/
  base.css    // ~520 líneas — común a todas las páginas
              // variables, reset, nav, footer, tipografía,
              // panels, badges, buttons, tablas, animaciones

  index.css   // ~310 líneas — exclusivo del portfolio
              // hero, timeline, skills, awards, contact

  labs.css    // ~180 líneas — exclusivo del blog
              // cards, post-header, code-block, post-nav

Resultado: cero duplicación, cada página carga solo lo que necesita, y añadir una nueva sección al portfolio no afecta al blog y viceversa.

El sistema LABS

El blog no estaba en el plan original. Surgió de querer documentar el propio proceso de construcción — algo recursivo que me pareció apropiado.

El diseño del sistema tuvo que resolver algunas preguntas:

La solución para nav/footer fue components.js: un archivo JS que inyecta ambos elementos via innerHTML. No es la solución más elegante del mundo, pero funciona sin ningún servidor-side rendering y sin build tools.

Para los posts, cada uno vive en su propia carpeta con un index.html, lo que da URLs limpias: /labs/posts/2026-03-06-building-this-site/. Un template base (POST_TEMPLATE.html) documenta la estructura para posts futuros.

Estructura final

BaronTechIO/
  index.html              // Portfolio principal
  shared/
    base.css              // Estilos compartidos
    index.css             // Estilos del portfolio
    labs.css              // Estilos del blog
    components.js         // Nav + Footer compartidos
  labs/
    index.html            // Listado de posts
    posts/
      POST_TEMPLATE.html  // Template para nuevos posts
      2026-03-06-building-this-site/
        index.html        // Este post
      2026-03-07-gsd-agent-teams/
        index.html        // Post sobre GSD + Agent Teams

Reflexión final

Lo más valioso del proceso no fue la velocidad (aunque fue rápido). Fue poder mantener una conversación de diseño técnico de alto nivel mientras la implementación ocurría en tiempo real.

El loop tradicional de diseñar → implementar → revisar → ajustar colapsó en algo mucho más fluido. La distancia entre la idea y el resultado visible se redujo a segundos, lo que cambia cuánto estás dispuesto a experimentar.

// TAKEAWAY

Claude Code no reemplaza el criterio de diseño ni las decisiones técnicas — esas siguen siendo tuyas. Lo que elimina es la fricción entre decidir y ver. Y esa fricción es exactamente lo que hace que muchos proyectos personales nunca lleguen a existir.

// Fuentes

Claude CodeDocumentación oficial
TipografíasRajdhani · Share Tech Mono (Google Fonts, autoalojadas)
Códigogithub.com/barontechio