Dr. Claw
Full-stack research workspace. From idea to paper with AI agents.
Read the Holy Quran with Urdu and English translations, tafseer, word-by-word meanings, grammar, recitation and quizzes.
EducationTypeScript · JavaScriptGitHub @qasimrazasheikhOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Connecting Quran Next JS version
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Quran reader with Urdu and English translations, several tafseers per ayah, word grammar, word-by-word meanings, tajweed colours, Indo-Pak script, recitation player, Mushaf mode, search, surah quizzes and video lectures.
Built with Next.js 16 (App Router), React 19 and Tailwind CSS v4.
npm install
npm run dev # http://localhost:3000
npm run build && npm start # production
Node 20.9 or newer is needed.
| Folder | What is in it |
|---|---|
app/ | Pages (one folder per URL) and API routes in app/api/ |
components/ | React components. AppProvider holds settings, bookmarks and panels; PlayerProvider holds the audio player |
lib/ | Data and helpers. quran.ts talks to the outside APIs (server only, cached for 24 hours); views.ts builds what each page shows |
tests/ | Offline mock API and an end-to-end test |
| URL | Page |
|---|---|
/, /juz | Surah and Juz lists |
/surah/2, /surah/2/255 | Reader (the second number jumps to an ayah) |
/juz/30 | Juz reader |
/mushaf/1 … /mushaf/604 | Mushaf, page by page |
/tafseer/2/255, /videos/2/255 | Tafseer page, video lectures tab |
/search?q=mercy&scope=en | Search (scope = ar, ur or en) |
/quiz, /quiz/2/1 | Quiz list, quiz (surah 2, part 1) |
/bookmarks | Bookmarks |
Old links from the single-file site (#/surah/2/255) still work; they redirect.
Settings are saved in the browser (localStorage) and copied to a small cookie
(noor_settings), so the server can render the chosen translations, script, tajweed and
word-by-word meanings straight away. Bookmarks and "continue reading" stay in the browser
for now. Phase 2 (login) will move them to the user's account.
| Route | Returns |
|---|---|
/api/editions | Translation and tafseer lists |
/api/tafsir/{slug}/{s}/{a} | Tafseer text for one ayah |
/api/word/{s}/{a}?w= | Grammar and meaning of one word |
/api/search?q=&scope= | Search results |
/api/quiz/{s} | Data for building a surah quiz |
Each source URL can be changed with an environment variable; see .env.example.
npm run build
./tests/start-test-server.sh # mock API on :4010, app on :3100
npx playwright install chromium # first time only
node tests/e2e.mjs # about 60 feature checks
node tests/visual.mjs # screenshots of every screen (desktop + phone, light + dark) in /tmp/vis
The mock API uses real Arabic, Urdu and English text for Surah Al-Fatiha (1) and Al-Ikhlas (112), so fonts and vowel marks can be checked by eye. Other surahs use placeholder words.