Proyectos
2025 Proyecto personal Live

Bot de finanzas por WhatsApp

Registra ingresos y gastos desde mensajes de WhatsApp con clasificación automática vía Workers AI, y un dashboard web para visualizarlos.

Rol
Proyecto personal
Duración
2025 — Presente
Año
2025
Estado
Live
TypeScript React 19 TanStack Router / Query Cloudflare Workers Hono D1 + Kysely Workers AI Tailwind v4 + shadcn/ui

El contexto

Registrar gastos manualmente en una app nunca me duró más de una semana. La fricción real estaba en el registro, así que moví el registro a donde ya escribo todos los días: WhatsApp. Mandas “almuerzo 18”, el bot lo clasifica solo y un dashboard web te muestra a dónde se va el dinero. Es un producto personal en producción.

Decisiones técnicas

1. API en el edge con Hono y D1

El backend es una API REST sobre Cloudflare Workers con Hono, con D1 (SQLite) + Kysely para consultas tipadas. Cliente y servidor viven en un monorepo pnpm que comparte los tipos, así el dashboard y la API nunca se desincronizan en la forma de los datos.

2. Clasificación automática con Workers AI

Cada mensaje entra por la WhatsApp Cloud API y pasa por Workers AI para clasificarse (categoría, monto, ingreso o gasto) sin que el usuario tenga que elegir nada de una lista.

3. Validación compartida y jobs programados

La validación es Zod compartido entre cliente y servidor — un solo schema como fuente de verdad. Los recordatorios y cierres periódicos corren con Cron Triggers + KV, y las piezas críticas están cubiertas con Vitest + Testing Library.

Lo que aprendí

  • La mejor UX a veces es no construir UI: WhatsApp ya era la interfaz, solo había que ponerle un backend detrás.
  • Compartir tipos y validación (Zod) en un monorepo elimina una clase entera de bugs de “el front esperaba otra cosa”.
  • Workers AI resuelve la clasificación sin montar un pipeline de ML propio para un caso de uso personal.