Using Academy Content Template Creator
Categories:
The Academy Content Template Creator is a step-by-step wizard that helps you create structured templates for your Academy content. This generator streamlines the process of creating learning paths, challenges, and certifications by collecting all necessary metadata and generating a ready-to-use template.
Getting Started 🔗

- Access the Creator: Click on the “Create New Content” card in your Academy dashboard
- Create Your Content: The wizard will guide you through 5 essential steps to create your content template
Since it’s straightforward, let’s walk through a practical example to demonstrate the process.
Example: Creating “Meshery Contributors Certification” 🔗
This example demonstrates how to use the Academy Content Template Creator to build a certification program for Meshery contributors. Each step shows what information to enter, followed by specific example values.
Step 1: Basic Information 🔗

- Type: Choose “Certification” from Learning Path, Challenge, or Certification
- Title: “Meshery Contributors Certification”
- Description: “A comprehensive certification program for developers looking to become active contributors to Meshery”
Step 2: Content Details 🔗

- Categories: “open-source, cloud-native”
- Add Tags: “meshery”, “kubernetes”, “golang”, “contribution”, “open-source”
- Banner Image: “images/meshery-contributors-banner.svg”
Step 3: Content Access 🔗

- Workspace: “Meshery Academy”
- Team: “Contributors Program”
- Access Status: Enabled
- Content Access End Date: Leave blank for permanent access (Meshery always welcomes contributors)
Understanding Access Status: Enabled vs Disabled
Access status sets the invitation to enabled or disabled. It defaults to enabled. It does not by itself hide the catalog card. New content starts public, not ready, and beginner. Catalog visibility is that public flag. Access status only governs enrollment.
Enabled: a signed-in learner can enroll. Enrolling accepts the invitation.
Disabled: the invitation blocks enrollment. Learners who already enrolled keep their role and team membership. Their progress is not paused.
Content Access End Date is the invitation’s expiry. Leave it empty for no expiry. Expiry is checked at enrollment. After it passes, new learners cannot enroll. Learners who already enrolled keep their role and team membership.
The team field accepts one existing team. That team is added to the invitation, and learners join it when they enroll. You can type a new workspace name. The team must already exist.
Step 4: Recognition 🔗

The Recognition step defines the badge or certificate awarded upon completion. You have two options:
- Use Existing Recognition: Choose from the Layer5 collection
- Create New Recognition: Design a custom badge with an image URL
For our example:
- Create a “Meshery Contributor” badge with the Meshery logo
Step 5: Generate Template 🔗

After clicking “Continue” in Step 4, a success notification appears in the bottom-right corner confirming your template has been created successfully.
Navigation Between Steps
You can navigate back to any previous step to make modifications. When you return to earlier steps and make changes, your entries in the subsequent steps will remain intact.Generated Template Output for Meshery Contributors Certification:
This template provides the YAML front matter metadata for static site generators (like Hugo/Jekyll). After copying it, we can directly create new content files in our Academy repository.
---
type: "certification"
title: "Meshery Contributors Certification"
description: "A comprehensive certification program for developers looking to become active contributors to Meshery"
weight: 1
banner: "images/meshery-contributors-banner.svg"
id: "unique-content-id"
level: "beginner"
---
Provide a brief summary of what learners will gain.
<!-- Add your Academy content here -->
Important Reference IDs
Make note of two key identifiers for your content files:
- Content ID: Unique identifier for this specific content
- Organization ID: Your organization’s identifier (remains constant)
The level key in this output always reads beginner, whatever difficulty you picked on Content Details. Set it to beginner, intermediate, or advanced yourself. The creator also includes tags and categories when you entered them, and commented competencies and prerequisite_knowledge samples you can uncomment. weight is fixed at 1 until you change it.
Content ID Updates
The creator writes the record when you advance from Recognition to Generate Template. You can go back and your entries stay, but advancing to the last step again creates another record with a new content ID and a new invitation. Use the ID on the final screen of your last run, and treat any earlier record as unused.Next Steps 🔗
After generating our template:
- Copy the Template: Use the provided copy button to get your front matter
- Create Your Content File: Paste the template into a new .md file in your academy repository
- Add Your Content: Replace the placeholder comment with your actual learning material
Manage Invitation 🔗
Auto-Generated Invitations 🔗
Navigate to Identity → Invitations to find your automatically created invitation.

The first column labeled “INVITATION” contains a shareable link that you can copy.
What Can the Invitation Link Do for You? 🔗
The auto-generated invitation link is a powerful tool that helps instructors efficiently manage learner access and streamline the enrollment process.
1. What accepting the invitation does 🔗
Enrolling accepts the invitation. Acceptance is where access is decided.
- Team: The learner is added to the one team you picked, if they are not already a member. The creator does not assign several teams.
- Role: Academy Learner is assigned in the organization if the learner does not already hold it.
- Who can accept: The email list starts empty, so anyone who is signed in can accept. The invitation is not limited to people already in your organization, and it does not email the team for you. Add exact addresses or
@domainentries on the invitation to restrict who can accept. See User Invitations.
2. Sharing the link 🔗
Copy the invitation link from the invitation list and send it yourself. The link registers a learner for the content by accepting that invitation. It does not send mail on its own.
Customize Invitation Properties 🔗
Click the pencil icon to access the invitation customization form.

The invitation form contains eight properties. Three are automatically generated by the system for convenience, which you can modify according to your needs:
Auto-Generated Properties:
- Name:
Academy Invitation for <slug>, using the generated slug, not the title you typed. - Description: Identifies the organization and the curricula the invitation is for.
- Roles: Defaults to Academy Learner. Academy roles lists what that role can do. Empty quota means unlimited acceptances, and the invitation counts each person once.
Admin Role Invitations
Academy admins can invite other instructors to become co-admins by changing the Roles property from “Academy Learner” to “Academy Admin” during invitation customization.Customizable Properties:
1. Emails - Invitation Email List 🔗
The email list restricts who may accept. It starts empty, and an empty list lets any signed-in user accept. It does not send the invitation for you.
- Supported Formats:
- Individual emails:
[email protected] - Domain entries:
@domain.com(only addresses at that domain may accept)
- Individual emails:
- Duplicate Handling: The system automatically merges duplicate entries
- Quantity Recommendations:
- Small team invitations: 10-50 email addresses
- Department-level invitations: 100-200 email addresses
- Large organizations: Use domain wildcards like
@company.cominstead of listing individual emails
2. Expires At - Expiration Settings 🔗
Control when the invitation expires:
- Flexibility: Supports any time setting, extension, and recovery. Leave blank for permanent access
- What happens at expiration?
- Expiration is only checked when users attempt to accept the invitation
- If the expiration time has passed, users cannot proceed with the invitation
- Expiration check compares server current time vs. set expiration time
- Can I modify expired invitations?
- Yes, you can recover and extend expiration times by entering edit mode
3. Quota - Usage Limits 🔗
Set limits on how many users can accept the invitation:
- When quota is exceeded:
- Operates on a first-accept, first-in basis
- Users beyond the quota cannot join, even with a valid invitation link
- Recovery options:
- If quota is reached, you can increase the quota to restore access
- Admin console provides real-time usage monitoring
4. Teams - Team Assignment List 🔗
Specify which teams invited users will join:
- Team Selection: Choose one existing team. The creator accepts a single team, and learners join that team when they enroll.
- No Teams Available: If your organization has no teams, create one first.
Team Structure Changes
During Organization Restructuring:
- If team structure changes after invitations are sent
- Some teams may be merged or deleted
- New users can still join remaining valid teams
Permission Management Updates:
- Team permission policies may change
- Some teams might close to new users
- Other teams continue accepting new members normally
5. Status - Enabled/Disabled 🔗
Control invitation accessibility:
- Enabled: Enrollment can accept the invitation.
- Disabled: Enrollment fails. Learners who already enrolled are not removed.
Invitation Idempotency
Acceptance is idempotent. A learner who accepts twice gains no duplicate membership or role, and the invitation counts them once.When an enrollment hits a disabled, expired, full, or email-restricted invitation, the request fails with a server error. The registration is recorded before the invitation is evaluated, so the learner can appear in the Learners view without having joined the organization or the team. Fix the invitation, then have the learner enroll again.
Content created while the console is scoped to all organizations belongs to the provider organization. It has no attached invitation, so enrollment accepts nothing and grants no team or role.
You can change the team, access status, and end date later from the Curricula view of the Instructor Console. To bring in a co-instructor, create an invitation with the Academy Admin role instead of Academy Learner.