Building Sakinah: An App for the Hardest Moment
6/8/2026
It usually starts with a phone call at an hour when nobody wants to answer the phone.
Someone has died. In a Muslim family what follows isn't abstract grief — it's a list, against a short clock. The body should be washed, shrouded, prayed over, and buried, often within a day. Someone has to find an ustaz. Someone has to arrange the mandi jenazah. Someone has to remember the order of things at the graveside while their hands are shaking. Usually that someone has never done it before, and is doing it for a person they love.
That gap — between the weight of the moment and the oddly clerical demands it makes of you — is why I built Sakinah.
Sakinah (سكينة — peace) tries to stand next to you in that gap. It walks you through the funeral one step at a time, in English or Bahasa Melayu, with the Arabic, transliteration, and translation for each part: tahlil, mandi jenazah, kafan, talqin, solat jenazah. It's a checklist you can follow at the graveside even with no signal. When you need a person rather than a page, it puts you one tap from an ustaz, a mandi jenazah team, or a mosque. And afterwards it holds space for the long tail of grief — a memorial page where family overseas can send dua, gentle reminders for malam ke-3, 7, 40, and 100.
Designing for the worst day
Building it taught me that designing for someone's worst day inverts almost every rule I knew.
You normally design to hold attention — to pull people deeper, surface more, keep them in the app. Here I was designing for someone who shouldn't have to think at all, who wants the next correct action and nothing else. So everything bends toward one tap, one step, one language toggle, and content that still loads when the network doesn't. Every screen I was tempted to make richer, I made quieter instead. The hardest engineering wasn't any single feature; it was refusing to let the app become complicated at the exact moment a person can't handle complexity.
The thing it refuses to do
The decision I'm most sure about is something Sakinah deliberately doesn't do: it never touches money.
A funeral involves payments — to providers, to washing teams, sometimes infaq to a charity. The obvious product move is to sit in the middle of those payments and take a cut. I decided early that Sakinah would be a matcher, not a middleman. It connects a family to a trusted provider and then gets out of the way. The money goes directly between them; Sakinah never holds a cent.
That started as an ethical line — it would feel wrong to earn from the worst day of a stranger's life. But the longer I sat with it, the more I realised it was also the cleanest security decision I've made on any project. The moment I chose not to handle payments, a whole category of risk simply stopped existing. No card details means nothing to breach and nothing that drags the app into PCI scope. Not holding funds means I'm not a small accidental payments company, with all the regulation that implies. Most of what I write about security comes back to the same instinct: that the strongest control is usually subtraction — removing the dangerous capability rather than guarding it. Sakinah is the first time I've watched that idea decide the shape of an entire product, and make it kinder in the same stroke.
Holding what's left, lightly
What Sakinah does hold, it tries to hold lightly.
The funeral guide lives on your device, so the thing you reach for at the graveside doesn't depend on a server — and as a side effect, almost nothing about that moment ever leaves your phone. A memorial page is public by nature, so it's something a family opts into deliberately, sharing only what they choose. And "verified providers" isn't a badge for the landing page: at the precise moment people are most open to being taken advantage of, vetting the ustaz and the charity on the other end is the most important feature there is.
Right now Sakinah is live on the web and in TestFlight, with the app-store release coming. It's free, and it will stay free. "Built with love, for the community" sits on the landing page, and I wrote it as a constraint, not a slogan.
I hope, in a strange way, that nobody needs it often. But if it sits quietly on a phone and then, on the hardest night, takes one small decision off someone's shoulders — names the next step, hands them a number that actually answers — that's enough. Sometimes the most you can build for a person is a little less to carry.