Skip to content
malekverse
All work

Web + mobile2026

Al-Murshid

A calm daily companion for Muslims, with prayer times, the Quran and reminders, on the web, iPhone and Android.

Role
Solo: product, design and engineering
Year
2026
Stack
Next.js 16, Expo, React Native, TypeScript, Turborepo, Cloudflare Workers, Netlify, Maestro
Al-Murshid cover: the live product on screen, above a dotted planet

The problem

Islamic apps make people choose. The all-in-one apps have depth but feel cluttered, carry ads and raise privacy doubts. The minimal ones are beautiful but shallow. Al-Murshid aims for the depth of the first with the calm of the second.

What I built

  • A Next.js website and an Expo app for iOS and Android, sharing one TypeScript core in a Turborepo monorepo: prayer times, Qibla, the Hijri calendar and the Journey.
  • A Quran reader with the King Fahd Complex mushaf, page by page (604 page fonts served from a Cloudflare Worker), with reciters, tajweed, tafsir and memorisation.
  • Today puts the next prayer first, with reminders, home-screen and lock-screen widgets, and Fajr Rise, an alarm that follows Fajr and stops once you're up.
  • Arabic first and right to left, then English and French, from one design-token package and one set of strings for web and mobile.
  • Public web pages for prayer times, surahs and ayahs, with share images whose Arabic letters join properly.

How it earns trust

AI stays away from sacred text

Quran text, translations, hadith and adhkar come only from pinned published sources, untouched, and CI checks the generated content against them. No model writes, translates or edits any of it.

Tested on a phone it can't see

Development happens on Windows, with no Mac. So on every push that touches the app, a GitHub Actions job runs it in the iOS Simulator with Maestro flows, keeps the screenshots and builds the iOS app.

Speed has a budget

Public pages are Server Components with small client islands, and Lighthouse CI holds their performance budgets on every build.

Private by default

Fully usable without an account. No ads and no third-party trackers, by design.

By the numbers

platforms from one TypeScript core
3platforms from one TypeScript core
mushaf pages, page by page
604mushaf pages, page by page
languages, Arabic first
3languages, Arabic first
ads or trackers
0ads or trackers

How it fits together

  1. Shared coreprayer times, Qibla, HijriNext.js site
  2. Shared corethe same codeExpo app
  3. Pinned sourceschecked in CIQuran reader
  4. Cloudflare Worker604 page fontsQuran reader
  5. Expo appiOS and AndroidWidgets + alarms

01

The day, by prayer

The app leads with what matters now, then gets out of the way.

Al-Murshid Today screen: the date in both calendars, Now: Dhuhr with 16 minutes left, an I prayed button, and today's prayer times
Today: the prayer that's on now, how long is left, and one obvious action.
Al-Murshid Today screen in Arabic, right to left
Built and reviewed in Arabic first, right to left.
Al-Murshid public prayer times page for Tunis: next prayer countdown, the six times, the calculation method and a Qibla card
A public page per city, rendered on the server for search and sharing.
Al-Murshid Qibla page: a compass pointing 113 degrees from north, 3,330 km to Makkah
The Qibla, with its bearing and distance in plain words.

02

The Quran, and the phone app

The same TypeScript core runs the website and the iOS and Android app.

Al-Murshid Quran reader showing two mushaf pages side by side in tajweed colours
The mushaf, page by page, from published sources. No model ever touches the text.
Al-Murshid iPhone app Today screen: Now: Dhuhr, 52 minutes left, I prayed
The iPhone app, run in the iOS Simulator by CI.
Al-Murshid Fajr Rise alarm asking for a sum to be solved before it stops
Fajr Rise: the alarm stops once you've proved you're awake.

What I'd do next

Publish the signed apps to the App Store and Google Play, with the iOS Simulator flows as the release gate.

malekverse

© 2026 Malek Maghraoui. Built with Next.js, three.js and GSAP.

Every color on this site is a star temperature, from 3,200 K to 30,000 K. There are no green stars.