← Back to portfolio Side Projects

HiFi — A chat-first budget app for the FIRE community

Status

Active build · Scaffold complete · Mock data layer · Anthropic wiring next · Updated May 2026

5s

Log-an-expense target

0

Screens to memorize

100%

Manual-first by default

2

Budgeting philosophies stacked

The Challenge

Every personal-finance app dies on the same hill: logging friction. Open the app, find the screen, tap the category, confirm the merchant — by month two you stop logging, the data goes stale, and the system fails. The opening was clear: a budget app for people who already won the basic-budgeting game and need a tool that respects how they already think about money.

Impact & Results

Shipped a complete product surface — marketing site, auth flow, and six in-app screens — anchored by a chat-first input model and a custom design system. Every screen renders against a working data layer with a deterministic mock LLM standing in until the Anthropic + Supabase wiring lands. The brand system (Lagoon accent, Midnight base, full dark mode) was audited and shipped to a consistent token model across the entire app.

What I Learned

  • Inverting the input model is the whole product. Once chat became the primary surface, every other screen got simpler — dashboards became outputs, not data-entry forms.
  • Two budgeting philosophies stack better than they compete. Sinking funds (anticipation) and zero-based (assignment) solve different problems; forcing users to pick one is the mistake every incumbent makes.
  • Dogfooding kills feature debates. Using the app daily collapsed weeks of “should we build X” into “I needed this yesterday” or “I haven’t opened that screen in a month.”

The Outcome

A working scaffold of a calm, FIRE-native finance app — with a chat-first logging flow, sinking-fund-first budgeting, native FI / Coast / Barista / Lean / Fat calculators, and a design system that holds up across light and dark mode. Privacy-first by default: manual logging, optional Plaid, CSV export at any time.

Project Deliverables

  • Brand System
  • Marketing Site
  • Auth Flow
  • Chat Interface
  • FIRE Calculators
  • Persistent Dashboard

Key Features

  • Chat-first logging — “i spent $30 at target” → categorized, confirmed, and on the dashboard in five seconds. Suggestion chips like “am i on track this month” and “how close am I to my Travel SF goal?” turn the input into a query layer too.
  • Show-your-work AI — The assistant proposes the category, sinking fund, and need/want tag before writing anything. One-tap confirm; edit if it’s wrong. No hallucinations slip through.
  • Sinking funds done right — Target dates, monthly contributions, projected fill date. Future-you already paid the bill.
  • Zero-based + sinking funds, stacked — Every dollar gets a job; sinking-fund contributions are first-class line items. Two philosophies that compound instead of compete.
  • FIRE-native calculators — FI, Coast, Barista, Fat, Lean. Persistent Good/Better/Best scenarios saved to local state, not throwaway one-shot tools.
  • Net worth charted honestly — Manual balances, monthly snapshots, breakdown by cash / brokerage / retirement.
  • End-of-month auto-summary — A chat message on the 1st recapping spend, budget hits, and net-worth movement.
  • Custom design system — Voluta brand tokens, Lagoon accent, Midnight base, full light/dark parity. Every pill, card, and chart audited to the same token model.
  • Marketing surface — Splashy homepage with live chat demo, philosophy-driven About page, four-tier pricing comparison, and an exposed /brand-kit and /palettes for design transparency.
  • Privacy-first defaults — Manual logging by default, Plaid optional, no analytics on financial data, CSV export anytime. You always own your numbers.
  • Auth + data layer — Supabase Postgres + Auth scaffolded, initial schema migration committed, ready to swap mock data for live.