web

Adlwise

Adlwise (Justice and Wisdom) is the home of Dr. Hafiz Haseeb's work on Quran tafseer, Seerah, Iqbal, and constitutional questions. It holds 500+ lectures searchable in Urdu and English.

Adlwise

Fig 1.0 — Adlwise

The Problem Statement

Why engineer a custom digital platform instead of relying on YouTube playlists?

Dr. Hafiz Haseeb teaches the Quran, Seerah, and Iqbal with traditional rigor, and reads them as a living framework for Pakistan's political and constitutional questions. Hundreds of hours of that work sit on YouTube, where the algorithm buries it, search is weak, and WhatsApp groups scatter the rest.

Tools like WordPress, Ghost, and Substack are not built for Urdu and Arabic. They struggle with search that ignores accent marks, they don't understand Quran references like 2:255 (Ayat ul Kursi), and they can't organize multi-part lecture series well.

So we built Adlwise: a site that adds new lectures automatically, searches instantly in your browser, and displays Urdu, Arabic, and English text together in a way that is comfortable to read.

Constraints

The system architecture was not chosen in an unconstrained vacuum. Each structural decision emerged directly from four non-negotiable technical boundaries.

URDU AND ARABIC SPELLING

The same Urdu or Arabic word can be typed several ways, with or without accent marks and with look-alike letters. Normal search misses results.

We made search treat all these versions as the same word, so people find the right lecture however they type.

FAST SEACH WITHOUT EXTRA COST

Relying on external paid hosted search engines (Algolia, Meilisearch) introduces delay, monthly costs and dependency.

Search runs inside the visitor's browser, so results show up instantly across all lectures, notes, and articles at no running cost.

KEEPING THE LIBRARY UPDATED

Typing in 200+ lectures by hand, with titles, thumbnails, and descriptions, is too much for a small team.

Scripts pull lecture details from YouTube, check for missing or broken items, and update the website automatically.

THREE SCRIPTS, ONE PAGE

Urdu Nastaliq, Quranic Arabic, and English serif fonts look uneven when placed together.

We tuned font sizes, spacing, and line heights on every screen size so the text reads calmly, like a book.

System Architecture

The site is built to be simple and fast. Behind the scenes, scripts collect and check lecture information from YouTube. On the website, visitors browse ready-made course pages and use instant search across English, Urdu, and Quran references.

Subsystem Decomposition

Automatic Lecture Updates

Collects each video's details from YouTube and checks that nothing is missing.

Checks categories, catches broken links, and tidies durations before updating the lecture library.

Bilingual Search

Lets visitors search lectures in Urdu, Arabic, or English, with filters by category.

Understands Quran references like 'Surah 18' or '18:1' and takes you to Al-Kahf.

Course Pages

Organizes lectures into clear learning paths: Lisan ul Quran, Surah by Surah, and the Majlis archive.

Shows course lists with search, study notes, and a video viewer.

Application Form

Lets students apply to join offline Majlis gatherings and study groups.

A simple built-in form that collects the applicant's background and reason for joining.

Making Search Work in Urdu and English

Look-alike letters, accent marks, and invisible characters were quietly breaking search.

We tested searching lectures titled in both English and Urdu, such as 'سورۃ کہف کی تفہیم' and 'Surah Al-Kahf'. A search for 'کہف' failed if it was typed with a slightly different letter. People searching by Quran reference, like '2:255' or 'Para 30', got no results at all.

Urdu and Arabic have several different characters that look identical on screen. Accent marks and invisible spacing characters also change the underlying text, so ordinary search treats matching words as different.

src/lib/search/normalizer.ts — Bilingual Diacritic & Glyph Normalizer
typescript
const ARABIC_DIACRITICS_REGEX = /[\u064B-\u065F\u0670\u06D6-\u06ED]/g;
const ZERO_WIDTH_REGEX = /[\u200B-\u200D\uFEFF]/g;
const ALEF_VARIANTS_REGEX = /[\u0622\u0623\u0625\u0671]/g;
const HEH_VARIANTS_REGEX = /[\u0629\u06C2\u06C3\u06BE]/g;
const YEH_VARIANTS_REGEX = /[\u064A\u0649\u0626]/g;
const KAF_VARIANT_REGEX = /\u0643/g;

export function normalizeUrduArabic(text: string | undefined | null): string {
  if (!text) return "";
  return text
    .replace(ARABIC_DIACRITICS_REGEX, "")   // Strip short vowels/A'raab
    .replace(ALEF_VARIANTS_REGEX, "\u0627") // Normalize all Alef forms to ا
    .replace(HEH_VARIANTS_REGEX, "\u06C1")  // Normalize Heh variants to ہ
    .replace(YEH_VARIANTS_REGEX, "\u06CC")  // Normalize Yeh forms to ی
    .replace(KAF_VARIANT_REGEX, "\u06A9")   // Normalize Arabic Kaf to Urdu ک
    .replace(ZERO_WIDTH_REGEX, "")           // Strip invisible joiners
    .toLowerCase()
    .trim();
}

export function tokenizeBilingual(text: string | undefined | null): string[] {
  if (!text) return [];
  return text
    .split(/[\s,./\\;:'"[\]{}|!@#$%^&*()_+=\-–—؟،۔«»‹›"“”'‘’`~]+/u)
    .map((token) => token.trim())
    .filter((token) => token.length > 0);
}
This code turns look-alike letters into one standard form, so search works whether or not you type accent marks.
Making Search Work in Urdu and English

Fig 2.0 — Searching in English and Urdu, with results appearing instantly.

The Resolution

We added a cleanup step that standardizes letters and removes accent marks, plus a Quran reference finder. Searching '2:255' or 'Baqarah' now brings up the right lectures automatically.

What the System Taught Me

Building search for Urdu and Arabic showed us that text is more than characters. It carries a whole culture, and tools built for English will not respect it by default.

Catalog Check

Running the automatic check that confirms every lecture has complete, correct information.

hmsaeed@taxila: ~/projects/vms (x86_64-gcc)
C++17
$npm run test
> Adlwise.com@1.0.0 test
> npm run audit:catalog && tsc --noEmit
[AUDIT] Scanning 214 lecture entries across 4 curriculum streams...
[AUDIT] Verifying YouTube video IDs and active thumbnail URLs... 100% OK.
[AUDIT] Checking bilingual titles: 214 English titles, 214 Urdu translations.
[AUDIT] Validating MiniSearch indexing payload... 0 syntax errors.
[AUDIT] Checking Quranic notation references... 48 Surah links resolved.
[TSC] Typechecking Next.js 16 & React 19 component tree... 0 errors.
===========================================================
Success: Catalogue 100% compliant. Build verified.
$

Reflection

“The modern internet is optimized for immediacy and dopamine; classical thoughts need patience, order, and rigor.”

The hardest part of building this site was not the code. It was making a space that invites careful thought. Adl and Hikmah are the method as well as the name, and a site that feels like a social network would contradict both before the first paragraph is read.

So we left out recommendations, clickbait thumbnails, and extra widgets. Visitors get clear courses, Urdu-first typography, and search that simply works.

Adalwise taught me that building software can be a form of care: giving serious ideas a home that does them justice.

Collaborators

Faculty instructors, domain advisors, and engineering peers who supervised, reviewed, or contributed to this build.

Dr. Hafiz Haseeb

Co-Founder & Scholarly Supervisor

Provided the lectures and course outline, checked the topic categories for accuracy, and guided the constitutional research.

Hafiz Muhammad Saeed

Lead Platform Architect & Engineer

Designed and built the website, the bilingual search, and the tools that update the lecture library automatically.

Sir Hafiz Touseef

Contributing Scholar & Co-Host

Co-hosted Tawasi al-Haq, shared constitutional law references, and reviewed the learning material.

Interested in discussing this architecture?

I'm always open to technical dialogue, code reviews, and exploring system constraints.

Start a Conversation→