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.
| Route | What the work is | Fits when | Main risk |
|---|---|---|---|
| 1. Configure an existing platform | Set up a SaaS or installed LMS through its own settings: structure, roles, branding, enrolment rules, reports. Little or no code | Requirements are standard and speed matters more than being different | Workarounds pile up when a requirement does not fit the product |
| 2. Extend an open-source or self-hosted platform | Keep the platform's core and add plugins, integrations, a custom theme and sometimes whole modules | The platform covers most must-haves and the gaps are specific and understood | Changes made in core code instead of plugins, which turn every upgrade into a project |
| 3. Build from scratch | Design the data model, write every module and operate the platform yourself | The LMS is your product, or your model does not fit any platform | You 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:
- 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.
- 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.
- 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.
- 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.
| Base | Licence and deployment | How you extend it | Usually fits | Watch for |
|---|---|---|---|---|
| LMS Advisor (our product) | Commercial, quote-based. Vendor cloud, or self-hosted on your own PHP and MySQL server | REST API and signed webhooks, with SAML 2.0 and SCIM for identity | Organisations wanting a ready-made enterprise LMS with proctored exams and certificates | No built-in checkout, and pricing is by quote. Ask what the self-hosted licence lets you change |
| Moodle | Open source under the GNU GPL, version 3 or later. Self-hosted or partner-hosted | Plugins of many types: activity modules, blocks, authentication, enrolment, local plugins and more | Course-based teaching and training with deep assessment and grading | Needs hosting and a routine for upgrades |
| Open edX | Open source. The core platform is under the AGPL, version 3. Self-hosted or provider-hosted | XBlocks for course components, plugins and micro-frontends | Large online course programmes with many learners per course | Heavier to operate: Python and Django, with MySQL, MongoDB and Memcached among its core services |
| WordPress with an LMS plugin | WordPress is under the GPL, version 2 or later. LearnDash, LifterLMS and Tutor LMS are common plugins | WordPress hooks, companion plugins and a theme | Selling courses from a website that already runs on WordPress | Less 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.
| Module | What it really involves | Decision to make early |
|---|---|---|
| Users and roles | Accounts, sign-in, profile fields and a permission model checked on every request, including through the API and bulk imports | Fixed roles or configurable permissions, and whether one person can hold different roles in different organisations |
| Organisation structure | Departments, branches, client organisations, groups and cohorts, with managers who see only their own people | A tree, labels or separate tenants, and what happens to history when someone moves |
| Course and content model | Catalogue, course, section and activity hierarchy, content types (video, documents, packages, quizzes, live sessions) and versioning | What happens to learners who are part-way through when a course is edited |
| Enrolment | Manual, self-service, rule-based, paid and cohort enrolment, with start, due and expiry dates and seat limits | Whether a learner enrols on a course, a version of it or a scheduled run |
| Assessments | Question bank, question types, randomisation, time limits, attempts, manual marking, and proctoring for high-stakes exams | Which attempt counts, and how a question is versioned once someone has answered it |
| Progress and completion | Tracking per activity, completion rules, prerequisites and learning paths | The exact rule for "complete" per activity type, and whether a completion can be withdrawn |
| Certificates | Templates, issue on completion, a unique number, a verification page, expiry and renewal | Whether the issued certificate is stored as it was or redrawn from current data |
| Reporting | Completion, overdue, score and activity reports by organisation, exports and scheduled delivery | Live tables or a separate reporting store, and who may see what |
| Notifications | Email, in-app and push messages, editable templates, reminders, escalation and opt-outs | Rules driven by events, or messages hard-coded into features |
| Payments, where relevant | Products, prices, coupons, tax, invoices, refunds and subscriptions, with enrolment on payment and removal on refund | Your own checkout, or a hosted checkout from an e-commerce platform or payment provider |
| Admin tools | Bulk import, audit log, settings, signing in as another user for support | What 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.
| Standard | Maintained by | What the LMS has to implement | When it matters |
|---|---|---|---|
| SCORM 1.2 | ADL (released 2001) | Import of a packaged ZIP file, a runtime API that the content calls, and the data model for what the content reports | Existing packaged courses. ADL notes that SCORM is still in wide use |
| SCORM 2004 | ADL (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 rules | Content published for 2004, especially packages that sequence several learning objects |
| xAPI | Started at ADL, now IEEE standard 9274.1.1-2023 | A learning record store (LRS): a web service that receives, stores and returns statements made of an actor, a verb and an object | Learning outside a course window: simulations, mobile apps, on-the-job tasks |
| cmi5 | Created by AICC and ADL. ADL hosts the cmi5 working group | An 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" criteria | New content that needs xAPI data with LMS-style launch and completion. ADL recommends xAPI and cmi5 for new acquisitions and implementations |
| LTI 1.3 | 1EdTech | The 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 services | Plugging 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.
| Decision | Options | Trade-off |
|---|---|---|
| Tenancy | Single-tenant (one installation per client), multi-tenant with a shared database, or multi-tenant with a database per client | Isolation and per-client customisation against operating cost and upgrade effort. See our article on multi-tenant LMS architecture |
| Application shape | A monolith, a modular monolith or separate services | A 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 model | Your own cloud account, hosting managed by a vendor or partner, or on-premise | Control over data location and access against who is on call when something breaks |
| Database | A relational database for core records, with or without a separate store for event data | Users, 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 video | Local disk or object storage for files. A video service, or your own transcoding and streaming | Local 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 search | Add each at the start, or when measurements show the need | Each 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).
| Phase | What happens | What the client must provide | Typical output | Indicative duration |
|---|---|---|---|---|
| 1. Discovery and requirements | Workshops, roles and journeys, requirements written as testable statements, the fit check, an integration map and a risk list | A decision-maker with authority, access to the people who run training today, sample content, a list of systems to connect and a current data export | Requirements, route decision, draft data model, estimate and plan | 2 to 4 weeks |
| 2. MVP scope and design | The first release is cut to the smallest useful set. Wireframes for learner, instructor and administrator. Architecture decisions recorded | Priorities, brand assets and sign-off on designs within agreed days | MVP scope, clickable prototype, architecture decision record | 2 to 4 weeks |
| 3. Build in increments | Short iterations that each end with a demonstration on a staging site. Core modules first, then integrations | A product owner available every week, feedback within days, test accounts in your identity provider, payment sandbox and HR system | Working software on staging after each iteration | 6 to 18 weeks |
| 4. QA and content testing | Functional tests per role, automated regression tests, a peak-load test, security and accessibility checks, and tests with real content packages | Real SCORM, xAPI or cmi5 packages from every authoring tool you use, testers for each role and the browsers and devices to support | Test report, resolved defect list, user acceptance sign-off | Throughout, plus 1 to 4 weeks before launch |
| 5. Data migration | Mapping from old to new, scripted imports, trial runs and reconciliation of counts and samples | Exports from the old system, a data owner who can rule on messy records, and a decision on how much history to keep | Repeatable migration scripts and a reconciliation report | Alongside the build |
| 6. Launch | A pilot group, then a phased rollout. Domain and single sign-on cut-over, monitoring and a support rota | Launch date constraints, messages to learners and managers, a helpdesk owner | Live platform, runbook and administrator training | 1 to 2 weeks |
| 7. Maintenance | Security patches, platform and dependency upgrades, monitoring, backups with restore tests and small improvements | A named owner, a budget line and a route for change requests | Regular status reports and release notes | Ongoing |
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 project | Indicative cost (USD) | Indicative duration |
|---|---|---|
| Customise or extend a current LMS | 3,000 to 15,000 | 2 to 6 weeks |
| Build a new custom or SaaS LMS | 40,000 to 150,000 | 12 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
- SCORM overview and version history - ADL Initiative
- SCORM 2004 4th Edition Testing Requirements, version 1.1 - ADL Initiative
- IEEE 9274.1.1-2023: JSON data model format and RESTful web service for learner experience data tracking and access (xAPI) - IEEE Standards Association
- Experience API (xAPI) standard - ADL Initiative
- cmi5 specification (Quartz) - AICC cmi5 specification repository
- cmi5 specification project - ADL Initiative
- Learning Tools Interoperability (LTI) Core Specification 1.3 - 1EdTech
- LTI Advantage Implementation Guide 1.3 - 1EdTech
- Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0 - OASIS
- OpenID Connect Core 1.0 incorporating errata set 2 - OpenID Foundation
- RFC 7644: System for Cross-domain Identity Management: Protocol - IETF
- PCI Data Security Standard (PCI DSS) - PCI Security Standards Council
- OWASP Top 10:2025 - OWASP Foundation
- OWASP Application Security Verification Standard (ASVS) - OWASP Foundation
- Web Content Accessibility Guidelines (WCAG) 2.2 - W3C
- What's New in WCAG 2.2 - W3C Web Accessibility Initiative
- Regulation (EU) 2016/679 (General Data Protection Regulation) - EUR-Lex
- Moodle releases - Moodle
- Moodle licence - Moodle
- Moodle plugin types - Moodle
- SCORM activity - Moodle
- Open edX licensing - Open edX
- Open edX platform release notes - Open edX
- edx-platform repository: README and LICENSE (AGPL version 3) - Open edX
- WordPress licence - WordPress.org
- LMS Advisor product overview - LMS Advisor
- LMS Advisor security and data ownership - LMS Advisor
- LMS Advisor enterprise management - LMS Advisor