Saltar al contenido
Almar Ramos Curto

§ Caso de estudio · Productos

Nido Finance

App personal de presupuesto y análisis de gastos que sustituye a una hoja de cálculo mensual: PWA en React sobre Supabase.

Rol
Desarrollo en solitario
Periodo
sept. 2026 — actualidad
Estado
Activo
Código
Repositorio privado

Stack

  • React 19
  • TypeScript
  • Supabase
  • PostgreSQL
  • Vite
  • Tailwind CSS
  • Vitest
  • Playwright
  • pgTAP
  • Vercel

Contexto

Nido Finance es una aplicación de finanzas personales que construyo yo solo. Cubre el presupuesto mensual, el ahorro y el análisis de gastos, y sustituye a una hoja de cálculo que se llevaba mes a mes. Es una aplicación web progresiva (PWA), pensada para instalarse en el móvil y usarse desde ahí.

Es un producto pequeño, pero maneja datos financieros personales, así que doy prioridad a las pruebas y a la forma de almacenar los datos.

Enfoque

El objetivo es acotado: hacer lo que hacía la hoja de cálculo mensual, con los datos en una base de datos de verdad en lugar de en celdas, y añadir encima el análisis de gastos.

El razonamiento detrás de las principales decisiones técnicas lo guardo en el repositorio como registros de decisión de arquitectura (ADR), para que una decisión se pueda leer, cuestionar y cambiar más adelante, también por mí.

Arquitectura

El cliente es una aplicación React 19 escrita en TypeScript, compilada con Vite y con estilos de Tailwind CSS.

Supabase es el backend. La base de datos es PostgreSQL y su esquema evoluciona mediante migraciones SQL versionadas, de modo que cada cambio del esquema queda registrado en el repositorio. El frontend se despliega en Vercel, y tanto la base de datos alojada como el despliegue ya están en marcha.

Hay además una Edge Function que genera un informe de consejos con un modelo de IA. Está desactivada tras una bandera de funcionalidad. Cuando se activa, valida la salida del modelo antes de que llegue nada a la interfaz, porque la respuesta de un modelo es una entrada como cualquier otra y no se puede dar por buena.

Calidad

Las pruebas cubren tres capas:

  • pruebas unitarias con Vitest para la lógica de la aplicación;
  • pruebas de base de datos con pgTAP, que se ejecutan contra el esquema y sus migraciones;
  • pruebas de extremo a extremo con Playwright, que usan la aplicación como lo haría una persona.

Un flujo verify en CI ejecuta tres trabajos: uno para la aplicación, otro para la base de datos y otro para las pruebas de extremo a extremo. Prefiero que la base de datos se compruebe por separado antes que descubrir una migración rota a través de una pantalla que falla.

Trabajo con agentes de IA

Desarrollo Nido Finance con agentes de IA. Trabajan bajo un contrato de agente escrito, el fichero AGENTS.md del repositorio, para que las reglas no dependan de lo que recuerde decirles cada vez.

Reviso cada cambio antes de integrarlo. Los agentes aceleran la escritura, pero las decisiones, la revisión y la responsabilidad sobre el resultado siguen siendo mías.

Estado y próximos pasos

Nido Finance funciona de principio a fin y está en fase alfa. La base de datos alojada y el despliegue del frontend están hechos.

Quedan dos cosas pendientes: las pruebas de aceptación en Safari de iPhone y el trabajo necesario para que sea una PWA instalable como es debido. El informe de consejos con IA sigue tras su bandera de funcionalidad.