All case studies
Zaakiyah logo
Fintech · Charity

Zaakiyah

Transparent Zakaat and Sadaqah distribution at scale

Tech Lead & Backend Architect·LivePaymentsMicroservicesAI

Problem

Muslims need a trusted way to track wealth, calculate Zakaat against live nisaab thresholds, give transparently, and vet beneficiaries. Spreadsheets leave too much room for error.

Context

Multi-repo platform: NestJS API, React web app, admin panel, and marketing site. Donations, Zakaat applications, community features, and an AI advisor share one PostgreSQL core with strict audit and RBAC.

Approach

  • Modularised the API into wealth, nisaab, currency, Zakaat, donation, payment, community, and admin domains with Prisma on PostgreSQL.
  • Used Redis caching and BullMQ for notifications, scheduled nisaab/currency jobs, and async side effects via EventEmitter.
  • Integrated Paystack for donations, Cloudinary for media, OpenAI for the advisor, and Firebase for push. Global JWT auth, throttling, and audit interceptors sit across the stack.
  • Shipped separate React (Vite) surfaces for donors, admins at ca.zaakiyah.com, and the public marketing site.

Architecture

01NestJS REST API on Render
02Prisma + PostgreSQL + Redis + BullMQ
03React SPA + admin panel + marketing site
04Event-driven notifications and scheduled jobs
05RBAC admin with audit logging
06Paystack + OpenAI + Firebase + Cloudinary

Outcome

Live platform for Islamic financial tracking, Zakaat calculation, transparent donations, beneficiary vetting, and community. Admin tooling and audit trails cover the production surfaces.

Metrics

Transaction volume

Coming soon

Distribution latency

Coming soon

Platform uptime

Coming soon

Stack

Node.jsTypeScriptNestJSPrismaPostgreSQLRedisBullMQReactVitePaystackOpenAIFirebaseCloudinaryRender