Divz

Expense-splitting app built from a single Expo codebase for iOS, Android, and web — real-time balances, flexible splits, and recorded settle-ups, live on the web at divz.app.

Client
Divz
Role
Full-Stack Design & Development
Timeline
3 days (MVP)
Year
2025
Category
FinTech App

Overview

Divz is “split expenses simply” — Expo 54, Firebase (`divz-7c1b9`), Stripe, associated domain divz.app. Screens: landing, auth, home balances, history, friends, wallet, group detail, settings, admin.

Why

Expense apps were either single-platform, loaded with fees, or so complex that groups abandoned them mid-trip. Divz is a shared ledger for friends: split a bill, settle later, keep history — iOS, Android, and web from one Expo codebase.

Relevant to any consumer fintech MVP that has to feel like a friend product, not a bank. Recorded settle-ups turn “we’ll get you next time” into a balance everyone can see.

The challenge

Expense apps were either single-platform, loaded with fees, or so complex that groups abandoned them mid-trip.

What made it hard

  • Existing splitters are platform-specific, fee-heavy, or too complex for a trip.
  • Groups needed real-time balances, not a spreadsheet that dies mid-weekend.
  • Settling up had to be clear and recorded, not a note in a group chat.

Approach

One React Native codebase for iOS, Android, and web. Firestore for live balances; recorded settle-ups; group detail as the operational screen.

Process

  • Group ledger: Balances that update as expenses land.
  • Settle: Settle-ups recorded in the ledger so balances stay honest.
  • Social graph: Friends, history, and admin for support.

What we built

  • Live group balances: Home and group detail stay in sync as people add expenses.
  • Flexible splits: Equal, percentage, and custom modes in the product design.
  • Settle up: Recorded settle-ups that update every balance. In-app payments are built but switched off.
  • Friends + history: People graph and history so the app works past one trip.

How it was built

Expo with a Firestore ledger. Flexible splits, friends, history, and recorded settle-ups. One codebase for iOS, Android, and web; the web build is live at divz.app.

The product is the ledger, not a social feed with a tip jar. Groups, balances, and history have to stay consistent across devices. Firebase is the sync fabric.

Stack

  • Expo 54: iOS, Android, web
  • Firebase: Auth + Firestore realtime
  • Stripe: Payments built, switched off

Outcomes

  • 3: Platforms, one Expo codebase
  • Realtime: Firestore balances
  • Settle: Recorded settle-ups
  • Live: divz.app

Wins

  • One Expo codebase for iOS, Android, and web.
  • Firestore ledger with flexible splits.
  • Recorded settle-ups that update every balance.
  • Friends and history as first-class surfaces, live at divz.app.

Hard parts

  • Abandoned mid-trip: Complex expense apps lose the group. Divz had to stay simple enough to use at dinner.
  • Cross-platform: A single-platform splitter splits the friend group too. One codebase was the brief.
  • Settlement: Settle-ups had to live in the ledger. In-app payments stay off until the money flow is ready.

Services

  • React Native / Expo
  • Firebase (Firestore + Auth)
  • Flexible Splits
  • Real-Time Sync
  • Push Notifications

Visit the live project

More case studies · Get a free development plan