Not a brochure site. An application that takes the bookings, holds the diary, issues the paperwork and tells you what you earned — in your language, on your customers' phones.
- apps in production
- 0apps in production
- languages, RTL included
- 0languages, RTL included
- server to rent
- 0server to rent
What's your trade?
Pick one, and the rest of this page talks about nothing but you.
Switch trade whenever you like — everything recomposes.
Not built yet, but the foundation is the same. Tell us and your trade moves to the front.
Live
Dental practice
The patient books alone. You open the diary and it is all there.
A trilingual appointment app for a dental practice that works out genuinely free slots from your hours, your closures and the length of each treatment. A scale-and-polish and an implant do not offer the same times — because they do not take the same time.
- languages, Arabic RTL included
- 3languages, Arabic RTL included
- for a patient to book
- 60sfor a patient to book
- double bookings possible
- 0double bookings possible
Morning
Afternoon
Real screens from the delivered application.
Slots computed, never stored
The day's hours, minus booked appointments, minus closures. Recomputed on every view, so the diary cannot lie.
Re-checked on confirm
Two patients confirming the same time in the same second: one gets through, the other sees “that slot was just taken”. Checked server-side.
One practitioner or a whole team
The same software serves a solo practice and a group practice. With no practitioner chosen, everyone's slots merge and the chair is assigned at booking time.
Closures beat opening hours
A closed day offers nothing, even if the template week says “open”. You close the whole practice or a single practitioner.
Printable fee note
On every appointment, a clean document on the practice's letterhead, ready to print or save as PDF.
What you actually collected
Revenue booked, revenue expected, average basket, no-show rate and the most profitable treatments. Only completed appointments count: work that did not happen was not paid for.
- 1
They pick a date
The list keeps only the treatments genuinely available that day.
- 2
They pick a treatment
Duration and price shown. The duration decides the slot length.
- 3
They pick their time
A 14-day strip, full days struck through, times split morning / afternoon. If it is all full, a button offers the next free slot.
- 4
They leave their details
Name and phone required; email, insurance and reason optional.
- 5
They confirm on WhatsApp
An RDV-XXXXXX code, emails to patient and practice, then a button that opens the chat with the message already written. No online payment.
Diary
Day view, one column per practitioner, appointments placed on the hour.
Appointments
Filterable list, quick actions ✓ / ✕ / Completed / No-show.
Treatments
Catalogue: duration, price, photos, hide / show.
Practitioners
Profiles, photo, diary colour, active / inactive.
Opening hours
A template week, several ranges per day, copied to other practitioners. A lunch break is the absence of a range, not a checkbox.
Statistics
Revenue booked and expected, average basket, no-show rate, most profitable treatments.
The treatment a patient books says something about their health. That alone puts your practice under a stricter regime than a salon or an agency — and it is the first thing an inspection looks at.
Art. 1
A treatment name is sensitive data
"Scale and polish", "extraction", "root canal": the name alone is health data. Neither the diary nor the statistics take it out of the practice, and the confirmation email carries the date and time, never the treatment.
CNDP
Prior authorisation, not a declaration
Sensitive data is on the CNDP's list of processings needing prior authorisation. "Prior" is literal: it has to be obtained before you open, not regularised afterwards. We hand you the file filled in, section by section; the filing stays yours.
Art. 43-44
Your data stays in Europe
This practice's database is hosted in France, in a territory the CNDP recognises as offering an adequate level of protection. A database cannot be moved afterwards: the location is chosen when it is created. This one was created in Europe deliberately.
Art. 5
The patient is told before typing their name
The notice sits above the confirm button, not in a footer, and it says the treatment is health data. The box is never pre-ticked and the server refuses the appointment without it. The date of consent and the exact wording shown are recorded on the appointment.
Art. 7-9
Erasure that spares the treatment record
One button clears telephone, email, address, insurer and reason across all of a patient's appointments. The name, date, treatment and fee stay: the practitioner is required to keep the record. The app tells you so instead of promising a full deletion no practice is allowed to perform.
These duties bind the practice, not the software vendor. This page describes what the app does and the file we prepare; it is not a legal opinion, and how long the treatment record must be kept is a matter for your professional body, to be confirmed before filing.
modDentistsMultiple practitionersmodPractitionerChoicePractitioner choicemodPricesPublic pricesmodInvoicesFee notesmodRevenueStatisticsmodEmailsAutomatic emails
This is what you get.
Real screens from software in production, with invented data. Nothing here was redrawn for this page.

A build price, then a subscription.
The first amount covers design and launch. The second covers hosting, backups, fixes and support. Nothing else gets added.
- Public site + back-office, on your own domain
- Trilingual French / Arabic / English, Arabic RTL included
- Built to your identity: logo, colours, wording
- WhatsApp confirmation, message pre-written
- Cloudflare hosting, HTTPS certificate and backups
- Handover: one training session on delivery
You picked a trade — here is the plan that answers it.
Essential
One independent, one activity, one diary.
4 900MAD
on delivery
+249MAD · per month
2 490 MAD or per year, two months free
- Online booking and service catalogue
- Opening hours, closures and holidays
- Automatic emails to the customer and to you
- Full back-office: diary, catalogue, bookings
Pro
A team, paperwork to issue, numbers to follow.
6 900MAD
on delivery
+349MAD · per month
3 490 MAD or per year, two months free
- Everything in Essential, plus:
- Several staff members, one diary column each
- Printable documents: invoice, contract, receipt
- Revenue, average basket and no-show rate
- Promo codes and blackout periods
Bespoke
Several locations, or a need nothing off-the-shelf covers.
On quote
Quoted after a first conversation.
- Everything in Pro, plus:
- Features written for your trade alone
- Several branches under one back-office
- Connection to the tools you already use
- Priority support and a planned roadmap
Prices in dirhams, excluding tax. The domain name (~250 MAD/year) is billed at cost or stays in your name. The subscription is paid monthly or yearly and stops when you decide: the app and your data stay exportable.
Compliant with law 09-08 on delivery day, not six months later.
Collecting a name and a phone number puts your business under law 09-08. With us, the work is done before delivery.
Consent the server checks
The box is never pre-ticked, and the server refuses the booking without it — a box the server ignores is decoration. The date and the exact wording shown are recorded on the row, so you can say later what that particular person agreed to.
The notice where the typing happens, in three languages
Article 5 wants the person informed before they hand anything over. So the text sits above the button, not in a footer, and the full page exists in French, Arabic and English. It carries your business name, address and ICE, read from your settings — never a template's.
Your data stays in Europe
The CNDP recognises the European Union as offering adequate protection, and that is where all our databases are hosted. Because a database's location is fixed when it is created and cannot be changed afterwards, it is a decision to take at the start — not when an inspection raises it.
A session, not a password lying around
Signing in issues a random token that expires by itself and that signing out revokes on the server. Your password never leaves the form, and nothing keeps a readable copy of it — not for you, not for us.
Erase a person without breaking the accounts
A customer asks for their data to be deleted: one button clears their name, telephone and email across every visit. The dates and amounts stay, because the commercial code requires ten years of accounting records. Your figures keep adding up.
The CNDP file, pre-filled
Purposes, data categories, recipients, transfers, retention periods, security measures: every section of the form is written from what your application actually does. You read it over, fill in your identity, and file. We also tell you which of the two regimes applies to you — and for two trades out of four it is prior authorisation, to be obtained before you open.
The filing stays yours: the law names the data controller, and that is your business, not your supplier. What we guarantee is that the application does what the file describes, and that you do not have to write that file yourself. This page is not legal advice.
Four steps, no surprises.
- 01
We listen to your day
An hour understanding how you actually work: who calls, what gets written on paper, what wastes your time. That is the spec.
- 02
We bend the foundation
Bookings, diary, documents and stats already exist. We bend them to your trade and your identity — your colours, your logo, your words.
- 03
You try it for real
A live address, with your real data. You use it for a week, tell us what is off, we fix it before launch.
- 04
We stay behind it
Launch on your domain, then hosting, backups, fixes and small changes. You call, we answer.
A studio that ships products, not mockups.
A Moroccan studio that designs business apps, then runs them with you.
Ask3lach Dev designs and runs business software for independents and small companies in Morocco. Every project starts from the same proven foundation, then bends to one specific trade. That is how we ship fast without shipping generic.
Trilingual, RTL included
French, Arabic and English in one build. Arabic is not a translation laid on top: the whole interface flips, calendars and forms included.
Near-zero hosting
Everything runs on Cloudflare's network, close to your customers. Every one of our production apps fits inside the free tier: no server to rent, no bill that creeps up.
A back-office, not a spreadsheet
Every app ships with its own admin: diary, catalogue, opening hours, printable documents and revenue. You do not need us to run it day to day.
Modules, not forks
Features unlock per module, from a panel only the developer knows about. Your plan changes with no redeploy, and the limits are enforced server-side — not just greyed out on screen.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- Cloudflare Workers
- Cloudflare D1
- Cloudflare R2
- Drizzle ORM
- OpenNext
- Resend
- Playwright
The questions we get asked
How much does an app for a dental practice cost in Morocco?
6 900 dh on delivery, then 349 dh a month. The subscription covers hosting, backups, fixes and support; nothing else gets added.
Is hosting an extra cost?
No. The app runs on Cloudflare's network and fits inside the free tier: no server to rent, no bill that creeps up. The monthly subscription covers hosting, the HTTPS certificate and backups. Only the domain name is extra, around 250 dh a year, billed at cost or kept in your name.
Does the app work in Arabic?
Yes, and not as a translation laid on top. French, Arabic and English ship in the same build, and the whole interface flips in Arabic — calendars, forms and documents included. Your customers pick their own language; your back office stays in French.
What happens if I stop the subscription?
It stops when you decide, with no minimum term. The app and your data stay exportable, and the domain name can be in your own name from day one. You lose neither your customer file nor your address.
Is it compliant with law 09-08 on personal data?
Yes, on delivery day. The consent box is never pre-ticked and the server refuses a booking without it; the notice sits above the button, in three languages, in your business's name; the database is hosted in the European Union, which the CNDP recognises as adequate; and one button erases a customer's personal data without breaking your accounts. The CNDP declaration file is handed over pre-filled, section by section.
Tell us what you do.
Describe your trade in two lines. We answer with what the app would do for you, a timeline and a price — no sales meeting.