Recursos
Resumen
Si ya construiste un proyecto web y acumulaste bugs visuales, código duplicado y problemas de funcionalidad, aquí aprenderás a usar Windsurf y su asistente Cascade para escanear, diagnosticar y refactorizar tu código con prompts bien dirigidos. Es ideal para quien trabaja con Next.js y quiere optimizar su flujo con inteligencia artificial sin perder el control.
Cómo identifico bugs visuales con el preview de Windsurf
El punto de partida fue abrir el preview integrado, esa función que inicializa un navegador dentro del editor para detectar issues visuales sin salir del entorno de trabajo. Al ejecutarlo, Windsurf pregunta si quieres correrlo desde Chrome o desde el IDE, y en este caso elegimos el IDE.
Navegando por la página aparecieron varios problemas concretos:
- Cards del blog demasiado altas, sobre todo por la imagen.
- Disposición tipo tablet donde los elementos deberían quedar uno al lado del otro.
- Un texto muy claro sobre un fondo muy claro, sin suficiente contraste en el single del blog.
Ese último bug se resolvió con un comando directo: pedirle que el texto con problemas de lectura por poco contraste se solucionara. Y aquí viene lo interesante: Cascade no cambió solo ese texto, sino todos los elementos iguales de la página.
Por qué Cascade cambia varios elementos a la vez
Cuando le pides corregir un elemento, Cascade puede compararlo por etiqueta HTML o por texto. Si lo compara por texto, cambia solo la primera coincidencia. Si lo detecta por etiqueta, actualiza todas.
En este caso lo detectó por etiqueta y modificó todos los elementos list item, mejorando el contraste de golpe. Antes no se veían porque era texto claro sobre fondo claro.
¿Qué es el preview en Windsurf? Es una función que abre un navegador dentro del editor para ver tu proyecto en tiempo real y detectar errores visuales sin cambiar de ventana. Puedes correrlo desde Chrome o desde el IDE.
Cómo uso mensajes en cola para escanear el proyecto
Corregir issue por issue desde el preview toma demasiado tiempo. Por eso, tras detener el servidor de desarrollo [03:30], el flujo cambió al chat, que no ejecuta código, solo analiza y recomienda.
La instrucción fue clara: escanear el proyecto para identificar posibles issues de diseño y de repetición de código, y entregar un plan para solucionarlos. Mientras el primer prompt se ejecutaba, se fueron agregando más mensajes en cola [05:10].
Esta es una de las funcionalidades nuevas de Windsurf: dejar varios prompts encolados sin esperar a que termine el primero. Puedes eliminarlos, cambiarlos de orden o dejarlos correr en secuencia.
¿Qué son los mensajes en cola en Windsurf? Permiten enviar varios prompts seguidos sin esperar a que el anterior termine. El asistente los lee en orden y hasta puede combinarlos para optimizar un mismo plan.
Qué issues detectó Cascade en el análisis
El diagnóstico fue contundente y repartido por prioridades. Entre los issues críticos de arquitectura aparecieron:
- Header y footer duplicados en todas las páginas.
- Falta de un layout global compartido con el App Router de Next.js.
- Menú mobile sin funcionalidad, con el botón de hamburguesa inactivo.
- Imágenes con opacity cero porque eran placeholders.
- No usar el componente image de Next.js.
De prioridad media señaló breakpoints no optimizados y falta de consistencia en estilos. El análisis también marcó violaciones al principio Don't Repeat Yourself, con cerca de 400 líneas de código duplicado concentradas en header y footer.
El plan final integró los tres prompts: aproximadamente 400 líneas duplicadas, siete categorías críticas de diseño y 10 problemas de funcionalidad, más una estructura de carpetas con hooks, types, data, librerías y un layout global.
Por qué debo ser crítico al aceptar cambios de la IA
Aquí está la lección que vale más que cualquier fix. Durante toda la creación del proyecto casi siempre se le dio aceptar a Cascade, sin refutar sus cambios. El resultado fue esa montaña de problemas.
Debes ser muy crítico cuando una herramienta de inteligencia artificial te recomiende o solucione algo. Aceptar todo sin revisar es precisamente lo que genera esa acumulación de bugs y código repetido. El consejo aplica tanto para Windsurf como para cualquier asistente de IA en tu flujo de trabajo.
Cómo aplico el fix del layout global en Next.js
Del plan largo se tomó la primera recomendación: crear un layout global para eliminar la duplicación de header y footer. El mini prompt pedía agregar un layout con header y footer que reemplazara su uso en las páginas, sin tocar la estructura base todavía.
Para ejecutarlo hubo que cambiar de Chat a Code, porque el chat solo analiza. Esto fue lo que hizo Cascade [07:50]:
- Creó header y footer dentro de una carpeta de componentes.
- Los agregó a un layout único.
- Removió el header y footer repetidos en homepage, about, blog y blog single.
También generó un header inteligente con navegación activa que detecta automáticamente la página actual, y dejó el mantenimiento centralizado: ahora cualquier cambio en header o footer se hace en un solo archivo.
Qué errores de linteo aparecen al refactorizar en React
En el camino surgieron errores de linteo. Al remover el header, el render se rompe porque dentro de React solo puede haber un elemento raíz en el render. Cascade limpió esos errores automáticamente.
El resultado fueron modificaciones en siete archivos. Header y footer son nuevos, así que solo tienen líneas creadas. Pero en homepage, about, blog y blog single la eliminación fue enorme: alrededor de 86 líneas por archivo, para un total aproximado de 500 líneas de código repetido eliminadas.
Tras aceptar todo y volver a ejecutar el preview, la validación confirmó que el header y el footer seguían iguales y que la navegación entre secciones funcionaba con normalidad. Mismo resultado visual, muchísimo menos código.
¿Cómo te fue a ti primero analizando tu código y luego refactorizándolo? Cuéntamelo en los comentarios, porque tu experiencia puede ayudar a alguien más en la comunidad.