Back to portfolio

Chapter 02 · Multi-platform product engineering

Family Finance V3

V3 shipped · Phases 0–5

A household finance platform shipped across web, Expo, and Android with unified Inbox, Goals, Reports, Health, Phase 5 insights, and honest backend maturity framing.

Family Finance 4 Ledger beranda — balance, cashflow, and insights
  • 4client surfaces: web, Expo, Android, backend
  • P0–P5V3 redesign phases shipped on main
  • 0private finance records exposed publicly

V3 UI flow

Screens from the shipped V3 redesign.

Assets below come from the current Android V3 emulator evidence set. Each flow pairs product behavior with the backend boundary it proves.

Family Finance V3 dashboard on Android

Flow 01

V3 dashboard & insights

The redesigned home surface combines spend command cards, widget density, and Phase 5 insight charts including Sankey cashflow and predictive burndown.

InsightAggregatorService exposes cashflow, burndown, leakage, heatmap, correlation, and trade-off endpoints.

Family Finance V3 unified inbox queue

Flow 02

Unified Inbox

Gmail, WhatsApp, AI, and receipt drafts share one review queue with confidence sorting and draft inspector routing.

IntakeDraft source filtering and confirm/reject actions stay backend-owned before ledger mutation.

Family Finance V3 goals hub

Flow 03

Goals hub

Savings goals, portfolio holdings, and challenges sit behind a segmented V3 control with gap analysis and fastest-runway logic.

Goal APIs protect family membership while progress and runway calculations stay centralized.

Family Finance V3 reports screen

Flow 04

Reports

Monthly summaries, year-over-year comparisons, and export paths use the same V3 token system across web and native shells.

Report endpoints remain the first candidates for read-model caching as household traffic grows.

Family Finance V3 health screen

Flow 05

Health

Power curve and muscle heatmap visualizations translate synced activity summaries into household fitness context.

Health summaries reuse backend activity contracts with client-side chart adapters under the frozen-backend constraint.

Family Finance V3 transactions screen

Flow 06

Transactions & recurring

Income and expense lists, filters, and recurring controls share V3 chrome with state-preserving edit paths.

Finance mutations invalidate the shared financeInvalidationKeys set, including reports-summary.

Family Finance V3 budgets screen

Flow 07

Budgets & categories

Category budgets, coach insight banners, and progress bars keep spend visibility aligned across platforms.

Category writes carry nameId for Indonesian localization parity with web.

Family Finance V3 family and integrations settings

Flow 08

Family & integrations

Household switching, invites, Gmail, Strava, Hevy, WhatsApp, and Google Sheets sync live under V3 settings surfaces.

OAuth tokens and provider state stay server-side behind protected backend services.

Multi-platform journey

Same contracts across web, Expo, and Android.

V3 parity work wired inbox, goals, reports, health, and dashboard insights into each native shell while keeping finance mutations backend-owned.

Family Finance V3 native dashboard on Android

Journey 01

V3 home dashboard

Android and Expo home screens surface spend, savings, widgets, and insight charts from the same mobile API contracts.

Dashboard DTOs stay family-scoped without exposing raw persistence models.

Journey 02

Unified inbox queue

Draft review, duplicate hints, and inspector routing compress intake triage into one mobile-native queue.

Draft fetch enforces familyId boundaries; errors surface real API codes instead of generic copy.

Journey 03

Goals segmented hub

Savings, portfolio holdings, and challenges share one tabbed hub with parity logic ported from Android.

Goal CRUD endpoints enforce membership before any progress writeback.

Journey 04

Reports & Health routes

Pushed routes under Settings/More carry Reports and Health where the five-slot tab bar has no room.

Read APIs stay stable while V3 navigation graphs add deep links without backend churn.

Journey 05

V2/V3 switch architecture

Confirm→applying→rollback flow with a two-key crash-safe commit marker lets households opt into V3 safely.

Version preference persists server-side; clients never trust local route state for finance scope.

Journey 06

Multi-platform parity

Web, Expo, and Jetpack Compose V3 screens share inbox, goals, reports, health, and Phase 5 insight coverage.

Backend remains frozen while frontends consolidate IA around the same chapter map.

Tech stack

Grouped by ownership boundary.

Web

  • Next.js App Router
  • React 19
  • TypeScript
  • Ledger shell
  • V3 tokens
  • next-intl
  • NextAuth

Backend

  • Go
  • Gin
  • GORM
  • PostgreSQL
  • domain services
  • mobile /api/v1 routes
  • background AI audit jobs

Mobile

  • Expo
  • React Native
  • Jetpack Compose
  • SecureStore
  • TanStack Query
  • FCM
  • mobile bearer sessions

Integrations

  • Google OAuth
  • Gmail Pub/Sub
  • WhatsApp webhooks
  • Gemini
  • DeepSeek
  • Strava
  • Hevy
  • Frankfurter FX

Quality and deployment

  • Vitest
  • Go tests
  • API contracts
  • no web DB access checks
  • Cloud Run
  • Open Graph sharing

Backend maturity

Strong backend signal without infrastructure overclaiming.

Redis cache-aside

Redis is not currently implemented in family-finance-backend.

Add Redis later for dashboard and reporting read models, using family-scoped keys, short TTLs, and write invalidation.

Kafka assessment

Kafka is not currently implemented in family-finance-backend.

Use an outbox-first async model before Kafka; reserve Kafka for replayable multi-consumer event streams.

Durable jobs

The backend has Gmail Pub/Sub callbacks, worker-style backfill, goroutines, and an in-process monthly scheduler.

Move monthly summaries, push notifications, and provider retries to durable outbox-backed workers.

Observability

Request IDs, Cloud Armor planning, and tests exist, but metrics/tracing are not yet a full observability platform.

Add structured logs, metrics, traces, queue-depth alerts, provider latency tracking, and DB pool saturation alerts.

Backend proof points

What hiring managers should notice.

  • Backend is the system of record for family-scoped finance data.
  • Web, mobile, and Android clients consume stable backend DTOs instead of owning persistence.
  • Mobile sessions are validated by backend middleware and stored as token hashes.
  • Provider events are converted into reviewable drafts before ledger mutation.
  • V3 redesign phases 0–5 shipped with multi-platform parity; Redis and Kafka remain documented roadmap decisions.