Back to portfolio

Chapter 03 · Muslim companion product

Arah

MVP shipped · Sprints 1–8

A prayer-schedule, offline Qur'an, and AI insights companion built as an Expo + Express monorepo with honest MVP scope and a live API deployment.

Source: arah/CLAUDE.md
Arah Muslim companion app preview
  • 8MVP sprints shipped to main
  • 5core mobile tabs in the prayer companion
  • 1public API at api.arah.arimu.dev

Product flow

Daily Muslim routines in one mobile shell.

Step 01

Prayer schedule home

Location-aware adhan times, countdown, and daily schedule cards anchor the first tab experience.

Timezone-aware quota and schedule endpoints stay server-validated; clients send locale headers.

Step 02

Offline Qur'an

114 surahs and 6,236 verses seed into on-device SQLite with search, bookmarks, and last-read resume.

Bundled dataset ships client-side; bookmark sync reconciles against the cloud on login.

Step 03

AI insights chat

Quota-aware coaching chat uses DeepSeek with honest remaining-quota feedback in the composer.

POST /api/v1/ai/chat enforces rate limits and refunds quota on provider failure.

Step 04

Qibla & notifications

Magnetometer-backed qibla bearing pairs with local prayer notifications for repeat daily moments.

Prayer notification scheduling stays on-device; server does not fabricate location trust.

Step 05

Murottal, dzikir, tasbih

Downloadable recitation audio, morning/evening adhkar counters, and haptic tasbih targets extend retention loops.

Audio files cache under the app sandbox; no fake store-ranking or download-count claims.

Step 06

Auth & cloud sync

Email register/login with SecureStore JWT and bookmark sync against the live API deployment.

https://api.arah.arimu.dev serves auth and sync; deletion sync replaces the full active bookmark set.

Stack

Monorepo boundaries.

Mobile

  • Expo
  • React Native
  • React Navigation
  • expo-sqlite
  • expo-av
  • Zustand
  • TanStack Query

Backend

  • Node.js
  • Express
  • TypeScript
  • Prisma
  • PostgreSQL
  • bcrypt
  • JWT
  • rate limiting

Shared

  • NPM workspaces
  • packages/shared-types
  • timezone headers
  • quota contracts

Integrations

  • DeepSeek API
  • expo-location
  • expo-notifications
  • SecureStore

Honest scope

No invented achievements.

  • Widget and store-distribution polish remain follow-up scope after the Sprint 1–8 code merge.
  • Physical-device QA for qibla accuracy and notification timing is documented as an open gate.
  • No invented user counts, store rankings, or unshipped feature claims appear on this page.

Evidence trail

Every claim points to a real artifact.

  1. Live APIhttps://api.arah.arimu.dev
  2. Project statusarah/CLAUDE.md
  3. Documentation indexarah/docs/INDEX.md
  4. MVP PRDarah/docs/product-requirements/2026-07-11-v01-arah-mvp-prd.md
Source: https://api.arah.arimu.dev