MVP Starter Kit explicado simplemente (con diagramas y código real)

MVP Starter Kit : lo esencial en un artículo — código real, diagramas y pasos concretos, extractos de un curso de 43 lecciones.

MVP Starter Kit explicado simplemente (con diagramas y código real)

Una guía que va al grano: MVP Starter Kit analizado con diagramas, ejemplos concretos y comandos probados. Todo proviene de un curso estructurado de 11 capítulos — aquí tienes lo mejor.

tl;dr
  • Introducción y Mentalidad MVP
  • Ideación y Validación
  • Arquitectura del Starter Kit
  • Autenticación y Usuarios
  • Construir el Core del MVP
~$ cat ./parcours.md # MVP Starter Kit — 10 capítulos
01
Introducción y Mindset MVP
→ Presentación del curso y filosofía MVP→ Lean Startup, el bucle Build-Measure-Learn+ 1 más lecciones
02
Ideación y Validación
→ Encontrar una idea que resuelve un problema real→ Metodología de las entrevistas a usuarios+ 2 más lecciones
03
Arquitectura del Starter Kit
→ Tour completo del starter kit→ Clonar y configurar en local+ 2 más lecciones
04
Autenticación y Usuarios
→ Supabase Auth, email/password y OAuth→ Sesiones, middleware y rutas protegidas+ 2 más lecciones
05
Construir el Core del MVP
→ Esquema Postgres y migraciones Supabase→ CRUD con Server Actions Next.js+ 2 más lecciones
06
Monetización con Stripe
→ Pricing — freemium vs paid-only→ Integrar Stripe Checkout en 30 minutos+ 2 más lecciones
07
Landing Page de Alta Conversión
→ Estructura de una landing page que convierte→ Copywriting — títulos, subtítulos, CTAs+ 1 más lecciones
08
Lanzamiento y Adquisición
→ Preparar su lanzamiento (checklist J-7)→ Lanzar en Product Hunt con éxito+ 1 más lecciones
🏁
Proyecto final (+ 2 capítulos en camino)
→ Te vas con un proyecto concreto y demostrable

CRUD con Server Actions Next.js

NOTEObjetivo — Implementar las cuatro operaciones CRUD (Create, Read, Update, Delete) con las Server Actions de Next.js 14, sin construir una API REST separada, apoyándose en el cliente Supabase del lado del servidor.

Objetivos pedagógicos

TIPAl finalizar este módulo
  • Comprender qué es una Server Action y por qué reemplaza a una API REST para un MVP
  • Escribir una acción de creación, lectura, actualización y eliminación
  • Refrescar la interfaz con revalidatePath después de una mutación
  • Validar las entradas del lado del servidor antes de escribir en la base de datos
  • Comprender cómo RLS protege automáticamente cada consulta

La intuición: llamar a una función servidor desde un formulario

Tradicionalmente, para modificar datos, el cliente envía una petición HTTP (fetch('/api/tasks', ...)) a una ruta API, que habla con la base de datos y luego devuelve una respuesta. Las Server Actions de Next.js eliminan esta plomería: escribes una función marcada con "use server" y la llamas directamente desde un formulario o componente. Next.js crea la petición HTTP por ti, entre bastidores.

Para un MVP, es una gran ganancia de tiempo: menos archivos, menos código de serialización, sin gestión manual de estados de carga para cada llamada. Escribes la lógica de negocio, Next.js se encarga del transporte.

El cliente Supabase del lado del servidor

Toda Server Action necesita un cliente Supabase que conozca al usuario conectado (a través de las cookies de sesión). Se centraliza en un helper:

Esquema Postgres y migraciones Supabase

NOTEObjetivo — Diseñar un esquema de datos mínimo pero sólido para tu MVP, versionarlo con migraciones Supabase y proteger cada tabla con Row Level Security desde el principio.

Objetivos pedagógicos

TIPAl finalizar este módulo
  • Modelar las entidades centrales de tu MVP en tablas Postgres
  • Escribir una migración SQL versionada con la CLI Supabase
  • Comprender y activar Row Level Security (RLS) en cada tabla
  • Vincular los datos al usuario conectado mediante auth.uid()
  • Mantener el esquema simple: modelar solo lo que exige el MVP

La intuición: el esquema cuenta lo que hace tu producto

Antes de escribir la primera línea de código de la aplicación, hazte una pregunta sencilla: ¿cuáles son las 2 o 3 entidades que manipula mi producto? Una aplicación de gestión de tareas manipula proyectos y tareas. Un SaaS de notas manipula notas. Una herramienta de facturación manipula clientes y facturas. El esquema de base de datos es la traducción directa de esa respuesta.

La tentación del principiante es prever todo: etiquetas, categorías, historial, archivos adjuntos, compartir. Para un MVP, se corta. Se mantiene la tabla principal, su relación con el usuario, y nada más. Se añadirá el resto cuando un cliente real lo solicite.

WARNINGAtención: cada tabla que añades hoy es una tabla que tendrás que migrar, proteger y mantener mañana. Un esquema de 3 tablas que funciona vence a un esquema de 12 tablas a medio diseñar.

Modelar las entidades del MVP

Tomemos un ejemplo concreto: un MVP de gestión de tareas compartidas. Dos entidades bastan para la primera versión: projects y tasks. Cada proyecto pertenece a un usuario, cada tarea pertenece a un proyecto.

TablaColumnas claveRelación
projectsid, user_id, name, created_atpertenece a un user (auth.users)
tasksid, project_id, title, done, created_atpertenece a un project

Observa la convención: un identificador uuid generado automáticamente, una clave foránea hacia el padre, un created_at por defecto. Esta estructura se repite en el 90 % de las tablas de un MVP.

Escribir la migración SQL

Supabase versiona el esquema mediante archivos de migración SQL en supabase/migrations/. Se crea un nuevo archivo con la CLI:

with check

Controla qué filas pueden insertarse o modificarse. Impide que un usuario cree un proyecto a nombre de otro.

WARNINGAtención: sin RLS activado, cualquier visitante con tu clave anon (pública por naturaleza) puede leer toda tu base de datos. Es la fuga de datos número uno de los MVPs Supabase. Activa RLS en CADA tabla, sin excepción.

Aplicar la migración

En local con el contenedor Supabase, luego hacia la base remota:

TIPConsejo: NUNCA modifiques una migración ya aplicada en producción. Crea siempre una nueva migración para evolucionar el esquema. Es el mismo principio aditivo que para un esquema GraphQL.

Webhooks Stripe y sincronización Supabase

NOTEObjetivo — Recibir los eventos de pago de Stripe mediante un webhook seguro, verificar su firma y sincronizar el estado de suscripción en Supabase para conceder o revocar el acceso de forma fiable.

Objetivos pedagógicos

TIPAl finalizar este módulo
  • Comprender por qué el webhook es la única fuente de verdad del pago
  • Crear una ruta webhook en Next.js
  • Verificar la firma de Stripe para rechazar peticiones falsas
  • Actualizar la tabla de suscripción en Supabase
  • Probar el webhook en local con la CLI Stripe

La intuición: Stripe te avisa cuando algo sucede

Tras un pago, Stripe envía una petición HTTP a una URL que declaras: es un webhook. Esta petición lleva un evento (checkout.session.completed, customer.subscription.deleted, etc.). Es la única información fiable: la página de retorno del navegador puede recargarse, cerrarse o ser falsa, pero el webhook procede de los servidores de Stripe.

El principio es por tanto: solo se concede el acceso de pago cuando el webhook lo indica. Es más robusto e imposible de eludir por un usuario astuto.

La tabla de suscripción en Supabase

va-plus-loin

Este artículo cubre los extractos más útiles — el curso completo MVP Starter Kit (11 capítulos, 43 lecciones, ejercicios corregidos y proyecto final) te lleva hasta el final.

./acceder-al-curso-completo curso gratuito: Vibe Coding

FAQ

¿Cuánto tiempo se necesita para aprender MVP Starter Kit?
Con una progresión estructurada (11 capítulos, 43 lecciones cortas y prácticas), se alcanza un nivel operativo en unas semanas dedicando de 30 a 60 minutos al día. Lo importante es practicar cada concepto de inmediato.
¿Se necesitan requisitos previos?
Unos fundamentos de informática bastan. Si sabes usar un terminal y leer código sencillo, estás listo.
¿Por dónde empezar concretamente?
Reproduce los comandos de este artículo y luego sigue el curso completo MVP Starter Kit: encadena las 43 lecciones en orden, con ejercicios y proyecto final.

📬 ¿Quieres recibir este tipo de guía cada semana? Suscríbete gratis — código real, cero palabrería.