No soy desarrollador. Nunca lo he sido. Durante más de diez años diseñé interfaces para bancos y empresas fintech. Sabía lo que era un div. Podía inspeccionar un elemento en Chrome. Tenía opiniones sobre el padding. Pero escribir una aplicación completa desde cero nunca fue algo que imaginé hacer.

Entonces empecé a usar Claude. Y en unos dos meses, trabajando tardes y fines de semana, construí un blog trilingüe completo con PHP, MySQL, un panel de administración personalizado, posts programados, un sistema de imágenes generativas, y SEO que Google realmente indexa. Sin WordPress. Sin frameworks. Sin plantillas.

Esto no es un tutorial sobre Claude Code o vibe coding. Esto es lo que pasa cuando un diseñador con experiencia real en la industria usa Claude como compañero de desarrollo para construir algo listo para producción. Los errores, los avances, y lo que aprendí sobre programar y comunicarme con IA.

Claude vs ChatGPT para código: lo que encontré después de meses de uso

Probé ambos. Extensamente. Esto es lo que encontré después de meses de uso diario.

ChatGPT te da código que se ve correcto. Compila. Corre. Y tres días después descubres que se rompe cuando un usuario hace algo inesperado. El código es técnicamente correcto pero arquitectónicamente frágil. Resuelve el problema inmediato sin considerar el sistema alrededor.

Claude te da código que considera contexto. Cuando le explico la estructura de mi base de datos, las funciones existentes, y lo que quiero lograr, Claude no solo escribe la nueva función. Revisa conflictos con lo que ya existe. Sugiere cambios en funciones relacionadas que no le pregunté. Explica por qué un enfoque es mejor que otro para mi situación específica.

La diferencia se hizo obvia cuando estaba construyendo el sistema de routing multilingüe. ChatGPT me dio una solución que funcionaba para dos idiomas. Cuando agregué japonés, todo se rompió. Claude me preguntó desde el inicio cuántos idiomas planeaba soportar y construyó el sistema para manejar cualquier cantidad desde el principio.

Dicho esto, ChatGPT es mejor para investigación rápida y lluvia de ideas. Lo uso para explorar ideas antes de llevarlas a Claude para implementación. Son herramientas diferentes para etapas diferentes.

Cómo le hablo a Claude sobre código

Esta es la parte que la mayoría de guías se saltan. La conversación real. Cómo le explicas lo que necesitas a una IA cuando no eres desarrollador y no conoces el vocabulario técnico.

Lo explicas como un brief de diseño.

Cuando necesito una nueva funcionalidad, no digo "escríbeme una función PHP". Describo la experiencia de usuario que quiero. Explico qué pasa cuando alguien visita una página, qué debería ver, qué pasa cuando hace clic en algo, y qué debería hacer el sistema detrás de escena. Claude traduce eso a código.

Por ejemplo, cuando quise agregar posts programados, le dije algo como: "Quiero escribir posts con anticipación y ponerles una fecha futura. Cuando esa fecha llegue, el post debería volverse visible automáticamente en el sitio sin que yo haga nada. La página principal solo debería mostrar posts publicados, ordenados por su fecha de publicación, no la fecha en que los creé en el admin."

Esa descripción no tiene términos técnicos. Pero le da a Claude todo lo que necesita: el flujo del usuario, la lógica de negocio, los requerimientos de visualización, y el caso borde sobre el ordenamiento.

Construyendo el sistema trilingüe

El sistema multilingüe fue la parte más difícil del proyecto. No porque el código fuera complejo sino porque las decisiones eran complejas. Cada idioma debería tener su propia estructura de URL. Cómo manejas el SEO para tres idiomas diferentes. Qué pasa cuando una traducción no existe para un post.

Claude me ayudó a pensar cada decisión antes de escribir una sola línea de código. Definimos una estructura donde español es el idioma por defecto sin prefijo, inglés usa /en/, y japonés usa /ja/. Cada post tiene un slug en la tabla posts para español y slugs traducidos en una tabla post_translations para inglés y japonés.

Lo que me sorprendió fue cómo Claude manejó los casos borde que yo no había pensado. Qué pasa si alguien comparte una URL en inglés pero el navegador del visitante está en japonés. Qué pasa si un post existe en español e inglés pero no en japonés. Claude anticipó estos escenarios y construyó fallbacks para cada uno.

El sistema de identidad generativa: diseño generativo con código

Esta es mi parte favorita del proyecto. Cada post de mi blog genera su propia imagen única a partir del hash del contenido. Sin generación con IA, sin fotos de stock. El mismo contenido siempre produce el mismo visual.

Le expliqué el concepto a Claude así: "Quiero que cada post tenga una imagen única que se cree automáticamente del contenido del post. Como una huella digital visual. Si el contenido cambia, la imagen cambia. Si el contenido permanece igual, la imagen permanece igual."

Claude propuso usar la librería GD de PHP para crear la imagen algorítmicamente. Extraemos un hash del título, mapeamos los caracteres del hash a colores, construimos un patrón de cuadrícula, lo expandimos simétricamente, y lo renderizamos como PNG. El resultado es un sistema determinístico donde cada post tiene una identidad visual única atada a su contenido.

El código pasó por varias iteraciones. La primera versión producía imágenes demasiado aleatorias y ruidosas. Le di feedback a Claude desde una perspectiva de diseño: "El contraste es muy bajo entre celdas adyacentes. El centro de la imagen necesita más peso visual. La paleta de colores necesita sentirse cohesiva, no como ruido aleatorio." Claude ajustó el algoritmo basándose en mi feedback visual.

Errores reales y cómo los arreglamos

No todo fue suave. El desastre de encoding: usé caracteres especiales como ✦ y 𝕏 en mis plantillas. Se veían bien en mi pantalla pero se renderizaban como caracteres rotos en algunos navegadores. Claude identificó el problema — necesitaba entidades HTML en vez de caracteres Unicode crudos.

La catástrofe de los slugs: cambié el título de un post en el admin y la URL cambió con él, rompiendo todos los links existentes y el índice de Google. Claude me ayudó a construir un sistema donde los slugs se bloquean una vez que un post es publicado.

La confusión de fechas: todos los posts mostraban su fecha de creación en vez de su fecha de publicación. Claude me ayudó a agregar un campo published_at a la base de datos y actualizar cada query y plantilla que mostraba fechas.

Lo que este tutorial de Claude Anthropic me enseñó sobre construir como diseñador

El blog está vivo en shinobis.com. Sirve contenido en tres idiomas, genera sus propias imágenes, publica con programación, tiene SEO con datos estructurados, y rankea en los resultados de búsqueda de Google incluyendo queries en japonés que nunca esperé.

Lo construí sin saber PHP antes de empezar. Sin entender MySQL joins. Sin haber configurado jamás un servidor Apache. Lo que sí tenía era diez años de pensar sobre cómo las personas interactúan con productos digitales, una visión clara de lo que quería construir, y una IA que podía traducir esa visión en código funcional.

Esa es la historia real aquí. No que la IA pueda escribir código. Todos saben eso a estas alturas. La historia es que un diseñador con experticia profunda en su dominio y una visión clara puede construir software listo para producción tratando a la IA como un compañero de desarrollo en vez de una herramienta mágica.