Building Challenges
Categories:
In Layer5 Academy, a Challenge is a hands-on, scenario-based task. Where a Learning Path teaches a subject from the ground up and a Certification tests knowledge a learner already has, a Challenge gives them a concrete problem and asks them to solve it.
When to Use a Challenge π
| Feature | Learning Path | Challenge | Certification |
|---|---|---|---|
| Primary Goal | To teach and guide through a comprehensive curriculum. | To solve a specific, hands-on problem in a competitive scenario. | To validate and prove existing knowledge through formal examination. |
| Structure | Hierarchical (Path β Courses β Modules). | Typically a single, scenario-based task. | Flat; a collection of one or more exams. |
| Main Content | Lessons, informational pages, labs, and progressive assessments. | A set of instructions for a practical task and a validation mechanism. | A series of exams, potentially with a brief study guide. |
| Outcome | Acquired knowledge and skills. | A score and rank status. | An optional, paid official certificate and a verifiable badge. |
Challenge: Focus on Doing, Not Reading
Choose a Challenge when the point is for the learner to build, break, or fix something real. If most of your material is explanation, it belongs in a Learning Path instead.How to Create Your Challenge π
Challenges are authored the same way as every other Academy content type: as Markdown in your organization’s Academy content repository, published through a Git-native workflow. If you have not set that repository up yet, start with Creating Content for the Academy, which covers the repository setup once for all three content types.
Find Your Organization UUID and Challenge ID π
Important: Replace UUIDs
Throughout this guide you will see<your-organization-uuid> and <your-challenge-uuid> placeholders. Replace all of them with your actual UUIDs from the Instructor Console.Each challenge is tied to a specific organization and identified by a UUID, which is how the Academy scopes your content to your organization and tracks learner progress against it.
You need two:
- Challenge ID - a unique identifier for this challenge, set as the
idin the front matter of its_index.md. - Organization ID - your organization’s UUID, used in the directory path.
The Create New Content tool in the Instructor Console generates both for you, along with a ready-to-paste front matter block. Choose Challenge as the Content Type. See Using the Content Creation Tool.
1. Set Up the Directory Structure π
All challenges live under content/challenges/<your-organization-uuid>, each in its own folder named with a descriptive, URL-friendly slug. The final URL follows this pattern:
https://cloud.layer5.io/academy/content/challenges/<your-organization-uuid>/<challenge-folder-name>/
A challenge is typically one scenario broken into a few sections:
content/challenges/<your-organization-uuid>
βββ keda-autoscaling-challenge/ <-- The <challenge-name> directory
βββ _index.md <-- Defines the challenge's metadata
βββ keda-icon.svg <-- Banner image, referenced from the front matter
βββ autoscaling-with-keda/ <-- The task itself
βββ _index.md <-- The objective and prerequisites
βββ content/
βββ description/ <-- What the challenge is about, and the steps
βββ getting-started/ <-- How to set up and begin
βββ faq/ <-- Common questions
A challenge that ships an interactive lab and a graded exam adds them as their own sections alongside the task:
content/challenges/<your-organization-uuid>
βββ heal-the-mesh/
βββ _index.md
βββ lab/
β βββ _index.md <-- The hands-on lab
βββ exam/
βββ _index.md <-- The assessment that closes the challenge
Sections Are Yours to Name
description, getting-started and faq are a convention, not a fixed structure - the folder hierarchy you create is what the Academy renders as the challenge’s navigation. Use the sections your scenario actually needs.2. Define the Challenge with Front Matter π
The _index.md at the root of the challenge folder carries its metadata. Here is a complete example, taken from a published challenge:
---
title: "CNCF Autoscaling Challenge"
description: "Learn event-driven autoscaling in Kubernetes. Work with scaled objects in KEDA, monitoring with Prometheus, OpenTelemetry & CloudEvents and advanced KEDA configurations."
banner: "keda-icon.svg"
id: "<your-challenge-uuid>"
weight: 1
tags: [meshery, keda, open source]
level: "advanced"
categories: "platform"
prerequisite_knowledge:
- title: "Access to Meshery"
children:
- title: "Self-hosted Meshery"
link: "https://docs.meshery.io/installation"
- title: "Meshery Playground"
link: "https://play.meshery.io"
additional_attributes:
- title: "Retake Policy"
value: "3"
description: "Up to three retakes allowed per exam"
---
Front Matter Fields Reference π
Fields marked β are required; those marked - are optional.
| Field | Required | Description |
|---|---|---|
id | β | Crucial. A stable UUID used to track learner progress. Do not change it once learners have enrolled. |
title | β | The human-readable title shown to learners. |
description | β | A summary of the scenario. This is the text learners read on the catalog card. |
weight | - | Controls display order (lower numbers appear first). Items are sorted alphabetically by title if not specified. |
banner | - | Path to a banner image in the same folder (Page Bundle). |
tags | - | Keywords for discovery. Learners can browse by tag. |
level | - | Intended difficulty: beginner, intermediate or advanced. Default: beginner. |
categories | - | Assigns the challenge to a category. |
badge | - | Defines the digital badge awarded on completion. Its png and svg fields accept a full remote URL or a local file path in the same folder. |
prerequisite_knowledge | - | What a learner needs before starting, rendered as a list with optional links. |
additional_attributes | - | Free-form title/value/description rows, used for things like retake policy and scoring. |
Where `type` Comes From
You do not settype: "challenge" on every file. The content/challenges/_index.md at the top of the section declares it once and cascades it to everything beneath, so each challenge inherits the right type - and therefore the right template - automatically.3. Write the Scenario π
The task’s own _index.md is where you state the objective and the prerequisites, and the sections beneath it carry the detail:
- Description - what the challenge is about, and the numbered steps a learner must follow to complete it.
- Getting Started - how to get an environment ready, including any Meshery access the scenario needs.
- FAQ - the questions learners predictably ask.
Write the steps so that success is unambiguous. A challenge is scored, so a learner needs to know exactly what “done” looks like before they start.
4. Add the Assessment π
Most challenges close with an exam that validates the learner’s work. Exams in a challenge follow the same unified Academy assessment standard as every other content type.
How to Create and Configure Exams
For question types, scoring, passing percentages, question pools and retry settings, see the Integrating Assessments in the Academy guide.5. Publish π
Publishing a challenge is the same two-stage release process as the rest of your Academy content: a GitHub Release on your content repository, followed by a Layer5 Cloud release. Until both have happened, your changes will not be live. See Publishing Your Content.
Monitoring Your Challenge π
Once a challenge is live, the Instructor Console is where you watch how it is doing. Every widget there can be narrowed to challenges:
- Content Stats counts your published content by type; clicking the Challenge count opens the Academy Catalog filtered to your challenges.
- Content Metrics ranks your content by passes, so you can see where your challenge sits against your other material.
- All Learners Report lists individual registrations. Filter Content Type to
Challengeto see only the people attempting yours, and filter Status to follow who isRegistered,In Progress,Completed,FailedorWithdrawn. - Test Stats and Test Metrics report pass rates per assessment, which is how you tell a challenge that is hard from one whose instructions are unclear.
A full tour of each widget, and what to do about what it tells you, is in the Academy Instructor Console Guide.
Enterprise Feature
The Instructor Console and custom academy features are available exclusively for organizations on an Enterprise plan. Learn moreLearner Outcomes: Badges π
Completing all the required components of a challenge earns the learner a digital badge - a verifiable credential they can share on their professional profiles. Unlike a Certification, a Challenge does not issue a paid Certificate of Completion; its outcome is the score, the rank, and the badge.
See Earning Badges and Certificates for the learner’s side of this.
Frequently Asked Questions π
Can a challenge have more than one task?
Yes. The folder hierarchy beneath the challenge’s _index.md is what defines its structure, so a challenge can hold several sections. Most challenges are a single scenario because that keeps the objective sharp, but nothing prevents a longer one.
Does a challenge have to include an exam?
No. An exam is the usual way to validate that the learner solved the problem, but a challenge whose completion is judged by a lab does not need one.
Can I change a challenge after learners have started it?
You can edit its content freely - but never change its id. That UUID is what learner progress is recorded against, and changing it orphans every registration made against the old value.
How do learners find my challenge?
Through the Academy catalog, filtered by Content Type β Challenge. See Exploring the Content Catalog.