Diseñar un onboarding flow efectivo es la diferencia entre una app que retiene usuarios y una que los pierde en el primer intento. Aquí aprendes cómo construir un flujo multi-step con Lovable y Supabase que recolecta datos clave en el registro y nunca vuelve a mostrarse, ideal para founders y desarrolladores que crean SaaS con IA.
¿Qué es un onboarding flow y por qué importa en tu app?
Un onboarding flow guía al usuario desde la creación de cuenta hasta el dashboard, recolectando información que personaliza su experiencia.
La idea es simple: cuando alguien crea su cuenta por primera vez, lo recibes con preguntas en un formulario tipo slide multi-step. Una vez completado, la app guarda los datos en Supabase y nunca vuelve a mostrar esas preguntas. El truco está en un campo booleano llamado onboarding_completed dentro de la tabla profiles [00:55].
¿Qué es un multi-step form? Es un formulario dividido en varias pantallas con diseño tipo presentación, donde cada paso recoge un dato distinto. Mejora la tasa de finalización porque reduce la fricción visual.
¿Cómo le pides a Lovable que construya el onboarding?
El primer paso es escribir un prompt claro en el chat de Lovable describiendo exactamente qué quieres.
En la clase, el prompt usado fue: "quiero crear un onboarding flow, una vez que el usuario inicia sesión, lo reciben preguntas de onboarding en un multi-step form que me permita recolectar su info básica. Solo queremos mostrar esto una vez en la creación de cuenta y nunca más si recolectamos la info" [00:25]. Lovable activa su chat mode, escanea el código existente y prepara un plan antes de implementar.
Si es tu primera vez, agrega manualmente a la tabla profiles:
- Un booleano
onboarding_completed.
- Los campos de datos que quieras recolectar (job title, use case, company name, etc.).
- La lógica de autenticación que conecte al usuario con su perfil.
¿Qué preguntas incluir en tu onboarding?
Lovable genera preguntas razonables por defecto, pero tú decides el detalle final.
En el ejemplo se incluyeron job title, primary use case, notificaciones por email y photo sources. Una práctica común es agregar al final una pantalla de upsell con tu pricing, justo antes de soltar al usuario en la versión gratuita [03:25]. Es el momento perfecto para ofrecer upgrade porque el usuario ya invirtió tiempo configurando.
¿Cómo solucionar bugs de routing después del onboarding?
El bug más común aparece cuando el usuario completa el flujo y la app lo regresa al inicio del onboarding en lugar de mandarlo al dashboard.
Esto pasa porque el estado de onboarding_completed se actualiza en la base de datos, pero el frontend no se entera a tiempo. La solución limpia es activar una real-time subscription en Supabase, que escucha cambios en la tabla profiles y redirige al dashboard apenas detecta la actualización [05:50].
¿Qué es una real-time subscription en Supabase? Es una conexión que escucha cambios en una tabla en tiempo real y dispara acciones en tu app sin recargar la página. Perfecta para flujos donde el estado cambia y necesitas reaccionar al instante.
La alternativa menos elegante es forzar un refresh de la página, pero rompe la experiencia. Siempre que puedas, ve por la opción reactiva.
¿Cómo darle contexto a Lovable cuando algo falla?
Mientras más detalle le des al prompt, mejor será la solución que recibas.
En la clase, el prompt que finalmente resolvió el bug fue: "cuando hago clic en el botón de finish onboarding, quiero navegar al dashboard inmediatamente. Por alguna razón, la segunda vez funciona, pero en el primer intento siempre me regresa a la primera pantalla" [08:30]. Esa descripción permitió a Lovable hacer trabajo de detective, identificar problemas en las rutas y aplicar el fix correcto.
La lección es directa: describe los pasos que tomaste, qué esperabas y qué viste. Los AI code editors funcionan como un colega junior. Si le das contexto, te entrega oro. Si le das vaguedades, te entrega más bugs.
¿Cómo verificar que los datos se guardaron en Supabase?
Una vez completado el flujo, los datos deben aparecer en tu tabla profiles dentro de Supabase.
Ve al table editor de Supabase, abre la tabla profiles y busca tu cuenta de prueba. Vas a ver columnas con la información recolectada:
company_name con el nombre de la empresa.
use_case con el caso de uso seleccionado.
job_title con el cargo del usuario.
onboarding_completed marcado como true.
- Timestamp del momento exacto en que terminó el flujo.
photo_sources u otros datos personalizados.
Si vuelves al home y entras al dashboard otra vez, no verás el onboarding. Esa es la confirmación de que el booleano está funcionando como gate [10:35].
Con esto cierras el módulo de Supabase: ya manejas CRUD, onboarding flows y bases de datos conectadas a un frontend bonito. ¿Qué tipo de preguntas pondrías tú en el onboarding de tu propia app? Cuéntame en los comentarios.