AmalQIslamic giving with the paperwork built in

AmalQ is a giving platform for zakat, sadaqah, waqf and emergency appeals, built so a donor can follow a payment from checkout to delivery. We designed the product and built the platform and its mobile app.

The AmalQ campaign list on desktop and on a phone, showing verified campaigns with progress bars, categories and donor counts
Client
AmalQ
Sector
Charitable giving
Year
2025 to 2026
Platforms
Web platform, iOS, Android
Services
Product and UX design, Web development, Mobile apps

A place to give that treats the religious obligation seriously: zakat calculated against a real nisab, campaigns reviewed before they appear, receipts that say which category a payment satisfied, and delivery evidence attached to the campaign it belongs to.

Built for

  • Muslim donors who need their giving categorised correctly.
  • Campaign organisers raising for a cause, who must be verified first.
  • The AmalQ team, who review campaigns, handle payouts and answer for compliance.

The problem

Giving platforms ask donors to trust a progress bar. For zakat that is not enough. Zakat is owed on specific wealth, at a threshold that moves with the price of silver, and it can only be spent on specific categories of recipient. A platform that treats it as a donation with a different label is not doing the job.

Campaign fraud is the other half of the problem, and it is not solved by a verification badge awarded once. An organiser can pass a check in March and lose the right to receive money in June, while their campaign carries on collecting.

AmalQ's donors do not share a language. The platform needed Arabic and Urdu as first-class languages rather than translations bolted on, including Urdu written in Latin script for readers who speak it but do not read the script.

Goals

  1. 01Calculate zakat properly, in the donor's own currency, against a nisab they can see.
  2. 02Stop a campaign from taking money the moment its organiser stops being eligible to receive it.
  3. 03Record every movement of money in a way that can be reconciled and audited later.
  4. 04Make the path from checkout to delivery something a donor can follow.
  5. 05Ship the whole product in seven locales, right to left included.

Our role

We built AmalQ from the ground up and continue to develop it.

What we delivered

  • Product design for the web platform and the mobile app
  • Design system and interface build
  • Express and Prisma back end organised by domain
  • React front end in seven locales, with right-to-left support
  • Payments through Stripe and PayPal, with a donation ledger
  • Campaign review, verification and payout gating
  • Zakat calculator, halal business directory and rewards programme
  • Hosting, monitoring and ongoing maintenance

How we worked

  1. 01

    Model the obligation

    We started with the rules rather than the screens. What counts as zakatable wealth, which nisab basis is the conservative one, what a campaign category means for the money that lands in it.

  2. 02

    Design for two audiences at once

    A donor wants to give in under a minute. An organiser is filling in a compliance form. The same platform has to be gentle with one and strict with the other, so the two journeys were designed separately and share only the campaign itself.

  3. 03

    Build by domain

    Donations, campaigns, payments, settlements, compliance, KYC, payout accounts and the rest were built as separate modules, so the rule that stops a payout lives next to payouts and not in a controller.

  4. 04

    Put the gate in the query

    Rather than rely on a nightly compliance job to pause campaigns, the public campaign query itself filters on the organiser's current verification and payout status. A campaign stops being visible the moment its organiser stops being eligible.

  5. 05

    Run it and keep running it

    The platform is deployed on its own server with error monitoring, and it has been extended since launch with the directory, the rewards programme and the crowdfunding module.

Screens and features

The AmalQ explainer headed Your Donation. Traced From Checkout to Delivery, with four steps covering verification, payment security, impact updates and community
The promise the product is organised around, stated on the page in four steps.
The AmalQ zakat calculator with a currency selector, a choice of silver or gold nisab, and sections for cash, savings, gold, investments, pension and property
Nisab is shown in the donor's currency, with silver recommended as the lower threshold.
The AmalQ campaign list on a phone, with a search field and campaign cards showing category, organiser and progress
The campaign list on a phone, where most giving happens.
  • A zakat calculator that does the hard part

    Multi-currency, covering cash, savings, gold and silver, investments, pension, property income, money owed to you and debts due, against a silver or gold nisab shown on the page.

  • Eligibility checked at read time

    The public campaign list only returns campaigns whose organiser is currently verified and payout-ready. It is a live check on top of the scheduled compliance job, not instead of it.

  • A ledger behind every donation

    Donations write ledger entries carrying direction, category, currency and a compliance flag, so settlements and payouts can be reconciled against the giving that produced them.

  • Idempotent payments

    Payment handling is keyed so a retried request or a repeated webhook cannot create a second donation.

  • Seven locales, including right to left

    English, Arabic, Urdu, Urdu in Latin script, Bengali, Turkish and Spanish, with layout, dates and currency handled per locale rather than translated over an English layout.

  • A halal business directory

    A searchable directory with a map view, certification status and reviews, built as its own module alongside giving.

Technical choices

What the product is built with, and why.

Express 5 with Prisma and PostgreSQL
Campaigns, donations, ledger entries and payouts are relational and have to be queried together. Database constraints carry the rules that must never be broken by application code.
Domain modules rather than layers
Thirty modules each own their entry points, services and repositories. Finding the rule that governs payouts means opening the payouts module, not tracing a call through three shared folders.
Stripe and PayPal side by side
Donors in different countries reach for different rails, and a platform with a single processor loses the ones it does not serve.
React with a translation layer, not translated pages
Locale files are generated and validated in the build, so a missing Arabic string is a build failure rather than an English word appearing in the middle of an Arabic page.
Self-hosted error monitoring
The platform handles donor data. Errors and stack traces stay on infrastructure the client controls rather than going to a third-party service.

Handling money and rules at the same time?

Payments, compliance and multi-language products are where we spend most of our time. Tell us what you are building.