What we have, what we don't, and how we measure it.
We're explicit about what our current indexing covers. Three numbers matter — each measures something different:
Translated via Claude with a strict anti-softening protocol: abd → slave, rajm → stoning, no softening of violence or punishment. Isnad chains written out in full, Quran verses kept in Arabic. Tabari's full text is now translated word-for-word into Dutch.
All surahs have at least one Tabari passage. For a few short surahs (e.g. Al-Fil 105) the slice runs through transition text from a neighbouring section — those are flagged as "Inferred" to be honest about the mixed content.
Since filling the remaining gaps from Turath, every verse — including every ayah in our topical curation — has a canonical Tabari passage. Coverage is now 100%.
Our tafseer text has two layers. The canonical layer — what you see in the app — is fetched per ayah from the quran.com API, with exact verse-linkage; the few verses quran.com didn't provide were filled from Turath (the same edition). Alongside it is an older, OCR-derived layer we are phasing out:
The canonical Arabic text is fetched per ayah from the quran.com API (Dar al-Tarbiya wa-l-Turath edition: vols 1–16 following Mahmud Shakir's tahqiq, vols 17–24 the Halabi printing) and translated word-for-word into Dutch by Claude under a strict anti-softening protocol. The source text is verified against app.turath.io (the same edition); the few verses quran.com didn't provide were filled directly from Turath. Code and migrations are open and reviewable.
Jami al-bayan an tawil ay al-Quran by Abu Jafar Muhammad ibn Jarir at-Tabari (d. 310 AH / 923 CE), the standard exoteric tafsir. We use the quran.com edition of the Dar al-Tarbiya wa-l-Turath printing, verified against app.turath.io.