Media & content
Video that is yours, wherever it lives
Academics & Content
Programme, course, module, unit, lesson — versioned, approved before publishing, and restorable with a diff you can read.
course · 38 API routes
Course → module → unit → lesson, each lesson holding one primary item.
Publish snapshots a version. Compare two and read what changed.
An author submits; a reviewer decides. Both acts are audited.
Clone a course for the next term without copying its enrolments.
The institute’s own taxonomy, not ours.
Markdown source, rendered by the same safe-subset renderer as the public site.
How it actually works
Restoring a version rebuilds a course’s lessons from the stored snapshot rather than patching the live one. That is right, and it has a sharp edge: any field the snapshot omits is erased on restore. When written lesson bodies were added, carrying them through publish → restore → diff was the work, not adding the column.
A sample. Each is a real key in the catalogue, described for a school administrator rather than an engineer.
course.course.viewcourse.course.publishcourse.version.restorecourse.category.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.
Video that is yours, wherever it lives
Drafts, never decisions
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.