2026App MóvilIN PROGRESS

Balboa Finance

Asistente financiero personal. Ingesta estados de tarjeta de crédito desde Gmail, captura recibos físicos con Claude Vision, categoriza en 11 grupos de gasto fijos, y presenta transacciones pendientes para confirmación con un toque antes de que se persista cualquier dato.

Qué hace

  • Un cron horario en GitHub Actions revisa Gmail en busca de estados PDF de tarjetas de crédito y extrae las transacciones con pdf-parse
  • La pantalla de cámara captura recibos físicos — Claude Vision lee comercio, monto, fecha y sugiere una categoría
  • Cada transacción extraída llega a una bandeja de Pendientes: revisar, editar o rechazar antes de que se escriba cualquier dato
  • Un toque confirma la transacción y la persiste en la base de datos
  • La pestaña de Chat responde preguntas de gasto en lenguaje natural — "¿cuánto gasté en restaurantes este mes?" — con respuestas en streaming
  • Análisis semanal y por ciclo de facturación: gasto por categoría, principales comercios y variación entre períodos
  • 11 categorías de gasto fijas (Supermercado, Restaurante, Transporte, Salud, Entretenimiento, Ropa, Hogar, Educacion, Servicios, Viajes, Otro) — Claude clasifica, el usuario confirma

Por qué importa

  • Reemplaza un prototipo frágil de n8n con un riesgo de doble escritura — la reescritura eliminó ese punto de falla antes de que llegara al registro permanente
  • Cero categorización manual por transacción — Claude clasifica, el usuario confirma con un toque; el ciclo completo de revisión toma menos de 5 segundos
  • La captura de recibos físicos cierra la brecha que las herramientas basadas en estados de cuenta no cubren — en Panamá, una parte significativa del gasto cotidiano (restaurantes, mercados locales, transporte) nunca aparece en un estado bancario

Arquitectura

  • Monorepo Expo: la app móvil (React Native + NativeWind + Expo Router v4) y la API (Next.js 15 en Vercel) comparten tipos mediante un paquete workspace `packages/shared`
  • Supabase almacena el estado operativo — transacciones pendientes, log de deduplicación, comercios aprendidos, ciclos de facturación
  • GitHub Actions ejecuta el cron horario de Gmail — el cron secret puede encolar transacciones pero no puede escribir en la base de datos; solo el endpoint de confirmación autenticado con DEVICE_TOKEN puede hacerlo
  • Claude Sonnet 4.6 gestiona el OCR de recibos (visión) y las consultas conversacionales (streaming); las 11 categorías se inyectan como los únicos valores de clasificación válidos para que Claude no pueda inventar categorías nuevas
  • Reemplaza un prototipo frágil de n8n: cada integración tiene un SDK de Node de primera clase; n8n añadía complejidad, no capacidad, y tenía un riesgo de doble escritura que no se podía revertir silenciosamente

Filosofía

  • El invariante de confirmación es el primer principio: cero escrituras en el registro permanente sin un toque explícito del usuario. El cron, el clasificador, el OCR — ninguno puede tocarlo
  • Los recibos físicos importan en Panamá más que en casi cualquier otro lugar — buena parte del gasto cotidiano nunca llega a un estado de cuenta bancario
  • Expo
  • React Native
  • Next.js
  • Claude API
  • Notion API
  • Supabase
  • Gmail API