Work / Aakalan / Wiki / Surfaces
expense
Surfacecanonicalverified 2026-09-23
SURFACE.MOBILE.EXPENSESummary
One expense in full, and the place it gets deleted.
Raw wireframe
- .context/designs/mobile/expense/expense.html
Why it is drawn this way
Your share is the headline and the bill total is the subtitle. The total is context; what you owed or lent is the fact. Leading with the ₹6,400 and hiding the ₹1,600 in small grey text is backwards for the person reading it.
The arithmetic is done for the reader. Each row says "paid X · owes Y" and then states the net, so nobody is asked to subtract one from the other to find out where they stand.
The log is on this screen, not behind a link. An expense can be removed; the record that somebody removed it cannot — see a-record-is-never-erased — and a log nobody can find does not do the job the rule exists for.
The delete copy says what survives. "Balances recalculate for everyone. The deletion stays in the log permanently — it cannot be hidden."
The error state is a real screen. Every detail screen used to return null
when the thing it was about was gone, which renders blank with no header and no
way back — indistinguishable from a crash, and reachable by perfectly ordinary
means: somebody deletes it on another device while you have it open.
Related
Sources
- src/app/expense/[id].tsx
- src/components/expense/history-card.tsx
Every project of mine is written down like this.
Read the résumé