En este artículo quiero compartir mi primera experiencia con el Vibe Coding: el desarrollo de Vítaly Tasks (https://vitaly-tasks.lovable.app/), una aplicación de gestión de tareas, utilizando un enfoque centrado en IA.
En un sprint de aproximadamente 7 horas, pasamos de la idea a una aplicación funcional con características bastante completas, apoyándonos principalmente en Lovable para la generación inicial y Cursor para la depuración y refactorización.
En ambos casos, siendo prácticamente la primera vez que empleo de manera intensiva ambas aplicaciones…
El Desafío y las Herramientas
El objetivo era crear una app de tareas sencilla, pero con algunas características potentes. Las funcionalidades de partida fueron:
- Autenticación: SSO con Google (usando Firebase Auth), para asegurar la privacidad de los datos.
- Persistencia de Datos: Base de datos con Supabase (aunque se migró posteriormente a Firebase).
- Sincronización: Consistencia de datos entre dispositivos para el mismo usuario (logueado con un correo de Google).
- Instalable: Capacidad PWA (Progresive Web Application); instalable desde el navegador en móvil y escritorio.
- Responsive: Diseño móvil y adaptado a diversos dispositivos.
- Personalización: Modo oscuro opcional.
- Utilidades: Exportación a PDF/TXT e impresión, sincronización forzada de datos, logout y borrado de storage local,…
La apuesta fue usar Lovable para generar un prototipo funcional inicial y gran parte del código, y Cursor, un IDE con capacidades de IA integradas, para iterar, corregir y refinar el código generado.
Os dejo unas capturas de la app realizada:
El Proceso: Velocidad, Flujo de Trabajo y… Depuración
La idea era: «¿hasta dónde podemos llegar con Lovable?». Partí de una idea básica (una app de tareas) y fui sobrecargándola con el resto de funcionalidades: login con SSO, sincronización, utilidades de exportación,…
El desglose del tiempo empleado es revelador y responde a la pregunta inicial:
- 20% Ideación y Definición: Esbozar la funcionalidad, la estructura de datos básica y el flujo de usuario.
- 10% Configuración: Poner a punto Firebase para la autenticación y soporte de datos y la sincronización en tiempo real.
- 70% Depuración y Refinamiento: ¡Aquí es donde la IA brilló y, a la vez, mostró sus costuras! Lovable generó código rápidamente, incluyendo componentes de UI, lógica de estado inicial y llamadas a APIs. Sin embargo, este código requirió una depuración intensiva. Cursor fue fundamental aquí, ayudando a identificar errores, sugerir refactorizaciones, explicar fragmentos de código y generar fragmentos específicos que faltaban (o era necesario actualizar como las reglas de Firebase).
El flujo de trabajo fue clave: una vez que Lovable generó la base del código, exportamos (o sincronizamos) el proyecto a un repositorio de GitHub. Desde ahí, clonamos el repositorio localmente. Esto nos permitió configurar un entorno de desarrollo completo (instalar dependencias, levantar servidor local, etc.) y utilizar Cursor de manera más efectiva para la depuración intensiva y la refactorización.
Es importante destacar que el stack tecnológico generado fue React para la estructura de componentes y lógica de frontend, junto con Tailwind CSS para el aspecto visual. Si bien esto aceleró enormemente la creación visual y estructural inicial, el código resultante requirió de depuración en nuestro entorno local.
La gran ventaja de usar GitHub como intermediario es la capacidad de mantener cierta sincronización: los cambios y correcciones realizados localmente pueden ser sincronizados de vuelta a Lovable, para su compilación y despliegue en dicha plataforma. Esto permite que Lovable refleje el estado actual del desarrollo.
Fortalezas del Desarrollo Rápido Asistido por IA (Lovable)
- Velocidad Exponencial (Inicial): La capacidad de generar estructuras completas, componentes de UI y lógica básica en minutos es impresionante. Reduce drásticamente el tiempo dedicado al prototipo básico.
- Exploración de Soluciones: La IA puede sugerir enfoques o librerías que quizás no considerarías inicialmente, ampliando tu abanico de soluciones.
- Superación del «Bloqueo Inicial»: Cuando no sabes por dónde empezar con una feature, pedirle a la IA un esqueleto inicial puede ser una gran ayuda: te propone las funcionalidades «típicas» de la aplicación que quieres realizar.
Independientemente de que el código puede ser «exportado» a GitHub, Lovable tiene la funcionalidad de volver a puntos anteriores y restaurar el desarrollo a ese momento y examinar el código de los ficheros generados.
Debilidades y Desafíos a Superar a Medio Plazo
- Código Subóptimo o Incorrecto: El código generado por IA a menudo no es el más eficiente o siquiera correcto. Requiere una revisión experta y profunda. El 70% del tiempo dedicado a depuración lo confirma (Lovable entra en bucle con ciertos errores y obliga a depurar «externamente»)
- «Caja Negra» Parcial: Entender por qué la IA eligió una solución específica puede ser opaco, dificultando la depuración de problemas sutiles.
- Dependencia de la Calidad del Prompt: La calidad del output depende enormemente de la precisión y claridad de las instrucciones dadas a la IA.
- Alucinaciones y Errores Lógicos: La IA puede inventar funciones, usar patrones incorrectos o introducir errores lógicos difíciles de detectar.
Aunque hay que destacar que Lovable propone en ciertas ocasiones refactorizar ficheros (para limpiarlos, generar archivos más pequeños dividiéndolos en componentes, etc.).

¿Qué Potenciales Problemas de Seguridad nos Encontramos?
Este es un punto crítico al usar IA generativa para código:
- Dependencias Obsoletas o Inseguras: Lovable incluye librerías del ecosistema JS/React con vulnerabilidades conocidas. Es imperativo auditar las dependencias (con
npm audit
,yarn audit
, etc.). - Vulnerabilidades en el Código Generado: Podría generar código susceptible a XSS (especialmente con dangerouslySetInnerHTML si lo sugiere) u otros ataques si no se valida correctamente. La configuración de RLS en Supabase y las reglas de seguridad en Firebase son responsabilidad humana.
- Gestión de Secretos: Lovable sugiere también erróneamente incrustar claves de API o secretos directamente en el código (como hizo: se migro a un archivo .env local protegido con el .gitignore).
- Validación Insuficiente: La lógica de validación de entradas en los formularios React puede ser incompleta.
¿Usaría IA para Aplicaciones Empresariales?
Con matices. Para prototipado rápido, MVPs o herramientas internas de bajo riesgo, la velocidad que ofrecen herramientas como Lovable y Cursor es muy atractiva, siempre y cuando haya un equipo de desarrollo experimentado supervisando, validando y refactorizando el código.
Para aplicaciones empresariales críticas, core de negocio o que manejen datos sensibles, sería cauto. La falta de madurez, la necesidad de depuración intensiva y los riesgos de seguridad inherentes al código generado automáticamente me hacen dudar. El coste de un error de seguridad o de lógica de negocio introducido por la IA podría ser catastrófico. La mantenibilidad, y escalabilidad, a largo plazo del código generado por IA también es una incógnita.
Por otro lado, hay que considerar los criterios de seguridad del ecosistema empresarial en el cual deberán coexistir estas aplicaciones, los arquetipos y patrones de desarrollo empleados, stack tecnológico y base de conocimiento del equipo, etc.
En cualquier caso, son herramientas increibles ya disponibles en el presente y debemos utilizarlas para ser más productivos, automatizar tareas, consultar errores y proponer refactorizaciones desde un punto de vista tutelado.
Conclusión
Desarrollar Vítaly Tasks con Lovable y Cursor fue un ejercicio fascinante que demuestra el potencial de la IA para acelerar ciertas fases del desarrollo. Sin embargo, subraya que la IA es, por ahora, una herramienta de asistencia muy potente, no un reemplazo del desarrollador. La supervisión experta, el pensamiento crítico, la depuración rigurosa y una sólida comprensión de los principios de seguridad son más cruciales que nunca. La IA puede escribir mucho código, pero la responsabilidad final sigue siendo nuestra.
Rompiendo una lanza a favor de estas herramientas de desarrollo de software… estamos trabajando con «las peores versiones de estas herramientas». El futuro solo puede ser brillante y nos permitirá ser desarrolladores mucho más productivos y versátiles gracias a la IA.