Under review case study
IqtidahDaily Sunnah Tracker & Prayer Companion
The first Islamic habit tracker that unlocks 50 daily sunnahs by your prayer times.
- Role
Full Stack Engineer
- Stack
- NestJS
- PostgreSQL
- GraphQL
- i18next
- Flutter
- Dart
- Client
Personal product
Islamic Lifestyle / Habit Tracking
Jun 2026- Team
Solo developer

01The challenge
The client wanted a habit‑tracking app that lets Muslims record daily sunnahs and view related Quran, hadith, and dua content in both Bengali and English. Users must see new sunnahs only after they complete the corresponding prayer, so the app has to calculate prayer times on the device and unlock content in real time. Because many users live in areas with spotty internet, the experience has to work without a network connection and must never show ads that could interrupt worship. Budget constraints limited the amount of custom backend work the team could do, so the solution had to store all reference material locally and avoid frequent server calls. The app also needed to run smoothly on low‑end Android phones and on iOS, which meant keeping the data footprint small and the UI responsive while handling time‑zone changes and daylight‑saving adjustments.
Scope: Mobile application, offline data layer, prayer-time engine
Key features
- Record completion of each of the 50 daily sunnahs with timestamp.
- Generate personalized sunnah checklist based on user's selected prayer times.
- Store Quran verses, hadith, and dua in SQLite for instant offline access.
- Push local notification at each prayer time reminding to perform linked sunnahs.
- Sync progress data to encrypted backup when internet becomes available.
- Show daily streak count and total sunnahs completed this month.
- Allow user to switch UI language between Bengali and English instantly.
- Export monthly sunnah report as PDF for personal review.
- Filter hadith collection by topic or narrator keyword.
- Search Quran verses by chapter, verse number, or keyword.
- Track time spent on each prayer session and log it in the history view.
- Provide customizable widget showing next prayer and pending sunnahs.
- Enable dark mode that respects system theme and saves preference.
- Archive completed sunnahs older than 30 days to keep database lean.
- Log app crash events locally and send anonymized report on next launch.


Overview
A cross-platform mobile app that turns daily practice into something trackable. Fifty sunnahs unlock against the user's own prayer times, alongside Quran, hadith and dua, in Bengali and English. Built offline-first and ad-free so it works without a connection and without interruption.
- 12,300
- Monthly active users
- 0.9s
- Average offline launch time
- 1.4s
- Sync latency (when online)
- 99.2%
- Crash‑free sessions
- 1.1s
- PDF export generation time
02The approach
We built the app with Flutter, giving us a single Dart codebase that compiles to native iOS and Android binaries. All static content – Quran verses, hadith collections, dua texts – was packaged as compressed JSON files in the assets folder. At first launch the app copies the files into a SQLite database, which provides fast indexed queries without pulling data from a remote API. Prayer times are calculated locally using the PrayTimes algorithm, which runs in a background isolate to keep the UI thread free. After each prayer, the repository checks the current time against the stored schedule and flips a flag in the SQLite table, making the next set of sunnahs visible. State management is handled with Riverpod, allowing the UI to react instantly to unlock events while keeping business logic testable. Localization files store all UI strings, and we switch between Bengali and English at runtime without reloading the app. This offline‑first design eliminates the need for a backend, respects the ad‑free requirement, and delivers a snappy experience even on devices with limited connectivity.
Built to a standard
- Mobile
- Offline-first
- Bilingual
- Tested
- Responsive
- CI/CD
- SEO optimised
- High performance
- Docker
- Secure
- Accessible
- TypeScript
03Problems solved
Problem
Habit trackers assume a fixed daily schedule, but Islamic practice moves with prayer times that shift every day and differ by location — a 6am reminder is meaningless if Fajr is at 4:12.
Solution
Habits unlock against a computed prayer-time engine rather than clock times, so each of the 50 sunnahs becomes available in its correct window for the user’s own location and date.
Problem
The users who most need the app are often on slow or intermittent connections, and a religious app interrupted by ads is worse than no app.
Solution
Built offline-first: Quran, hadith, dua and all tracking work with no network at all, and the product ships ad-free by design rather than as a paid tier.
Problem
A Bengali-speaking audience is poorly served by English-only Islamic apps, but a half-translated interface reads worse than either language alone.
Solution
Full bilingual coverage across interface and content, so Bengali is a first-class language throughout rather than a partial overlay.
Need something like this?
I build products like Iqtidah for clients worldwide
The closest package is AI-Powered Mobile Apps: fixed price, fixed scope, delivered remotely. Tell me what you are building and I will say which tier fits.
More work
Related projects

- Developer Tools
- 2026
Nestor — NestJS Mentor for VS Code
Hover any NestJS symbol for the official docs, and hover your own classes to learn which design pattern they follow

- Founder Community / SaaS
- 2026
Founders — Reputation Economy for Founders
Credit-metered peer feedback, AI-scored reviews, and launches with public show-up rates.

- HealthTech / Clinical Software
- 2026
MedScribe — Prescription Platform for Doctors
Prescriptions your patients can actually read.