Skip to main content
Back to docs
LMS Development

Moodle Customisation: What is Possible and What is Not

A practical guide to what can be customised in Moodle, how customisation works, and the difference between theme changes, plugins, and core modifications.

The Moodle architecture

Moodle is a PHP-based open-source LMS with a plugin architecture. Almost everything visual and functional can be customised through the plugin system — without modifying the Moodle core. This is important: core modifications make upgrades extremely difficult and create long-term maintenance problems. Everything we build follows the golden rule: never touch core.

What can be customised via themes

Moodle themes control the visual appearance of the platform. A custom theme can change:

  • Colours, typography, spacing, and layout
  • Header and footer design
  • Login page branding
  • Course and category page layouts
  • Email notification templates
  • Dashboard widgets and layout

We build custom Boost child themes (Moodle's modern theme framework) that give you full brand control while inheriting Moodle's responsive and accessible base.

What can be added via plugins

Moodle's plugin system covers a huge surface area:

  • Activity modules (new content types — simulations, custom players, interactive exercises)
  • Authentication plugins (SSO with SAML 2.0, OAuth 2.0, LDAP)
  • Enrolment plugins (automatic enrolment based on external data)
  • Grade and completion plugins (custom rules and calculations)
  • Report plugins (new reporting views and exports)
  • Admin tools and block plugins

We write custom plugins for functionality not covered by the 1,400+ community plugins available in the Moodle plugin directory.

Multi-tenancy

Moodle's built-in multi-tenancy is category-based — different organisations can have their own course category with role-separated access. For more complete tenant isolation (separate branding, separate admin portals, truly isolated data), we either extend Moodle with custom multi-tenancy plugins or build a custom LMS on top of Moodle's data layer.

What requires a custom build

Some requirements are better served by a custom LMS built with React and Node.js rather than a Moodle extension:

  • Unique learner journeys that Moodle's course model cannot represent
  • Complex e-commerce or subscription billing requirements
  • Deep integration with proprietary internal systems
  • Learner-facing UI that needs to match a specific design system
  • Performance requirements beyond what PHP can deliver at your scale

Still have questions?

Our team is happy to walk you through anything — just send us a message.