Qué resuelve
Planificar el mes con precisión: registrar el sueldo y los gastos fijos, marcar cada gasto como pendiente o pagado, llevar deudas externas con sus abonos, y repartir el excedente en metas de ahorro.
La pieza menos obvia es el cálculo de transporte: cuenta los días que realmente se viaja a la oficina descontando festivos colombianos —incluida la Ley Emiliani, que corre varios festivos al lunes siguiente—, fines de semana y días remotos.
Arquitectura
| Capa | Tecnología | Por qué |
|---|---|---|
| Cliente | Flutter 3 | Un solo código para web, Android y macOS |
| API | Spring Boot 3 · Java 21 | Corre en Lambda con SnapStart |
| Cómputo | AWS Lambda + Function URL | Un millón de peticiones al mes sin costo |
| Base de datos | PostgreSQL (Neon) | Relacional, con JPA y migraciones Flyway |
| Frontend | S3 + CloudFront | Un terabyte de salida mensual sin costo |
| Autenticación | Spring Security + JWT | Sin infraestructura adicional |
La infraestructura está en Terraform y las decisiones quedaron escritas como ADRs en el repositorio.
Sobre el costo
Java en Lambda arrastra un problema conocido: el arranque en frío de la JVM. SnapStart lo resuelve tomando una instantánea de la máquina virtual ya inicializada y restaurándola en cada invocación.
El resultado es una aplicación completa —API, base de datos y tres clientes— operando por alrededor
de 0,01 USD al mes. El desglose está en docs/COSTOS.md.
Esa cifra no es una anécdota: elegir arquitectura sin mirar la factura es la diferencia entre un proyecto que sobrevive y uno que se apaga cuando se acaban los créditos.