Yalla Arabi
يلا عربي
An Arabic language platform for the three secondary years, carrying a brand of its own rather than the teacher’s name. It runs on our education platform, and it is the deployment where the content protection matters most: the recorded lesson is the entire product, so most of the work sits between the student and their screen recorder.


Where the lesson is the whole business, and the lesson is a file.
A recorded lesson is a file, and files want to be copied.
A live class ends when it ends. A recorded course does not — it sits on a phone, and one screen recording forwarded into a group chat can serve a hundred students who never paid. For a teacher whose entire year is in that library, that is not a support ticket; it is the business.
So on this deployment the protection is not a setting somebody remembers to switch on. It is layered: the pages that carry content refuse to be captured, the account is tied to specific devices on the server, the app declines to run on a device that has been opened up, and signing out takes the cached content with it. None of it is unbreakable, and we do not claim it is. What it does is raise the cost of casual sharing past the point where it is worth doing.
Six places a leak was closed.
Each of these is a separate route out of the app, and each one had to be shut on its own terms.
The screen refuses the shot
Screenshot and screen recording are blocked on the pages that actually carry content, rather than across the whole app where it would only annoy.
And the app switcher too
Android blurs the task-switcher thumbnail natively; iOS has no such API, so the app frosts its own interface the moment it goes to the background.
Mirroring counts as a camera
On iOS, AirPlay and any external display are treated as a capture attempt and the protected content is pulled off the screen.
Not on an opened device
Release builds refuse to run on a rooted or jailbroken phone or in an emulator — the environments where every other protection here can be lifted.
One account, named devices
The account binds to its devices in slots on the server — one for the student, one for a guardian — so a login cannot quietly spread across a class.
Logging out means gone
Deleting the token is not enough — the cached lessons and downloaded artifacts go with it, so a shared handset does not hand over the last account’s course.
Watch, drill, sit, and be recorded.
Arabic is a subject you pass by repetition, so the loop is short on purpose and every pass through it leaves a trace on the student’s record.
The lesson
Filed by year, month and unit, resuming exactly where the student stopped.
The drill
Exercises and summaries attached to the lesson they belong to, not to a separate folder.
The test
It marks itself and opens into a review whose timing the teacher controls.
The record
Attendance, marks and how much of each lesson was watched — the same record a guardian can open.
A product with a name, not a teacher with a website.
Every other deployment on this platform carries the teacher’s own name. This one is called Yalla Arabi, and that was the client’s decision: a name a student can recommend to another student without it sounding like an advert for a person. We built the identity around it and published the Android app under it.
Underneath, it is the same platform as the rest — the same Flutter app, the same Laravel API, the same admin panel. What changes per deployment is the application id, the branding file the app reads its identity from, its own Firebase project for notifications, and its own listing on Google Play. That is why a new teacher goes live in days: the product already exists, and what is being configured is which one of them it belongs to.
More work
Have a project like this one?
Tell us what you're building and we'll come back with how, what it takes, and how long.
Start Your Project

