A Custom CMS for a Religious Organization, Built From Scratch
A full website and custom CMS for a religious organization — sermons, a book library with live inventory, an audio-approval workflow, and role-based access, all built from scratch in Next.js.
The Brief
Jamaat-ul-Muslimeen needed a full public website and a way for their own staff — none of them developers — to manage a large, constantly-growing body of religious content: sermons, lectures, event recordings, a book library with real inventory, daily Ayah and Hadith rotations, live-stream announcements, and a directory of prayer locations spanning Pakistan and other countries.
Because several people in different roles would be publishing, it also needed real access control — not a single shared login that everyone passes around.
The Build
I built the entire site from scratch in Next.js — no CMS framework, no site builder. The content management is ingrained in the app itself: invisible to the public, gated behind an RBAC-authenticated admin panel.
That panel runs the organization. Live events, videos, and an audio library with a content-approval workflow — submissions land in a Pending Approval queue with play, download, share, and approve actions before anything goes live. A book store with cart, pricing, and live stock tracking, where “Out of Stock” states are real and accurate. Daily Ayahs and Hadiths, locations with embedded maps, user and role management, and inventory. The database is PostgreSQL; files live in DigitalOcean Spaces; the public site is multi-language, with locale prefixing in the URLs.
I own the full architecture and core build. A handful of later feature extensions — the inventory-control module among them — were added by another developer, but working under my direction.
The Outcome
The site is live at aljamaat.org and in daily use — the audio-approval queue and the live book inventory both show real, ongoing staff activity rather than a static brochure.
It is the most complete system of the three here: genuine role-based access, a real moderation and publishing workflow, e-commerce-style inventory, and multi-language support — all custom-built rather than assembled from a CMS framework.