Transform Learning with a Powerful Enterprise LMS

Learn more
LMS Development

LMS development: the complete guide to building a learning platform

How a learning platform gets built, end to end: the configure, extend or build decision, core modules and data model, content standards, architecture, process, team and cost drivers.

Illustration of a blueprint of a learning platform with modules for courses, users, reports and integrations, representing lms development

Disclosure: LMS Advisor is built by the All-in-One LMS team. Where it appears on this page it is marked as our product and described from its public documentation, limitations included.

LMS development is the work of designing, building and maintaining learning management system software. It follows one of three routes: configuring an existing platform, extending an open-source or self-hosted platform with custom code, or building a new platform from scratch. In our experience, many projects described as custom LMS development are really the second route, and picking the right route matters more than any choice of technology.

This guide is for founders, CTOs, product owners and heads of L&D or training who are considering having a learning platform built or heavily customised, and who want to understand the work before they talk to a development team. It is written by engineers who build and extend these platforms, it prescribes no stack, and it says plainly where building is the wrong choice.

It covers the configure, extend or build decision, the data model, the content standards (SCORM, xAPI, cmi5 and LTI 1.3), the architecture choices that are expensive to reverse, and what you, the client, must provide at every phase.

What LMS development means today: three routes

The terms LMS development, learning management system development and LMS software development cover very different amounts of engineering: a week of configuration, a few months of plugin work or many months of product development. Before anyone estimates anything, place the project on one of three routes.

RouteWhat the work isFits whenMain risk
1. Configure an existing platformSet up a SaaS or installed LMS through its own settings: structure, roles, branding, enrolment rules, reports. Little or no codeRequirements are standard and speed matters more than being differentWorkarounds pile up when a requirement does not fit the product
2. Extend an open-source or self-hosted platformKeep the platform's core and add plugins, integrations, a custom theme and sometimes whole modulesThe platform covers most must-haves and the gaps are specific and understoodChanges made in core code instead of plugins, which turn every upgrade into a project
3. Build from scratchDesign the data model, write every module and operate the platform yourselfThe LMS is your product, or your model does not fit any platformYou fund and maintain every feature, including the dull ones

The routes differ most in who carries the long-term cost. On the first, the vendor maintains everything and you live with its limits. On the second, the platform's maintainers look after the core and you look after your additions. On the third, every line is yours, password reset included.

How to tell which route your project is

Four questions settle it in most cases:

  1. Is the platform your product, or a tool you use? If you sell access to the platform itself, control of the code and roadmap is worth paying for. If it supports your own staff, customers or members, it rarely is.
  2. Where are the gaps? A missing report, integration or approval step is a gap at the edge, and a plugin can fill it. A different idea of what a course, an enrolment or a client organisation is sits in the core, and you will work around it for years.
  3. Who will run it in three years? A build needs a team that stays. An extended platform needs someone to apply upgrades and retest your additions. A configured SaaS product needs an administrator.
  4. What must you own, and what do licences cost at your volume? Investors, clients or regulators sometimes require that you hold the code or host the data yourself. Per-user pricing that is reasonable for a few hundred learners can cost more than owning the software at tens of thousands. Both point to routes two and three.

Once these answers are written down, many projects that start as "custom LMS development" turn out to be route two: a proven core, plus the workflows, integrations and screens that make the organisation different. That is a good outcome: the budget goes on what is unique to you.

Before you build: check what an existing platform already covers

A build from scratch pays for sign-in, a course catalogue, a quiz engine, a content player, certificates, notifications and reports before it reaches the first feature that is unique to you. If an existing platform already covers most of your must-have requirements, extending it is usually cheaper and safer than a new build, because that common ground has already been written, run in production and patched by someone else.

So the first output of any project should be a fit check: your must-haves scored against two or three candidate bases. Four kinds of base come up most often.

BaseLicence and deploymentHow you extend itUsually fitsWatch for
LMS Advisor (our product)Commercial, quote-based. Vendor cloud, or self-hosted on your own PHP and MySQL serverREST API and signed webhooks, with SAML 2.0 and SCIM for identityOrganisations wanting a ready-made enterprise LMS with proctored exams and certificatesNo built-in checkout, and pricing is by quote. Ask what the self-hosted licence lets you change
MoodleOpen source under the GNU GPL, version 3 or later. Self-hosted or partner-hostedPlugins of many types: activity modules, blocks, authentication, enrolment, local plugins and moreCourse-based teaching and training with deep assessment and gradingNeeds hosting and a routine for upgrades
Open edXOpen source. The core platform is under the AGPL, version 3. Self-hosted or provider-hostedXBlocks for course components, plugins and micro-frontendsLarge online course programmes with many learners per courseHeavier to operate: Python and Django, with MySQL, MongoDB and Memcached among its core services
WordPress with an LMS pluginWordPress is under the GPL, version 2 or later. LearnDash, LifterLMS and Tutor LMS are common pluginsWordPress hooks, companion plugins and a themeSelling courses from a website that already runs on WordPressLess suited to complex organisation structures and compliance reporting

LMS Advisor (our product). LMS Advisor is the "buy a ready-made LMS and extend it through its API" option here: an enterprise LMS that is the same product in the vendor's cloud or on your own server. Its product page lists SCORM 1.2 and 2004, xAPI with a built-in learning record store, cmi5, SAML single sign-on, SCIM provisioning, native proctored exams, verifiable certificates, and a REST API with signed webhooks.

The same page lists its limits. Pricing is quote-based. It is not a course-selling storefront: there is no built-in checkout, coupons or subscriptions, and selling goes through a WooCommerce plugin. Other platforms can launch it through LTI 1.3, but it does not launch external tools. Its other pages state that it holds no SOC 2, ISO 27001 or HIPAA certification and describe its tenants feature as early. If you plan to change the product itself, ask what the self-hosted licence lets you modify. If a ready-made base is on your list, see what LMS Advisor includes.

Moodle 5.3, released in October 2026, is a long-term support version with security fixes scheduled until October 2029. Open edX's current named release is Verawood, with the next, Willow, scheduled for December 2026. For LifterLMS, our sister site LifterLMS Expert goes into the detail.

What the licences mean for your custom code

Under Moodle's GPL you may modify the software, and if you distribute a modified version you must pass the same rights on and make the source available. Open edX's AGPL adds a network clause: a modified version must offer the people who use it over a network the chance to receive its source code. WordPress states that derivatives of WordPress code inherit the GPL. If your plan depends on keeping modifications private or reselling the software itself, have a lawyer review the licence first.

Building from scratch is still the right call when the platform is the product you sell, when learning must be embedded inside another application and you need an engine with no interface of its own, or when contract or regulatory terms rule out the licences or hosting models above. If none of these is true, extend.

The core modules of an LMS and what each one involves

A feature list makes an LMS look like a set of screens. From the build side it is a set of modules that share one data model. Whether you build a learning management system or extend one, walk through this table with your team.

ModuleWhat it really involvesDecision to make early
Users and rolesAccounts, sign-in, profile fields and a permission model checked on every request, including through the API and bulk importsFixed roles or configurable permissions, and whether one person can hold different roles in different organisations
Organisation structureDepartments, branches, client organisations, groups and cohorts, with managers who see only their own peopleA tree, labels or separate tenants, and what happens to history when someone moves
Course and content modelCatalogue, course, section and activity hierarchy, content types (video, documents, packages, quizzes, live sessions) and versioningWhat happens to learners who are part-way through when a course is edited
EnrolmentManual, self-service, rule-based, paid and cohort enrolment, with start, due and expiry dates and seat limitsWhether a learner enrols on a course, a version of it or a scheduled run
AssessmentsQuestion bank, question types, randomisation, time limits, attempts, manual marking, and proctoring for high-stakes examsWhich attempt counts, and how a question is versioned once someone has answered it
Progress and completionTracking per activity, completion rules, prerequisites and learning pathsThe exact rule for "complete" per activity type, and whether a completion can be withdrawn
CertificatesTemplates, issue on completion, a unique number, a verification page, expiry and renewalWhether the issued certificate is stored as it was or redrawn from current data
ReportingCompletion, overdue, score and activity reports by organisation, exports and scheduled deliveryLive tables or a separate reporting store, and who may see what
NotificationsEmail, in-app and push messages, editable templates, reminders, escalation and opt-outsRules driven by events, or messages hard-coded into features
Payments, where relevantProducts, prices, coupons, tax, invoices, refunds and subscriptions, with enrolment on payment and removal on refundYour own checkout, or a hosted checkout from an e-commerce platform or payment provider
Admin toolsBulk import, audit log, settings, signing in as another user for supportWhat needs a screen and what can be a script at first

The data model that everything depends on

Many late surprises in LMS software development trace back to the data model, not to a screen. The entities are few: user, organisation, course, course version, activity, enrolment, attempt, completion and certificate. The rules between them are where projects go wrong.

  • Keep enrolment, progress and completion separate. Enrolment is the right to take a course. Progress is what has happened so far. Completion is the result an auditor reads. One merged status field works until a course is re-assigned for annual renewal.
  • Treat completions and certificates as records. Store what was completed, which version, when, with what score and under which rule. Otherwise editing a course quietly rewrites last year's compliance report.
  • Give every row an owner. Attach users, courses and results to an organisation from the start, even if you launch with one. Adding that key later means touching every query.
  • Decide what "delete" means. When a person leaves, do you deactivate the account and keep the training record, anonymise it or erase it?

Content standards and interoperability: SCORM, xAPI, cmi5 and LTI 1.3

If your courses come from authoring tools or third-party libraries, the platform has to speak their standards. Each one is a piece of software to implement or adopt, not a tick on a feature list.

StandardMaintained byWhat the LMS has to implementWhen it matters
SCORM 1.2ADL (released 2001)Import of a packaged ZIP file, a runtime API that the content calls, and the data model for what the content reportsExisting packaged courses. ADL notes that SCORM is still in wide use
SCORM 2004ADL (4th Edition, 2009, is the most recent)Its own runtime API: content looks for an object named API_1484_11 with methods such as Initialize, GetValue, SetValue, Commit and Terminate. Also the imsmanifest.xml manifest and the sequencing and navigation rulesContent published for 2004, especially packages that sequence several learning objects
xAPIStarted at ADL, now IEEE standard 9274.1.1-2023A learning record store (LRS): a web service that receives, stores and returns statements made of an actor, a verb and an objectLearning outside a course window: simulations, mobile apps, on-the-job tasks
cmi5Created by AICC and ADL. ADL hosts the cmi5 working groupAn LRS plus the cmi5 rules: import the course structure, launch each assignable unit with a fetch URL for its token, manage sessions and apply "move on" criteriaNew content that needs xAPI data with LMS-style launch and completion. ADL recommends xAPI and cmi5 for new acquisitions and implementations
LTI 1.31EdTechThe platform role (launching external tools), the tool role (being launched by another LMS) or both, using OpenID Connect, signed JWTs and OAuth 2.0. LTI Advantage adds grade, roster and deep linking servicesPlugging in third-party tools, or offering your courses inside a client's or university's own LMS

Decide whether to write, adopt or embed. Moodle, for example, ships with a SCORM activity, which is a strong argument for route two. On a scratch build, SCORM 2004 sequencing, an LRS and cmi5 are each a project of their own, so decide for each whether you write it, reuse an open-source component or license a commercial engine.

The specification is the smaller half. The larger half is behaviour at the edges: what is saved when a learner closes the tab mid-lesson, what happens when the session expires during a long video, and how a retake affects a stored completion. Packages from different authoring tools also behave differently, so testing with one sample file proves little.

Choose the LTI role deliberately. Launching other vendors' tools and being launched by a customer's LMS are separate pieces of work. Many projects need only one. Our SCORM vs xAPI vs cmi5 comparison goes deeper into which standard suits which content.

Architecture and integration decisions that are expensive to change

None of these decisions has one right answer. Each is a trade-off to make on purpose during discovery and to write down with the reason, because reversing it after launch is costly.

DecisionOptionsTrade-off
TenancySingle-tenant (one installation per client), multi-tenant with a shared database, or multi-tenant with a database per clientIsolation and per-client customisation against operating cost and upgrade effort. See our article on multi-tenant LMS architecture
Application shapeA monolith, a modular monolith or separate servicesA monolith is simpler for a small team to build, test and release. Services scale and ship independently but add operations work. Open edX describes itself as a modular monolith with some independently deployable applications and micro-frontends
Hosting modelYour own cloud account, hosting managed by a vendor or partner, or on-premiseControl over data location and access against who is on call when something breaks
DatabaseA relational database for core records, with or without a separate store for event dataUsers, enrolments and completions are relational and reports need joins. Event data such as xAPI statements grows much faster and may need its own home
Files and videoLocal disk or object storage for files. A video service, or your own transcoding and streamingLocal disk is simple but ties you to one server. Video is often the largest storage and bandwidth cost and should not be served by the application server
Caching, background jobs and searchAdd each at the start, or when measurements show the needEach speeds something up and adds something that can fail. A job queue is needed from the first release. Caching and a search engine can often wait

An LMS does a lot of work that no user should wait for: sending reminders, generating certificates, unpacking packages, importing users and building large reports. That work belongs in a queue with retries that administrators can see, because a reminder that silently never sent becomes a compliance problem a month later.

Load is also uneven. It peaks on a compliance deadline, at the start of a timed exam and when a new cohort opens, so design and load test for those moments, not for the daily average.

Integrations almost every project needs

  • Single sign-on. SAML 2.0, an OASIS standard, is what corporate identity providers commonly expect. OpenID Connect, an identity layer on top of OAuth 2.0, suits newer identity providers and mobile apps. Decide whether accounts are created at first sign-in, how attributes map to roles and what happens on logout. Our guide to SAML and OIDC single sign-on for an LMS covers the choice.
  • HRIS or student-system sync. Sign-in alone does not create or remove accounts ahead of time. Where the identity provider supports it, SCIM (RFC 7644) is a standard HTTP-based protocol for that. Otherwise it is a scheduled API sync or a file transfer. The mapping is the hard part: department, manager, location, leavers and returners.
  • Payments. Use the provider's hosted checkout so that card numbers never touch your servers. PCI DSS applies to entities that store, process or transmit cardholder data, so the less of that your platform does, the better. The effort goes into what follows payment: enrolment, invoices, tax, refunds and failed renewals.
  • Video conferencing. Scheduling live sessions in Zoom, Microsoft Teams or Google Meet from a course, and bringing attendance and recordings back.
  • CRM. For customer and partner training: accounts and entitlements flowing in, completions and certifications flowing back.
  • BI and data warehouse. An export, an API or a read replica for the tools leaders already use. Agree what counts as active, complete and overdue before building the feed.

For every integration, write down which system holds the truth, what triggers the exchange, which direction data moves and what happens when the other system is unavailable.

Security, privacy and accessibility requirements that shape the build

All three are far cheaper as requirements at the start than as findings from a penetration test, a legal review or an accessibility audit at the end.

Security

The current OWASP Top 10, the 2025 edition, puts Broken Access Control first. An LMS is mostly access control: a learner sees their own results, a manager a team, a client administrator one organisation. Each rule has to be enforced on the server for every record and tested for each role through the screens, the API, imports and exports.

As a requirement list, use the OWASP Application Security Verification Standard (version 5.0.0, May 2025), a set of security requirements for designing, developing and testing web applications and services. Then add the points specific to learning platforms:

  • Uploaded course packages contain HTML and JavaScript that will run in learners' browsers, so treat uploading as a privileged action and log it.
  • Correct answers and exam timers stay on the server until the attempt is submitted.
  • Certificate verification links use identifiers that cannot be guessed.
  • Role changes, grade changes and sign-in as another user go to an audit log.
  • Third-party plugins and libraries are reviewed and kept current. Software Supply Chain Failures is third on the same list.

Privacy: GDPR basics for learner data

An LMS holds names, email addresses, job details, assessment results and, with proctoring, images. If you train people in the EU, the GDPR can apply even when your organisation is established elsewhere, because Article 3 covers offering goods or services to people in the Union. These parts become build requirements:

  • Article 5: personal data is limited to what is necessary for the purpose and kept in identifiable form no longer than necessary. In practice: fewer profile fields, and a retention setting for each type of data.
  • Article 25: data protection by design and by default.
  • Articles 15, 17 and 20: rights of access, erasure and portability, the last in a structured, commonly used and machine-readable format. The platform needs an export and an erase or anonymise function for each person.
  • Article 28: where a development partner or host processes learner data on your behalf, a contract must govern that processing.
  • Article 32: security appropriate to the risk, including as appropriate encryption and the ability to restore access to data after an incident. That means backups whose restore has been tested.
  • Article 33: a breach is notified to the supervisory authority without undue delay and, where feasible, within 72 hours of becoming aware of it, unless it is unlikely to result in a risk to people.

Erasure requests and the need to keep training records can pull in opposite directions, so settle the rule for each category of data with your legal adviser. Other countries have their own laws, and this is not legal advice.

Accessibility

WCAG 2.2 is a W3C Recommendation with three conformance levels: A, AA and AAA. Level AA is what the contracts and policies we see usually ask for. Version 2.2 added criteria that touch LMS screens directly:

  • 2.5.7 Dragging Movements (AA): drag-and-drop question types and course builders need an alternative without dragging.
  • 2.5.8 Target Size (Minimum) (AA): player controls and quiz options need enough size or spacing.
  • 3.3.8 Accessible Authentication (Minimum) (AA): sign-in must not require a cognitive test, such as remembering a password, unless an alternative or help is offered.

An accessible platform does not make content accessible. Course packages, videos and documents need their own checks.

The LMS development process, phase by phase

If you are working out how to build an LMS, the LMS development process has the same phases on every route. Only their size changes. Durations are indicative planning assumptions for a new build, not commitments. They add up to the 12 to 32 weeks in our LMS cost calculator (October 2026).

PhaseWhat happensWhat the client must provideTypical outputIndicative duration
1. Discovery and requirementsWorkshops, roles and journeys, requirements written as testable statements, the fit check, an integration map and a risk listA decision-maker with authority, access to the people who run training today, sample content, a list of systems to connect and a current data exportRequirements, route decision, draft data model, estimate and plan2 to 4 weeks
2. MVP scope and designThe first release is cut to the smallest useful set. Wireframes for learner, instructor and administrator. Architecture decisions recordedPriorities, brand assets and sign-off on designs within agreed daysMVP scope, clickable prototype, architecture decision record2 to 4 weeks
3. Build in incrementsShort iterations that each end with a demonstration on a staging site. Core modules first, then integrationsA product owner available every week, feedback within days, test accounts in your identity provider, payment sandbox and HR systemWorking software on staging after each iteration6 to 18 weeks
4. QA and content testingFunctional tests per role, automated regression tests, a peak-load test, security and accessibility checks, and tests with real content packagesReal SCORM, xAPI or cmi5 packages from every authoring tool you use, testers for each role and the browsers and devices to supportTest report, resolved defect list, user acceptance sign-offThroughout, plus 1 to 4 weeks before launch
5. Data migrationMapping from old to new, scripted imports, trial runs and reconciliation of counts and samplesExports from the old system, a data owner who can rule on messy records, and a decision on how much history to keepRepeatable migration scripts and a reconciliation reportAlongside the build
6. LaunchA pilot group, then a phased rollout. Domain and single sign-on cut-over, monitoring and a support rotaLaunch date constraints, messages to learners and managers, a helpdesk ownerLive platform, runbook and administrator training1 to 2 weeks
7. MaintenanceSecurity patches, platform and dependency upgrades, monitoring, backups with restore tests and small improvementsA named owner, a budget line and a route for change requestsRegular status reports and release notesOngoing

Scoping the MVP

A useful test for the first release, the minimum viable product (MVP): one real group of learners can sign in the way they will in production, be enrolled, finish one real course and receive whatever proves it, and one real manager can pull the report they need. Anything off that path can wait for a later release. Gamification, social features, AI features, native mobile apps and a report builder usually do.

QA covers content, not only code

Build a small matrix: each authoring tool you use, each standard, each supported browser and at least one phone. For every cell, check that the package launches, records completion and score, resumes where the learner stopped and copes when the window is closed without warning. It is tedious, and it catches defects that learners would otherwise report in week one.

Migration and launch

If you are replacing a platform, the hard data is history: completions, certificates with their original dates and assessment results. Passwords usually cannot be moved unless both systems store them in a compatible way, so plan for single sign-on or a reset at first login. In-progress state inside packaged content rarely transfers, so decide whether learners who are part-way through restart or finish on the old system. Rehearse the migration at least twice and reconcile the numbers each time.

Maintenance is part of the plan

On an open-source base, upgrades recur: Moodle's schedule shows a major release about every six months, and Open edX publishes named releases at a similar pace. Custom plugins must be retested against each one you adopt. A custom build has no upstream to follow, but its frameworks, libraries and servers still need updating.

The team, and how to evaluate an LMS development company

A new build typically involves a solution architect or business analyst, a UX and UI designer, back-end and front-end engineers, a QA engineer, someone responsible for infrastructure and deployment, and a project manager. On smaller extension projects, two or three people often cover these roles. At least one engineer should have implemented the content standards before.

Your side needs people too: a product owner who can decide, the person who administers training today, someone from IT who owns identity and security, and whoever owns the data in the HR or student system. Projects without a client-side product owner tend to drift.

What to ask

  • Which route would you recommend for us, and what would make you advise against a build?
  • Which platforms have you extended, and do you write plugins or change core code?
  • How do you implement and test SCORM, xAPI, cmi5 and LTI, and with which authoring tools?
  • How do you model organisations and permissions, and how are access rules tested?
  • Who owns the code, where does the repository live, and which licences apply to the components you use?
  • How do you estimate, and how are changes of scope priced?
  • What does maintenance include, and what are the response times?

What to ask to see

  • A discovery or requirements document from an earlier project, with client details removed.
  • A live demonstration in which they sign in as a learner, a manager and an administrator.
  • How their code is organised and tested, and the pipeline that deploys it.
  • A test plan with a content package matrix, a migration reconciliation report, and evidence of security and accessibility testing.
  • People you can call who run a platform they built.

Be cautious of a fixed price offered before discovery, of a proposal that asks nothing about your data, and of "SCORM compliant" stated without a test.

Cost and timeline: what drives them, and the mistakes that inflate both

The route is usually the largest driver. After that, cost and duration follow the number of roles and organisations, the number and quality of integrations, the depth of standards support, assessment and proctoring, reporting, the volume and cleanliness of data to migrate, security and accessibility requirements, mobile apps and how fixed the deadline is.

These are indicative ranges from our LMS cost calculator, October 2026. They are base planning ranges, not quotes: the calculator adds to them for features and integrations and adjusts for platform, learner numbers, complexity and urgency.

Type of projectIndicative cost (USD)Indicative duration
Customise or extend a current LMS3,000 to 15,0002 to 6 weeks
Build a new custom or SaaS LMS40,000 to 150,00012 to 32 weeks

The gap between the two rows is the financial case for the fit check. Our LMS development cost guide breaks the numbers down, and the LMS cost calculator gives a range for your own mix of features in a few minutes.

Common LMS development mistakes

  • Building what a platform already does. Skipping the fit check and paying to rewrite a catalogue and a quiz engine.
  • Starting from screens. Designing pages before the roles, the organisation structure and the completion rules are agreed.
  • One line for "SCORM support". Estimating standards as a single item and testing with a single sample package.
  • Leaving identity to the end. Single sign-on and HR sync depend on other teams, and they are often where the calendar slips.
  • No product owner. Decisions wait for a steering meeting while the team builds its best guess.
  • Reports as an afterthought. The data the report needs was never stored.

How we can help

We work on all three routes: fit checks and route decisions, plugins and integrations on Moodle, Open edX and WordPress LMS platforms, and custom platforms where a build is justified. If you want a second opinion on which route your project is, or an estimate based on written requirements, see our LMS development services or talk to an LMS engineer.

Frequently asked questions

What is LMS development?

LMS development is the design, engineering and maintenance of learning management system software. It ranges from configuring an existing platform, through extending an open-source or self-hosted platform with plugins and integrations, to building a new platform from scratch.

How long does it take to build an LMS?

It depends on the route. As indicative ranges from our LMS cost calculator in October 2026, customising or extending an existing LMS takes 2 to 6 weeks and building a new custom platform takes 12 to 32 weeks from discovery to launch. These are base ranges: features, integrations, data migration and fixed deadlines move them.

Is it better to build an LMS from scratch or customise an existing one?

Customise when an existing platform covers most of your must-have requirements and the gaps are specific. Build from scratch when the platform is the product you sell, when your core model does not fit any existing platform, or when contract or regulatory terms rule out the licences and hosting models on offer.

Which technology stack is best for LMS development?

There is no single best stack. Moodle and WordPress LMS plugins are PHP, and Open edX is Python and Django. For a custom build, choose a stack your team can hire for and maintain. Tenancy, hosting, storage and the data model affect the result far more than the programming language.

Does a custom LMS need to support SCORM?

Only if you will run packaged content from authoring tools or third-party libraries. If you do, plan for SCORM 1.2 and usually SCORM 2004, because existing course libraries still use them. For new implementations, ADL recommends xAPI and cmi5.

Free 30-minute consultation

Not sure where to start? Talk to an LMS engineer.

Tell us what platform you run and what you need. You’ll get honest, practical advice - even if the answer is that you don’t need us.

Sources & references

  1. SCORM overview and version history - ADL Initiative
  2. SCORM 2004 4th Edition Testing Requirements, version 1.1 - ADL Initiative
  3. IEEE 9274.1.1-2023: JSON data model format and RESTful web service for learner experience data tracking and access (xAPI) - IEEE Standards Association
  4. Experience API (xAPI) standard - ADL Initiative
  5. cmi5 specification (Quartz) - AICC cmi5 specification repository
  6. cmi5 specification project - ADL Initiative
  7. Learning Tools Interoperability (LTI) Core Specification 1.3 - 1EdTech
  8. LTI Advantage Implementation Guide 1.3 - 1EdTech
  9. Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0 - OASIS
  10. OpenID Connect Core 1.0 incorporating errata set 2 - OpenID Foundation
  11. RFC 7644: System for Cross-domain Identity Management: Protocol - IETF
  12. PCI Data Security Standard (PCI DSS) - PCI Security Standards Council
  13. OWASP Top 10:2025 - OWASP Foundation
  14. OWASP Application Security Verification Standard (ASVS) - OWASP Foundation
  15. Web Content Accessibility Guidelines (WCAG) 2.2 - W3C
  16. What's New in WCAG 2.2 - W3C Web Accessibility Initiative
  17. Regulation (EU) 2016/679 (General Data Protection Regulation) - EUR-Lex
  18. Moodle releases - Moodle
  19. Moodle licence - Moodle
  20. Moodle plugin types - Moodle
  21. SCORM activity - Moodle
  22. Open edX licensing - Open edX
  23. Open edX platform release notes - Open edX
  24. edx-platform repository: README and LICENSE (AGPL version 3) - Open edX
  25. WordPress licence - WordPress.org
  26. LMS Advisor product overview - LMS Advisor
  27. LMS Advisor security and data ownership - LMS Advisor
  28. LMS Advisor enterprise management - LMS Advisor

Keep reading

Before you go - get a free LMS audit

Tell us which LMS you use and what is not working. An engineer replies within one business day.

Choose which optional cookies we may use. You can change this at any time from "Cookie preferences" in the footer. Cookie policy · Privacy policy