Every prayer app tells you when Fajr is. None of them help with the part that actually stops you: getting up at 4am when your hand kills the alarm before you're awake. Fajr won't stop ringing until you finish a mission. Walk 15 steps, do push-ups, solve some math, type adhkar, or hold to renew your niyyah. Seven missions, three free. The alarm is native code, so it survives Doze, reboot and battery killers. Prayer times run on your phone, offline. Priced by country, not by exchange rate.
Hi PH 👋
I kept sleeping through Fajr. Not because I didn't know when it was — every
prayer app solves that — but because a normal alarm dies with one tap and my
hand found it before I was conscious. Every app in the category treats this
as an information problem. It isn't.
So I built the alarm first and the prayer times around it. Fajr won't stop
ringing until you complete a mission: 15 motion-detected steps, a set of
push-ups, a math challenge, typing adhkar, or a three-second hold to renew
your niyyah. Pick the one that matches how deeply you sleep.
Two things I'd love feedback on, because they were the hard calls:
The alarm is native Kotlin rather than a Flutter package. Before writing any
code I read the one-star reviews of the closest competitor, and the top
complaint was that it didn't fire reliably. For an app whose entire promise is
that you'll be awake at a specific time, that's not a bug, it's the product
failing. So: Doze-exempt scheduling, full-screen intent over the lockscreen,
a wakelock held until the mission completes, re-arm on boot — then an
overnight test matrix on real hardware, including a 2021 Redmi where OEM
battery management is at its worst.
And the pricing. Google will happily convert one USD price into 170
currencies. Do that and a yearly subscription costs a serious fraction of a
monthly wage in Pakistan, India, Indonesia, Egypt — which is where most
Muslims actually live. Fajr runs three regional price tiers with locally
sensible prices instead. The free tier is also genuinely complete, not a
trial in disguise: prayer times, a real can't-snooze alarm, three missions,
Qibla and your streak, free forever.
One mission didn't make it. Recite Adhkar used on-device speech recognition,
and on a phone with no offline model it listens forever and returns nothing —
leaving someone standing at a ringing adhan at 4am with no way to stop it. I
deleted it. Nothing in the app uses the microphone now.
Android only for now. iOS needs its own native alarm work before it's worth
shipping.
If you've ever slept through something you meant to wake up for, I'd
genuinely like to know what would have got you out of bed. Happy to answer
anything about Android's alarm APIs — that was most of the project.