Crafted By Rach
custom platforms·Personal Project

NAFSA — Daily Ibadah Companion

A personal PWA for reading Al-Qur'an and tracking daily ibadah — built from a real frustration, not a spec sheet.

NAFSA — Daily Ibadah Companion

Service

custom platforms

Industry

Personal Project

Engagement

project based

Timeline

Ramadhan 2026

Where It Started

It didn't start with a product idea.

It started with Ramadhan coming around again, and a half-finished course sitting on my hard drive. I'd bought it, watched the early modules, gotten excited — then stopped. The way these things go.

But the idea kept coming back: I want to build a Qur'an reading app.

The problem was, I already knew the obvious answer. There are hundreds of Qur'an apps. Most of them are excellent. Building another one just to build it didn't feel right.

Reframe -> Not can I build this — but what's actually missing, specifically for me? That single question changed everything.


The Real Problem

I'd been using other Qur'an apps for years. They worked. But there was one thing that kept bothering me — a small thing, but persistent.

Every time I finished reading, I had to manually tap "Mark as read." And I kept forgetting.

So the next time I opened the app, I'd be staring at a surah thinking: did I already read this? I think I did. Maybe. Then I'd either re-read from somewhere uncertain, or give up trying to track progress altogether.

It sounds minor. But it happened every single session. And it broke the flow. The root issue wasn't forgetfulness — it was that the system expected me to adapt to it.

"I wanted the system to adapt to me."


The Approach

Before writing any code, I sat with one question: what would "automatic" actually look like here?

01 · Reading detection

An ayah must be visible on screen for at least 2.5 seconds before it counts. Scroll quickly — nothing registers. Sit with it long enough to read — it does.

02 · Audio detection

If the user is listening to murottal, the 2.5-second rule doesn't apply. When the audio for an ayah finishes, it's marked as read automatically.

03 · Progress only moves forward

If you're at ayah 10 and scroll back to re-read ayah 5, your last-read stays at ayah 10. Re-reading doesn't erase progress. Revisiting is a feature, not a regression.

Once an ayah is confirmed read, three things happen automatically: it's saved as the last-read bookmark, it's added to the daily and monthly progress log, and it counts toward the khatam target. No tapping. No "don't forget to mark." Just reading.


Why PWA

The choice to build as a Progressive Web App wasn't accidental.

Most ibadah apps require an account. Some require a constant connection. I wanted neither — especially for something as personal as tracking prayer and fasting.

0Account required
100%Data stored locally
OfflineFully functional

NAFSA stores all data locally on the device. No account, no server, no syncing. If you want to move to a new device, there's an export/import function. But the default assumption is: your data stays with you.


What NAFSA Does

Three things, nothing more.

01 · Read Al-Qur'an / Core / Flow

Automatic last-read detection and khatam tracking — no manual bookmarking needed.

02 · Track Sholat / Daily / Routine

Log the five daily prayers. Simple, persistent, no friction.

03 · Track Puasa / Ramadhan / Habit

Mark fasting days during Ramadhan — or any time of year.

The name NAFSA means to grow, little by little. That framing mattered. Consistency isn't about dramatic change. It's about adding one ayah, marking one prayer, one day at a time.


What I Learned

Building something for yourself is different from building for a client or a spec. There's no requirement document. No stakeholder sign-off. The only measure of success is: does this actually help you?

NAFSA started as a technical exercise and became something I use every day. That's unusual, and it matters to me.

Core insight > The system was asking users to manage it, instead of the other way around. Flipping that assumption is the thing I keep coming back to in every project.

"Designing systems around real human behavior — instead of expecting humans to adapt — is the thing I keep coming back to in every project."


Try It

NAFSA is live at nafsa.id.

It's a personal project, still evolving. There are probably bugs I haven't found yet. But that's part of it — building something that grows slowly, same as what the app itself is for.

If you find a bug or have feedback, I'd genuinely appreciate hearing it.

Have a Similar Problem?

Let's talk about what's actually going on.

No pitches. No proposals yet. Just a structured conversation about the problem first.