Production Release, 2026

Afaq Academy — Educational Platform

A full-stack, live-only teaching platform for Gulf students, with a self-hosted LiveKit video backbone and a dedicated dashboard for every role in the business.

Next.jsTypeScriptDjangoPostgreSQLRedisCeleryLiveKitWebSocketsDockerCI/CD

Video Demonstration Showcase

Interactive Video Showcase Coming Soon

We are recording a voice-over walk-through of Afaq Academy's primary features, dashboard modules, and server operations. In the meantime, explore the complete system architecture details below!

Project Overview

Afaq Academy is a live-only online teaching platform built for students across the Gulf: real one-on-one and small-group classes with a real teacher, across Arabic language, foreign languages, programming/tech, academic subjects, and life skills — deliberately no recorded or self-paced content — sold through simple monthly session packages (8/12/16 sessions) instead of a per-course catalog. I built the platform full-stack, end to end: a Next.js/TypeScript frontend with dedicated dashboards for every role (Admin, Teacher, Student, Academic Supervisor), backed by a Django REST Framework API (PostgreSQL, Redis, Celery, Channels) handling auth, course and session scheduling, assignments and grading, enrollments, and a finance module that calculates and distributes teacher earnings automatically. Live video runs on a self-hosted LiveKit SFU — Dockerized and Redis-backed for distributed room routing — rather than a third-party video SaaS, which gives full control over recording, screen sharing, noise suppression, and per-session participant limits. The backend deploys to Render, the frontend to Vercel, with Docker, Nginx, and GitHub Actions tying the pipeline together. The platform wasn't built this way from day one. It started as Lisan Al-Hekma, a broader platform mixing Islamic studies (Quran, Tajweed, Fiqh) with live, recorded, and interactive course modes. That version wasn't finding traction, so it was deliberately rebranded and re-scoped to Afaq Academy: live-only sessions, a broader (not just religious) subject catalog, and simple monthly packages — legacy pages and framing removed outright rather than left half-migrated.

Key Capabilities

Full-Stack, Solo

Scope

A Next.js/TypeScript frontend and a Django REST Framework backend, both designed, built, and deployed end to end — not just the UI layer.

Self-Hosted LiveKit SFU

Infrastructure

Runs its own Dockerized, Redis-backed LiveKit media server for live classes instead of depending on a third-party video platform — full control over recording, screen sharing, Krisp-based noise suppression, and participant limits.

A Dashboard for Every Role

Product

Distinct Admin, Teacher, Student, and Academic Supervisor dashboards, each scoped to what that role actually needs — from platform-wide oversight down to a single student's own sessions and assignments.

Automated Teacher Payouts

FinTech

A dedicated finance module calculates and distributes teacher earnings from completed sessions automatically, instead of a manual reconciliation process.

Assignments & Grading Tied to Live Sessions

E-Learning

Teachers create and grade assignments linked to specific sessions; students track progress and completion from their own dashboard.

A Deliberate Product Pivot

Product Strategy

Rebranded and re-scoped from an earlier Islamic-studies/recorded-content concept (Lisan Al-Hekma) to a focused live-only model for a broader Gulf audience — a scope cut made on purpose, not a missing feature.

Interactive Architecture Flow

Hover or click on the system modules to inspect their dynamic interactions and roles within the product stack:

client

Next.js Client

Role-aware routing for Admin/Teacher/Student/Supervisor dashboards, Redux Toolkit for state, Radix UI + Tailwind CSS for components.

Blueprint Sketch

Architecture mapping diagram is currently loaded in the interactive matrix viewer on the left.

Technical Challenges & Resolutions

Problem

Running a real-time video platform without being at the mercy of a third-party video SaaS's pricing and limits.

Resolution

Self-hosted a LiveKit SFU (Dockerized, Redis-backed for distributed room routing) instead of a managed video API — more operational responsibility, in exchange for full control over recording, screen sharing, per-session participant limits, and Krisp-based background noise suppression.

Problem

Serving four structurally different roles (Admin, Teacher, Student, Academic Supervisor) without the UI or API turning into a tangle of ad hoc role checks.

Resolution

Gave each role its own dashboard route and scoped API surface, backed by a dedicated Django permissions app, so authorization logic lives in one place instead of being re-implemented per view.

Problem

The product started as a broad Islamic-studies-plus-recorded-courses platform (Lisan Al-Hekma) that wasn't gaining traction.

Resolution

Rebranded to Afaq Academy and cut scope deliberately — live-only sessions, a broader subject catalog, and simple monthly packages instead of a per-course catalog — removing the legacy pages and framing outright instead of leaving the product half-migrated between two identities.

Development timeline & Story

Phase 1: Lisan Al-Hekma

Broad Islamic-Studies, Multi-Mode Platform

Initial build: Next.js frontend, Django backend, and three learning modes (live, recorded, interactive) around an Islamic-studies-heavy catalog alongside languages and tech.

Phase 2: Rebrand & Live-Only Pivot

Becoming Afaq Academy

Rebranded to Afaq Academy, removed the legacy Islamic-studies feature pages and the recorded/interactive course modes, and rebuilt live-teaching around a broader-appeal subject catalog and monthly session packages.

Phase 3: Production Hardening

Fixing the Build & Matching the New Brand

Fixed a site-wide build failure and a global stylesheet bug that had left buttons and inputs unstyled across the whole site, redesigned the login/register/course pages to match the new brand, and cleaned up dead code left over from the pivot.

Interested in discussing similar system integrations?