qurantech

Guides developers building apps that display the Quran with audio, translations, and study tools.

Installation
Run `npx skills add "https://github.com/quran-ws/qurantech-skill" --skill "qurantech"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md
---
name: qurantech
license: MIT
description: "Expert guide for building Quran apps and adding Quran features to existing apps. Covers mushaf display, Arabic text rendering and fonts, audio recitation (ayah, continuous, word-level), all 10 qira'at with ayah-count mapping, tajweed, search (full-text, root, semantic), translations, tafsir, i'rab, scholarly content types (asbab, fatwas, topics), memorization/hifz tools, verse recognition from audio (offline-tarteel ONNX), Quran embed widgets (oEmbed), data modeling, offline-first architecture, testing, and adab rules for handling sacred text. Use for ANY task touching Quranic text, recitation, or Quran data — building an app or tool, adding a feature ('add Warsh support', 'identify verse from audio', 'embed an ayah in my site'), choosing APIs (quran.com, QUL, Tanzil, quranpedia, mp3quran), picking Quran fonts, or designing schemas. Triggers on: quran, mushaf, ayah, surah, qira'at, hafs, warsh, tajweed, recitation, hifz, memorization, tafsir, tarteel, verse recognition, quran embed/widget, islamic app."
---

# QuranTech

Build Quran apps and tools with best practices, verified data sources, and respect for the sacred text.

## Interactive Workflow

**Clarify requirements before building or modifying anything** — these decisions change the architecture, and reworking a Quran app after picking the wrong qira'a or data source is expensive. Use AskUserQuestion where available; otherwise ask in plain conversation. Skip questions the user has already answered, and skip the interview entirely when the request is fully specified.

### For new projects

Ask these questions in sequence (1-4 per round):

1. **What are you building?** (Mushaf reader, audio app, learning tool, API, search engine, etc.)
2. **Target platform?** (Web, iOS, Android, Flutter, backend API, etc.)
3. **Which qira'a?** (Hafs only, Warsh, multiple, all 10 — see [references/qiraat.md](references/qiraat.md))
4. **Core features needed?** (Audio, tajweed, search, translations, tafsir, memorization, mushaf pages)
5. **Offline support?** (Bundled data, download-on-demand, online-only)
6. **Data sources?** Guide them through API options (see [references/api-comparison.md](references/api-comparison.md))

After gathering answers, recommend an architecture and data sources, then proceed.

### For existing projects

Ask:
1. **What feature are you adding/changing?**
2. **What's the current tech stack?**
3. **What qira'a does the app currently support?**
4. **What data sources are currently in use?**

Then consult the relevant reference file and guide the implementation.

## Adab Rules (Mandatory)

**Read and enforce [references/adab.md](references/adab.md) at all times.** These rules are non-negotiable:

- Never truncate an ayah mid-text
- Never strip diacritical marks from Quranic text
- Use verified text sources only — never manually type Quranic text
- Use Quranic fonts, not generic Arabic fonts
- Never log Quranic text in error/debug logs — use references (surah:ayah)
- Never use Quranic text as test data or placeholder text
- Label translations as translations, not as the Quran itself
- Never auto-play audio without user intent

## Reference Files

Load the relevant reference file based on the task:

| Task | Reference |
|------|-----------|
| Choosing data sources or APIs | [references/data-sources.md](references/data-sources.md) |
| Comparing Quran APIs | [references/api-comparison.md](references/api-comparison.md) |
| Using the QuranPedia API (endpoints, dumps, delta sync) | [references/quranpedia-api.md](references/quranpedia-api.md) |
| Embedding Quran content in websites (widget, oEmbed) | [references/quranpedia-embed.md](references/quranpedia-embed.md) |
| Scholarly content beyond tafsir (asbab, fatwas, topics, gharib…) | [references/content-types.md](references/content-types.md) |
| Supporting multiple qira'at | [references/qiraat.md](references/qiraat.md) |
| Rendering Arabic text, fonts, RTL | [references/text-rendering.md](references/text-rendering.md) |
| Mushaf page display (SVG/image/text) | [references/mushaf-display.md](references/mushaf-display.md) |
| Tajweed color coding | [references/tajweed.md](references/tajweed.md) |
| Audio recitation features | [references/audio.md](references/audio.md) |
| Verse recognition (audio-to-ayah, offline-tarteel) | [references/verse-recognition.md](references/verse-recognition.md) |
| Quran search implementation | [references/search.md](references/search.md) |
| Translations and tafsir | [references/translations-tafsir.md](references/translations-tafsir.md) |
| Memorization / hifz features | [references/memorization.md](references/memorization.md) |
| Data modeling and schemas | [references/data-models.md](references/data-models.md) |
| App architecture and offline | [references/architecture.md](references/architecture.md) |
| Grammatical analysis (i'rab) | [references/irab.md](references/irab.md) |
| Testing, QA, text integrity | [references/testing-qa.md](references/testing-qa.md) |
| Etiquette rules (adab) | [references/adab.md](references/adab.md) |

## Key Principles

1. **Use existing packages first.** Check MushafImad (iOS), mushaf-imad-android (Android), mushaf-imad-flutter (Flutter) before building from scratch. See [references/architecture.md](references/architecture.md).
2. **Use production-ready search.** Don't build Arabic search from scratch — use Kalimat.dev, Quran Foundation API, or Alfanous. See [references/search.md](references/search.md).
3. **Never hardcode ayah counts.** Different qira'at have different counts (6,204–6,236). Always derive from mushaf metadata.
4. **Prefer API-driven data** for translations and tafsir — they receive corrections over time. Static bundles go stale.
5. **Design for offline.** Quran apps must work without internet. Bundle core content, download extras on demand. See [references/architecture.md](references/architecture.md).
6. **Respect copyright.** Always verify licensing for translations, tafsir, and audio recordings before inclusion.
7. **Ayah references need context.** `2:5` is ambiguous without a counting system. Always include mushaf/qira'a context in data models.
8. **AI safety is critical.** Never let AI generate tafsir freely — use RAG with authoritative sources. Human review is mandatory for all AI-generated Islamic content. See [references/adab.md](references/adab.md).
9. **Accessibility matters.** Screen reader compatibility, simple UI for blind users, Dynamic Type support. Most Quran apps fail here. See [references/architecture.md](references/architecture.md).
10. **Don't reinvent the wheel.** The Itqan community was founded to solve this exact problem — scattered efforts rebuilding the same things. Check existing open-source projects first. See [references/data-sources.md](references/data-sources.md).
11. **Automate text integrity checks.** A dropped diacritic or stripped waqf mark silently corrupts sacred text. Verify stored text byte-exact against the verified source in CI. See [references/testing-qa.md](references/testing-qa.md).

## Quick Start Recommendations

**Simplest Quran app:** Quran Foundation API (text + translations + audio) + Amiri Quran font + any web/mobile framework.

**Full-featured mushaf reader:** quranpedia/quran-svg (mushaf pages) + Quran Foundation API (text + audio + translations) + KFGQPC font + offline DB.

**Multi-qira'a app:** quranpedia/qiraat-ayah-map (ayah mapping) + quranpedia/quran-svg (5 mushafs) + MP3Quran (multi-qira'a reciters) + per-qira'a font selection.

**Memorization (hifz) app:** Quran Foundation API or QUL (text + ayah audio) + QUL mutashabihat data + spaced-repetition review queue + offline-tarteel for recitation checking. See [references/memorization.md](references/memorization.md).

**Quran content in an existing website (zero backend):** QuranPedia embed widget or oEmbed. See [references/quranpedia-embed.md](references/quranpedia-embed.md).

**AI-powered Quran tool:** Quran MCP (mcp.quran.ai) for semantic search + Quran Foundation API for data.

Ships with 19 supporting files:

  • references/adab.md
  • references/api-comparison.md
  • references/architecture.md
  • references/audio.md
  • references/content-types.md
  • references/data-models.md
  • references/data-sources.md
  • references/irab.md
  • references/memorization.md
  • references/mushaf-display.md
  • references/qiraat.md
  • references/quranpedia-api.md
  • references/quranpedia-embed.md
  • references/search.md
  • references/tajweed.md
  • references/testing-qa.md
  • references/text-rendering.md
  • references/translations-tafsir.md
  • references/verse-recognition.md

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us