← Volver

Revenew

Panel para negocios con ventas recurrentes: estima cuándo vuelve a comprar cada cliente y a quién dar seguimiento, sin hojas de cálculo.

Stack: React · TypeScript · TanStack Query · Tailwind CSS · Zod · Firebase

Problema

Un negocio que vende de forma recurrente necesita saber rápido cuándo compró cada cliente, cuándo es probable que vuelva y a quién llamar esta semana. Esa información suele vivir en hojas de cálculo que no avisan de nada.

Solución

Una SPA en React y TypeScript que consume una API propia (FastAPI y PostgreSQL, con el agente en LangGraph y Claude), donde se calculan las estimaciones de próxima compra. Algunas decisiones clave:

  • Módulos por funcionalidad (clientes, productos, compras, ventas, caja, seguimiento, calendario, dashboard y agente), cada uno con su dominio, acciones, hooks y páginas.
  • TanStack Query para el estado del servidor: registrar una venta mueve stock y estimaciones, así que se refrescan productos, clientes, dashboard, seguimientos y calendario a la vez.
  • Filtros, paginación y fechas en la URL, para compartir cualquier vista.
  • Agente de ventas con IA: los cambios que propone (ventas, compras, movimientos de caja, cobros) llegan como tarjetas que el usuario aprueba, corrige o cancela antes de ejecutarse. Las respuestas llegan en streaming (SSE con fetch, porque el pedido es un POST con body), y el parser y el estado del chat son funciones puras con tests.
  • Fechas en la zona horaria local: convertir a UTC hacía que las ventas de después de las 6 p. m. en Guatemala cayeran en el día siguiente.
  • CI en cada PR (lint, typecheck, tests) y deploy automático a Firebase Hosting al mergear a main.

Resultado

En desarrollo activo, con releases versionadas y CHANGELOG (v0.14.0). El flujo completo funciona: clientes, inventario, ventas con varios ítems, caja, seguimiento con filtros (7/14/30 días y atrasados), calendario, dashboard y agente con confirmaciones.