Skip to content
Ritesh FirodiyaGet in touch

Work / Aakalan / Wiki / Surfaces

settle-settled

Surfacecanonicalverified 2026-09-23

SURFACE.MOBILE.SETTLE.SETTLED

Summary

All square — the state that replaced the /settle/done route.

Raw wireframe

  • .context/designs/mobile/settle/settled.html

Why it is drawn this way

This is a state, not a route. /settle/done was a 358-line screen reached by router.replace after every settlement, and the only thing it could say that this cannot is "it worked" — worth one state change, not a navigation. Removing it takes a whole transition out of the commonest action in the app, and deletes the awkward case where backing out of the receipt landed you on a settle screen for a debt that no longer existed.

Telling them is the PRIMARY action, not the receipt. Nothing asked their permission, so the one thing still owed after a settlement is that they hear about it — and for somebody not on Aakalan that message is the only way they ever will. See settling-is-immediate and we-never-message-anyone.

The message is told, not asked. It states the direction in plain words and invites a correction, because the app can no longer catch the mistake for them.

There is no push notification and there never will be from here: the app carries no messaging SDK, no token storage and no backend to send from.

Related

Sources

  • src/app/settle/[id].tsx
  • src/lib/messages.ts

Every project of mine is written down like this.

Read the résumé