Building Sakinah: Lessons From My First Product
Monday, January 12, 2026
For the past year I've been working on something quite different from my day-to-day development work. Sakinah is a mobile app I'm building to help Muslims memorise the Quran and connect that memorisation to their daily prayers. It's approaching launch, and I wanted to share what I've learned building a product from scratch as a solo developer.
Why Build It?
Like a lot of Muslims, I've always wanted to be more consistent with Quran memorisation. I'd go through phases of progress, then lose momentum. The frustrating part was that I was already praying five times a day — every prayer is a chance to recite what you've learned — but I'd default to the same short surahs out of habit.
I looked for an app that could bridge memorisation and prayer. What I found was a fragmented market. Tarteel AI handles memorisation well. Pillars does prayer tracking well. Nothing meaningfully connects the two. So I decided to build it myself.
Choosing the Right Scope:
Early on I was tempted to build something ambitious — AI learning paths, gamification, social features. But I kept coming back to a principle that's guided the whole project: the best tool is the one people actually use. The 3x3 method is a proven approach to Quran memorisation that's been used by scholars for generations. Building a polished digital version of something trusted felt more valuable than inventing something unproven.
The MVP does two things: structured memorisation with audio support, and prayer tracking with spaced repetition recommendations. That's it. No dua library, no Ramadan mode — those can come later once the core works brilliantly.
Technical Decisions That Shaped the Project:
A few choices made a significant difference to how the project progressed.
I originally planned the backend on AWS — Amplify, Cognito, DynamoDB, Lambda. I documented a full architecture with CloudFormation templates. In practice, it was overkill for shipping an MVP. Supabase gave me authentication, a Postgres database, and cloud sync with a fraction of the setup. The developer experience is dramatically better for a small team, and I can always add complexity later if the user base demands it.
I also initially tried to perfect the experience across iOS, Android, and web simultaneously. Progress was slow and frustrating. Focusing on iOS first meant I could move three times faster. The React Native codebase makes Android straightforward to add after launch.
The biggest technical investment was refactoring early. The original memorisation session was a 1,400-line monolithic component — audio, progress tracking, UI state, and API calls all tangled together. Spending a week breaking it into custom hooks and a service layer felt like lost time, but it's paid for itself many times over since. Every new feature now slots in cleanly instead of risking something else breaking.
Building for a Specific Audience:
One thing that's been different about this project compared to my professional work is the cultural sensitivity involved. This isn't a productivity app — it's a tool people use for worship. Quranic text needs respectful presentation with proper Arabic rendering and RTL support. The Bismillah behaves differently across surahs and needs careful handling. Prayer times need to be accurate for any location globally. These aren't nice-to-haves; they're baseline expectations that users will immediately notice if you get wrong.
The design reflects this too. Traditional greens and golds, generous whitespace, clean typography. An app for spiritual practice shouldn't compete for attention the way most apps do.
What I'd Tell Other Developers Building Their First Product:
Start with a method, not a feature list. The 3x3 method gave Sakinah a clear identity from day one. Everything else, the UI, the algorithm, the audio, serves that method. Without it, I'd have built a generic Quran app with no reason to exist.
Choose boring technology. React Native, TypeScript, Supabase, Expo. Nothing bleeding-edge. Everything well-documented with large communities. When you're building alone, you can't afford to debug your tools as well as your product.
Ship one platform first. Trying to launch everywhere simultaneously is a trap. Pick one, nail it, expand.
Refactor before it hurts. The week I spent refactoring felt unproductive. Every week since has been more productive because of it.
Sakinah is approaching launch on iOS. I'll be writing more about the launch process and what comes next. If you're interested in the app or the technical journey, feel free to get in touch.