A learning platform your
institution actually owns
Cairn runs courses, assessment and reporting for 400,000 learners across 90 institutions. Self-host the whole thing, or let us operate it in your region. No per-seat surprises, no data held hostage.
Four roles, and a permission model you can explain to a committee
Most LMS trouble is really permission trouble — the wrong person can edit a published grade, or the right person cannot see their own cohort. Cairn ships four roles out of the box, and every one of them is a starting point you can fork.
Learner
Sees enrolled courses, their own submissions and their own grades. Nothing else, ever.
Instructor
Full control inside their own courses, including marking, extensions and re-opening a closed submission.
Programme lead
Reads and marks across every course in their programme, and can override a released grade with a recorded reason.
Administrator
Manages enrolment, integrations and retention. Cannot silently edit a grade — every override is logged.
| Capability | Learner | Instructor | Programme lead | Administrator |
|---|---|---|---|---|
| Courses and content | ||||
| View enrolled course content | Full access | Full access | Full access | Full access |
| Create and publish a course own courses | No access | Own courses only | Full access | Full access |
| Import a SCORM or LTI package | No access | Own courses only | Full access | Full access |
| Assessment | ||||
| Submit an assignment | Full access | No access | No access | No access |
| Mark and release grades | No access | Own courses only | Full access | No access |
| Grant an extension | No access | Own courses only | Full access | Full access |
| Override a released grade logged, with reason | No access | No access | Own courses only | No access |
| People and data | ||||
| See another learner's grades | No access | Own courses only | Full access | Full access |
| Enrol and unenrol learners | No access | No access | Own courses only | Full access |
| Export a full data extract | No access | No access | No access | Full access |
| Delete a learner record two-person approval | No access | No access | No access | Full access |
Roles are definitions in a config file, not hard-coded classes. Institutions that need a fifth role — external examiner, placement mentor, quality reviewer — write one and version it alongside everything else.
A gradebook that shows you who is in trouble
Weighted columns, visible marking status, and a final grade you can defend at an appeal because every component is on the same screen.
| Learner | LAB-1 15% · /100 | LAB-2 15% · /100 | QUIZ 10% · /100 | MID 20% · /100 | PROJ 20% · /100 | EXAM 20% · /100 | Final |
|---|---|---|---|---|---|---|---|
| Ines Halvorsen Group A | 88 | 91 | 84 | 79 | 93 | 87 | 87.0 · Distinction |
| Tomasz Wierzbicki Group A | 74 | 68 | 92 | 71 | 80 | 76 | 75.9 · Merit |
| Amara Boateng Group B | 95 | 89 | 88 | 90 | 91 | 94 | 91.4 · Distinction |
| Callum Reid Group B | 61 | 47 | 70 | 55 | 66 | 58 | 59.0 · Pass |
| Priya Raghavan Group C | 82 | 78 | 81 | 84 | 88 | 80 | 82.5 · Merit |
| Dorian Ferreira Group C | 42 | 38 | 55 | 44 | 61 | 41 | 46.7 · At risk |
| Hana Yoshida Group C | 79 | 85 | 90 | — | 87 | 83 | 67.6 · Incomplete |
Scroll the table sideways for the remaining assessments →
- Distinction from 85, merit from 70, pass from 50. Any row with a component still outstanding stays Incomplete whatever the mean says.
- A missing submission counts as zero in the weighted mean and shows as an em dash, never as a blank cell.
- Learners see only their own row, and see it exactly as their instructor does.
The list your procurement team is going to ask for
Every claim below is either certified by the standards body, implemented and tested against a reference suite, or honestly marked as partial. We would rather lose a tender than be vague in one.
Content and activity
Bringing in material you already own, and getting it out again if you leave.
- SCORM 1.2 Sharable Content Object Reference ModelCertified
Import, launch, sequencing and completion reporting. Legacy packages from 2004-era authoring tools still run unmodified.
- SCORM 2004 4th editionCertified
Full sequencing and navigation, including rollup rules that most implementations quietly skip.
- xAPI Experience API 1.0.3Supported
Built-in Learning Record Store, or point statements at your own. Offline statements queue and replay.
- cmi5 xAPI profile for the LMSPartial
Launch and session tracking work. The full "moveOn" state machine is behind a feature flag while we finish conformance testing.
- QTI 3.0 Question and Test InteroperabilitySupported
Import and export of item banks, including composite and adaptive items.
Roster and identity
Nobody should be typing a class list into a second system.
- LTI 1.3 Learning Tools InteroperabilityCertified
Platform and tool roles, deep linking, and Assignment and Grade Services so external tools write straight into the gradebook.
- OneRoster 1.2 Roster and gradebook exchangeSupported
REST and CSV. Nightly sync from your SIS, with a dry-run diff before anything is written.
- SAML 2.0 Single sign-onCertified
Works with Shibboleth, ADFS, Entra ID and the national federations. Multi-IdP on a single tenant.
- OIDC OpenID ConnectCertified
Authorisation code flow with PKCE. Group and affiliation claims map straight to Cairn roles.
- SCIM 2.0 ProvisioningSupported
Create, update and deprovision accounts from your identity provider, including the leaver process.
Accessibility and data
The obligations that outlive whoever signed the contract.
- WCAG 2.2 Level AASupported
Audited annually by an external firm. The report and the open defect list are both public.
- EN 301 549 European accessibility requirementSupported
Accessibility statement generated per tenant, with the outstanding items named rather than summarised.
- GDPR Data protectionSupported
Data processing agreement, EU and UK hosting regions, and configurable retention with a real deletion job.
- VPAT 2.5 Accessibility conformance reportOn the roadmap
The current report covers the 2.4 revision. The 2.5 rewrite lands with the next release.
If a standard matters to your tender and it is not on this list, ask. We will tell you plainly whether it is unbuilt, half-built, or something we have decided not to do.
Coming from Moodle, Canvas or Blackboard
Two thirds of the institutions running Cairn moved from something else. The honest version is that content moves well, quizzes move mostly, and anything built with a vendor's proprietary page builder gets rebuilt.
What comes across
| Item | Moodle | Canvas | Blackboard |
|---|---|---|---|
| Course structure and files | Automatic | Automatic | Automatic |
| Assignments and due dates | Automatic | Automatic | Mapped |
| Question banks | Automatic | Mapped | Mapped |
| Historical grades | Mapped | Mapped | Mapped |
| Rubrics | Mapped | Automatic | Rebuild |
| Discussion history | Mapped | Mapped | Rebuild |
| Proprietary page-builder content | Rebuild | Rebuild | Rebuild |
| Third-party tool links | Automatic | Automatic | Automatic |
"Automatic" means the importer handles it with no human decision. "Mapped" means we translate it and someone signs off the result. "Rebuild" means we will help, but it is new work — plan the hours.
How a migration runs
- Stage 1 1 week
Sample import
You send three real courses — a simple one, an awkward one, and the one everybody complains about. We import them and show you exactly what broke.
Us, with one of your instructors
- Stage 2 2–3 weeks
Roster and sign-on
Identity provider, SIS sync and role mapping, run in parallel with your existing system so nothing depends on it yet.
Your IT team, our engineer on call
- Stage 3 2–4 weeks
Bulk import and sign-off
Everything moves. Each programme lead reviews their own courses against a checklist and signs, or tells us what is wrong.
Your programme leads
- Stage 4 1 weekend
Cutover
Read-only freeze on the old system, final delta import, DNS change. The old system stays readable for a full academic year.
Us, on a call with your team
Median time from first sample import to cutover across the last twenty migrations was eleven weeks. The longest was nine months, and it was a merger, not a migration.
Priced per learner, per year, and that is the whole formula
No modules to unlock, no separate charge for the API, no per-integration fee. Self-hosting is free forever because the licence says so, not because we are being generous.
Self-hosted
Run it yourself. Same code, same features, no licence key.
AGPL-3.0. No licence key, no feature flags, no call to us required.
- Every feature, no feature flags
- Community forum and public issue tracker
- Docs, reference deployment and Helm chart
- Security advisories on the public list
- Named support contact
- Migration service
Operated
We run it in your region, you keep the exit door open.
Billed annually on distinct learners who logged in at least once. Falls if your numbers fall.
- Everything in Self-hosted
- EU, UK or Canadian hosting region
- 99.9% uptime commitment, credited
- Named support contact, 4-hour response
- Quarterly upgrade, scheduled with you
- Full data extract on request, any time
Consortium
For groups buying together, and for anyone over 20,000 learners.
A fixed annual fee, agreed once and held for the term of the agreement.
- Everything in Operated
- Shared identity across member institutions
- Migration service included
- Two named engineers, one-hour response
- A seat on the roadmap council
- Annual on-site review
What institutions ask before signing
The awkward ones included. If yours is not here, ask it on the contact page and we will answer in writing.
You run one command and get a tarball — courses, submissions, grades, discussion history, files and the audit log, in documented open formats. Operated customers can trigger it themselves from the admin console at any time, without asking us and without a notice period. We do not consider your data to be leverage.
Yes, and you can check. There is no enterprise fork, no feature flags gated on a licence key, and no "open core" module we hold back. What you pay for on the Operated plan is that we run it, patch it and answer the phone — not access to features.
We count distinct learners with at least one login in the billing year, measured at year end. A learner who registers and never logs in is not counted. A learner enrolled on four courses is counted once. If your number falls, so does the invoice.
That is the normal way to start, and LTI 1.3 makes it work properly — Cairn can sit inside your existing platform as a tool, or host tools from it, so a single department can pilot without the registry noticing anything changed.
Cairn is built by a 34-person cooperative with no outside investors. The code is AGPL-3.0 and the trademark is held by a foundation with institutional trustees, so an acquisition could not close the source or relicense it. That is the point of the structure.
The authoring tools. If your instructors are used to a drag-and-drop page builder they will find ours plain, and we have deliberately not built a proprietary one because it is the single hardest thing to migrate away from. Most institutions author in something standards-based and import it. Some find that a fair trade and some do not.
Bring us your three worst courses
The awkward one, the enormous one, and the one nobody can maintain. We will import them and show you honestly what survived.