Caso de estudio · Reactive SpA
Chronus.cl
SaaS para profesionales de la salud que reúne agenda, recordatorios, cobros, boletas de honorarios y un asistente de IA en una sola aplicación.
- Rol
- Fundador y desarrollador full stack
- Stack
- Next.js 16, React 19, Convex, NestJS, Clerk, Cloudflare R2
- Sitio
- chronus.cl
- ~70tablas en Convex, en 12 módulos de dominio
- 25herramientas del agente de IA
- 117archivos de test con Vitest
- 7integraciones externas
El problema
Un profesional de la salud independiente suele llevar la agenda en Google Calendar, confirmar citas por WhatsApp, anotar los pagos en una planilla y emitir cada boleta de honorarios a mano en el portal del SII. Chronus reúne esas tareas y automatiza las que se repiten.
Arquitectura
- Queries reactivas
- Mutations y actions
- Cron y scheduler
- Colas de emisión
- Agente de IA
- ClerkAutenticación · webhook
- Google CalendarOAuth · Calendar API v3
- WhatsAppAPI oficial de Meta · webhook
- ResendEmail transaccional
- Cloudflare R2Archivos · URLs firmadas
- OpenAIVercel AI SDK · 25 herramientas
- NestJS → SIIPlaywright · boletas de honorarios
Decisiones técnicas
Convex como backend
Base de datos, funciones del servidor y tiempo real en un mismo lugar: la agenda se actualiza en todos los dispositivos sin recargar. El esquema se divide en 12 módulos por dominio (agenda, facturación, WhatsApp, pacientes, entre otros) con cerca de 70 tablas.
Boletas en un servicio aparte
La emisión de boletas de honorarios corre en un servicio NestJS que opera el portal del SII con Playwright. Convex lo invoca desde colas de trabajo, así la emisión no bloquea la interfaz y se reintenta si el portal falla.
Sincronización con Google Calendar
Conexión por OAuth con los tokens cifrados. Los cambios hechos en Chronus se envían a Google y los eventos de Google se importan a pedido.
Agente de IA con herramientas definidas
El asistente usa el componente de agentes de Convex y el Vercel AI SDK. Trabaja con 25 herramientas, 16 en la app y 9 en WhatsApp, para buscar pacientes, revisar la agenda, ver el resumen financiero, listar boletas y proponer acciones.
WhatsApp y email
API oficial de WhatsApp de Meta con plantillas, bandeja de entrada y recordatorios de pago programados. El email transaccional sale por Resend, con adjuntos desde Cloudflare R2.
Calidad y despliegue
- 117 archivos de test con Vitest y convex-test.
- El servicio NestJS se despliega con GitHub Actions en un runner propio y corre con PM2. También tiene una imagen Docker basada en la de Playwright.
- Migración en curso a TanStack Start, con el mismo backend en Convex.




