Creating Your First Learning Path
Categories:
This guide provides a step-by-step walkthrough for creating and organizing a new learning path in the Layer5 Academy. You’ll learn how to set up your content repository, structure your courses, add assets, preview your work, and publish it for your organization.
1. Set Up Your Content Repository π
Start by preparing a dedicated Git repository for your learning content. Using our official Layer5 template to help you get started quickly.
- Fork the academy-example Repository
- Go to the academy-example repository on GitHub.
- Click Fork to create a copy under your own GitHub account.
- Clone Your Fork Locally
- Use the
git clonecommand to download your forked repository. - Example:
# Replace `<your-username>` with your actual GitHub username git clone https://github.com/<your-username>/academy-example.git cd academy-example git checkout -b <your-feature-branch>
Update the Go Module Path
- Open the
go.modfile located at the root of youracademy-exampleproject. - The first line will be:
module github.com/layer5io/academy-example- Change this line to match your fork’s path:
module github.com/<your-username>/academy-example- Save the file, then commit and push this change to your repository.
- Open the
Critical Step
This step is essential. It updates your repository’s “identity card” (go.mod) to match its new “address” (your GitHub URL). Without this change, the layer5 cloud build process will fail.2. Structure Your Learning Path π
The Academy uses a specific directory layout to keep each organization’s content separate and secure.
Get Your Organization ID
Each learning path is tied to a specific organization. Before creating content, you must get your organization’s unique identifier (UID). This is a system-generated ID, not a name you create.
What is the UID?
The Organization UID ensures that your learning content is securely associated with your organization and displayed only to its members. You will use this exact UID to name your core content folders.Create the Core Directories
Now, inside your
academy-exampleproject, you should see the following top-level folders.content/learning-paths/<your-organization-uid>/Thiscontentdirectory is where all your written material lives. The folder hierarchy you create here directly defines the navigation and organization of your learning paths.static/<your-organization-uid>/Thisstaticdirectory is for all your assets, such as images, diagrams, and so on.layouts/shortcodes/<your-organization-uid>/Thislayoutsdirectory is for advanced use. You can place custom Hugo Shortcodes here if you need special reusable components in your lessons.
Build the Content Hierarchy
With the main folders in place, you can now structure your first course inside the
contentdirectory. The content is organized in a clear hierarchy: Learning Path β Course β Chapter β Lesson.A high-level view of the structure looks like this:
content/ βββ learning-paths/ βββ _index.md βββ <your-organization-uid>/ βββ <your-learning-path>/ βββ _index.md βββ <your-course-1>/ βββ <your-course-2>/ βββ _index.md βββ content/ βββ your-lesson-1.md βββ your-lesson-2.mdEach folder represents a level in the hierarchy, and the
_index.mdfile within a folder defines the metadata (like title and description) for that level. The final.mdfiles are your individual lessons.Let’s look at the role of each level:
The Section (
learning-paths) This is the top-level category for your content. The_index.mdfile at this level defines the main landing page for all learning paths.Your Organization Folder (
<your-organization-uid>) This is the most important folder for ensuring your content is properly scoped. All of your learning paths must reside inside a single folder named with your organization uid.The Learning Path (
<your-learning-path>) This folder represents a complete learning path. The_index.mdfile inside it contains the title, description, and other metadata that will be displayed on the learning path’s summary card.The Course or Chapter (
<your-course>) Within a learning path, each course or chapter gets its own folder. The_index.mdfile here defines the course’s metadata and, most importantly, thetoc(Table of Contents) that sets the order of your lessons.The Lessons (
content/) Finally, inside each course folder, acontentdirectory holds all your individual lesson files, written in standard Markdown.
Front matter
Use this at the top of each Learning Path page (
learning-paths/<orgId>/<slug>/_index.mdor similar):--- title: "Mastering Kubernetes for Engineers" description: "Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads" banner: null # Optional, URL to banner image ---Place this frontmatter in the Markdown file that represents the learning path index page.
Course Frontmatter (Optional Individual Course Pages)
If each course has its own markdown page, you can use this frontmatter:
```yaml --- title: "Kubernetes Basics" description: "Learn the basics of Kubernetes" weight: 1 banner: null # Optional --- ```Summary of Required Fields
Type Field Required Notes Learning Path titleβ descriptionβ weightβ Defines order in the path bannerβ Optional image URI Course titleβ descriptionβ weightβ Defines order in the path bannerβ Optional image URI prerequisitesβ Optional List of prerequisites for the course
3. Add Assets and Interactive Content π
Enhance your course with images and other visual aids. To ensure compatibility with the multi-tenant Academy platform, do not use standard Markdown image links. Instead, use the usestatic shortcode, which generates the correct, tenant-aware path for your assets.
How to Add an Image
- Place your image file (e.g.,
hugo-logo.png) in your scoped static directory:static/<your-organization-uid>/images/hugo-logo.png - In your
lesson-1.mdfile, embed the image using theusestaticshortcode. Thepathis relative to your scoped static folder: 
Then the system will automatically convert this into the correct URL when building the site.
4. Build and Preview Locally π
Before publishing, preview your content locally to check formatting and structure. Run the following command in your project directory:
hugo server
This will start a local server where you can view your content.

The local preview shows basic styles; the full Academy styling will appear after your content is uploaded to the cloud platform.
5. Going Live π
After you have completed and tested your content locally, reach out to the Layer5 team to request integration of your learning path. You can connect with us via Slack, email, or by opening a GitHub issue. Be sure to provide the URL of your course repository when making your request.
A Layer5 administrator will then integrate your repository into the main Academy platform by updating the central configuration to mount your repository as a Hugo Module. Once this process is complete, your learning paths will be visible on the official Layer5 Cloud site.
Frequently Asked Questions π
How do I handle updates or corrections after my content is live?
All content updates and corrections are managed through your own Git repository. Simply commit and push your changes, and they will be automatically synchronized and published with the next Layer5 Cloud release.
How do I structure multiple courses under one learning path?
The structure is defined by your folder hierarchy. A learning path is a directory, and each course is simply a sub-directory within that path. This folder structure in your
contentdirectory directly maps to the learning path structure presented to users.