Courses represent a significant investment for students. They're committing time, money, and energy to learning from you. Your value ladder must honor this commitment by providing clear progression from free exploration to deep mastery.

Course creators often make the mistake of offering only one program. This forces potential students into an all-or-nothing decision. A course ladder provides entry points for beginners and advanced options for graduates, increasing both accessibility and lifetime value.

Mini-Course Core Course Flagship Mastermind

The Course Ladder Structure

A complete course ladder might include:

  • Free mini-course: 5-day email course or short video series
  • Low-ticket workshop: Focused, 60-90 minute training
  • Core course: Comprehensive self-study program
  • Cohort course: Group learning with live elements
  • Mastermind: High-touch ongoing community

Not every creator needs all levels. Choose the rungs that serve your audience and fit your capacity. The key is providing progression for students at different stages.

Rung Price Range
Free mini-course $0
Workshop $27-97

The Free Mini-Course as Lead Magnet

A free mini-course is one of the most effective lead magnets for course creators. Delivered over 5-7 days via email, it provides genuine transformation while demonstrating your teaching style. Students experience your approach before committing to paid programs.

Design your mini-course to deliver a quick win. What's the smallest transformation you can provide in a week? A content creator might offer "5 Days to Better Headlines." A fitness coach might offer "5 Days to Better Mornings." The win creates momentum and trust.

The Workshop: First Paid Step

A focused workshop provides deeper transformation in 60-90 minutes. Price it accessibly to reduce friction for first-time buyers. Deliver clear value that leaves participants wanting more. The workshop serves as both product and promotion for your core course.

Live workshops build connection and allow Q&A. Recorded workshops can sell on autopilot. Consider both formats to serve different preferences. Promote the workshop to mini-course graduates who are ready to go deeper.

The Core Course: Your Flagship

Your core course is your main offer. It delivers complete transformation through comprehensive curriculum. Structure it for self-study with video lessons, worksheets, and resources. Price it based on the value of the transformation it provides.

Core courses can be evergreen (always available) or open on a schedule. Evergreen courses generate passive income but require strong student motivation. Scheduled courses create community and accountability but require more active management.

Core Course Elements:
- Video lessons (10-20 modules)
- Worksheets/workbooks
- Resource library
- Community access
- Lifetime updates
  

Cohort Programs: Live Learning

Cohort-based courses add live elements to self-study. Weekly calls, group accountability, and fixed start dates create structure that many students need. The cohort format commands higher prices and produces stronger results.

Run cohorts 2-4 times per year. Each cohort becomes an event you can promote and fill. Students bond with each other, increasing retention and referrals. Cohort graduates become candidates for your highest offers.

The Mastermind: Peak of the Ladder

At the top, offer a mastermind for your most committed students. This might include ongoing coaching, peer accountability, and advanced content. The mastermind provides maximum support for maximum transformation.

Masterminds work well as ongoing memberships with monthly calls and community. Students stay for years, building deep relationships and achieving sustained results. This rung provides recurring revenue and deep fulfillment.

Moving Students Up the Ladder

Each course should naturally lead to the next. Within your mini-course, mention the workshop. Within the workshop, mention the core course. Within the core course, mention the mastermind. Make progression feel like the obvious next step for those ready.

But never pressure. Some students will only ever take your mini-course, and that's fine. Others will climb every rung. Serve each where they are, and they'll climb when they're ready.

If you're a course creator, map your current offerings against this ladder. Where are the gaps? What could you add to serve students at different levels? Start with one new rung and build from there.

context-aware related posts in jekyll using liquid

Why Contextual Related Posts Improve Engagement

Most "Related Posts" systems simply match by tags or categories. While this works in many cases, it can feel too broad. A more intelligent approach is to show posts that are related based on the user's context or the post’s core theme. This increases reader retention and keeps your content experience focused.

We’ll use Jekyll’s powerful Liquid syntax to achieve context-sensitive recommendations.

Core Idea Behind Context-Aware Related Posts

Instead of relying solely on tags or categories, you can:

  • Define a primary topic for each post
  • Group related posts by series, pillar, or type
  • Set up fallback logic if no strong match exists

This way, you can recommend:

  • Other parts of a tutorial series
  • Posts targeting the same user intent
  • Posts with the same use case (e.g. Jekyll for documentation)

Step-by-Step: Smarter Related Posts

Step 1: Define Contextual Fields

In your post front matter, add fields that describe context:

---
title: "Optimizing Jekyll Templates"
category: jekyll
series: "template-performance"
pillar: "layout"
type: "tutorial"
---

Repeat this for any post you want to be part of a logical group.

Step 2: Build Context Matching in Layout

We’ll match posts by series, falling back to pillar if no match is found. In your _layouts/post.html, insert:

{% assign context_series = page.series %}
{% assign context_pillar = page.pillar %}
{% assign related_series = site.posts | where: "series", context_series | where_exp: "post", "post.url != page.url" %}
{% assign related_pillar = site.posts | where: "pillar", context_pillar | where_exp: "post", "post.url != page.url" %}

{% if related_series.size > 0 %}
  <div class="related-posts">
    <h3>More from this series</h3>
    <ul>
    {% for post in related_series limit:3 %}
      <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
    </ul>
  </div>
{% elsif related_pillar.size > 0 %}
  <div class="related-posts">
    <h3>Related posts on this topic</h3>
    <ul>
    {% for post in related_pillar limit:3 %}
      <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
    </ul>
  </div>
{% endif %}

Step 3: Add Optional Filtering by Type

You can go further and match by a third context like post type:

{% assign related_type = site.posts | where: "type", page.type | where_exp: "post", "post.url != page.url" %}

Use this as a final fallback.

Visual Variations Based on Context

You can also dynamically change the heading or section style:

{% if page.series %}
  <h3>Continue the "{{ page.series | capitalize }}" series</h3>
{% elsif page.pillar %}
  <h3>Explore more on "{{ page.pillar | capitalize }}"</h3>
{% else %}
  <h3>You may also like</h3>
{% endif %}

This makes the related section more personalized and relevant.

Case Study: A Jekyll Knowledge Base

Let’s say you are running a technical documentation site with categories like api-reference, tutorials, and guides. Each post can be grouped by:

  • product area: auth, payment, analytics
  • series: onboarding, setup, advanced

With the system above, you can easily recommend relevant articles without needing a plugin, database, or even search engine.

Advantages of This Approach

  • Zero JavaScript – Works at build time, not runtime
  • Highly customizable using front matter
  • Works on GitHub Pages without any plugins
  • More relevant suggestions for readers

Tips for Long-Term Maintenance

  • Define a consistent set of series and pillar values across posts
  • Use `_data/context.yml` to manage your series or topics
  • Apply the same layout logic to collections (e.g. `docs`, `guides`, etc.)

Conclusion

By going beyond basic tag-matching and building a layered context-based system, you give your Jekyll blog or documentation a much more powerful user experience. It's simple, clean, and works entirely within the GitHub Pages ecosystem—no plugins or search libraries required.

In the next article, we’ll build on this and explore how to use a **centralized YAML data file** to control related post groupings across your entire Jekyll site.