Course Structure

✎ Improve this page

JekyllLMS uses two collections: courses and lessons.

Courses

One Markdown file per course in _courses/. The Front Matter drives the detail page and the catalog card:

---
title: "Mastering TypeScript"
slug: typescript-mastery
category: TypeScript
level: advanced
instructor: "@mattpocock"
hours: "8.5 hours"
free: false
platform: udemy
price: "$19"
affiliate_url: "https://udemy.com/..."
thumbnail_gradient: "linear-gradient(140deg,#1e1b4b,#4338ca)"
learn:
  - "Annotate and infer types with confidence"
  - "Model complex data with generics"
prerequisites:
  - "Comfortable writing JavaScript (ES6+)"
---

learn: and prerequisites: are optional arrays rendered as a “What You’ll Learn” / “Prerequisites” section above the curriculum on the course page — omit either (or both) to hide that section entirely.

Lessons

Lessons live in _lessons/<course-slug>/ and link back with course: + order::

---
title: "Primitive Types"
course: typescript-mastery
order: 3
duration: "34:12"
video: "https://www.youtube.com/embed/XXXX"
free: true
---

The lesson player builds the curriculum sidebar automatically by querying all lessons where course matches, sorted by order. Set a video: URL to embed a player, or omit it for the code-preview placeholder.

Front Matter Reference

Key Where Meaning
slug course Must match the lesson course: value and the lesson folder name.
free course & lesson Course-level: is the course fully self-hosted/free. Lesson-level: false locks that lesson behind a teaser + redirect CTA. See Monetization.
platform course e.g. udemy, self-hosted — shown in locked-lesson CTAs and the enroll card.
affiliate_url course Where locked-lesson CTAs and the “Also on “ button link to.
price course Display string, e.g. "$19" — also feeds the course’s JSON-LD offers.price.
learn course (optional) Array of strings rendered as the “What You’ll Learn” checklist.
prerequisites course (optional) Array of strings rendered as the “Prerequisites” list.
order lesson Position in the curriculum; drives prev/next navigation and progress %.
video lesson (optional) Embeddable URL (e.g. YouTube /embed/...); omit for the code-preview placeholder.
summary lesson (optional) Short one-line description shown inline in the course curriculum row (desktop only).

Course and lesson pages also emit Course / LearningResource JSON-LD structured data automatically from this front matter — no extra setup needed.