moodle_xapicourse_-1024x562 xAPI and CMI5 in Moodle, without the workarounds

There’s a gap that keeps coming up in the xAPI ecosystem.

Organisations that run Moodle have xAPI content, standalone packages, externally hosted courses and maybe some CMI5 titles. And they want that content to send data to an LRS, sync completion, and drive gradebook.

The workarounds people use vary. Some rely on SCORM wrappers. Some use external tool plugins and hope for the best. Some just leave the data in the LRS and never connect it back to the LMS at all.

None of those are good answers.

What I Built

xAPI Course is an open-source Moodle activity module that does the connection properly.

It’s available now on GitHub: https://github.com/juliandavis-xapi/xapicourse

The plugin is a native Moodle activity, not a hack, not a block, not an iframe workaround. Teachers or Admins add it the same way they add any activity. Learners see it as a standard course item.

Under the hood, it handles the things that are usually left to chance.

What It Does

Launch standards supported:

LRS connection:

Completion sync:

Grade sync:

Certificates:

What It Doesn’t Do

It’s not an LRS. It doesn’t store statements.

It connects Moodle to an LRS you already have, or one you set up for the purpose. That’s the right architecture. The LRS owns the data. Moodle owns the enrolment and the gradebook. The plugin is the bridge.

Where It’s At

The plugin works. I’m using it in a real environment.

But before pushing to the Moodle Plugin Directory, I want external eyes on it.

I’m looking for people who:

If that’s you, the repo is at: https://github.com/juliandavis-xapi/xapicourse

The README covers installation, LRS configuration, activity setup, and troubleshooting steps. It should be enough to get started.

Why This Matters

Moodle is still the dominant open-source LMS. It’s in universities, RTOs, corporates, and government agencies across Australia and beyond.

xAPI is now an IEEE standard, adopted into ISO/IEC. It’s not a niche anymore.

The gap between “we have Moodle” and “we have proper xAPI infrastructure” should not require a workaround. This plugin is an attempt to close that gap with something properly built and open.

If you’re working in this space, I’d like to hear from you, either as a tester or with feedback on the approach.

Written with assistance from AI

Leave a Reply

Your email address will not be published. Required fields are marked *


© The Digital Learning Guy | xapi.com.au
ABN 364 4183 4283