Web
- Next.js
- TypeScript
02 — Personal finance product
A private finance workspace for balances, transactions, budgets, goals, recurring reminders, and actionable insights across web, native iOS, and an Android beta.
Live web + iOS · Android beta

Web, native iOS, and Android product engineering, data model, and interaction design
Web · Native iOS · Android beta
Next.js · SwiftUI · Kotlin · TypeScript · PostgreSQL · Recharts · InsForge
Technology topology
04 layersWeb
Native
Insights
Platform
System relationships · no usage percentages
The challenge
Personal finance tools become hard to trust when balances, transfers, recurring expenses, budgets, and account ownership drift apart across features or devices.
The approach
I built web, native SwiftUI, and Kotlin Android clients over the same protected finance model, with automatic balance synchronization, recurring reminders, CSV workflows, and clear budget and savings states.
Key decisions
Used ownership checks and PostgreSQL row-level security for user financial data.
Stored native sessions in Keychain and kept administrative credentials out of the iOS app.
Implemented native reminder banners, badges, and settings rather than wrapping the website.
Limited demo loading to empty workspaces so sample data cannot overwrite a real ledger.


04 — Outcome