Write a Learning Lab course

Your Learning Lab course will help developers around the world discover new technologies, learn new skills and build better software. You have knowledge to share and this course will help you take your first steps, today.

Start free course Join 1052 others!

social preview

Learning Lab helps people build real world skills through hands-on activities. This course streamlines the course building process, and gives you all the tools you need to help others learn.

If you'd like to get started in building courses for others, this is the course for you!

What you'll learn

This course will answer questions like:

  • How does a Learning Lab course work?
  • What are GitHub events?
  • What's a step?
  • How do I write responses?
  • What topic is a good candidate for a Learning Lab course?
  • How do I give a learner feedback?
  • How do I list a course in the catalog and publish it?

After taking this course, you'll be able to:

  • Design a course using your chosen topic
  • Create your course on GitHub Learning Lab
  • Break down your topic into smaller steps for GitHub
  • Create a template repository

What you'll build

screenshot of a sample config.yml file

For this course, the best reference point is any other completed Learning Lab course! Take a look at the source code for all our courses. Feel free to dive into the config.yml file for each course and explore!


We recommend you first complete the following courses:

Projects used

This course uses all original content, we didn't use any open source projects to create it.


Developers, teachers, and team leads.

Steps to complete this course 15
  1. Choose a topic for your course

    Choose what you'd like to teach through Learning Lab, or borrow one of our suggestions for practice.

  2. Break your course into smaller steps

    Break down what you'd like to teach into smaller learning objectives.

  3. Merge your learning objectives

    Merge the pull request breaking down your course topic into smaller learning objectives.

  4. Reference the template

    Edit the config file to reference your chosen template repository.

  5. Map learning objectives to events

    Map the learning objectives you wrote to specific events from GitHub webhooks.

  6. Create an outline of learning objectives as events

    Using the same strategy of mapping learning objectives to events, create an outline of events for your course.

  7. Choose the example that shows the three phases

    Apply a label that corresponds to the example showing the three phases of a step.

  8. Create the first response

    Write the first response, phase 1, for the first step of your course.

  9. Write the first Learning Lab action

    Write the first Learning Lab action for a response into your course's configuration file.

  10. Write a gate

    Write a gate to check the user's first step

  11. Write feedback for the learner

    Write feedback into the feedback response for the learner to let them know they've done it right.

  12. Write the config logic

    Write the config logic for both responses to the learner in their first step.

  13. Create course metadata

    Add the course metadata like title and description to the configuration file.

  14. Import the course

    Import this repository as a course on GitHub Learning Lab.

  15. Close the issue

    To signal that you've tested your course, close this issue.

Learning Lab
Share Write a Learning Lab course
Average time to complete

67 minutes


All public courses on Learning Lab are free.

Latest release

What is GitHub Learning Lab?

Learn new skills by completing fun, realistic projects in your very own GitHub repository.

Ready to start learning?

Start Write a Learning Lab course