Best Self-Hosted LMS in 2026: Open Source and Commercial Options
Compare the best self-hosted LMS platforms for 2026, including Moodle, Open edX, Canvas, Chamilo and ILIAS, with requirements, operational burden and…
Open edX engineers - taking new projects
Python and Django engineers who run Open edX in production. We deploy and upgrade with Tutor, theme the learner experience, build XBlocks and plugins, and connect Open edX to the rest of your stack without forking the platform.
Get a free Open edX estimate
Takes 2 minutes. A senior engineer replies - not a salesperson.
Common Open edX problems we fix
Open edX can serve very large audiences, but it is a complex platform. Most teams that call us are stuck on an old release or fighting a fork.
We plan the upgrade path through each named release, test your plugins, themes and XBlocks against it on staging, and migrate data with a tested rollback.
We identify every change you made, move what we can into plugins, Open edX Events and Filters handlers or configuration, and bring you back to upstream releases.
Branded micro-frontends (MFEs) using the supported theming and plugin slots, so your design survives the next release.
Custom XBlocks for simulations, assessments or embedded tools, with grading and analytics wired in.
Open edX Events consumers and API integrations that keep your CRM, e-commerce and data warehouse in sync automatically.
Tutor on Kubernetes or a right-sized single server, tuned MySQL, MongoDB and Redis, Celery workers and a CDN in front.
What our Open edX developers do
New installations and migrations to Tutor, on a single server or Kubernetes, with backups and monitoring.
Moves through named releases with plugin and theme compatibility checks and a staging rehearsal.
Branded learner and authoring experiences using supported theming and plugin slots.
Custom course components with grading, student state and analytics.
Django plugins, Open edX Events and Filters handlers instead of core changes.
SSO, e-commerce, CRM, LTI 1.3 tools and data pipelines to your warehouse.
Kubernetes, caching, database tuning and Celery worker sizing for launch days.
From a native installation or another LMS into Tutor-based Open edX, or out of Open edX.
Security releases, backups, monitoring and an engineer who knows your platform.
Code-level expertise
The fastest way to fall behind on Open edX is to change edx-platform directly. The supported route is a separate Django plugin that reacts to Open edX Events (or changes behaviour through Filters), installed alongside the platform with Tutor.
This receiver sends every new enrolment to a CRM using the COURSE_ENROLLMENT_CREATED event.
from django.dispatch import receiver
from openedx_events.learning.signals import COURSE_ENROLLMENT_CREATED
from .tasks import push_enrollment_to_crm
@receiver(COURSE_ENROLLMENT_CREATED)
def enrollment_created(signal, sender, enrollment, metadata, **kwargs):
# Keep the receiver tiny: hand the work to Celery.
push_enrollment_to_crm.delay(
email=enrollment.user.pii.email,
username=enrollment.user.pii.username,
course_key=str(enrollment.course.course_key),
mode=enrollment.mode,
)
Skills
Engagement models
Pick the model that fits today and switch when your needs change. Every model includes a senior engineer, code review and a staging site.
Bug fixes, small changes, audits and urgent issues.
from $45/hour
Steady roadmap work and ongoing maintenance.
from 2500/month
Large roadmaps, platform teams and agencies.
from 4500/month
Well-defined features, migrations and new builds.
from 3000 minimum
Every engagement starts with a free technical call and an NDA. Prices exclude applicable taxes.
How it works
2 minutes
Use the short form: platform, what is wrong or what you want built, and how you prefer to work. Two minutes is enough.
30 minutes
A senior engineer reviews your site or requirements, asks the awkward questions early and suggests the simplest approach that will last.
1-3 business days
You get a written plan: fixed price and timeline, or the developer profile and monthly plan for dedicated work. NDA signed before any access.
Weekly demos
We set up staging and version control, ship in small reviewed increments and demo every change before it reaches your live site.
Compare
| Criterion | All-in-One LMS | Freelance marketplace | In-house hire |
|---|---|---|---|
| Engineers who work only on learning platforms | Yes | Partial | Partial |
| One team for WordPress LMS, Moodle, Open edX, Canvas and custom LMS | Yes | No | No |
| Cover when your developer is ill or on leave | Yes | No | Partial |
| Code review and QA before every release | Yes | Varies | Partial |
| NDA and IP assignment in the contract | Yes | Varies | Yes |
| No recruitment, payroll or notice periods | Yes | Yes | No |
| Scale hours up or down month to month | Yes | Partial | No |
| One accountable point of contact | Yes | No | Yes |
A general comparison of how each model usually works. Individual freelancers and in-house teams vary.
Open edX ships a named release roughly every six months. Ulmo arrived early in 2026, Verawood followed mid-year, and Verawood.1 (with bug fixes, security updates and new features across 39 repositories) was announced on 30 July 2026. Each release changes enough of the platform that skipping several makes the eventual upgrade far harder.
Most modern installations run on Tutor, the community-supported Docker-based distribution. If you still run an older native installation, moving to Tutor is usually the first step: it standardises deployment, makes upgrades repeatable and lets you package customizations as Tutor plugins.
Look for Django plugins, Open edX Events and Filters, XBlocks, MFE plugin slots and Tutor plugins. "We will change edx-platform" means you will pay for it on every upgrade.
Ask which named releases they have upgraded with Tutor, how they handle data migrations and what their rollback plan looks like.
Open edX needs Python and Django for the backend, React for MFEs, and operations skills for MySQL, MongoDB, Redis and Celery. A good team covers all three.
Open edX is heavier to run than PHP-based LMSs. A good developer asks about peak learners and course launches before choosing between a single server and Kubernetes.
Not sure Open edX is the right platform? Read our comparison of self-hosted LMS platforms or see our Open edX development services.
Open edX work needs more senior engineers than most LMS projects, so we usually propose a dedicated developer for ongoing work and fixed prices for well-defined projects such as an upgrade or a new XBlock. You get a written estimate after the free technical call.
Yes. We check your plugins, themes and XBlocks against each release you need to pass through, rehearse the upgrade and data migrations on staging, and schedule production with a rollback plan.
Yes. We compare your code with upstream, classify each change, and move what we can into plugins, Events and Filters handlers or configuration. The goal is a platform you can upgrade normally again.
Yes: interactive components, custom assessments with grading, embedded tools and components that report to your analytics. Each XBlock is a separate package installed with Tutor.
Yes. We build a Tutor configuration that matches your current setup, package your customizations as Tutor plugins, migrate the data and switch over with minimal downtime.
Yes, through Open edX Events consumers, REST APIs, SAML or OAuth single sign-on and e-commerce integrations. See our LMS integration services.
It can be, particularly for customer education at scale. Many internal training programs are better served by a lighter platform. We will give you an honest comparison before you invest.
Free estimate
Share your current release, how you deploy (Tutor or native) and what you need. A senior Open edX engineer will reply with questions or a first estimate.
Compare the best self-hosted LMS platforms for 2026, including Moodle, Open edX, Canvas, Chamilo and ILIAS, with requirements, operational burden and…
A practical guide to single sign-on for your LMS: choosing SAML or OpenID Connect, provisioning users with JIT or SCIM, mapping roles and cohorts, an…
How to architect a multi-tenant LMS: instance, shared database and database-per-tenant models, platform options like Moodle Workplace and IOMAD, and…