/
Blog
Tutorial

Zahw: How I Built an Arabic Clinic Management System for Private Clinics in Egypt

Abo-Elmakarem ShohoudNovember 15, 20268 min read
Zahw: How I Built an Arabic Clinic Management System for Private Clinics in Egypt

Zahw (زهو) is an Arabic-first clinic management web app for private clinics in Egypt. The patient books from the clinic's own link, reception confirms the booking and runs the waiting queue, the nurse records vital signs, the doctor writes the visit and an electronic prescription, and the invoice and the journal entries are created on their own. Every person in the clinic opens a workspace built for their job, on a phone or a desktop. It runs at zahw.app with a 7-day free trial, and it has its own page here: Zahw.

The video above is the whole product in five minutes: the owner signs up and sets up the clinic, a patient books from a phone, and then reception, nursing, the doctor and the accountant each do their part. This post is the build story behind it: the problem, the design decisions and how the pieces fit.

What problem does Zahw solve?

In a small private clinic, one patient's visit passes through four or five people, and the information about it is spread across an appointment book, phone calls, WhatsApp messages, a paper prescription and a ledger. The patient does not know whether the booking is confirmed. Reception cannot see the whole queue. The doctor writes the prescription by hand. The owner learns the day's revenue at night, after counting the cash.

Most clinic software I looked at had one of two shapes: built around another language with Arabic added later, or one big admin panel that shows every screen to every employee. Reception ends up lost in accounting menus and the doctor in settings pages. I wanted the opposite: Arabic from the first line of code, and each person seeing only the part of the journey they own.

How does a visit flow through Zahw?

The product is built around one journey, and each step has exactly one owner:

  1. The patient books. Each clinic gets a public booking page. The patient picks a service, then a day and a time from the slots that are really free, and enters a name and a phone number. No account is needed. The request waits for reception.
  2. Reception confirms. Reception sees the requests at the top of the day, confirms them, and checks the patient in with one tap when they arrive.
  3. Nursing records vital signs. The nurse sees who is waiting and whose vital signs are still missing, and records blood pressure, pulse, temperature, sugar and weight before the patient walks in.
  4. The doctor examines. The doctor sees the next patient with their vital signs, opens the file (allergies, chronic conditions, past visits, lab and x-ray files), writes the complaint and the diagnosis, writes the prescription and books the follow-up in a free slot.
  5. The visit ends, the money follows. Ending the visit creates the invoice, including insurance cover and partial payments. Reception collects it and records the payment method.
  6. The books balance themselves. Every invoice, payment and expense posts its journal entries automatically, so the accountant reviews balanced books instead of typing them.

The patient also gets a private «My appointments» link to follow the booking, cancel it or ask to move it. Reception or the doctor can send that link, the follow-up date or the prescription on WhatsApp in one tap. To be precise about it: Zahw prepares the message and the user sends it; there are no automatic reminders.

Reception workspace in Zahw: the next patient, the queue and bookings waiting for confirmationReception workspace in Zahw: the next patient, the queue and bookings waiting for confirmation

Why does every role get its own workspace?

This was the main design decision. Instead of one app with a long menu, Zahw has five workspaces, one per staff role, and each opens on at most four destinations:

RoleOpens onCanCannot
Clinic ownerOverview · Finance · Team · SettingsClinic details, working hours, services and prices, booking link and QR code; invite and revoke team links(sees everything; the only role that manages the team)
DoctorCurrent patient · Today's patients · Patients · My accountVisit, diagnosis, prescription, follow-up, end the visitManage the team
ReceptionToday · Queue · Bookings · CollectionConfirm bookings, check in, collect paymentsOpen prescriptions or the books
NursingQueue · Patients · My accountRecord vital signs, read prescriptionsWrite prescriptions, see billing or the books
AccountantOverview · Invoices · Expenses · BooksInvoices, payments, expenses, journalOpen appointments, visits or prescriptions

The permissions are not only hidden buttons. The server checks every request against the role's read and write rights for that area (patients, appointments, visits, clinical, billing, accounting, settings, staff) and answers 403 otherwise. Hiding a button is a convenience; the server is the protection.

The owner, usually the doctor who opened the clinic, switches between the clinic workspace and the examining workspace from the top bar, because in a small clinic the same person runs the business and sees the patients.

How does the electronic prescription work?

The prescription is the part a doctor touches most, so it got the most care. Drug search runs across an Egyptian drug bank of more than 23,000 medicines, in Arabic or English. When a drug is added, an AI model suggests the dose, checks interactions with the other drugs on the prescription and with the patient's allergies, and drafts short instructions for the patient. Every suggestion is shown as a suggestion: the doctor accepts, edits or ignores it, and a field the doctor has edited is never overwritten.

The AI runs through an OpenAI-compatible adapter, under a monthly cap per clinic, and the provider key is stored encrypted (AES-256-GCM). The prescription prints on A4 from one of eight templates, with the clinic's header.

Doctor workspace in Zahw on desktop and phone side by sideDoctor workspace in Zahw on desktop and phone side by side

How is Zahw built?

LayerChoiceWhy
InterfaceReact 19, TypeScript, Vite; Material 3 Expressive with its own green theme; Thmanyah SansRight to left from the start, one codebase for phone and desktop, light and dark
APIExpress on Netlify Functions, JWT sign-inSmall, cheap to run, and the same code runs locally and in production
DataPostgreSQL with PrismaEvery query is scoped to one clinic (multi-tenant); numbering is safe under concurrency
AIOpenAI-compatible adapterThe model can change without touching the product

Two details mattered more than the stack choice. First, every query is filtered by the clinic, so one clinic can never read another's data, and integration tests run the whole journey, from sign-up to the balanced books, against a real database. Second, numbers are issued under a lock: visit, invoice and journal numbers are taken inside a database transaction that holds a per-clinic advisory lock, so two people pressing a button at the same second never get the same number.

The public pages are built for search engines too: the landing page ships its title, description and structured data in the HTML, the medical blog for clinic owners is generated as static pages at build time, and the app screens stay out of the index.

Patient booking page in Zahw on a phonePatient booking page in Zahw on a phone

What does Zahw cost?

There is a 7-day free trial with no credit card. After it, the subscription is 200 EGP a month or 2,000 EGP a year (two months free), and it does not renew automatically: if the clinic does not renew, nothing is charged.

What I would tell anyone building software for clinics

The hardest part was not any one screen; it was deciding who owns each step. Once every step of the visit had exactly one owner, the screens almost designed themselves: reception needs the queue and the collections, not the chart of accounts, and the doctor needs the next patient, not the settings. This is the same approach I bring to companies in digital transformation consulting: map one journey, give every step a clear owner, then build only what that owner needs.

FAQ

What is Zahw?

Zahw (زهو) is a clinic management web app for private clinics in Egypt, built by Abo-Elmakarem Shohoud. It covers online booking, reception and the queue, vital signs, the doctor visit with an electronic prescription, invoices and automatic bookkeeping, with a separate workspace for the owner, doctor, reception, nursing and the accountant.

Does Zahw need installing?

No. It runs in the browser on a desktop, tablet or phone, so every member of the team works from their own device. It needs an internet connection.

Can patients book without an account?

Yes. The patient opens the clinic's booking link, picks a service and a free time, and enters a name and phone number. The request waits for reception to confirm, and a private «My appointments» link lets the patient follow, cancel or ask to move it.

Does Zahw send automatic reminders?

Not today. Reception or the doctor sends the appointment, the follow-up or the «My appointments» link on WhatsApp in one tap; Zahw prepares the message and the user sends it.

Where can I try it?

At zahw.app, with a 7-day free trial. The product page with screenshots and the roles is here.

Share this post