Live classes & attendance
The class, and the register that reconciles to it
Delivery & Engagement
The player, progress, notes and questions — including progress captured with no signal and replayed in order when it returns.
learn · 50 API routes
The most-used feature in any LMS, and it works on a phone.
Against the lesson, with a moderation queue for staff.
A learner sees what they may enrol in, not everything.
Queued on the device, replayed in order, idempotently, last write wins.
A PWA: it goes on a home screen without an app store.
How it actually works
Progress events are queued in IndexedDB in their original sequence and replayed through one idempotent endpoint. Out-of-order replay would let a stale “25% watched” overwrite a later “complete”; a non-idempotent one would double-count a retry. Neither is theoretical on a train through a tunnel.
A sample. Each is a real key in the catalogue, described for a school administrator rather than an engineer.
learn.course.accesslearn.progress.viewlearn.qa.moderatelearn.enrollment.manageThe shipped role templates that hold it by default. Each is a copy you own and can edit — nothing in the code reads a role's name.
Naming these here is cheaper for both of us than discovering them in week six of a pilot.
Naming these is cheaper for both of us than discovering them in week six.
The class, and the register that reconciles to it
Cohorts, timetables and a waitlist that moves
A hundred seats, twenty-five courses and no conversation. If you would rather see it driven by someone who knows it, that takes twenty minutes.
Or open the sandbox (opens in a new tab) and click around first. No form.