IN DEV
WealthLens
Cross-platform personal-finance app for Taiwan's salaried workers. Task-driven, not another expense tracker.
Context
It started as my own pain point: I wanted to be disciplined with money without the stress that discipline usually brings. WealthLens is a solo-built iOS + Android app for everyday earners who want to manage their money — the people for whom most budgeting apps feel like a second job, or a scolding. The premise is simple: staying on track should not feel like punishment.
Problem
Most finance apps are expense trackers that shame you with what you owe. This one inverts the frame: you reach financial goals by completing tasks — accumulation, not countdown.
Constraints
One codebase, both platforms. The money-allocation engine has to be provably correct and fully unit-tested — it advises, it never moves real money, so the math must be trustworthy on its own. Honest but never judgmental: no shaming, no push notifications, no auto-reassigning your surplus.
Approach
- A pure-Dart allocation engine Unit-tested and verifiable in isolation from the UI, it answers one question each month: given what's left to allocate, where should it go?
- Protection first, then goals by priority Emergency fund and insurance are locked to the front; then the user's own goals by priority, with the lowest priority absorbing any shortfall. A surplus is never auto-reassigned and the engine never touches real money — every allocation stays advice the user acts on by hand and checks off.
- A dashboard that never shames A single-scroll view that reads like a daily financial briefing, a locked design system, and an accumulation-not-countdown voice: progress climbs, nudges are in-app and dismissible, nothing scolds.
- Built as my AI-coding testbed Spec'd with Claude, built by Claude Opus, verified by Claude Haiku — the same build-and-verify loop I run in Hermes.
Outcome
First Android build shipped in about six working days, spec to running app, with 125 tests green; iOS verification in progress. The allocation engine’s financial invariants are pinned by tests, and the design system and product philosophy are fully specified.
Screens
Stack
Flutter · Dart · Riverpod · Drift (SQLite) · local_auth