Creating Courses
Everything you need to know about writing, editing, and publishing courses on Moltiversity.
Creating a Course
To create a new course, go to Creator Studio and click New Course.
After creating the course, you'll land on the course editor where you can add lessons, reorder them, and upload a cover image.
Editing Lessons
The lesson editor is a split-pane MDX editor: code on the left, live preview on the right. Changes are saved as drafts and don't affect the published version until you explicitly publish.
Editor Features
- Syntax-highlighted MDX editing with CodeMirror
- Live preview updates as you type (debounced)
- Block toolbar to insert components without memorizing syntax
- Drag-and-drop media upload (images up to 5 MB, audio up to 50 MB)
- Version history — every save creates a snapshot you can restore
Draft vs. Published
Your edits are saved to the draft version. Learners always see the published version. After editing, click "Publish" on each lesson to push changes live. This lets you work on updates without disrupting current learners.
MDX Syntax & Components
Lessons are written in MDX — Markdown with embedded React components. You can use all standard Markdown plus our custom interactive components.
Markdown Basics
# Heading 1 ## Heading 2 ### Heading 3 Regular paragraph text. **Bold**, *italic*, `inline code`. - Bullet list item - Another item 1. Numbered list 2. Second item [Link text](https://example.com) > Blockquote for callouts or emphasis ```bash # Code block with syntax highlighting openclaw agent add --name "My Agent" ``` | Column 1 | Column 2 | |----------|----------| | Cell | Cell |
Interactive Components
Use these components to make lessons engaging. The block toolbar inserts them automatically.
Callouttypes: info, tip, warning
Highlight important information, tips, or warnings.
<Callout type="tip" title="Pro tip"> Use callouts sparingly — if everything is highlighted, nothing stands out. </Callout>
StepByStep + Step
Walk learners through a sequential process.
<StepByStep>
<Step number={1} title="Install the CLI">
Run the install command:
```bash
npm install -g openclaw
```
</Step>
<Step number={2} title="Configure your agent">
Open the setup wizard:
```bash
openclaw setup
```
</Step>
</StepByStep>Quiz + QuizOption
Test comprehension with multiple-choice questions. Mark one option as correct.
<Quiz question="What command starts the Gateway?"> <QuizOption correct explanation="Correct! The gateway command starts the background service.">openclaw gateway start</QuizOption> <QuizOption explanation="This installs OpenClaw but doesn't start the Gateway.">npm install openclaw</QuizOption> <QuizOption explanation="This opens the setup wizard, not the Gateway.">openclaw setup</QuizOption> </Quiz>
Note: Always put each QuizOption on a single line. Vary which position (A/B/C) is correct across your course.
Prerequisites
List what learners need before starting the lesson.
<Prerequisites items={["OpenClaw installed and Gateway running", "Telegram or Slack connected", "About 10 minutes"]} />Note: Items must be a single-line array — do NOT split across multiple lines.
CopyBlock
A copyable command with a descriptive label.
<CopyBlock text="openclaw gateway start" label="Start the Gateway" />
MdxTabs + TabItem
Show alternative content for different platforms or approaches.
<MdxTabs> <TabItem label="macOS"> ```bash brew install openclaw ``` </TabItem> <TabItem label="Linux"> ```bash curl -fsSL https://get.openclaw.dev | bash ``` </TabItem> </MdxTabs>
MdxAccordion + AccordionItem
Collapsible sections for optional or supplementary content.
<MdxAccordion> <AccordionItem title="What if I don't have a Telegram account?"> You can use WhatsApp, Slack, Discord, or any of the 20+ supported platforms. Telegram is recommended for beginners because setup is fastest. </AccordionItem> </MdxAccordion>
VideoEmbed
Embed YouTube, Vimeo, or Loom videos.
<VideoEmbed url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" title="Setup walkthrough" caption="Optional caption below the video" />
ImageFigure
Display an image with optional caption. Upload via the media button or use a URL.
<ImageFigure src="/path/to/image.png" alt="Screenshot of the dashboard" caption="The learner dashboard showing enrolled courses" />
AudioPlayer
Embed an audio file with playback controls.
<AudioPlayer src="/path/to/audio.mp3" title="Pronunciation guide" />
ExternalLinkCard
A styled card linking to an external resource.
<ExternalLinkCard url="https://docs.openclaw.dev" title="OpenClaw Documentation" description="Full API reference and configuration guide" />
Writing Tips
- Start each lesson with a one-paragraph overview of what the learner will accomplish.
- Use StepByStep for any process with 2+ sequential steps.
- Add a Quiz at the end of each lesson to reinforce key concepts.
- Use Callout type="warning" for common pitfalls and type="tip" for best practices.
- Keep code blocks short and focused. Explain what each command does.
- Use Tabs when showing platform-specific instructions (macOS/Linux/Windows).
- Leave a blank line before and after every component — MDX needs it to parse correctly.
Images, Video & Audio
Images
Drag-and-drop into the editor or click the media upload button. Images are stored in Supabase Storage under your user folder.
Max 5 MB per image. PNG, JPG, GIF, WebP supported.
Video
Paste a YouTube, Vimeo, or Loom URL into a VideoEmbed component. Videos are embedded, not uploaded.
No size limit — video is hosted externally.
Audio
Upload audio files via the media button. Useful for pronunciation guides or podcast clips.
Max 50 MB per file. MP3, WAV, M4A supported.
Submitting for Review
When your course is ready, submit it for admin review. Here's the full workflow:
Review Checklist
Before submitting, verify:
- All lessons have published content (not just drafts)
- Course description clearly explains what learners will build
- Lessons follow a logical progression
- Each lesson ends with a Quiz or checkpoint
- Code examples are tested and working
- No placeholder text or TODO comments
- Images load correctly in preview
Monetization
Moltiversity supports both free and premium courses. As a creator, you choose how to price your content.
Free Courses
Great for building your audience, introductory content, and community contributions. Free courses get more enrollments and help establish your reputation as a creator.
Premium Courses
For in-depth, advanced content. Premium courses are gated behind a one-time purchase or subscription. You earn a revenue share on every enrollment.
Revenue Model
Monetization Tips
- Start free, go premium: Publish a free introductory course first. Once you have ratings and enrollments, launch a premium deep-dive.
- Bundle related courses: Create a series (e.g., "DevOps 101" free + "DevOps Advanced" premium) to funnel learners.
- Keep content fresh: Update lessons when OpenClaw releases new features. Active courses rank higher in discovery.
Coming Soon
Stripe payment integration is currently in development. For now, all courses are free. When payments launch, existing creators will be the first to set up premium courses. Stay tuned!
Ready to create?
Head to the Creator Studio and start building your first course.