Chronus.cl · Caso de estudio | Patricio Gómez Meneses

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

ClienteNext.js 16 · React 19App web, FullCalendar, shadcn/ui
BackendConvex
  • Queries reactivas
  • Mutations y actions
  • Cron y scheduler
  • Colas de emisión
  • Agente de IA
Servicios externos
  • 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
La aplicación web habla solo con Convex. Convex concentra datos, lógica y tareas programadas, y se comunica con los servicios externos.

Decisiones técnicas

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Capturas