Producto propioDesign Engineer — de punta a punta

olbo

Una app de finanzas personales que lee tu ritmo de gasto, no tu saldo: diseñada, construida y lanzada en solitario.

El producto

  • Tablero de olbo con el semáforo en verde: el ritmo de gasto está en o por debajo de la parte del mes que ya pasó.
    01Verde: el ritmo coincide con el calendario.
  • Tablero de olbo con el semáforo en alerta: el mismo bolsillo leído en un día más temprano del mes cambia el color a advertencia.
    02El mismo monto, más temprano en el mes, se lee como alerta.
  • Pantalla de captura de olbo: un movimiento registrado en pesos colombianos enteros en pocos toques.
    03Captura en pesos enteros, en segundos.
  • Lista de movimientos de olbo: gastos registrados, agrupados y categorizados, guardados localmente en IndexedDB.
    04Movimientos, categorizados y guardados en el dispositivo.
/ Recorrido — sin sonido

Un gasto registrado en cuatro toques; el ritmo del mes se actualiza antes de que se cierre la hoja.

/ Rol
Design Engineer — de punta a punta
/ Duración
Semanas, y sigue en marcha
/ Equipo
Solo — diseño, ingeniería, lanzamiento
/ Año
2026

El impacto

634
Pruebas que pasan
en 292 ms
0
Dependencias
sin bundler, sin framework
62
Módulos JS
en 24 vistas
1:2,5
Relación pruebas-código
6.400 líneas de pruebas

En vivo y en uso diario: registras un gasto con una foto, la voz, el mensaje del banco o un PDF, y un solo color te dice si el mes va a buen ritmo.

Contexto

Las apps de presupuesto responden «cuánto te queda», la pregunta que angustia. Construí olbo para mi propio hogar: una PWA local-first en pesos colombianos cuyo semáforo compara el ritmo de gasto con el calendario.

Qué hice

  1. 01

    Producto e interfaz: 24 vistas, del tablero del semáforo a la IA que lee recibos, voz y PDF.

  2. 02

    Cero dependencias: módulos ES nativos, sin paso de build; matemática de presupuesto pura, así que 634 pruebas corren en 292 ms.

  3. 03

    Privacidad comprobable: tus datos se quedan en el celular; lo único que sale de él es la llamada a la IA.

Qué puede hacer

La captura es donde mueren las apps de finanzas: si registrar cuesta esfuerzo, nadie registra. Por eso olbo toma un gasto como llegue.

  • IA

    Fotografía el recibo

    Claude lee total, comercio y categoría en una tarjeta que confirmas antes de guardar.

  • IA

    Di el gasto en voz alta

    «Cincuenta mil en el mercado» se vuelve un movimiento estructurado: Claude responde con una llamada a herramienta forzada, y si la confianza baja de 0,7, queda marcado para revisión.

  • Producto

    Pega el mensaje del banco

    A propósito, sin modelo: un parser exacto lee los dos formatos del banco sin conexión, gratis, sin forma de inventarse un monto.

  • IA

    Lee el extracto completo de la tarjeta

    Un PDF se vuelve datos: fechas de corte y de pago, tasa mensual, cada compra a cuotas y su plazo restante.

Cómo se hizo

  1. 01

    El problema era mío

    Cada app que probé contaba centavos en la moneda de otro. Primero el producto: pesos enteros, mis datos en mi propio celular, una pantalla que me diga si voy bien.

  2. 02

    Hecho con IA, decidido por las pruebas

    Programé en pareja con Claude, pero me negué a que el resultado fuera desechable: una capa de dominio pura, con «hoy» siempre inyectado, así que cada prueba corre en Node sin navegador. La IA escribía rápido; las pruebas decidían qué sobrevivía.

  3. 03

    Lanzar, y después escuchar

    En vivo como PWA instalable y sin conexión, con el service worker en la v150. El uso diario mostró lo que ninguna especificación habría mostrado: un error de zona horaria que dañaba el color de noche y recibos que me negué a volver a digitar.

Decisiones clave

  • El semáforo lee ritmo, no saldo

    Ritmo de gasto sobre el mes transcurrido: verde hasta 1, ámbar hasta 1,25 y rojo por encima. Gastar el 90 % el día 28 está bien; el 80 % el día 10, no.

  • Las facturas variables nunca reservan plata

    Luz, agua y gasolina solo cuentan cuando registras lo que de verdad costaron. Un estimado reservado puede pintar un rojo falso, y un solo rojo falso basta para dejar de creerle al color.

  • Privacidad que se puede comprobar, no solo leer

    Todos prometen local-first. Aquí el encabezado CSP lo demuestra: nada sale del dispositivo salvo las llamadas a api.anthropic.com. Me costó todos los estilos en línea, incluso dentro de los SVG.

/ Herramientas y métodos
  • Vanilla JS (módulos ES)
  • PWA y Service Worker
  • IndexedDB
  • node --test
  • CSP estricta
  • Claude API
/ Autoría

Diseño e ingeniería de punta a punta. Claude trabajó dentro del build y del producto; las decisiones, y las pruebas que las hacen cumplir, son mías.

© 2026 Doug Vargas