Lessons from building telemedicine apps for Saudi Arabia
Over the last two years I worked on several healthcare apps for Saudi Arabia, including Mostaqer, a mental-health platform, and the Autism Virtual Clinic, which was recognized at WSIS 2026. Each one has a patient app and a doctor or therapist app. These are the lessons I keep coming back to.
Two apps, one codebase
The patient and the doctor see the same appointment from opposite sides. On Mostaqer, the doctor app shared its codebase with the patient app, and it ran on mobile, web and desktop. Sharing the models, the API layer and the design system meant a change to how an appointment works landed in both apps at once, instead of drifting apart.
What we kept separate was the navigation and the daily workflow. A doctor wants a schedule and a list of today’s sessions. A patient wants to find someone and book. Same data, very different screens.
Video calls fail in ordinary ways
We used Agora for video sessions. The SDK is not the hard part. The hard part is everything around the call: permissions denied on the first try, a phone that goes to sleep, a weak connection in the middle of a session, a doctor who joins two minutes late. Plan every one of those states with a clear message on screen, because in a health session a frozen screen with no explanation feels much worse than a short delay.
Urgent and scheduled bookings are different products
A scheduled booking is a calendar problem. An urgent booking is a matching problem: who is available right now, how fast they accept, and what the patient sees while they wait. Treat them as two flows with their own screens and rules, not one form with an "urgent" checkbox.
Payments should feel local
Patients in Saudi Arabia expect the payment options they use everywhere else. On Mostaqer that meant cards plus local options such as Tabby and Tamara. Every extra step at checkout is a place where someone who needed help closes the app.
Trust is built in the small screens
- Show the specialist’s name, photo and qualifications before booking.
- Confirm every booking and payment clearly, in Arabic, with the time in the patient’s timezone.
- Make cancellation and rescheduling easy to find. Hiding them does not keep patients, it loses them.
- Keep chat and session history private and easy to reach for both sides.
Work as one team with the backend
Mostaqer was built by four Flutter developers working closely with backend engineers. What made it work was agreeing on data contracts early and testing error cases together, not only the happy path. Most of the bugs patients would have felt were caught in those conversations, before they reached a build.
If you are planning a healthcare app for the Gulf, start with these questions before the first screen is designed. They decide more about the result than the choice of framework.