Case study

How we built Dorak

How OBELIX Agency built Dorak, an Arabic-first online booking platform for Egypt, Saudi Arabia and the UAE: the problem, the technical decisions, security, speed and lessons learned.

Dorak, a product built by OBELIX: screenshot of the live product on a phone

Dorak is an online appointment booking platform that we built from scratch at OBELIX Agency for clinics, dental practices, salons, barbers, coaches and service centers. It runs today at dorakeg.com and serves Egypt, Saudi Arabia and the UAE.

This is how we approached it: the problem we set out to solve, the technical decisions we made and why, and what you can take from it if you are planning a SaaS product of your own.

The problem: bookings still live on WhatsApp and the phone

Most small clinics and salons in Egypt and the Gulf take bookings over WhatsApp or by phone, then write them in a notebook or a spreadsheet. The result is predictable: double bookings, customers who forget their appointment, owners who can't see who on the team works when, or how much the month brought in.

Global tools exist, but most are English-only, priced in dollars, and not built around how this market works: cash or bank transfer payments, and customers who want to book from their phone in a minute without creating an account.

The solution: a booking page per business, and a dashboard for the owner

We split the product into three clear parts:

  1. A public booking page for every business, at a link like dorakeg.com/en/business-name. The customer picks a service, a staff member and an open slot, then confirms with their mobile number.
  2. A dashboard for the owner and their team: calendar, bookings, services, team, customers, reports and accounts.
  3. An admin console for the OBELIX team: businesses, subscriptions, markets, revenue and support.

Sign-up is self-service: the owner registers with their mobile number, goes through a setup wizard that prepares the business in minutes, and gets a free trial without a card.

Technical decisions and why we made them

  • Next.js App Router with TypeScript: booking pages and the blog render on the server, so they load fast and index well. The interactive dashboard lives in the same codebase.
  • Prisma with MySQL: every record is scoped to its business (multi-tenant), and no business can see another's data.
  • Arabic first: Arabic is the default, right-to-left language, and English is a full version rather than a quick translation. Every URL has its twin in the other language, with correct hreflang.
  • Mobile number login (OTP): that is what customers and owners here are used to, with hashed sessions and two-factor authentication (TOTP) for the admin console.
  • An installable app without an app store (PWA): owners can install the dashboard on their phone like an app.
  • Scheduled jobs on the server: a cron every minute keeps booking and subscription states up to date.

Speed and user experience

We set a clear target from day one: the platform and blog pages should score close to 100 on mobile PageSpeed. So:

  • Fonts are served from our own domain and cached for a year, instead of loading from Google Fonts.
  • Images are WebP in several sizes (srcset), so a phone only downloads the small one.
  • A light mobile menu that works with the keyboard and closes with Esc.
  • Color contrast above WCAG AA, so text stays easy to read.

Quality before release

Every change goes through type checks (TypeScript), ESLint, more than 100 automated tests and a full production build before it ships. Deploys run from the main branch, with a preview build for every change before it is merged.

What we learned

  • Start with the market, not the technology. Payment habits, language and phone-number login mattered more than any single feature.
  • SEO is part of the product. The blog, bilingual URLs and speed were built from day one, not after launch.
  • Design multi-tenancy from the start. Isolating each business's data is far easier as part of the first design than as a retrofit.

Want to build a product like this?

Dorak is one of the products we build and run ourselves, alongside Tajrova and Wasilo. If you have an idea for a booking system, a SaaS platform or an internal system for your company, talk to us and we will think it through with you.

Try Dorak yourself: dorakeg.com

Visit Dorak ↗

READY TO GROW?

Apply this thinking to your business

Tell us what you want to achieve. We will shape the right next step together
Start a conversation ↗
Book a call