Projects

MoneyMaster

A personal finance app for phones — expense tracking and budgeting, with dark mode and a full right-to-left layout.

Role
Software Engineer
Status
shipped
  • MoneyMaster — expense tracking and budgets on a phone, in a right-to-left layout

Problem

Budgeting apps assume a left-to-right interface and a single language, which rules them out for a large share of the people who need one. MoneyMaster tracks spending on the phone with reminders, theming and an RTL layout, so the interface is not the thing in the way.

Architecture

mountsschedulesReact Native appclientNativeWind UIclientSupabase authserviceSupabasedataPush notificationsexternal
Architecture of MoneyMaster.
Read this diagram as text
  • React Native app mounts NativeWind UI
  • React Native app connects to Supabase auth
  • React Native app connects to Supabase
  • React Native app schedules Push notifications

Engineering decisions

The stack, reasoning not written up yet:

React Native · TypeScript · Expo · Supabase · NativeWind · Prisma

The hard part

Right-to-left on a phone is not a stylesheet switch. React Native applies RTL at the native level, so the flip only lands after a reload, and everything positioned by hand — the mascot, the charts, the swipe actions on an expense row — keeps its left-handed geometry until it is rewritten in terms of start and end rather than left and right. Reminders had the matching problem: notifications scheduled on the device fire in the device's timezone, so a budget that resets on the first of the month is scheduled against the user's own calendar and not the server's.

Result

Real-time expense tracking and budgeting on the phone, with dark mode, push reminders, gender-specific personalisation, a mascot assistant, Supabase authentication, and multi-language support including a right-to-left layout.