Islamic finance education

Mufeed

Paid courses in Islamic finance run on mufeed.uz in Uzbek and Russian: card payment through Payme, a personal account, a final test and a certificate.

Reach usOpen site · mufeed.uz

Mufeed: mufeed.uz

Islamic finance in practice: courses, payment and certificate on one platform.

A structured programme in Islamic finance and banking: from principles and core contracts through to real bank practice, investment deals and modern financial products. Paid courses, a free opening lesson, a financing catalogue, and enrolment with assessment, in Uzbek and Russian.

Product strategy · UI/UX design · Full-stack engineering · Learning platform

Paid courses, and no developer on call.

A practitioner of Islamic finance sells paid courses in Uzbek and Russian. In Uzbekistan they are paid by card through Payme, in soʻm.

Payment, exams and certificates have to work without a developer on hand. And the articles on the same site, where every student has a personal account, are published by people who do not write code.

We separated the rules for money and exams from everything else.

The payment and exam rules live in a separate core and are tested without a live database. The database decides the price and the state of an order, and the site carries out what the rules decided.

  1. 01

    Build the learning journey around one practitioner's sequence rather than an unstructured content library.

  2. 02

    Keep enrolment, accounts, study progress, and assessment in one platform.

This is Mufeed’s design, rebuilt from its own code.

The window below is not a picture. The Playfair Display and IBM Plex Sans type, the dark green ground with its girih pattern and the rows marked with a gold eight-point star are rebuilt live from Mufeed’s source. The rows carry Mufeed’s own text on how the course works. Beside it are screenshots of the public mufeed.uz to compare against.

Как проходит обучение

  • Видеоуроки

    Последовательное обучение от фундаментальных принципов до практического применения.

  • Учитесь в своём темпе

    Проходите уроки через личный кабинет MUFEED в удобное для вас время.

  • Закрытая Telegram-группа

    Видеоуроки и материалы курса также размещаются в закрытой Telegram-группе и сохраняются там без заранее установленного срока.

  • Итоговый тест и сертификат MUFEED

    После изучения программы вы проходите итоговый тест и при его успешной сдаче получаете сертификат.

This is not a screenshot: it is live HTML and CSS rebuilt from Mufeed’s source.

Fonts
Playfair Display · 400–700
IBM Plex Sans · 400–500
Colours
  • --color-ink #1c2b3a
  • --color-emerald #006c35
  • --color-gold #c9a84c
  • --color-gold-soft #d9bd78
  • --color-cream #f5f1e8
  • --color-paper #f5f1e8
  • --color-slate-brand #5b6770
  • ground-ink #102a20
  • rule cream/12 rgba(245, 241, 232, 0.12)
Radius
0px · marketing
Source
DESIGN.md
app/globals.css
components/site/app-shell.tsx
components/site/site-header.tsx
components/landing/content.ts
app/[locale]/page.tsx (#author ledger)
components/landing/girih.tsx
components/landing/content.ts (how)
The left half of the mufeed.uz home page on a laptop: the headline «Поймите исламские финансы как систему — и научитесь применять их в реальной жизни и бизнесе».The first screen of mufeed.uz on a phone: the same headline and the programme description.
Screenshots of the public site mufeed.uz, taken 26 September 2026. No login, no prices.

We closed the places where a payment, a price or a certificate could quietly break.

The learning, assessment, payment and publishing systems share one domain model, while money and exam rules stay isolated from the network and database layers.

Application
Next.js, React and strict TypeScript
Data
Supabase PostgreSQL, private storage and row-level access policies
Delivery
Public pages with protected student and administration systems
  • Business rules live in a pure core

    Payment and examination logic can be tested without a live database. It returns explicit effects for the application to execute instead of hiding side effects inside the rules.

  • Payment is designed against duplication

    The database remains authoritative for price and order state, while compare-and-swap updates and uniqueness constraints protect retries from charging twice.

  • Content is treated as untrusted input

    Uploads are checked by their bytes, images are decoded and rebuilt, course files remain private, and author text is rendered as structured elements rather than injected HTML.

  • The release gate checks the whole system

    The automated gate covers migrations, security, payments, examinations, progress, multilingual content, certificates and the production build before release.

  1. 01

    The database belongs to a partner

    The production database belongs to a partner, and the team does not connect to it. Changes go out as files, and the partner applies them. Every change that touches money first runs on a temporary database, where a check deliberately tries to break the rules that protect money. A separate test makes sure no check drops out of the chain; it found two that had never run.

    The data stays with the partner, and the changes are still checked.

  2. 02

    No exchange rate, on purpose

    The owner sets the price of each course, in one currency. Since 23 August 2026 there has been no exchange rate in the payment code, and a test stops a release if one appears there again.

    On the site, a buyer pays the price the owner set, not the result of the day’s conversion.

  3. 03

    The student types the name

    Students type the name for their certificate themselves, and one invisible character in it reverses all the text after it. Before, such characters were removed only in the administrator’s preview, not in the document every graduate receives. Now they are removed before the name reaches the certificate and the file name.

    A graduate’s certificate reads the way the platform issued it.

  4. 04

    One tap, one order

    Telegram delivers the same tap again if the server has not answered within a few seconds, and a slow first start of the server is enough for that. Without protection, the “I have paid” tap would create a second order. Tests do not show it, because there the server is already running and always answers in time. Now a repeated delivery of the same tap is dropped, separately for each of the two bots.

    A slow server answer does not turn into a second order.

  5. 05

    Prices for AI, from the checkout

    The site publishes an llms.txt file with its courses and prices for AI tools. It used to be written by hand and named old prices and pages that had moved. Now it is built from the same price table the payment runs on.

    If an AI tool reads the file, it gets the prices the checkout charges.

69 database migrations · 83 pages · 106 automated test files. Counted by us from the repository’s files on 26 September 2026.

One tap will not become a second order, and the price will not drift with the exchange rate.

The course price is the one the owner set, and no exchange rate rewrites it. A slow server answer will not turn one “I have paid” tap into a second order. A change that touches money is checked before it reaches the database. And a graduate’s certificate reads the way the platform issued it.

Want a system like this for your business?

Describe the problem in two or three sentences. We reply the same working day and suggest a time to talk.

Reach usDiscuss your project on Telegram

  • We reply the same working day, Tashkent time.
  • You write to Nodirkhon; he brings in whichever of us your problem needs.