De Cero a SaaS con IA

Día 3: Desarrollo con IA

Construye el core del producto usando Cursor, GitHub Copilot y Claude

Día 3: Desarrollo con IA

Con el diseño y el plan listos, hoy arranca el código. Pero no vas a escribirlo todo tú solo: Cursor, GitHub Copilot y Claude son tu equipo de desarrollo. El objetivo no es entender cada línea al 100% desde el primer día — es tener una aplicación funcional con las features MVP operativas antes de medianoche.

Objetivo del día

Tener Next.js + Supabase configurados y corriendo en local, con al menos la feature principal del MVP implementada y funcional (aunque sea sin estilos perfectos).


Configura el proyecto en 20 minutos

Abre la terminal y ejecuta:

npx create-next-app@latest mi-saas --typescript --tailwind --eslint --app
cd mi-saas

Luego instala las dependencias base:

npm install @supabase/supabase-js @supabase/ssr
npm install stripe @stripe/stripe-js
npm install shadcn-ui
npx shadcn@latest init

Crea el proyecto en supabase.com, copia las credenciales al archivo .env.local:

NEXT_PUBLIC_SUPABASE_URL=tu_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=tu_anon_key
SUPABASE_SERVICE_ROLE_KEY=tu_service_key

Usa Cursor para el boilerplate

Abre el proyecto en Cursor (descárgalo en cursor.sh si aún no lo tienes). Cursor permite hablar con tu código directamente. Usa Cmd+K (o Ctrl+K) para editar código con instrucciones en lenguaje natural, y Cmd+L para abrir el chat lateral.

Prompt de arranque en Cursor:

Estoy construyendo un SaaS con Next.js 14 App Router y Supabase.
Crea el archivo lib/supabase/client.ts con el cliente del lado del navegador
y lib/supabase/server.ts con el cliente del lado del servidor usando cookies.
Sigue la documentación oficial de @supabase/ssr.

Para cada componente nuevo, selecciona el código existente con Cmd+L y di: "Basándote en este patrón, crea un componente similar para [nueva función]."


Cómo promtear a Claude para features complejas

Para lógica de negocio compleja (algoritmos, validaciones, integraciones), Claude es mejor que Cursor porque tiene más contexto de la arquitectura completa. Usa este formato:

Contexto: SaaS de [descripción]. Stack: Next.js 14 App Router, Supabase, TypeScript.
Feature a implementar: [descripción detallada].
Restricciones: [ej. "debe funcionar en server components", "sin dependencias nuevas"].
Genera: el código completo de la función/componente/API route con comentarios explicativos.

Sé específico. "Crea una función" es peor que "Crea una función asíncrona en TypeScript que recibe userId: string, consulta la tabla subscriptions en Supabase y retorna el plan activo del usuario".


GitHub Copilot para el trabajo repetitivo

Activa GitHub Copilot en VS Code o Cursor. Es especialmente útil para:

  • Autocompletar tipos TypeScript
  • Generar variaciones de componentes UI ya existentes
  • Escribir consultas SQL para Supabase
  • Completar props y interfaces

Cuando Copilot sugiera código, léelo antes de aceptarlo con Tab. No aceptes sugerencias que no entiendes — pídele a Claude que las explique si es necesario.


El loop red-green-refactor con IA

Adopta este ciclo para cada feature:

  1. Red: Escríbele a Claude: "¿Qué puede salir mal en este código?" antes de ejecutarlo.
  2. Green: Ejecuta el código. Si falla, copia el error completo y pégalo en Claude: "Este error ocurre en este contexto [código]. ¿Cuál es la causa y cómo lo corrijo?"
  3. Refactor: Una vez funcionando, pide: "Revisa este código para mejorar legibilidad y performance. No cambies la lógica, solo la forma."

No pases más de 20 minutos atascado en un error sin pedir ayuda a la IA. El tiempo es el recurso más escaso hoy.


Depuración efectiva con IA

Cuando algo no funciona, incluye siempre en tu prompt:

  • El mensaje de error completo (no solo la primera línea)
  • El código relevante (no todo el archivo)
  • Qué esperabas que pasara vs. qué pasó realmente

Ejemplo:

Error: "TypeError: Cannot read properties of undefined (reading 'id')"
Ocurre en esta función: [código].
Esperaba que user.id existiera porque el usuario está autenticado.
¿Qué condición de carrera o caso edge puede causarlo?

Herramientas IA del día

  • Cursor — edición de código con IA integrada, autocompletado contextual, refactors rápidos
  • GitHub Copilot — autocompletado en tiempo real para boilerplate y repetición
  • Claude — features complejas, depuración, explicación de errores, revisión de lógica

Checklist del día

  • Proyecto Next.js creado y corriendo en localhost:3000
  • Supabase conectado: cliente configurado en lib/supabase/
  • Variables de entorno en .env.local (nunca en el código)
  • Al menos una tabla creada en Supabase con Row Level Security activado
  • Feature principal del MVP implementada y funcional en local
  • Al menos un error depurado con ayuda de Claude (copia el proceso en tu notas)
  • Código subido a GitHub con commit descriptivo