Gabe Giro

Private build

Voyage — A Calmer Household-Finance OS

A local-first household budgeting app with a calm, travel-themed UI: shared buckets, income-share splits, an automated buffer, FIRE tracking, multi-currency, and an on-device ML categorizer.

ReactTypeScriptSwiftUIPostgreSQLOn-device MLLocal-first

Screen recording with sample / redacted data.

The problem

Off-the-shelf budgeting tools push a single shared ledger or a rigid envelope system. A two-person household with separate incomes, shared goals, and two currencies needs something more flexible, and calmer to look at.

What I built

Voyage models money as three buckets (Ours, mine, my partner's) with income-share splits, an automated monthly buffer, and FIRE progress tracking. It imports real bank history, categorizes transactions with an on-device ML model (no data leaves the machine), and handles EUR/RSD side by side.

It ships as a web app plus a native SwiftUI client over a PostgreSQL backend baked into the app image, so the whole thing runs local-first.

Stack

React + TypeScript + Tailwind on the front end, Node/Express + PostgreSQL on the back, a transformers.js categorizer (multilingual-e5-small), and a native SwiftUI/SwiftData client. Deployed behind nginx with automated TLS.

All figures in the screenshots are sample data.

Screenshots

Sample / redacted data shown for privacy.