02 — Personal finance product

Spendly

A private finance workspace for balances, transactions, budgets, goals, recurring reminders, and actionable insights across web, native iOS, and an Android beta.

  • Web
  • Native iOS
  • Android beta

Live web + iOS · Android beta

Spendly native iOS financial overview
My role

Web, native iOS, and Android product engineering, data model, and interaction design

Platforms

Web · Native iOS · Android beta

Stack

Next.js · SwiftUI · Kotlin · TypeScript · PostgreSQL · Recharts · InsForge

Technology topology

04 layers
01

Web

  • Next.js
  • TypeScript
02

Native

  • SwiftUI
  • Kotlin
03

Insights

  • Recharts
04

Platform

  • InsForge
  • PostgreSQL

System relationships · no usage percentages

What needed to work

Personal finance tools become hard to trust when balances, transfers, recurring expenses, budgets, and account ownership drift apart across features or devices.

How I approached it

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.

01

Used ownership checks and PostgreSQL row-level security for user financial data.

02

Stored native sessions in Keychain and kept administrative credentials out of the iOS app.

03

Implemented native reminder banners, badges, and settings rather than wrapping the website.

04

Limited demo loading to empty workspaces so sample data cannot overwrite a real ledger.

04 — Outcome

Spendly delivers a complete finance workflow on the web and iOS, while its Kotlin Android beta brings the same protected finance model and core workflows to a third client without overstating its release status.

  • Web + iOS + Android beta
  • 8 finance data domains
  • RLS-backed user data
Reading room