Updated in 2023 for Moodle 4.x

What do others say having taken this course...

"I was really enjoying the challenges that the course provided." (Anonymous feedback)

"Will definitely recommend this course to others and look at doing other courses in the future." (Anonymous feedback)

"At the end of the day - great course, fun and interesting and thanks for putting it together so well." (Anonymous feedback)

If you are interested in Moodle development, but do not have a background in development, experience with php, and experience in development environments, then this MoodleBites for Developers Level 1 is for you !  It will give you a gentle introduction to Moodle development, and provide a good grounding should you wish to progress to the MoodleBites for Developers Level 2 course at a later time.


Because this course is quite specialist, it runs just twice each year (numbers are limited, so please register in plenty of time):

  • 1st February
  • 1st July

This course is 8 weeks in duration, asynchronous, and completely online. Each week contains approximately 2-4 hours work, although this varies depending on your experience with Moodle and development in general, and how much extension work you wish to complete smile

This is an 8 week entry level course on Moodle development. It is focused on building new plugins.

After successfully completing this course

  •    You will be able to create new plugins from templates or from existing plugins.
  •    You will be able to create renderers and Mustache templates to display content.
  •    You will be able to use the main Moodle APIs Forms, Database, Navigation, Events.
  •    You will be able to write Atto plugins using YUI and to write simple AMD modules
  •    You will understand important aspects of the Moodle API including internationalization, capabilities and roles and legacy code for outputting HTML.
There are no live sessions, but participants are encouraged to participate in forums and to post the results of their practical assignments for others to see and learn from.
MoodleBites for Developers Level 1

OpenBadges logo

Gareth Barnard photo 2022

Your lead-facilitator for this course is Gareth Barnard, well-known in the Moodle community for his outstanding contributions to Moodle including:

  • Co-Moderator of the Moodle.org Themes Forum
  • Co-Moderator of the Moodle.org Courses and Course formats Forum
Current work:
  • Developer of the revolutionary Foundation theme (used on 800+ sites)
  • Current developer of Adaptable theme (used on 19,700+ sites)
  • Co-Developer of Campus Theme (used on 600+ sites)
  • Developer of Collapsed Topics course format plugin (used on 6,000+ sites)
  • Current developer of Grid course format plugin (used on 7,200+ sites)
  • Current developer of Theme Selector Block (great for developers/demo sites)
  • Developer of SynHi, a syntax highlighting filter (great for presenting code on courses)
  • Previous work:
  • Maintainer of the Essential Theme - THE most popular Moodle Theme plugin anywhere – still used on more than 3,600 Moodle sites worldwide
  • Developer of Shoehorn Theme - based on Bootstrap 3
  • Developer of Shoelace Theme
  • Developer of Columns format course format plugin (used on 70 sites)
Previous developers and facilitators of this course include both Richard Jones and Justin Hunt.

Richard JonesJustin Hunt


MoodleBites for Developers Level 1 is USD $599 per person at this time we are able to offer a discount to a special rate of USD $499 but places are limited - so book early to avoid disappointment! If you wish to translate this value to your local currency please visit: http://www.xe.com/ All invoices are in US Dollars (Euro invoices available by special request). You can register for the course using the "Register Now" link on the Front Page.

If you book (and pay) Level 1 and Level 2 at the same time you can have an additional $100 discount.

This is a technical course, designed for people with interest in development and Moodle Administrators. This course is not suitable for the average Teacher using Moodle.

Course outline

Technical requirements


It is important that participants, before starting this course:

  • Have setup a suitable Moodle development environment
  • Understand basic git commands
  • Some understanding of PHP or other computer language programming is advisable.
HRDNZ offers a free two-week online course covering these pre-requisites.  This course is especially recommended for those who are unsure if a Moodle Developers course is right for them.

In this course you will learn the basics of developing for Moodle including:

  • Week 1
    • In which we introduce HRDNZ, the course and set some expectations.  In this first week we install a new block and examine its basic files and the code inside.  We also discuss the way Moodle handles different languages and implement a language file.
  • Week 2 
    • This week we cover how Moodle displays browser-facing pages and administration settings and give you some simple tasks to do. As always the week ends with a scenario lesson.
  • Week 3
    • This week is a busier week with a number of quite important concepts to master.  We briefly introduce Moodle forms and a block instance settings form.  This week also covers Moodle's extensive capabilities, roles and permissions systems.  We prevent unwanted access to our block's pages.
  • Week 4
    • The focus is on the important topic of Moodle renderers and Mustache templates.  Modern Moodle code uses these extensively in contrast to the older mixed html, css and php approach or the use of special classes such as html_writer which we met briefly in week 3.
  • Week 5
    • This week covers the Data API and how forms are processed in Moodle to read and write data.  We also look at adding a new type of page to our block and discuss the use of local classes and class autoloading.
  • Week 6
    • This week we expand our block’s capabilities by adding some size buttons on the view page.  These will leverage our current code and allow the viewer to change the size of the iFrame on the view page.  We will add the links using a Mustache partial.  In this week we will also take a quick look at modifying Moodle's navigation system. 
  • Week 7
    • This week is all about JavaScript in Moodle.  We look at YUI and the Atto editor - creating a toolbar button as a subplugin of Atto and we look at a simple AMD module.  We also find time to briefly discuss Moodle text filters.
  • Week 8
    • This week includes: Adding an event, Catch-up, Extended tasks, Final questions, What to do next.

There is no need to use a specific Operating System, editor or IDE. The course is generic on these points and and aims at basic concepts that will be present in any OS or development environment. Since the course is neutral with respect to OS and development environment, effort has been made to ensure that the practical tasks and examples given are generally applicable. Anyone attending this course however will need to become familiar with their own Operating System and development environment. We cannot answer in-depth questions specific to your own choice of OS and development environment.

*Please note this course outline is subject to change to keep pace with Moodle development.