Fernando Tenca fertenca.com.ar
Proyectos Varmo En desarrollo
Proyectos

Varmo

En desarrollo

Una aplicación de finanzas personales pensada primero para el celular, con una idea simple: registrar un movimiento no debería convertirse en una tarea.

La estoy construyendo para combinar una experiencia cotidiana rápida con una base técnica que pueda crecer sin dejar de lado privacidad, seguridad y consistencia.

Producto propio · Finanzas personales · Mobile-first

01 Problema y decisión

El problema

Muchas aplicaciones de finanzas personales terminan haciendo más complicado lo que debería ser más frecuente: anotar un gasto o un ingreso.

Si registrar cada movimiento requiere demasiados pasos, la herramienta empieza a competir con el hábito que intenta ayudar a sostener.

La pregunta de producto detrás de Varmo es:

¿Cómo hacer que registrar las finanzas cotidianas sea rápido sin construir por debajo un sistema frágil?

La idea de producto

Varmo prioriza una experiencia mobile-first y un flujo de entrada rápida.

Para un gasto cotidiano, el recorrido ideal es casi mínimo: monto, tipo y guardar. La aplicación puede usar una cuenta predeterminada y permite dejar el movimiento como Sin clasificar para ordenar después.

La decisión fue reducir pasos en lo que ocurre todos los días, sin simplificar de más las reglas que sostienen los datos.

Pantalla principal de Varmo con el formulario de carga rápida: monto, tipo de movimiento y guardar.
Quick Entry: monto, tipo y guardar
02 Por dentro

Simple por fuera, cuidadoso por dentro

Quiero que Varmo se sienta sencillo al usarlo, pero varias decisiones técnicas existen justamente para que esa simplicidad no dependa de atajos.

El saldo se deriva de un historial de operaciones y movimientos de cuenta en lugar de mantenerse como un número aislado. Las transferencias se registran de forma atómica: si una parte falla, la operación completa se revierte. También se utilizan claves de idempotencia en operaciones donde un reintento podría duplicar efectos.

La privacidad condiciona la arquitectura desde el inicio. Una decisión central es que un futuro administrador de la plataforma pueda gestionar usuarios y operación general sin acceder a movimientos, saldos, cuentas o categorías financieras de los usuarios.

En seguridad, el proyecto utiliza OWASP ASVS 5.0 Level 2 como baseline interno aprobado y mantiene un threat model explícito. Esto no implica una auditoría o certificación externa.

Pantalla de transferencia manual de Varmo, donde se elige cuenta de origen, cuenta de destino y monto.
Transferencia manual, registrada de forma atómica
03 Estado actual

Qué ya funciona

La V1 continúa en desarrollo, pero ya existen capacidades funcionales reales:

  • creación, consulta, edición y archivado de cuentas;
  • cuenta predeterminada y ajustes de saldo;
  • creación y mantenimiento de categorías;
  • Quick Entry para ingresos y gastos manuales;
  • listado, detalle, edición y eliminación/deshacer de movimientos cuando corresponde;
  • filtros y búsqueda textual en notas;
  • creación de transferencias manuales atómicas;
  • foundations y primeras etapas del motor de recurrencias.

La autenticación real todavía no está implementada. En desarrollo se utiliza una identidad configurada expresamente para poder construir y probar el resto del dominio y las reglas de autorización.

Listado de movimientos de Varmo, con los registros agrupados y un buscador por texto.
Listado, filtros y búsqueda
Detalle de un movimiento de Varmo en modo edición, con sus campos modificables.
Detalle y edición
Pantalla de cuentas de Varmo, con el saldo de cada cuenta y la cuenta predeterminada.
Cuentas y cuenta predeterminada
04 Construcción

Construir de a una capacidad completa

Varmo se desarrolla mediante vertical slices.

La idea es cerrar una capacidad de punta a punta —contrato, reglas de dominio, persistencia, API, interfaz, pruebas y documentación— antes de avanzar a la siguiente.

Eso permite que el proyecto crezca por partes que ya pueden verificarse, en lugar de acumular muchas piezas incompletas al mismo tiempo.

Desarrollo asistido por agentes

Varmo es el proyecto donde mi forma de trabajar con agentes de IA alcanzó mayor profundidad hasta ahora.

No les entrego una idea vaga para que decidan el producto por su cuenta. El repositorio contiene documentación, decisiones, límites de alcance, reglas de arquitectura y criterios de seguridad que funcionan como contexto de trabajo.

El flujo general es:

definir → documentar → implementar con agente → probar → revisar → Git/PR → CI

La intención es aprovechar la velocidad de los agentes sin delegarles las decisiones de producto ni la validación del resultado.

Varmo todavía no se presenta como un proyecto completamente harness-native. Ya tiene varios elementos en esa dirección, pero esa evolución continúa y no debe afirmarse como terminada.

Testing y control de calidad

El proyecto separa pruebas de dominio, integración y E2E.

Los tests de integración utilizan PostgreSQL real y una base distinta de la utilizada para desarrollo manual. Esto permite comprobar comportamiento que los mocks no representan bien, como transacciones, rollback, constraints, idempotencia, locks y algunas invariantes de concurrencia.

Los checks del workspace incluyen formato, TypeScript, tests y build, con CI para ejecutar verificaciones de forma repetible.

Stack actual

La tecnología es contexto de implementación, no el eje del caso.

  • Node.js 24 LTS
  • TypeScript
  • pnpm workspaces
  • React 19 + Vite + React Router
  • Tailwind CSS 4
  • TanStack Query
  • React Hook Form
  • Zod
  • Fastify 5
  • PostgreSQL + Drizzle
  • Vitest + Playwright
  • Docker Compose
  • GitHub Actions
05 Portfolio

Por qué está en mi portfolio

Varmo muestra una parte distinta de mi trabajo que MiCVListo.

No está acá porque sea un producto terminado: está porque permite mostrar cómo sostengo un proyecto más profundo durante múltiples iteraciones, cómo documento decisiones y cómo intento mantener alineados producto, experiencia de uso, seguridad, privacidad y arquitectura mientras la aplicación crece.

Varmo muestra proceso y evolución.