Skip to content
Ritesh FirodiyaGet in touch

Work / Aakalan / Wiki

Aakalan wiki

What a picture cannot hold: the rules that only break across screens, the product’s own names and numbers, and why each screen is drawn the way it is.

49 pages · last verified 2026-10-03

Concepts 8

PageOwns
a-record-is-never-erasedAn expense can be removed. The record that somebody removed it cannot.
local-first-ledgerEvery write applies locally first and the server write queues behind it, so no screen in the product has a loading state.
money-in-minor-unitsEvery amount is an integer in its currency's minor unit, carried with the currency it was entered in, and never converted.
pro-never-gates-the-core-loopAdding expenses, splitting them any of the four ways, settling up and exporting your data are free without limit, permanently.
reserved-money-directionGreen means "you are owed" and rose means "you owe". Nothing else in Aakalan may wear either hue.
settling-is-immediateA settlement clears the balance the moment it is recorded, in both directions, and the other person is TOLD rather than asked.
upi-cannot-pay-a-numberA UPI intent has exactly one payee field, pa, and it takes a VPA. There is no public mapping from a phone number to one.
we-never-message-anyoneAakalan never sends a message, an invite or a reminder on somebody's behalf. It opens the user's own messaging app with the text filled in, and they press send.

Entities 3

PageOwns
categoriesSeven expense categories, each owning one hue and one lucide icon everywhere it appears.
pricingOne Pro tier, billed individually, monthly or yearly.
tokensThe design set's palette, and where it agrees and disagrees with the Expo app.

Surfaces 35

PageScreen
accountEverything about you: how you are paid, what currency, what the app looks like, and how to leave.
add-receiptThe add screen with a bill photographed and attached.
add-with-groupThe same screen, scoped to a group.
add-with-personThe same screen, split with one person and no group.
addOne screen, three fields, Save. The most repeated action in the product.
alertsThe fifteen native dialogs the app raises, with the copy it actually ships.
balances-groupsThe same balances, cut by group.
balances-searchOne query over your people, your groups and the whole address book.
balancesEvery person you split with, ranked, under one hero figure. The first screen after entry.
delete-accountThe confirmation, with the consequences on screen before the button.
expense-personalA solo expense — the same screen with everything about other people removed.
expense-receiptAn expense with a bill photographed, including the state where the photo has not uploaded yet.
expenseOne expense in full, and the place it gets deleted.
group-newCreate a group. Only the name is required.
group-settingsWho is in this group, what currency it is in, how it settles, and how to leave it.
group-simplifiedThe same group with Simplify debts on — the fewest transfers that clear it.
groupOne group: what you stand at, who owes whom, and what was spent.
not-foundWhat a detail screen shows when the thing it is about is gone.
person-claimA settlement somebody else claimed, and the two buttons that answer it.
personOne person's running ledger, totalled across every group.
plansFree against Pro, monthly against yearly, with the auto-renew terms on the screen.
profileYour name, and an optional UPI ID. The last screen of onboarding.
recurring-newA new rule — the add screen with a schedule bolted on.
recurringThe recurring rules — active, paused, and stopped.
settle-no-upiYou owe them, and there is no UPI ID to pay.
settle-payYou owe them, and their UPI ID is on file.
settle-receiveThey owe you. There is nothing to pay, only something to record.
settle-settledAll square — the state that replaced the /settle/done route.
sign-inPhone number in, six-digit code out. The first screen of the app.
spending-soloThe same month, filtered to expenses that were only yours.
spendingThe month summarised, then itemised. The whole tracker half.
splashThe one screen the OS draws rather than React.
split-sheetHow the bill divides — who is in it, in what proportion, and who paid.
verifySix boxes, auto-submitting, with a live resend countdown.
with-sheetWho this expense is with — people and groups in one searchable list.

Decisions 3

PageDecided
2026-09-23-design-set-migrated-to-the-estate-standardAakalan's mobile design set moves to the estate standard defined in ~/git/personal/STYLE-GUIDE.md: one screen per file, a single routes.js manifest, the shared chrome bar and fl…
2026-09-23-the-bar-is-icons-and-the-sheet-is-a-journeyThe demo navbar drops its breadcrumb and renders its five fixed controls as icons; the contact sheet shows one tile per screen, in journey order; and screen names stop qualifyin…
2026-10-02-context-migrated-to-the-ten-folder-standard.context/ moves to the estate's ten folders, the store listing to fastlane's tree, and the store screenshots to a capture of the running app.