Quran & hadith library

Curated ayat and hadith from authoritative sources, stored in your library and rotated on screens — no third-party calls from the TV.

Adding verses

In Library → New item → Verse of the day, pick the surah and ayah (optionally an end ayah for a range of up to 10) and press Fetch. The preview shows the Arabic text and a translation in every language your screens can display — English (Saheeh International), Urdu, Bengali, Turkish (Diyanet Vakfı), French and Somali. Save to add it as a library item.

Under Suggested verses there's a curated set of around 60 short, screen-friendly ayat — one click adds each straight to the library.

Adding hadith

  • Browse suggested — a bundled set of ~50 short narrations from the six canonical books (Bukhari, Muslim, Tirmidhi, Abu Dawud, Nasa’i, Ibn Majah) with exact references. Sahih unless marked Hasan. Searchable, one-click add.
  • Enter reference — collection + number, fetched from sunnah.com when SUNNAH_API_KEY is configured, otherwise from islamic.app (Sahih al-Bukhari and Sahih Muslim only for now). Muslim sub-hadiths like 2594a/2594b are offered to choose from.
  • Search — keyword search across Bukhari or Muslim via islamic.app (Arabic works too, no diacritics needed); pick a result to preview and save it.
  • Type your own — free text + source, as before.

Where the text comes from

Fetching happens once, server-side, when you pick an item — the full text is stored in the library row and TVs only ever read WeMasjid's database, so screens work fully offline.

  • Quran.Foundation (Quran.com APIs) is used when QF_CLIENT_ID + QF_CLIENT_SECRET are configured; QF_ENV selects prelive or production.
  • Without keys, verses come from islamic.app (free, no key — the Quran.Foundation API shape) — Uthmani text with Saheeh International, Urdu (Jalandhari), Bengali (Taisirul Quran), Turkish (Diyanet), French (Hamidullah) and Somali (Abduh) translations. If an islamic.app call fails the ayah falls back to UmmahAPI, then AlQuran Cloud.
  • Hadith come from sunnah.com when SUNNAH_API_KEY is set, otherwise islamic.app (Bukhari + Muslim, sunnah.com data and numbering) with UmmahAPI as fallback. The bundled suggested set is always available either way.
QF_CLIENT_ID / QF_CLIENT_SECRET / QF_ENV (prelive|production)
SUNNAH_API_KEY
# islamic.app needs no key
Rows fetched from Quran.com, sunnah.com or islamic.app carry a small attribution line on the slide, as required by their terms. Bundled, UmmahAPI and AlQuran Cloud content needs none — UmmahAPI rows still show one for provenance.

A note on hadith numbering

Hadith numbers are not universal — each edition numbers its books differently. islamic.app serves sunnah.com’s data and numbering, so Muslim numbering now follows sunnah.com: a reference like “Sahih Muslim 2594a” means the same hadith on both. Sub-hadith suffixes exist on many Muslim numbers — when a bare number is ambiguous the picker lists the variants (e.g. 2594a/2594b) for you to choose.

Rows saved earlier via UmmahAPI keep their (UmmahAPI numbering) flag — UmmahAPI’s Sahih Muslim numbering is a different edition, so those references may not match sunnah.com numbers. Bukhari numbering matches across all providers.

A note on editions

Uthmani Arabic differs slightly between providers at the diacritic level only — our corpus check found every seeded verse letter-for-letter equal under islamic.app, UmmahAPI and Tanzil/AlQuran Cloud. islamic.app’s English is the Saheeh International revision with macron transliterations (Allāh) and occasional bracketed glosses; footnote markers are stripped on save. Hadith English on islamic.app is the same sunnah.com text (Muhsin Khan for Bukhari, Abdul Hamid Siddiqui for Muslim) — longer and more formal than the condensed translations in our suggested set.

Daily rotation

Tick Include in daily rotation on a verse or hadith item (or on the row's Daily toggle in the library list). Every Verse of the day / Hadith slide without its own fixed item then rotates through your daily set — a different one each day, the same for every screen and the public page's verse card. A masjid with no daily rows keeps the built-in fallback set.

One click on Add the suggested set on the Library page imports all ~60 verses and ~60 hadith as daily items; running it again skips what's already there.