{
  "schema": "launchmyserver.blueprint/v1",
  "source": "https://launchmyserver.com/templates/cohort-course",
  "updated": "2026-11-12",
  "slug": "cohort-course",
  "name": "Cohort Course",
  "title": "Cohort-Based Course Discord Server Template",
  "description": "Discord template for cohort-based courses: one shared server with a category per cohort, pod threads, live session stage, roles and archive workflow.",
  "tagline": "For live cohort programs, bootcamps and challenges with start and end dates.",
  "bestFor": [
    "Cohort-based courses",
    "Bootcamps",
    "6 to 12 week challenges"
  ],
  "sizeHint": "One server, many cohorts: add a category per cohort and archive when it ends.",
  "discord_template_url": null,
  "categories": [
    {
      "name": "START HERE",
      "channels": [
        {
          "name": "welcome",
          "type": "text",
          "topic": "How the program works and the schedule.",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "rules",
          "type": "text",
          "topic": "Rules and attendance expectations.",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "announcements",
          "type": "announcement",
          "topic": "Program-wide updates.",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "introductions",
          "type": "text",
          "topic": "Introduce yourself to all cohorts.",
          "access": "Members can read and post"
        }
      ]
    },
    {
      "name": "COHORT 1 (rename per cohort)",
      "channels": [
        {
          "name": "c1-announcements",
          "type": "text",
          "topic": "Session links, homework, deadlines.",
          "access": "Cohort 1 role: read; Staff posts"
        },
        {
          "name": "c1-chat",
          "type": "text",
          "topic": "Cohort discussion.",
          "access": "Cohort 1 role only"
        },
        {
          "name": "c1-homework",
          "type": "forum",
          "topic": "One post per assignment. Tags: Week 1-6, Feedback given.",
          "access": "Cohort 1 role only"
        },
        {
          "name": "c1-pods",
          "type": "text",
          "topic": "Private threads per accountability pod (4-6 people).",
          "access": "Cohort 1 role only; pods in private threads"
        },
        {
          "name": "c1-live",
          "type": "stage",
          "topic": "Live sessions.",
          "access": "Cohort 1 role only"
        }
      ]
    },
    {
      "name": "ALUMNI",
      "channels": [
        {
          "name": "alumni-chat",
          "type": "text",
          "topic": "All past cohorts together.",
          "access": "Alumni role only"
        },
        {
          "name": "jobs-and-opportunities",
          "type": "forum",
          "topic": "Share opportunities.",
          "access": "Alumni role only"
        }
      ]
    },
    {
      "name": "SHARED",
      "channels": [
        {
          "name": "general",
          "type": "text",
          "topic": "Cross-cohort chat.",
          "access": "Members can read and post"
        },
        {
          "name": "resources",
          "type": "text",
          "topic": "Program library.",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "co-working",
          "type": "voice",
          "topic": "Drop-in work sessions.",
          "access": "Members can read and post"
        }
      ]
    },
    {
      "name": "ARCHIVE",
      "channels": [
        {
          "name": "(archived cohort channels)",
          "type": "text",
          "topic": "Move ended cohort channels here, read-only.",
          "access": "Alumni read-only"
        }
      ]
    },
    {
      "name": "STAFF",
      "channels": [
        {
          "name": "staff",
          "type": "text",
          "topic": "Facilitators.",
          "access": "Hidden from everyone except Staff"
        },
        {
          "name": "mod-log",
          "type": "text",
          "topic": "Logs.",
          "access": "Hidden from everyone except Staff"
        }
      ]
    }
  ],
  "roles": [
    {
      "name": "Admin",
      "color": "#2f5d50",
      "purpose": "Owner",
      "permissions": [
        "Administrator"
      ],
      "assignedBy": "Owner"
    },
    {
      "name": "Facilitator",
      "color": "#e9b44c",
      "purpose": "Instructors, TAs",
      "permissions": [
        "Manage Messages",
        "Manage Threads",
        "Manage Events",
        "Mute/Move Members",
        "Timeout Members"
      ],
      "assignedBy": "Admin"
    },
    {
      "name": "Cohort 1, Cohort 2, ...",
      "color": "#4b7bec",
      "purpose": "Current cohort access (one role per cohort)",
      "permissions": [
        "View that cohort's category"
      ],
      "assignedBy": "Staff from the enrollment list, or a purchase integration"
    },
    {
      "name": "Alumni",
      "color": "#8854d0",
      "purpose": "Finished a cohort",
      "permissions": [
        "View ALUMNI and ARCHIVE"
      ],
      "assignedBy": "Staff when a cohort ends"
    },
    {
      "name": "Timezone: Americas / EMEA / APAC",
      "color": "#a5b1c2",
      "purpose": "Pod matching and event times",
      "permissions": [
        "None"
      ],
      "assignedBy": "Onboarding question"
    }
  ],
  "permissionNotes": [
    "Each cohort category: deny @everyone View Channel; allow that cohort's role. Duplicate the category for each new cohort (Discord's Clone Channel copies permissions per channel).",
    "Pods as private threads inside #cX-pods: facilitators add members; members can't see other pods.",
    "When a cohort ends: give everyone Alumni, remove the cohort role, move channels to ARCHIVE and deny Send Messages.",
    "Discord caps channels per category and per server; archive or delete old cohorts before you hit the limit (check current limits in Discord's help center)."
  ],
  "onboarding": [
    {
      "question": "Which cohort are you in?",
      "required": true,
      "multiSelect": false,
      "options": [
        {
          "label": "Current cohort (verify enrollment)",
          "grants": "Points to verification steps; cohort role is given by Staff"
        },
        {
          "label": "Alumni",
          "grants": "Points to alumni verification"
        },
        {
          "label": "Considering the next cohort",
          "grants": "Shared channels only"
        }
      ]
    },
    {
      "question": "Where are you based?",
      "required": true,
      "multiSelect": false,
      "options": [
        {
          "label": "Americas",
          "grants": "Timezone: Americas"
        },
        {
          "label": "Europe / Africa / Middle East",
          "grants": "Timezone: EMEA"
        },
        {
          "label": "Asia-Pacific",
          "grants": "Timezone: APAC"
        }
      ]
    }
  ],
  "automod": [
    {
      "rule": "Block Mention Spam",
      "setting": "On. Start with a low mention limit per message (Discord lets you choose the number) and enable raid protection.",
      "response": "Block message + send alert to #mod-log + timeout member"
    },
    {
      "rule": "Block Suspected Spam Content",
      "setting": "On for all channels.",
      "response": "Block message + send alert to #mod-log"
    },
    {
      "rule": "Block Commonly Flagged Words",
      "setting": "Enable the preset lists (insults and slurs, sexual content, severe profanity) that match your audience.",
      "response": "Block message with a short custom explanation"
    },
    {
      "rule": "Custom keyword rule: scams",
      "setting": "Keywords such as *free nitro*, *steam gift*, *airdrop*, *crypto giveaway*, *dm me for*. Exempt Staff.",
      "response": "Block message + alert #mod-log + timeout member"
    },
    {
      "rule": "Member profile filter",
      "setting": "Block the same scam terms plus impersonation patterns like *admin*, *support team*, *moderator* in usernames and nicknames.",
      "response": "Block member from interacting until they change their name"
    },
    {
      "rule": "Custom keyword rule: invite links",
      "setting": "Block *discord.gg/* and *discord.com/invite* outside staff. Exempt Facilitator.",
      "response": "Block message + alert #mod-log"
    }
  ],
  "bots": [
    {
      "name": "Sesh",
      "url": "https://sesh.fyi",
      "job": "Events and reminders",
      "why": "Cohorts live by the calendar: Sesh posts session times in each member's timezone and sends reminders.",
      "optional": false
    },
    {
      "name": "Carl-bot",
      "url": "https://carl.gg",
      "job": "Role menus, logging, tags",
      "why": "Reliable reaction/button role menus for anything Onboarding doesn't cover, detailed mod logs, and saved 'tags' for answers you type every week.",
      "optional": false
    },
    {
      "name": "Craig",
      "url": "https://craig.chat",
      "job": "Voice recording",
      "why": "Discord has no built-in call recording. Craig records voice channels (announce it and get consent before recording).",
      "optional": true
    }
  ],
  "welcomeMessages": [
    {
      "where": "#welcome",
      "text": "Welcome to {Program}. Here's how it works:\n\n• Live sessions: {day} at {time}, shown in your local time in the Events list.\n• Homework: post in your cohort's homework forum by {deadline}.\n• Pods: you'll be added to a private pod thread of 4-6 people in week 1.\n\nFirst: answer the onboarding questions, then introduce yourself in #introductions."
    },
    {
      "where": "#cX-announcements (week 1)",
      "text": "Week 1 is live. Session: {event link}. Homework: {assignment}. Pod assignments are in #cX-pods. Reply here with ✅ once you've watched the kickoff."
    }
  ],
  "checklist": [
    {
      "phase": "Before each cohort",
      "items": [
        "Create the Cohort N role",
        "Clone the previous cohort category and swap the role in permissions",
        "Create Scheduled Events for every live session"
      ]
    },
    {
      "phase": "Week 1",
      "items": [
        "Assign cohort roles from the enrollment list",
        "Create pod private threads and add members",
        "Pin homework instructions"
      ]
    },
    {
      "phase": "During",
      "items": [
        "Weekly announcement every Monday",
        "Mark homework posts with Feedback given",
        "Record sessions (with consent) and post links"
      ]
    },
    {
      "phase": "When a cohort ends",
      "items": [
        "Give Alumni, remove Cohort N",
        "Move channels to ARCHIVE, deny Send Messages",
        "Post an alumni welcome in #alumni-chat"
      ]
    }
  ],
  "guides": [
    "https://launchmyserver.com/guides/discord-cohort-course-setup",
    "https://launchmyserver.com/guides/discord-office-hours-live-classes",
    "https://launchmyserver.com/guides/discord-roles-and-permissions-explained"
  ],
  "notice": "LaunchMyServer is an independent service. Not affiliated with, endorsed by or sponsored by Discord Inc. Discord is a trademark of Discord Inc."
}