Case study · 10 of 27

Aedah (عائدة): a digital school that works with no network and no teacher

Aedah is named after my daughter. It is a free, offline-first, mother-tongue-first adaptive learning platform for children from pre-literacy through Grade 8, designed to grow with the learner into higher grades. The design…

Role: Founder and sole architectStack: Flutter (one codebase for Android, iOS, Windows, macOS, Linux, web and TV), a pure Dart adaptive-learning engine, a monorepo with the product and architecture specification alongside the codeStatus: The learning engine is built and tested. The Flutter app's learner shell, Learning Map and audio-first activity loop are wired to it and running. The rest of the platform is in progress.
Aedah (عائدة): a digital school that works with no network and no teacher, live site
Google Play listing graphics from the repository (Flutter app)

Context

Aedah is named after my daughter. It is a free, offline-first, mother-tongue-first adaptive learning platform for children from pre-literacy through Grade 8, designed to grow with the learner into higher grades. The design constraint that shaped everything: it has to work for a child with no device of their own, no school, and no literate adult at home. The mascot is a falcon, Iqbal's shaheen, that learns to fly higher as the child does.

The core ideas

How it was built

Engine first. The adaptive core is pure Dart with no dependency on a device, which means it defines the data contracts every platform builds against and can be tested exhaustively on its own. It is complete: thirty-two tests pass, and a demo runs a simulated learner through the system so you can watch mastery estimates and review schedules evolve. Only then did the Flutter app start, and its first slice (the learner shell, the Learning Map and the audio-first activity loop) already runs against the real engine.

The full product and architecture specification is a self-contained HTML site inside the repository, so the design is versioned with the code.

Why the engine is not an LLM

Because the children this is for have no connectivity and no budget, and because reading progress should be explainable to a parent or volunteer. Bayesian Knowledge Tracing and Item Response Theory are auditable; a probability of mastery is a number you can show. That is a design decision, not a limitation.

Evidence

The engine package with its test suite and simulated-learner demo, the specification site, and the running first slice of the Flutter app are all in the repository. This is a different register of work from the commercial projects in this portfolio, and I keep it that way on purpose.

Next step

Have a system like this to build, rescue or scale?

I run technology for several companies at the same time and take on a small number of fractional engagements. The first step is always a scoped audit.