Skip to content

About

Sakinah πŸŒ™ β€” A complete Arabic-first Islamic app: offline Quran, real adhan notifications, live Qibla compass, graded hadith collection, tasbih counter, and favorites. Built with Expo + React Native. Free forever, offered as Sadaqah Jariyah.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŒ™ Sakinah β€” Ψ³ΩƒΩŠΩ†Ψ©

Your daily companion for Quran, remembrance, and prayer

An Arabic-first Islamic mobile app for Quran, Hadith, Adhkar, Tasbih, Qibla, and prayer times.

Free Β· Open Source Β· No Ads Β· No Accounts Β· Privacy First

React Native Expo TypeScript SQLite TanStack Query


πŸ“– About

Sakinah (Ψ³ΩƒΩŠΩ†Ψ©) is a free, Arabic-first Islamic mobile application designed to bring essential daily worship tools into one calm and simple experience.

The app focuses on:

  • πŸ“– Quran
  • πŸ•Œ Prayer times
  • 🧭 Qibla
  • πŸ“Ώ Adhkar & Tasbih
  • πŸ—£οΈ Hadith
  • ⭐ Favorites
  • 🎯 Daily Wird
  • βš™οΈ Personal settings

The interface is designed RTL-first and optimized primarily for Arabic users.

Sakinah is being developed as a Sadaqah Jariyah (Ψ΅Ψ―Ω‚Ψ© جارية) project, with no commercial purpose, no advertisements, and no user accounts.


✨ Features

πŸ“– Quran

  • Complete Quran β€” all 114 Surahs
  • Browse by Surah
  • Browse by Juz
  • Verse-level Tafsir
  • Mishary Alafasy recitation
  • Reciter selection
  • Adjustable Quran font size
  • Verse favorites/bookmarks
  • Automatic reading-position tracking
  • "Continue Reading" on the home screen
  • Offline Quran reading after downloading the required content

πŸ•Œ Prayer Times

  • Five daily prayer times
  • Location-based calculation
  • Hijri date
  • Gregorian date
  • Next-prayer countdown
  • Prayer notifications
  • Adhan notification support
  • Cached prayer times for offline fallback
  • Clear indication when displayed times come from cached data

🧭 Qibla

  • Live Qibla direction
  • Device location
  • Magnetic heading sensor
  • Real-time compass updates
  • Designed for use while traveling

πŸ“Ώ Adhkar & Tasbih

  • Morning and evening remembrance
  • Dhikr text and repetitions
  • Source information where available
  • Simple Tasbih counter
  • Custom dhikr phrases
  • Local counter history
  • Haptic feedback
  • Works without an internet connection

πŸ—£οΈ Hadith

Browse a collection of major Hadith books, including:

  • Sahih al-Bukhari
  • Sahih Muslim
  • Sunan Abi Dawud
  • Jami' al-Tirmidhi
  • Sunan al-Nasa'i
  • Sunan Ibn Majah
  • Musnad Ahmad
  • Muwatta Malik
  • Sunan al-Darimi

Additional features:

  • Browse by book
  • Browse by category/topic
  • Hadith search
  • Hadith source information
  • Save Hadith to favorites
  • Previously loaded Hadith can remain available offline

Hadith grading is displayed only when a reliable source provides grading information. The app does not invent or infer grades.

⭐ Favorites

A unified place for saved content:

  • Quran verses
  • Hadiths
  • Other supported saved items

Everything is stored locally on the device.

🎯 Daily Wird

Set a personal Quran reading goal and track your progress.

Possible goals include:

  • Pages per day
  • Juz per day
  • Daily progress
  • Reading streak

The goal is to encourage consistency without turning worship into a competition.

βš™οΈ Settings

  • Light / Dark / System theme
  • Quran font-size control
  • Reciter selection
  • Prayer notification settings
  • Adhan settings
  • Local data management
  • Personal reading preferences

πŸ“± Offline-First

Sakinah is designed to remain useful even when the internet is unavailable.

Feature Offline behavior
πŸ“– Quran Available offline after local data is downloaded
πŸ—£οΈ Hadith Previously loaded content remains available
⭐ Favorites Stored locally
🎯 Wird Stored locally
πŸ“Ώ Tasbih Fully offline
🀲 Adhkar Fully offline
πŸ•Œ Prayer Times Uses the latest available cached times
🧭 Qibla Uses the device's location and sensors

The app does not require an account or cloud synchronization for personal data.


πŸ—οΈ Architecture

Sakinah follows a local-first architecture with a clear separation between UI, data fetching, and local persistence.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          React Native        β”‚
β”‚          Expo Router         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        UI / Screens          β”‚
β”‚  Quran Β· Hadith Β· Prayer    β”‚
β”‚  Qibla Β· Adhkar Β· Settings  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚       TanStack Query         β”‚
β”‚    Fetching Β· Caching        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”
       β–Ό                β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Remote APIs  β”‚ β”‚ Local Storage β”‚
β”‚ Quran        β”‚ β”‚ SQLite        β”‚
β”‚ Hadith       β”‚ β”‚ AsyncStorage  β”‚
β”‚ Prayer       β”‚ β”‚               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

API Layer

External APIs are accessed through a shared HTTP layer responsible for:

  • Request handling
  • Timeout management
  • Error normalization
  • Network error detection
  • In-flight request deduplication
  • JSON parsing

This keeps provider-specific logic inside files such as:

lib/api/
β”œβ”€β”€ http.ts
β”œβ”€β”€ quran.ts
β”œβ”€β”€ hadith.ts
β”œβ”€β”€ adhkar.ts
└── prayer.ts

πŸ› οΈ Tech Stack

React Native Expo Expo Router TypeScript

SQLite AsyncStorage TanStack Query

Expo Notifications Expo Location Expo Sensors EAS Build

Layer Technology
Mobile React Native + Expo
Navigation Expo Router
Language TypeScript
Data fetching TanStack Query
Local database SQLite
Local preferences AsyncStorage
Notifications Expo Notifications
Location Expo Location
Sensors Expo Sensors
Builds EAS Build

πŸ“š Content & Data Sources

Sakinah uses external services and publicly available datasets for different parts of the application.

Content Source
Quran text alquran.cloud
Quran audio Quran.com / supported recitation providers
Tafsir alquran.cloud
Hadith HadeethEnc and other documented Hadith datasets
Prayer calculations AlAdhan

Source information is preserved where available so that users can identify the origin of religious content.

Important: External APIs and datasets can change, become unavailable, or contain different metadata. The application therefore avoids presenting unsupported information as fact.


πŸ” Privacy

Privacy is a core design principle of Sakinah.

No account required

There is no:

  • Sign-up
  • Login
  • Password
  • User profile

Local-first personal data

The following information is stored locally:

  • Favorites
  • Reading position
  • Wird progress
  • Settings
  • Tasbih data
  • Cached content

Location

Location may be accessed when required for:

  • Prayer-time calculation
  • Qibla direction

The application does not maintain a personal location profile.


πŸš€ Getting Started

Requirements

Make sure you have:

  • Node.js
  • npm
  • Expo
  • Android Studio or a physical Android device for Android development

Installation

cd app/artifacts/mobile
npm install

Start the development server

npx expo start

Then:

  • Scan the QR code with a compatible device
  • Or run the application on an Android/iOS emulator

πŸ“¦ Development Build

Some native features require a development build rather than standard Expo Go.

For example:

  • Advanced notification behavior
  • Custom notification sounds
  • Certain native modules

Create a development Android build with:

npm install -g eas-cli
eas login
eas build --profile development --platform android

πŸ§ͺ Project Status

Sakinah is an actively developed open-source project.

Some features and data providers may still be evolving.

Current development priorities include:

  • Improving Quran UX
  • Improving Hadith browsing and search
  • Expanding offline support
  • Improving prayer notifications
  • Refining Qibla accuracy and UX
  • Improving Arabic localization
  • Expanding the Islamic library
  • Strengthening source attribution and data validation

🀲 Project Intention

Sakinah is developed with the intention of being a Sadaqah Jariyah (Ψ΅Ψ―Ω‚Ψ© جارية).

The project is free to use and has no commercial purpose.

The hope is that it helps Muslims:

  • Read the Quran
  • Remember Allah
  • Learn beneficial knowledge
  • Keep track of prayer times
  • Build consistent habits of worship

"When a person dies, his deeds come to an end except for three: ongoing charity, beneficial knowledge, or a righteous child who prays for him." β€” Sahih Muslim

We ask Allah to accept this work, make it beneficial, and reward everyone who contributes to it, improves it, shares it, or benefits from it.


πŸ“„ License

This project is open source.

The project is intended to remain free for end users.

See the repository license for the exact terms governing modification and redistribution.


πŸŒ™ Sakinah β€” Ψ³ΩƒΩŠΩ†Ψ©
Built with the hope of becoming a source of lasting benefit.

About

Sakinah πŸŒ™ β€” A complete Arabic-first Islamic app: offline Quran, real adhan notifications, live Qibla compass, graded hadith collection, tasbih counter, and favorites. Built with Expo + React Native. Free forever, offered as Sadaqah Jariyah.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages