02 · Selected Work

Pay Mi

A peer-to-peer payments app built around one sentence: who, how much, what for. From the welcome screen to a receipt — and a failure state that says exactly what did not happen.

Role

Design & build

Year

2026

Type

Mobile payments app

Stack

Expo · React Native · TypeScript

The flow

Press and hold a screen

The Pay Mi welcome screen on an iPhone: a lime dollar mark surrounded by four contacts, with Get started.

01 · Welcome

Money for the people in your life

Pay Mi home on an iPhone: balance, money in and out over thirty days, frequent contacts and recent activity.

02 · Home

Balance, the last 30 days, frequent faces

The Send keypad on an iPhone with 2,500 entered and a currency selector.

03 · Amount

The amount comes first

Choosing a recipient on an iPhone, with Monique selected from frequent and recent contacts.

04 · Recipient

Then who it is for

The note step on an iPhone: Send Monique L 2,500 for dinner, rent, with quick-pick chips.

05 · Note

A sentence, not a form

The review screen on an iPhone showing the payment method, a zero fee and the total.

06 · Review

Fee and total before you commit

The payment receipt on an iPhone with status, purpose, date, fee, total and transaction ID.

07 · Receipt

A transaction ID you can copy and share

A failed payment on an iPhone: Couldn't send 13.13, no money deducted, with a retry button.

08 · Failed

No money was deducted

Decisions worth noting

The sentence is the form. Once you have an amount and a person, the screen reads “Send Monique L $2,500 for dinner”. The note step is the end of that sentence, with Dinner, Rent, Coffee and Groceries as one-tap endings and a Skip for everyone else. Nothing asks you to fill in a field.

Amount first, then who. The Send tab opens on a keypad, not a contact list. Most people already know the number; the app asks for it before it asks anything else, and the recipient step carries the figure in its heading so you never lose it.

Fee and total are shown even when the fee is zero. The review screen lists the payment method, a $0.00 fee and the total, with a plain line that payment details are encrypted. Showing a zero is still showing it.

A failure says what did not happen. The failed screen leads with “No money was deducted” before the reason — it couldn’t connect securely — and offers Retry payment and Help. The first fear after a failed payment is whether it went through, so that is answered first.

The receipt is a screen, not a toast. Status, purpose, date, payment method, fee, total and a copyable transaction ID, with View and Share receipt. It also says the payment is private, visible only in your own activity.

It says it is a demo. Mock mode is a simulation: no real money, banks or identity checks exist, and sending exactly $13.13 is how you reach the failure state on purpose.

Interested in something similar?