2026SaludSHIPPED

Vitals

Vitals by mariansan — plataforma de inteligencia de salud personal para Galaxy Watch y Fitbit. Los datos del wearable llegan automáticamente desde dos fuentes; Claude Sonnet los sintetiza en un briefing diario, análisis de tendencias y un coach de IA.

Qué hace

  • Ingesta métricas diarias desde el **Galaxy Watch** (app Android compañera) y **Fitbit vía Google Health API** — sueño, ritmo cardíaco, HRV, SpO₂, pasos, calorías, entrenamientos, peso y composición corporal
  • Ejecuta un análisis con Claude Sonnet sobre cada snapshot y entrega un briefing matutino en lenguaje natural con recomendaciones concretas
  • **Tendencias:** gráficos de series temporales de 7 y 30 días en cuatro categorías de métricas, con indicadores de delta y selectores de período
  • **Coach IA:** una conversación en streaming con Claude con el contexto de salud completo — pregunta cualquier cosa sobre tus métricas y recibe orientación estructurada en markdown en tiempo real
  • La PWA del dashboard puede activar una sincronización inmediata en la app compañera vía FCM — sin necesidad de pulsar "Sincronizar"
  • Actualización en vivo mediante Supabase Realtime — el dashboard se actualiza en el momento en que llegan nuevos datos
  • Soporta múltiples usuarios — los datos de cada persona aislados a nivel de base de datos mediante Supabase RLS
  • Instalable como PWA con notificaciones push — briefing matutino y check-in nocturno en la pantalla de inicio
  • Completamente privado, protegido por contraseña, noindex — sin entrada manual de datos

Por qué importa

  • Reemplaza 15–20 minutos de revisión matutina con un briefing de 30 segundos que realmente cambia lo que haces
  • **Dos fuentes de datos, una sola pipeline:** Galaxy Watch y Fitbit cubiertos — agnóstico al dispositivo desde el primer día
  • Captura sin fricción: WorkManager gestiona la sincronización diaria de Samsung Health automáticamente tras la configuración inicial
  • La pantalla Coach hace tus datos conversacionales — las métricas se convierten en contexto, no solo en números
  • Vercel Cron + `after()` reemplazó una dependencia de n8n — eliminó un orquestador de workflows externo del stack de producción

Arquitectura

  • **Ruta Samsung:** Galaxy Watch → Health Connect → app Android compañera (WorkManager, 07:00 diario) → POST `/api/ingest`
  • **Ruta Google Health:** OAuth2 → endpoint `list` de Google Health API → ingestión diaria por Vercel Cron — SpO₂, HRV, FC en reposo, frecuencia respiratoria y VO₂ max usan `list`, no `dailyRollUp`
  • Claude Sonnet se ejecuta dentro de `/api/generate` vía `after()` — la respuesta se devuelve de inmediato; la generación termina tras la respuesta sin agotar el timeout de Vercel
  • La pantalla Coach transmite tokens desde `/api/coach` → ReadableStream → cliente; el snapshot diario completo se incluye en el system prompt
  • Supabase Realtime envía actualizaciones de `daily_analysis` en tiempo real — UX sin recarga
  • FCM cierra el ciclo: el dashboard activa una sincronización bajo demanda en el companion Android
  • SpO₂ agregado como mediana diaria para resistir lecturas erróneas del sensor; totales de actividad filtrados solo para Samsung Health para evitar el doble conteo

Diseño

  • Reconstruido desde cero sobre una especificación de Claude Design — 22 componentes auditados, 50 pull requests
  • Sistema de tokens dark-first con WCAG AA en los tres temas; logo-mark ring+pulse con SplashScreen personalizado
  • MetricTile, PageHeader compartido, banda de referencia SpO₂ y BottomTabBar rediseñados conforme a la especificación

Filosofía

  • Los datos del wearable solo tienen valor cuando generan algo que puedes hacer hoy
  • Un briefing que cambia lo que haces — no una gráfica que pasas de largo y olvidas
  • La pantalla Coach hace los datos conversacionales: las métricas se convierten en contexto, no en decoración
  • Next.js
  • Supabase
  • Claude API
  • Firebase
  • Android
  • Google Health API
  • Recharts
  • Tailwind CSS