This repo is the official content repository for the Meshery Academy, which can be run stand-alone or alongside your Meshery deployment(s) for an integrated learning experience. This academy contains learning paths, challenges, and certifications, helping engineers learn how to manage cloud-native infrastructure with Meshery.
Academies as Meshery Extensions
Academies are modular, Git-native learning management systems (LMS), which can be run stand-alone and/or as an extension of your Meshery deployment(s) for an integrated learning experience. Academies emphasize hands-on, cloud-native education (AI, Cloud, Kubernetes, CNCF projects, configuration and infrastructure management) through structured curricula, interactive Labs, embedded visualizations, and verifiable credentials.
| Purpose | Primary source of Meshery learning content |
| Platform | Runs stand-alone or alongside your Meshery deployment(s) |
| Authoring | Markdown-based content with live local preview via Hugo |
| Content types | Learning paths Β· Challenges Β· Certifications Β· Infrastructure designs |
| Org ID | c5ada327-8a58-4c8a-b9fa-51b95696488c |
Features
-
Git-native authoring & no vendor lock-in β Content lives in Git repositories (starter template:
academy-example). Authors use Markdown + YAML frontmatter, custom Hugo shortcodes, and PR-based workflows. Hugo generates the static site. -
Meshery integration β Embed live, editable cloud-native designs, visualizations, and contextual infrastructure directly into Pages, Labs, and other content.
-
Hands-on focus β Dedicated Labs, scenario-based Challenges, and interactive assessments alongside traditional content.
-
Three curriculum types β Learning Paths (comprehensive teaching), Challenges (practical/problem-solving), and Certifications (formal validation). Each optimized for different goals.
-
Advanced assessment engine β Quizzes, tests, and exams with multiple question types, progress gating, question banks, time limits, retakes, and strict scoring rules.
-
Learner experience β Progress tracking and resumption, Learning Map sidebar navigation, central Study Area (Markdown + embedded media/interactives), content discovery via filters (type, level, tags, categories), and related content suggestions.
-
Credentials β Free verifiable digital badges on completion of Learning Paths or Challenges; optional paid Certificates of Completion for Certifications (with shareable verification).
-
Enterprise capabilities (white-labeling) β Multi-tenancy, custom branding (logos, colors), branded emails/notifications, custom shortcodes/CSS, and organization-specific content isolation.
-
Local preview & publishing β
make site(or Makefile targets) for authors; automated Git-based publishing workflows to hosted environments. -
Extensibility β Mix Markdown + HTML, custom CSS, reusable shortcodes (organization-specific in
layouts/shortcodes/<org-uuid>/), and bundled assets (images/videos with size recommendations).
- meshery/meshery β Meshery core project
- meshery-extensions/meshery-academy β this repo
- meshery-extensions/digitalocean-academy
- meshery-extensions/tcslabs-academy
Before you begin, ensure you have the following installed:
| Tool | Version | Link |
|---|---|---|
| Go | see go.mod | Install Go |
| Node.js / npm | see package.json | Install Node.js |
| Git | Latest | Install Git |
(Note: Hugo Extended is managed locally via npm and does not need to be installed globally).
# Fork this repository on GitHub, then clone your fork
git clone https://github.com/<your-username>/meshery-academy.git
cd meshery-academymake setupPreferred: Start the Hugo development server with drafts and future content enabled, using the Makefile target:
make siteThe site will be available at http://localhost:1313/academy/ (or the port shown in your terminal).
Note: The local preview uses basic styling. Full Academy branding is applied after content is integrated into the cloud platform.
| Command | Description |
|---|---|
make setup |
Install npm dependencies |
make site |
Build and run site locally with draft and future content enabled |
make build |
Build the site for production |
make build-preview |
Build site for preview draft and future content enabled (honors BASEURL) |
make clean |
Clear build cache and restart the dev server |
make lint-fix |
Fix Markdown linting issues with markdownlint-cli2 |
make check-go |
Verify Go is installed locally |
make theme-update |
Update the academy-theme Hugo module to the latest version |
meshery-academy/
βββ .github/ # GitHub-related resources and automation
| βββ archive/meetings # Archived meeting minutes and discussion notes
| βββ assets/images # README assets
β βββ build/ # Makefile includes
β βββ ISSUE_TEMPLATE/ # Templates for bug reports, feature requests, and documentation issues
| βββ welcome/ # Assets used in contributor welcome messages
β βββ workflows/ # CI/CD pipelines
β βββ PULL_REQUEST_TEMPLATE.md
βββ content/ # π All learning content lives here
β βββ _index.md # Site root page
β βββ learning-paths/ # Learning paths
β βββ certifications/ # Certification content
β βββ challenges/ # Challenge content
β βββ content-formatting-examples/ # Examples of Markdown and Hugo shortcodes
βββ layouts/ # Hugo layout overrides & shortcodes
β βββ _partials/ # Partial templates
β βββ shortcodes/ # Custom Hugo shortcodes
βββ static/ # Static assets
βββ public/ # Generated site output (git-ignored)
βββ resources/ # Hugo resource cache
βββ go.mod / go.sum # Go module dependencies
βββ hugo.yaml # Hugo configuration
βββ Makefile # Build & development commands
βββ package.json # Node.js dependencies
βββ README.md # Project documentation
The Academy content follows this structure: Learning Path β Course β Chapter β Lesson.
content/
βββ learning-paths/
βββ _index.md
βββ <orgID>
βββ <your-learning-path>/
βββ _index.md
βββ <your-course>/
βββ _index.md
βββ content/
βββ lesson-1.md
βββ lesson-2.md
- Place your image files directly in the same directory as your markdown content (Page Bundling method):
content/learning-paths/<orgID>/
βββ your-course/
βββ your-module/
βββ _index.md
βββ meshery-logo.pngEmbed videos in a visually distinct card using:
{{</*card title="Video: Example" */>}}
<video width="100%" height="100%" controls>
<source src="https://example.com/your-video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
{{</* /card*/>}}-
Place Design Assets Put your design files (e.g.,
cdn.js, design YAMLs) alongside your course or module content, ideally following the same directory conventions used for images. -
Embed Using the meshery-design-embed Shortcode In your markdown file, use:
{{< meshery-design-embed
id="embedded-design-0e3abb9c-39e7-4d09-b46f-26a0238c3c3d"
src="cdn.js"
>}}- Replace
idwith the unique identifier for your design. - Replace
srcwith the path to your JS asset responsible for rendering.
Always use these shortcodes for images, videos, and embedded designs. This keeps assets portable, ensures they resolve correctly for each organization, and integrates properly with the Academy platformβs build and deployment flow.
Assessment files use the Academy test layout. Question and option IDs must be unique within their scope.
---
title: "Assessment Example"
id: "assessment-example"
type: "test"
layout: "test"
passPercentage: 70
maxAttempts: 3
timeLimit: 30
numberOfQuestions: 1
questions:
- id: "q1"
text: "Meshery Academy content is authored in Markdown."
type: "true-false"
marks: 1
options:
- id: "true"
text: "True"
isCorrect: true
- id: "false"
text: "False"
---To preview your content locally, run:
make setup
make siteOnce your learning path content is ready and tested locally, open a pull request in this repository.
Meshery Extension contributors and maintainers will review and merge your changes.
We welcome contributions to improve:
- Content accuracy and clarity
- Additional learning paths, challenges, or certifications
- Shortcodes, layouts, and formatting
- See CONTRIBUTING.md for details on branching, committing, and opening PRs.
- Please review our CODE_OF_CONDUCT.md and SECURITY.md before contributing.
- Community Slack: https://slack.meshery.io/
Happy Learning!