{
  "schema": "launchmyserver.blueprint/v1",
  "source": "https://launchmyserver.com/templates/course-community",
  "updated": "2026-11-12",
  "slug": "course-community",
  "name": "Course Community",
  "title": "Course Community Server Template for Discord",
  "description": "A ready-made Discord server for online course students: module channels, Q&A forum, roles, onboarding questions, AutoMod rules and welcome messages.",
  "tagline": "For self-paced courses on Kajabi, Teachable, Thinkific or Podia.",
  "bestFor": [
    "Self-paced online courses",
    "Course creators launching their first community",
    "50 to 5,000 students"
  ],
  "sizeHint": "Works from 30 to 5,000 members without restructuring.",
  "discord_template_url": null,
  "categories": [
    {
      "name": "START HERE",
      "channels": [
        {
          "name": "welcome",
          "type": "text",
          "topic": "What this server is, how to get help, and your first 3 steps.",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "rules",
          "type": "text",
          "topic": "Community rules (required for Community servers).",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "announcements",
          "type": "announcement",
          "topic": "New lessons, live calls and course updates.",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "introductions",
          "type": "text",
          "topic": "Say hi: who you are, what you want from the course.",
          "access": "Members can read and post"
        }
      ]
    },
    {
      "name": "COURSE",
      "channels": [
        {
          "name": "course-questions",
          "type": "forum",
          "topic": "One post per question. Tag by module. Mark answered posts with the Solved tag.",
          "access": "Members can read and post"
        },
        {
          "name": "module-1",
          "type": "text",
          "topic": "Discussion for Module 1. Rename per module.",
          "access": "Members can read and post"
        },
        {
          "name": "module-2",
          "type": "text",
          "topic": "Discussion for Module 2.",
          "access": "Members can read and post"
        },
        {
          "name": "module-3",
          "type": "text",
          "topic": "Discussion for Module 3.",
          "access": "Members can read and post"
        },
        {
          "name": "resources",
          "type": "text",
          "topic": "Downloads, templates and links mentioned in lessons.",
          "access": "Everyone can read; only Staff can post"
        }
      ]
    },
    {
      "name": "COMMUNITY",
      "channels": [
        {
          "name": "general",
          "type": "text",
          "topic": "Anything related to the topic of the course.",
          "access": "Members can read and post"
        },
        {
          "name": "wins",
          "type": "text",
          "topic": "Share progress and results. Celebrate others.",
          "access": "Members can read and post"
        },
        {
          "name": "accountability",
          "type": "forum",
          "topic": "One post per person: weekly goals and check-ins.",
          "access": "Members can read and post"
        },
        {
          "name": "off-topic",
          "type": "text",
          "topic": "Everything else.",
          "access": "Members can read and post"
        }
      ]
    },
    {
      "name": "LIVE",
      "channels": [
        {
          "name": "live-calls",
          "type": "stage",
          "topic": "Monthly Q&A and office hours.",
          "access": "Members listen; speakers invited by Staff"
        },
        {
          "name": "study-room",
          "type": "voice",
          "topic": "Co-working and study sessions.",
          "access": "Members can read and post"
        },
        {
          "name": "call-replays",
          "type": "text",
          "topic": "Links to recordings and notes.",
          "access": "Everyone can read; only Staff can post"
        }
      ]
    },
    {
      "name": "STAFF",
      "channels": [
        {
          "name": "staff-chat",
          "type": "text",
          "topic": "Private team chat.",
          "access": "Hidden from everyone except Staff"
        },
        {
          "name": "mod-log",
          "type": "text",
          "topic": "AutoMod alerts and bot logs.",
          "access": "Hidden from everyone except Staff"
        }
      ]
    }
  ],
  "roles": [
    {
      "name": "Admin",
      "color": "#2f5d50",
      "purpose": "Owner and co-owner",
      "permissions": [
        "Administrator"
      ],
      "assignedBy": "Owner, manually"
    },
    {
      "name": "Staff",
      "color": "#e9b44c",
      "purpose": "Moderators and TAs",
      "permissions": [
        "Manage Messages",
        "Manage Threads",
        "Timeout Members",
        "Kick Members",
        "Manage Events",
        "View Audit Log"
      ],
      "assignedBy": "Admin, manually"
    },
    {
      "name": "Student",
      "color": "#4b7bec",
      "purpose": "Paying students; unlocks COURSE and LIVE",
      "permissions": [
        "View course channels",
        "Send Messages",
        "Create Posts in forums",
        "Connect/Speak in voice"
      ],
      "assignedBy": "Purchase integration or Staff after verifying the order"
    },
    {
      "name": "Alumni",
      "color": "#8854d0",
      "purpose": "Finished the course; keeps community access",
      "permissions": [
        "Same as Student"
      ],
      "assignedBy": "Staff or a completion form"
    },
    {
      "name": "Beginner / Intermediate / Advanced",
      "color": "#a5b1c2",
      "purpose": "Experience level, for tailored help",
      "permissions": [
        "None (cosmetic + filtering)"
      ],
      "assignedBy": "Onboarding question"
    },
    {
      "name": "Live-call pings",
      "color": "#a5b1c2",
      "purpose": "Opt-in notifications for live sessions",
      "permissions": [
        "None (mentionable by Staff)"
      ],
      "assignedBy": "Onboarding question"
    }
  ],
  "permissionNotes": [
    "@everyone: deny View Channel on COURSE and LIVE categories, so only Student/Alumni see course content.",
    "Student and Alumni: allow View Channel on COURSE and LIVE at the category level; keep channels synced to the category.",
    "START HERE channels: @everyone can view; only Staff can Send Messages (except #introductions).",
    "Keep the Staff role below Admin and above Student; bots that assign roles must sit above Student and Alumni.",
    "Do not give Administrator to bots or Staff: it bypasses every channel override."
  ],
  "onboarding": [
    {
      "question": "Which course are you here for?",
      "required": true,
      "multiSelect": true,
      "options": [
        {
          "label": "I bought the course",
          "grants": "Shows how to verify your purchase in #welcome (Student role is granted after verification, not by this answer)"
        },
        {
          "label": "Just looking around",
          "grants": "Keeps public channels only"
        }
      ]
    },
    {
      "question": "What's your experience level?",
      "required": false,
      "multiSelect": false,
      "options": [
        {
          "label": "Beginner",
          "grants": "Beginner role"
        },
        {
          "label": "Intermediate",
          "grants": "Intermediate role"
        },
        {
          "label": "Advanced",
          "grants": "Advanced role"
        }
      ]
    },
    {
      "question": "Want a ping when we go live?",
      "required": false,
      "multiSelect": false,
      "options": [
        {
          "label": "Yes, ping me for live calls",
          "grants": "Live-call pings role"
        },
        {
          "label": "No thanks",
          "grants": "Nothing"
        }
      ]
    }
  ],
  "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 Staff.",
      "response": "Block message + alert #mod-log"
    }
  ],
  "bots": [
    {
      "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": "Sesh",
      "url": "https://sesh.fyi",
      "job": "Events and reminders",
      "why": "Timezone-aware event times and reminders for live calls. Discord's native Scheduled Events cover the basics; Sesh adds calendar sync and polls.",
      "optional": true
    },
    {
      "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
    },
    {
      "name": "Zapier",
      "url": "https://zapier.com/apps/discord/integrations",
      "job": "Purchase-to-Discord automation",
      "why": "Posts new-lesson announcements and can add the Student role when your course platform fires a purchase event (requires the buyer's Discord user ID).",
      "optional": true
    }
  ],
  "welcomeMessages": [
    {
      "where": "#welcome",
      "text": "Welcome to the {Course name} community 👋\n\nThis is where students ask questions, share wins and join live calls.\n\nYour first 3 steps:\n1. Read #rules (2 minutes).\n2. Verify your purchase: {how to verify}. You'll get the Student role and see the COURSE channels.\n3. Post in #introductions: your name, where you're from, and one goal for this course.\n\nStuck? Post in #course-questions and tag the module. A team member answers within {response time}."
    },
    {
      "where": "#introductions (pinned template)",
      "text": "Copy and fill in:\n**Name:**\n**Where I'm based:**\n**Why I took the course:**\n**One goal for the next 30 days:**\n**Fun fact:**"
    },
    {
      "where": "Server Guide welcome message",
      "text": "Glad you're here, [@username]. Start with #rules, then introduce yourself. Questions go in #course-questions."
    }
  ],
  "checklist": [
    {
      "phase": "Before you start",
      "items": [
        "Create the server from a fresh account you own (or transfer ownership later)",
        "Enable 2FA on the owner account",
        "Decide how students prove purchase (invite in course, integration, or manual check)"
      ]
    },
    {
      "phase": "Structure",
      "items": [
        "Create roles in the order listed, highest first",
        "Create categories and channels; set permissions on categories, then sync channels",
        "Add forum tags: Module 1, Module 2, Module 3, Solved, Bug in course"
      ]
    },
    {
      "phase": "Community features",
      "items": [
        "Server Settings > Enable Community (needs a verification level, content filter, rules and updates channels)",
        "Set up Onboarding: questions, default channels, Server Guide",
        "Turn on AutoMod rules and point alerts to #mod-log"
      ]
    },
    {
      "phase": "Bots and automation",
      "items": [
        "Invite Carl-bot with the minimum permissions; move its role above Student",
        "Optional: connect Sesh for live-call reminders",
        "Optional: connect your course platform via Zapier or a paywall tool"
      ]
    },
    {
      "phase": "Launch",
      "items": [
        "Post and pin the welcome and intro template",
        "Schedule the first live call as a Scheduled Event",
        "Test with an alt account: join, onboard, verify, post",
        "Share the invite link inside the course (set it to never expire)"
      ]
    }
  ],
  "guides": [
    "https://launchmyserver.com/guides/discord-server-for-online-course",
    "https://launchmyserver.com/guides/discord-channels-for-course-community",
    "https://launchmyserver.com/guides/discord-onboarding-setup",
    "https://launchmyserver.com/guides/kajabi-discord-integration",
    "https://launchmyserver.com/guides/teachable-discord-integration"
  ],
  "notice": "LaunchMyServer is an independent service. Not affiliated with, endorsed by or sponsored by Discord Inc. Discord is a trademark of Discord Inc."
}