Muslim Mubarak
Prayer times, Quran and a daily worship companion.


- Project
- Our own product
- Our role
- Product · Mobile development · Localization
- Duration
- 5 months
01 / Behind the product
A real need. A considered solution.
Challenge
If a prayer notification is missed the app loses its value. Background restrictions, time-zone changes and differing calculation methods make that notification the most fragile feature. Users also want to see today’s times without unlocking the phone.
Approach
Prayer times come from seven calculation methods (Diyanet, MWL, ISNA, Umm Al-Qura and others). Reminders are two-layered: notifications scheduled locally on the device, and a server-side scheduler that keeps the user’s time zone and location; if one misses, the other catches it. Five WidgetKit widgets (next prayer, all prayers, Hijri calendar, Ramadan, verse of the day) read the same data through a native bridge module. Quran, dhikr, hadith, dua and Asma ul Husna content ships with the bundle; the halal scanner uses a vision model and the kids’ Quran teacher runs through a Cloudflare Worker proxy.
Result
Live on the App Store in Turkish, English and Arabic. Ramadan calendar and statistics, a zakat calculator, a hajj checklist, a qibla compass and audio playback are in the same product. Weekly reports, streak milestones and Friday reminders are triggered from the server.
02 / Inside the product
The experience, on screen.
Open a screen to explore the details.06 images
03 / Scope & details
The details make the experience.
- 01
Seven calculation methods; two-layer reminders, local and server-side
- 02
Five WidgetKit widgets: next prayer, all prayers, Hijri calendar, Ramadan, verse
- 03
Qibla compass, dhikr counter, hadith, halal scanner, zakat calculator
- 04
Turkish, English and Arabic
Technology
INSIDE THE PRODUCT
The engineering behind the interface.
Systems we built and concrete problems we addressed in this project.
Reminders are two-layered
On device, scheduleNotificationAsync sets a local notification 15 minutes before the prayer; on the server the prayerReminderScheduler Pub/Sub job pushes according to the user’s stored time zone and location. Android gets dedicated notification channels and the adhan sound.
Widgets are fed through a native bridge
modules/widget-bridge writes prayer data to shared storage; the five SwiftUI widgets under targets/widget (PrayerWidget, AllPrayersWidget, HijriWidget, RamadanWidget, VerseWidget) read from it and carry their own localisation.
Server-side cadence
Cloud Functions: a daily morning notification, proactive insights, Friday morning and Kahf reminders, a weekly report, mood and gratitude reminders, a streak-milestone trigger and the getPrayerCoachInsight onCall function.
Your idea could be next.
What could we build for you?
From a first release to a growing platform. Let’s plan the design, development and launch together.
From Türkiye to the US, UK, Australia and everywhere in between.