Note: Course authoring is currently in preview. We will be making frequent changes to improve the course authoring experience - please check back often to see what has changed. Have ideas or feedback? Please drop us a note.

Writing a course

A course on GitHub Learning Lab is an individual unit of interactive study. Learners complete a course by taking steps in a GitHub repository. When a learner takes steps, the Learning Lab bot responds and moves the course forward.


This is a framework to help you keep organized as you build your course. The content can be used as a progress tracker within a PR, issue, or project board in your course building repository.

If you'd prefer to build the course your own way, please feel free to do so.

1. Plan out your course

It helps to write a list of learning outcomes, actions the learner should take, and what the bot should do in response.

2. Build the course and template repositories

Every Learning Lab course requires two repositories. You'll create a template repository with starter code for your learners, and a course repository with some specific files.

GitHub Learning Lab's mascot A course on GitHub Learning Lab can guide you through this step.

3. Test your course

You'll link your repositories to Learning Lab on the new course creation page. The course will be in draft mode, where you and other administrators of your repository can test.

4. Publish your course

You'll publish your course so it's visible to anyone that visits Learning Lab if the course is public, and members of your organization if the course is private.