Discourse as an LMS / Discourse integration with an LMS

Continuing the discussion from Customized Discourse Help Needed (requests below):

Hi Jay,
Like you I am looking into using Discourse as an LMS or integrating it with an LMS. I find most LMSes too be too bloated with features, and need something a lot more flexible and user-driven. I’m curious: what were the plugins you wrote? Or maybe I should ask: what plugins would you like to create if you had unlimited resources that would make Discourse into a better LMS-like tool?


Hi, @trudat.

I have a couple course syllabi online here and here.

I didn’t write any plugins (except for a DOI resolver that is now broken; one day I’ll find the hour it’ll take to figure it out again). What I do have is a handful of scripts that make API calls to do things like create badges that are triggered when someone creates a topic with a particular tag in a particular category and then another badge when that topic gets liked by a teacher and another when it gets a certain number by peers.

Another script will read a ZIP file produced by Sakai, unzip it, see which badge the student got, enter a grade into the grades file, and then zip it all back up to upload back to Sakai.

What would I do with unlimited resources? I’d need to know more about who’d be using it and why. I used openEdX a couple years back while I was working at Stanford, and even with near-unlimited resources, the group I was working with couldn’t deal with it.

I installed a Discourse instance for a friend who was teaching a graduate course, and for them, it worked pretty well. If someone were to use Discourse for teaching on a larger scale than a course or two in an instance, you’d need some things like:

  • a plugin to create a category and sub-categories for a course and assign appropriate permissions
  • means to hook Discourse to the in-place LMS, or, perhaps better, whatever system deals with grades

While I think that the argument that discussion is the most important part of online teaching and that most LMSs have really horrible discussion platforms makes a lot of sense, but there’s a fairly strong hegemony toward making things like quizzes and private assignments being the most important part of teaching. I once wrote a conference proposal about that. If you’re interested, I can send you a copy.

I’ve since left my academic job and am working on making a living off of Discourse. If you’re serious about unlimited resources, well, let’s talk.



This makes sense; a working LMS could be built from existing discourse features with new UI labels slapped on. Ex: A plugin that provides a new kind of topic, it could be called ‘class assignment’. When it’s created, you choose a user group as the assignees. There could be a few pedagogical models to choose from:

  • All students are required to reply once; until they do the topic is highlighted in the list and inside it displays a teacher-provided prompt.
  • Complete a poll(s); leverages polls feature.
  • Write a new topic; leverages topic splitting feature.
  • Create a collection of new badges, and integrate those.
  • Integrate the correct answer plugin somehow.

It would be helpful to then clone the admin>groups panel and redo it as a class>student assignment panel, with basically the same features as now but with a new layout and a preset security policies.

I think a OneBox implementation on a given LMS, e.g. moodle or edx, would be the simplest way to approach this.

I think a lot of people would find those scripts useful. Would be awesome if you made a gist of them, or shared a few in this thread.

I don’t actually have funds for contracts but just curious to know what ideas you’ve had over the years that were never pursued for whatever reason. Cheers.


If I thought that, I’d make them available. The badge script is potentially useful, but right now the custom badge feature is turned off by default (easy enough to turn it back on, though, and the script would help insure that you didn’t botch the SQL). Last I looked, Sakai had about a 5% market share, and few of its original developers use it anymore. Then from that small set, you find the people who are willing to use a non-sanctioned solution with no support from anyone at their university, and it becomes a pretty small set. It seems fairly improbable that “a lot” of people. :slight_smile:

I’ve posted about them a couple times here. When someone offers enough karma or cash, I’ll take the time to make them useful to others. The badge creator is pretty close, actually. Oh, what do you know? Apparently at some point in my past I thought that they might be useful to others. Judging from the dates, sakai-grade is probably not ready for primetime, but discourseBadgeCreator probably works.




Regardless of Sakai (which I had never heard of) these scripts are good starting point for someone trying to implement community-oriented features through scripting and API calls.
Thanks for sharing.


Hi, since this discussion took place a year ago, does anyone currently use Discourse as their LMS?

If so, what’s working? What’s not? How have you supplemented Discourse?

We’re considering it ourselves - proof of concept and good ideas from others are appreciated!

I’ve left the academy, but I think the system that I was using would still work pretty well.


So there are quite nice wordpress ways to create an LMS: Welcome to nginx!

But they are all quite rigid. I think Discourse as an LMS might be a better idea, is there any new development?

In terms of what we need, I am thinking:

  • Advanced search, which we have already but we would need to make it more prominent in the LMS: Search results for '' - Discourse Meta
  • A nicer way to display grouped lessons (a course)
  • A nicer way to display grouped courses (a course category)

So maybe what we need is a template/theme rather than a full fledged plugin? We could have the theme to display in a special way all threads with a certain tag (course or lesson). Also, we would need to make the advanced search place a bit more LMS looking.


Hello, I’m trying to build a training course for a mid-size corporation using discourse. I’ve already built a training site using google’s ai chatbot with discourse through discobot here.

I intend to use h5p, another great open source project https://h5p.org/, but need a small, simple plugin that captures the data that H5P content emits (which is in the form of xAPI statements)

I need to store quiz results etc from students / trainees , there is some docs here
H5P and xAPI | H5P [1]
Analyzing results and answers | H5P [2]

Would anyone be willing to help? My company would be willing to pay for coding time.

Also, I need the ability to track progress, do grading, and give certificates, the last of which I know is already a functionality in discourse, but I need to give them for performance on quizzes etc.

Any discourse coders out there willing to help in this project?

1 Like

I’m sure that there are! Post in #marketplace. You’ll need $500 to $2000 depending on the scope.

1 Like

Will do pfaffman! I’m actually going to use a part of your format in the training, thanks for the example! Would you yourself be interested in helping with the project?


Jay: I would be interested in that conference proposal if you could send it to me. Thanks.

Sorry, @Jud. . . . wait! I found it. Not sure how useful it’ll be.

Email support@literatecomputing.com or PM me at https://support.literatecomputing.com/ and I’ll get it to you.


We want to spend some time and resources to build custom themes or plugins to use Discourse as LMS. I have some student interns this summer, and want to give the following challenges to them:

  1. A theme for Categories and sub-categories to appear as e.g. as Modules and Units
  2. A plugin to create new rules leading to awarding new badges
  3. Static sequencing of posts within a Category/Sub-Category
  4. A way of defining pre-requisite topics (maybe using Graphviz plugin) to show at the beginning of each topic, and a roadmap to show where to go next.
  5. Pulling H5P data to show performance to identify gaps in learning (this may need SSO integration with the Wordpress site running the h5p plugin)
  6. Create a downloadable certificate e.g. a PDF of granted badges as a certificate.

The idea is not to deviate and distract participants from civilized discourse as a means of learning/helping students to learn, but to deviate and distract all those who use pathetic LMS to use discourse instead.

We will, of course, be using a public git repo and the outcomes will be available to the Discourse community.

If you have more ideas that are important to get this rolling or ideas of tweaking existing features of Discourse get them done, please post your ideas. If not this summer, at a later stage we will be happy to work towards this goal.


I’m a fan of this idea, and as you can see from this topic, I am here because I once used Discourse as an LMS (but it’s been a long while!).

You can just change this in admin -> customize -> text content

This doesn’t need a plugin, just enable badges as described in Badge SQL can no longer be edited by default. Developing the SQL for them is a good idea, though.

At the risk of being pedantic, I think you mean “topics”.

I always look for the no-plugin solution, which may be inappropriate here, but how is this different from just adding these links to the beginning/end of the topic post?


Thanks @pfaffman for your encouraging comments.

Yes, it is ‘topics’ not ‘posts’.

Want this as a plugin because this data can be used to build a navigation graph e.g. like in expii.com.

I will explore Knowledge Base Plugin by @angus to see if topics are sequenced there.


Hi guys, did this ever go anywhere? Its now end of 2021, and it appears this request may have stalled?

1 Like