Abstract
This community proposal aims to establish a global Open edX extensions marketplace. The marketplace will enhance the Open edX platform's visibility by attracting new operators seeking customizable and modular LMS solutions. It will also expand the platform's capabilities and foster community growth
In this proposal, we analyze existing marketplace solutions and identify key features that could serve as prototypes for the Open edX marketplace. We also outline a process for maintaining and supporting the marketplace through community working groups.
Additionally, we evaluate a technical approach for integrating new solutions into the marketplace using Tutor plugins, along with centralized and third-party Tutor Plugin Indexes. Extensions may include but not limited to Python and ReactJS extensions of the platform core, infrastructure extension using Tutor plugins mechanism, Mobile plugins for Open edX mobile apps, xBlocks, integrations with 3rd party systems in the form of Tutor plugin.
The work on this proposal was started as Marketing-wg initiative and can be tracked using this GitHub issue.
Context & Background
According to the core product strategy, the Open edX platform aims to be the leading open-source online learning management system for adult education, growing the community around it, and encouraging more contributions to the platform. To support this strategy, marketing-wg proposes to reimagine and create a centralized directory for Open edX plugins and extensions — Open edX Extensions Marketplace.
The main objectives for this new centralized marketplace are:
Improve the overall user experience and boost platform adoption by
providing the ability for current and potential Open edX operators and developers to explore third-party tools and services available in Open edX community
simplifying the process of integrating plugins, making it easier for operators to build comprehensive educational solutions without significant custom development efforts
standardizing support and documentation approaches for plugins, making it easier for users to find help and resources for plugins integration
Contribute to the development and advancement of the OeX platform by
encourage Open edX community developers to follow pluginization pattern extending Open edX, therefore including more extension points to Open edX platform over time.
creating a centralized place for OeX community developers and OeX providers to share and showcase their solutions, indirectly highlight their services.
Enable data-driven decision making by
providing analytics and insights on plugin usage, helping the Open edX community make informed decisions about future development priorities.
This proposal is inspired by a range of market-leading platforms that offer users the possibility to easily adjust the main solution according to their needs by integrating extensions developed and maintained by platform developers as well as by third parties. Examples of the existing marketplaces include: Shopify, WordPress, Odoo, Atlassian, Google Workspace, Salesforce, and Moodle. In addition, several simpler community plugin sharing options were evaluated - https://backstage.io/plugins/ (https://github.com/backstage/community-plugins/tree/main), https://github.com/apache/superset/wiki/Superset-Third%E2%80%90Party-Plugins-Directory.
The Open edX community has developed and enhanced tools, technologies, and approaches that focus on extending Open edX. By utilizing them, the effort required to establish the Open edX Extensions Marketplace may be significantly lower than it was previously.
Scope & Approach
What existing Open edX solutions that might contribute to the launch of Open edX Extensions Marketplace?
Open edX extensions directory
The existing Open edX extensions directory is the second iteration of the XBlocks Directory, it lists many available extenstions, xBlocks, and plugins to Open edX, with categorization and serach. But it also has a few problems that make it hard to reach the goals set for this initiative.
The lack of detailed descriptions for extensions results in limited SEO capabilities and a poor user experience.
There is no indication as to whether the extension is maintained or which Open edX named releases are supported, resulting in a significant number of extensions being outdated.
There is no information about how to integrate the extension to the Open edX instance.
Direct feedback, ratings, and support options are not available.
Unspecific instructions for community developers on how to publish extensions on the marketplace.
Edly Tutor Plugins & Themes
The list of official Tutor plugins and themes available at https://edly.io/tutor/plugins-and-themes/ providing much better interface, providing detailed descriptions about the plugin, links to the source code and indication of the supported version, solwing much user experience challenges. However, the lack of clarity about publication of tutor plugins from the community developers, no feedback and rating options and focus only on officially supported plugins, sets apart this plugins index from the proposed Extensions Marketplace.
Tutor plugins
Tutor provides an extensible and convienient way to deploy Open edX installations, it is well supported and documented. In addition to that Tutor comes with a plugin system that ease deployment of the Open edX drastically.
Also tutor plugins are convienient way to describe programatically and share Open edX extensions in the community, most of the 3rd-party Tutor plugins follow the naming convention tutor-contrib-*
, and can be searched in GitHub https://github.com/search?q=%22tutor-contrib-%22&type=repositories&s=stars&o=desc&p=1.
Tutor plugins can be discovered using https://docs.tutor.edly.io/reference/indexes.html
Tutor plugins can eventually enable “one-click” installation of the extensions for Open edX operators.
Hooks&Filters framework
Introduced in https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0050-hooks-extension-framework.html this framework received a little adoption before, mostly due to limited number of implemented events and filters. However, now hooks extension framework has enough extension points in edx-platform to support plugin development following Open-Closed principle.
Frontend Plugin Framework
Recently introduced in Redwood Frontend Plugin Framework, provides much needed mechanism to extend MFEs in Open edX via external NPM and React.js modules, or by adding iframe plugins into extension points called plugin slots.
This technology is not fully ready to support the plugin experience integrating it without additional MFE development.
The caveats for using frontend-plugin-framework that were discussed during frontend-wg meeting are:
There is a very little number of plugin slots exist in MFE as of Redwood release.
Operators should configure usage of plugins directly in MFE with JS Env Configuration.
MFE application should be rebuild to install or update plugins.
Even though this limitations doesn’t allow us to create complete e2e solutions without additional configuration and setup, the work on frontend-plugin-framework continues and as soon this issues are solved, it might be much easier for community to create one-click installable “full-package” solutions using Marketplace.
Comparison of the existing marketplace solutions on the market
During preparation of the proposal common marketplace solutions were analyzed to cover all necessary functionality that marketplace should include.
Marketplaces that were included into analysis are: Shopify, WordPress, Odoo, Atlassian, Google Workspace, Salesforce, and Moodle.
In the following image, you can see a matrix comparison of the functionality between marketplaces, as well as categorization of attributes every marketplace entry should include.
Link to the whiteboard with analysis - Analysis Matrix
More details about each marketplace solution with screenshots - Marketplaces screenshots
Prototypes for Open edX Extensions marketplace
Based on the preliminary analysis of the marketplace solutions, figma mockups for the future marketplace UI/UX were prepared. These mockups include all necessary elements that marketplace should have, with mapping general ideas to Open edX context and presenting each marketplace entry as a tutor plugin.
Figma mockups can be found there:https://www.figma.com/design/EtOhGYUsv9E2Sm68oGJcCU/Open-edX-Marketplace?node-id=0-1&t=lJ4fASw8D7T3bE6E-1
What extensions will be available on the marketplace?
Extensions on the marketplace may include but not limited to Python and ReactJS extensions of the platform core, infrastructure extension using Tutor plugins mechanism, Mobile plugins for Open edX mobile apps, xBlocks, integrations with 3rd party systems in the form of Tutor plugin. Additionally, Open edX themes for platform and Paragon design system can be published on the marketplace under separate category themes.
Catalog page mockup
The marketplace catalog should include a search field and filters.
Each entry includes title, description, and a set of additional attributes described below.
It is proposed for the Marketplace catalog page to include the following categories:
Official Plugins
Official xBlocks
3rd-Party Plugins
3rd-Party xBlocks
Themes
Each plugin should have additional attributes for filtering:
Compatible versions - named release from All Open edX releases
Supported Languages
Maintainer / Vendor / Author
Rating / reviews
Other named attributes are considered to be added to enhance user experience, e.g., attr - Solution Type with values Python extension, MFE extension, Mobile extensions, etc., or attr - Domain with values Micro-credentials, Learning, Teaching, etc.
Extension details / overview page
Plugin should be downloadable from the site and/or include View Source button with a direct link to GitHub repository.
Each catalog entry should include all the necessary attributes that are used for the filtering of the content. We propose to use a tabbed layout on the details page, including the following tabs:
Overview - Main information about the plugin, the idea is to either use Readme.md parsed directly from the repository or additional markdown document that can be put into docs directory in the repository.
More details - Include all the extension attributes in the table form
Reviews - Functionality for leaving comments and reviews
Versions - Table view of all available versions for package in relation to named release with View Source and Download buttons
Installation - Detailed instructions on how to install and configure plugin
Installation details
Plugin reviews
Utilizing Tutor Plugins Index to add new extensions to marketplace
TBD
Process for maintaining Open edX Extensions Marketplace
The context diagram for the Open edX Extensions Marketplace includes five stakeholder roles Marketing Working Group, Maintenance Working Group, OeX Community Developers, Entities using OeX, Entities looking for LMS. Although, this list of stakeholders considered comprehensive for the first phases, additional stakeholders as Product-WG can be added with additional purpose as OeX Marketplace is growing.
The selected activities in the OeX Marketplace context are described in the table below
Stakeholder | Activity | Process Description | Outcome |
---|---|---|---|
Marketing Working Group | Develop Marketplace that is available on http://openedx.org | Create and continually enhance the OeX Extension Marketplace, both in terms of technical capabilities and operational procedures. |
|
Maintain Process and operate OeX Extensions Marketplace | The Marketing Working Group will continuously review and and update processes within the Marketplace of Open edX Extensions including moderation extenstions that were reported by users. |
| |
Review extension application | Marketing Working Group review plugins descriptions and visual materials before publishing |
| |
Promote marketplace | The Marketing Working Group undertakes search engine optimization of the marketplace and promotes it through its various channels. |
| |
Collect analytics | The marketing team conducts an analysis of extension popularity, user feedback, and platform visit changes to gain insights into user and market requirements. |
| |
Maintenance Working Group | Maintain official plugins | The maintenance working group updates versions and maintains official plugins so that they correspond to the declared criteria for publishing on marketplace. |
|
OeX Community Developers | Develop extensions | OeX Community Developers constantly develop new extensions for Open edX |
|
Apply to publish extension | OeX Community Developers have a clear guidance how to publish the extensions on Marketplace. After development extensions are applied to be shared on OeX Extension Marketplace |
| |
Maintain extension | OeX Community Developers update their extensions to keep it up to date with new releases of OeX |
| |
Integrate plugins from marketplace | OeX Community Developers incorporate extensions from the Marketplace into their instances |
| |
Leave feedback | OeX Community Developers provide feedback on enhancements or issues of extensions |
| |
Entities using OeX | Discover additional OeX capabilities | Entities using OeX discover further capabilities of OeX LMS available through extensions on OeX Extensions Marketplace |
|
Integrate plugins from marketplace | Entities using OeX incorporate extensions from the Marketplace into their instances |
| |
Use extensions & leave feedback | Entities using OeX provide feedback on enhancements or issues of extensions |
| |
Entities looking for LMS | Discover OeX capabilities | Entities looking for LMS discover further capabilities of OeX LMS available through extensions on OeX Extensions Marketplace and take this into considiration |
|
Open questions
Maintenance cost for keeping marketplace up to date
How to scale the process without losing quality overtime
Milestones
We suggest splitting the implementation for new marketplace into several milestones, assessing results and gathering more feedback in between.
Discovery: Jun 2024 - September 2024
Milestone #1: Marketplace pilot development for official and selected plugins
Milestone #2: Establishing process for using Tutor plugin indexes as the mechanism to discover and include extensions on the marketplace
Milestone #3: Include OeX extension marketplace as part of tutor tooling (Web frontend for Tutor plugin indexes)
Milestone #4: One-click installations from marketplace
Timeline
Milestone #1: Marketplace pilot development for official and selected plugins - Q3 - Q4 2024
Milestone #2: TBD
Future opportunities
Include marketplace into each Tutor-based Open edX installation
Paid extensions
AI recommendation
Authors
Proposal prepared by Glib Glugovskiy and Mykhailo Marshalok