Skip to content
Cairn
Open source · AGPL-3.0

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.

90
Institutions
400
Thousand learners
12
Years in service
99
Percent uptime
Students working in a university library
0
Institutions running Cairn
0
Thousand active learners
0
Countries
0
Percent uptime, rolling year
Roles

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.

Default

Learner

Sees enrolled courses, their own submissions and their own grades. Nothing else, ever.

Assigned per course

Instructor

Full control inside their own courses, including marking, extensions and re-opening a closed submission.

Assigned per programme

Programme lead

Reads and marks across every course in their programme, and can override a released grade with a recorded reason.

Institution-wide

Administrator

Manages enrolment, integrations and retention. Cannot silently edit a grade — every override is logged.

What each role can do in Cairn
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
Full access Scoped to their own courses Not available

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.

Assessment

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.

BSc Environmental Science · Hydrology II
Cohort 2026-A · 6 assessments · weighted mean
7 learners Weighted mean
Gradebook for BSc Environmental Science · Hydrology II, Cohort 2026-A · 6 assessments · weighted mean
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.
Interoperability

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 Model

    Import, launch, sequencing and completion reporting. Legacy packages from 2004-era authoring tools still run unmodified.

    Certified
  • SCORM 2004
    4th edition

    Full sequencing and navigation, including rollup rules that most implementations quietly skip.

    Certified
  • xAPI
    Experience API 1.0.3

    Built-in Learning Record Store, or point statements at your own. Offline statements queue and replay.

    Supported
  • cmi5
    xAPI profile for the LMS

    Launch and session tracking work. The full "moveOn" state machine is behind a feature flag while we finish conformance testing.

    Partial
  • QTI 3.0
    Question and Test Interoperability

    Import and export of item banks, including composite and adaptive items.

    Supported

Roster and identity

Nobody should be typing a class list into a second system.

  • LTI 1.3
    Learning Tools Interoperability

    Platform and tool roles, deep linking, and Assignment and Grade Services so external tools write straight into the gradebook.

    Certified
  • OneRoster 1.2
    Roster and gradebook exchange

    REST and CSV. Nightly sync from your SIS, with a dry-run diff before anything is written.

    Supported
  • SAML 2.0
    Single sign-on

    Works with Shibboleth, ADFS, Entra ID and the national federations. Multi-IdP on a single tenant.

    Certified
  • OIDC
    OpenID Connect

    Authorisation code flow with PKCE. Group and affiliation claims map straight to Cairn roles.

    Certified
  • SCIM 2.0
    Provisioning

    Create, update and deprovision accounts from your identity provider, including the leaver process.

    Supported

Accessibility and data

The obligations that outlive whoever signed the contract.

  • WCAG 2.2
    Level AA

    Audited annually by an external firm. The report and the open defect list are both public.

    Supported
  • EN 301 549
    European accessibility requirement

    Accessibility statement generated per tenant, with the outstanding items named rather than summarised.

    Supported
  • GDPR
    Data protection

    Data processing agreement, EU and UK hosting regions, and configurable retention with a real deletion job.

    Supported
  • VPAT 2.5
    Accessibility conformance report

    The current report covers the 2.4 revision. The 2.5 rewrite lands with the next release.

    On the roadmap

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.

Switching

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

  1. 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

  2. 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

  3. 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

  4. 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.

Pricing

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.

Free forever

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
Most chosen

Operated

We run it in your region, you keep the exit door open.

€3.40 per learner / year

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.

Talk to us

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
Questions

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.

Pricing Book a walkthrough