App de finanzas personales construida para no pagar por ahorrar — con el dominio real de tarjetas, créditos y pagos parciales bien modelado.
La contradicción era obvia: pagar 15 dólares por mes para una herramienta que me ayude a ahorrar. Antes de empezar probé Notion, apps de teléfono y SaaS que prometían ser la solución completa. Ninguno modelaba los casos reales — una tarjeta con cuotas, un pago parcial del saldo, cuentas en UYU y en USD al mismo tiempo. Así que construí la mía. Finanzas modela el dominio real de las finanzas personales en Uruguay: multi-moneda nativo, pagos parciales con historial, cuotas dentro de la tarjeta. Y al cierre de cada mes, genera un reporte estructurado listo para pegar en tu LLM favorito y pedir análisis serio.
Antes de empezar este proyecto probé Notion, hojas de cálculo, apps de teléfono y algún SaaS que prometía ser la solución completa. Todos tenían algo en común: o eran demasiado generales para los casos reales de finanzas en Uruguay — multi-moneda, tarjetas con cuotas, pagos parciales — o eran demasiado caros para lo que ofrecían.
Ahí estaba la contradicción: para una herramienta cuyo objetivo es ayudarme a ahorrar, pagar 15 dólares por mes desde el día uno es exactamente lo opuesto a lo que estoy buscando. YNAB, EveryDollar, los grandes — todos piden suscripción antes de que hayas visto un centavo de ahorro.
Lo más simple era hacerla yo. Tenía el tiempo, tenía las ganas, y tenía el problema bien definido: quería saber exactamente adónde va mi plata, en UYU y en USD, con tarjetas que tienen cuotas y con la realidad de que casi nadie paga la tarjeta entera cada mes.
No quería otra app de "agregar transacción". Quería modelar los casos reales — una tarjeta con cuotas, un pago parcial del saldo, una deuda en dólares. Empecé por el dominio que las otras apps ignoran.
El dólar no es la piedra angular del producto, pero tampoco es ignorable cuando mucho del ahorro en Uruguay circula en USD. UYU y USD son cuentas igual de válidas — no una principal y otra como conversión.
Cuando lo compartí con amigos, lo primero que dijeron fue: "yo nunca pago la tarjeta entera". Eso abrió el feature más diferenciador del producto — pago parcial real, con saldo remanente y proyección de interés.
Sumé una función de reporte mensual que genera un resumen estructurado pensado para pegarlo en tu LLM favorito. No compite con un asesor financiero — te da el contexto para que la conversación con IA sea genuinamente útil.
Arquitectura modern web con Supabase como backend completo: auth, PostgreSQL con RLS policies por usuario, y edge functions en Deno para lógica server-side. Frontend en React 19 con TypeScript, Zustand para estado global, y Recharts para las visualizaciones del dashboard.
Para una app con tantas reglas de dominio — pagos parciales, cuotas en tarjeta, conversión multi-moneda — TypeScript no es opcional. Los errores en tiempo de compilación me salvaron más de una vez de modelar mal el dominio de las finanzas.
Auth, base de datos con PostgreSQL, row-level security por usuario, realtime y edge functions out-of-the-box. Para un proyecto personal, reemplaza un backend custom completo sin perder control real sobre los datos ni sobre el modelo.
El insight más importante del modelado: cuando pagás la tarjeta, no estás pagando transacciones individuales — estás pagando un saldo. Las cuotas pertenecen a la tarjeta, los pagos impactan el saldo total, y el historial de pagos parciales se registra aparte.
En lugar de competir con un asesor financiero, la app genera un reporte mensual estructurado que podés pegar directamente en ChatGPT o Claude. La IA hace el análisis — la app provee los datos precisos para que la conversación sea útil desde la primera línea.
Elegís cuenta o tarjeta, monto, moneda y categoría. Si es tarjeta, podés especificar en cuántas cuotas. La transacción se guarda y actualiza el saldo de la cuenta o el saldo pendiente de la tarjeta automáticamente — sin pasos extra.
Mucha gente no paga la tarjeta al completo cada mes. La app lo entiende: registrás cuánto pagaste, y el saldo remanente queda visible con proyección de interés acumulado. El historial de pagos parciales por tarjeta queda registrado — sin posibilidad de olvidar esa deuda.
Al cierre del mes, generás un reporte estructurado con ingresos, gastos por categoría, saldos por cuenta, estado de tarjetas y métricas clave. Formato pensado para LLMs — pegalo en tu IA favorita y pedile análisis, proyección o consejo concreto.
Construir para vos primero es el mejor brief que existe. No tuve que imaginar usuarios — yo era el usuario, con el problema real y con la tolerancia cero a las soluciones que lo simplifican.
Compartirla con amigos abrió features que solo no hubiera pensado. Los pagos parciales salieron de una conversación real: "yo nunca pago la tarjeta entera" — no de un spec inventado.
A veces el feature más diferenciador no es el más vistoso. Los pagos parciales de tarjeta no son glamorosos, pero son lo que hace que la app modele la realidad en lugar de simplificarla para parecer más simple.
No todo lo útil tiene que ser una locura técnica. El reporte para IA es markdown estructurado con números reales. Lo útil era que existiera y fuera preciso — no cómo estaba implementado por dentro.