Ecuador — Cuenca
Proyectos

FamVan — Una app familiar privada para una familia que crece

FamVan — Una app familiar privada para una familia que crece
11 de septiembre de 2026
FamVan es una app privada para una familia, construida para la recta final de un embarazo y los años que siguen. Una sola línea de tiempo compartida para fotos y videos, un seguimiento del embarazo, cuentas atrás para las fechas que importan, álbumes por mes y por persona, cartas selladas y una bóveda para los documentos que nadie encuentra cuando los necesita. Funciona en iOS, Android y web desde un solo código en Flutter, sobre un backend en Supabase. Diseñé y construí todo. La premisa es lo contrario de una red social. No hay algoritmo de feed, ni descubrimiento, ni audiencia. Las personas que están dentro son todo el producto. Toda familia ya tiene un grupo de chat, y toda familia pierde cosas ahí. Una foto de marzo es inalcanzable en junio. Una fecha de parto es un mensaje, no una cuenta atrás. A los abuelos les reenvían una parte, tarde. Nadie encuentra el carné de vacunas. La investigación fue cercana y sobre todo observacional: mirar qué se pide una y otra vez, y qué se pierde. El patrón fue que a las familias no les falta un lugar donde mandar fotos. Les falta un lugar donde las fotos sigan siendo encontrables, donde la línea de tiempo tenga estructura y donde distintas personas puedan tener niveles de acceso genuinamente distintos. Ese último punto definió la arquitectura. FamVan tiene padres, hijos, familiares y personas sin login alguno: el bebé tiene perfil mucho antes de tener contraseña. El inicio de sesión acompaña ese rango. Alguien puede entrar escribiendo su nombre y un PIN de seis dígitos, que es lo que hace viable una cuenta real para un niño. Los adultos pueden usar correo y contraseña o Google. La familia se crea una vez y después se entra con un código de seis letras. El acceso sigue al rol y no a un login compartido. La bóveda, con documentos y carnés de salud, es solo para padres. Los asistentes de IA son opcionales y solo para padres. Las publicaciones llevan niveles de visibilidad, así que no todo llega a todos. Cada una de esas reglas la aplican políticas de seguridad a nivel de fila en Postgres, no botones ocultos en la interfaz. La cuenta de un niño no puede leer la bóveda porque la base de datos no devuelve esas filas. La función que mejor explica el producto es la cámara del embarazo. Una serie semanal de fotos de la barriga solo funciona si las fotos calzan. En la práctica nunca calzan: el ángulo se desvía, la distancia cambia y el timelapse tiembla. Por eso la cámara superpone la foto de la semana pasada como un fantasma tenue mientras encuadras la nueva. Te alineas contra tu propia toma anterior. La serie se puede reproducir como timelapse y exportar como GIF, porque una serie que no puede salir de la app es una serie que nadie comparte. La misma cámara con superposición se usa para las fotos mensuales del bebé después del nacimiento. Es una función pequeña que solo existe porque alguien miró el problema ocurrir.
  • Línea de tiempo: publicaciones de foto y video con fotogramas de portada y visor a pantalla completa, niveles de visibilidad, etiquetas, reacciones, comentarios, edición y actualizaciones en tiempo real.
  • Embarazo: cuenta atrás y notas semana a semana, la cámara de la barriga, votaciones de nombres, citas médicas, registros rápidos y un flujo de «el bebé ya llegó» que transforma toda la app.
  • Bebé: edad, curva de crecimiento contra una banda aproximada de la OMS, hitos, fotos mensuales y el calendario de vacunas.
  • Recta final: un juego de adivinar el día del parto cuyas apuestas quedan selladas hasta el nacimiento y luego se puntúan solas, listas compartidas con plantillas de bolso de hospital y plan de parto, un contador de pataditas y un cronómetro de contracciones que reconoce el patrón 5-1-1 y avisa cuándo llamar.
  • Recuerdos: cartas selladas hasta una fecha, álbumes por mes y persona, un árbol genealógico, entrevistas de cumpleaños con las mismas diez preguntas cada año para ver las respuestas lado a lado, y un resumen del año con collage compartible.
  • Práctico: fechas con cuenta atrás, una bóveda solo para padres, recordatorios en el dispositivo, notificaciones push, un enlace de suscripción de calendario para Google y Apple, un fotolibro en PDF imprimible y una exportación completa de todo.
La app está en inglés, español y neerlandés. No es una decisión de mercado, es una familia con raíces en Bélgica viviendo en Ecuador. Veinticuatro archivos de traducción están divididos por dominio —embarazo, bebé, línea de tiempo, recuerdos, planificación, familia, contenido, núcleo— para que los textos de una función vivan con la función. Construir para tres idiomas desde el inicio también mantiene honestos los diseños. Las palabras compuestas del neerlandés son largas, y un botón que solo entra en inglés es un botón mal diseñado.
  • App: Flutter con Riverpod para el estado, go_router para la navegación y un solo código para iOS, Android y web.
  • Backend: Supabase — Postgres con seguridad a nivel de fila, Auth, Storage, tiempo real en publicaciones, comentarios y reacciones, y funciones de base de datos para crear familia, emitir invitaciones y entrar con código.
  • Multimedia: captura de cámara con superposición, miniaturas de video, imágenes en caché y procesamiento de imagen para el timelapse y la exportación a GIF.
  • Documentos: generación e impresión de PDF para el fotolibro; exportación de calendario como .ics o enlace privado de suscripción.
  • Notificaciones: notificaciones locales programadas para fechas, citas y vacunas, con Firebase Messaging para push.
  • Puesta en marcha: un script en Python que aplica las migraciones, configura la autenticación, crea las primeras cuentas y las mete en una familia, de modo que todo el backend es reproducible con un comando.
Los permisos van en la base de datos. La tentación con una app familiar es tratar el acceso como un asunto de interfaz, porque todos los involucrados son de confianza. Ese razonamiento es exactamente el que filtra una bóveda. Llevar cada regla a políticas de fila significó escribir más políticas que pantallas, y significa que un error en un widget no puede exponer un documento. La cuenta de un niño es un problema de diseño, no técnico. Un PIN de seis dígitos sobre un nombre es menos seguro que una contraseña y mucho más usable para un niño que igual debería tener identidad propia en la app en lugar de usar la de un padre. Elegir eso a conciencia, y dejar lo sensible detrás de roles, fue el intercambio que valía la pena. Las funciones para un momento necesitan un final. El cronómetro de contracciones y el juego de adivinar el parto son inútiles una semana después del nacimiento. Construir la transición de «el bebé ya llegó» —donde las superficies del embarazo se retiran y las del bebé toman su lugar— fue más trabajo de diseño que cualquiera de las dos funciones, y sin eso la app habría envejecido mal al mes de lanzarse. Una app familiar que se sostiene. Las fotos siguen siendo encontrables, las fechas cuentan solas, los abuelos ven lo que deben, el niño tiene su propia cuenta y la serie de la barriga calza. Es lo menos comercial que he construido y de lo más usado.