Labs
Labs overview
What labs are, how they are structured in Stepwik, and best practices for engaging interactive labs.
A lab is a structured, step-by-step interactive guide that leads a learner through a concrete task, such as installing a tool, building a feature, or completing a workflow. Unlike static documentation, labs present content one step at a time, keeping learners focused and reducing cognitive load.
Learners open a published lab at /labs/{slug} and move through steps with Next and Prev. See Take a lab for the full learner flow.
What makes up a lab
Every lab on Stepwik follows the same structure:
- Title: a short, action-oriented headline (e.g., "Deploy a Node.js App to Fly.io")
- Description: a brief summary shown in search results and on the lab card
- Steps: the core of the lab; each step has its own title and rich content area where you add text, code blocks, images, or embeds
Labs vs. courses
| Lab | Course | |
|---|---|---|
| Scope | Single topic or task | Organized collection of labs |
| Structure | Title → Steps | Title → Modules (each module is a lab) |
| Completion | Per-lab progress | Course-level progress and certificate (Org) |
| Plan required | Free and above | Pro and above |
Use a lab when you're covering one well-defined task. Use a course when you want to group multiple labs into a learning path, for example an onboarding sequence or a certification program.
Visibility options
When you publish a lab, you choose who can access it:
- Public: discoverable via search and shareable by link; no sign-in required
- Unlisted: accessible only by direct link; not indexed by search engines (Pro+)
- Private: visible only to you and collaborators with explicit access (Pro+)
- Draft: not yet published; only visible to you and co-authors in Studio
See Publish and share for embed, SEO, and unpublish details.
Best practices for structuring a lab
Keep steps short and focused. Each step should accomplish one thing. If a step requires more than a few paragraphs, consider splitting it.
Write clear step titles. Use action phrases like "Install the CLI", "Configure your environment", or "Run the first query". Learners scan step titles to orient themselves.
Include code examples for every command. Use code blocks with language tags so syntax highlighting works correctly. Don't ask learners to type commands from memory.
Open with context. The first step should explain what the learner will accomplish and what they need to have ready (prerequisites, tools, accounts).
End with a summary step. Recap what was built or configured and point to logical next steps or related labs.
Studio Labs list
In Studio → Labs you manage:
| Tab / action | Purpose |
|---|---|
| Published / Draft | Filter by status |
| Pending review | Moderation queue (when enabled) |
| Create | Blank lab |
| Generate with AI | GitHub, PDF, or Google Slides |
| Edit | Open the editor |
| Settings | Title, tags, cover, and more |
| History | Per-section Document versions |
| Stats | Per-lab analytics |
| View | Studio preview of the learner experience |
Lab lifecycle
Draft
Create blank, generate with AI, capture with the Chrome extension, or import a private draft via MCP.
Author
Structure steps in the Studio editor; invite co-authors if needed.
Configure
Set lab settings (level, tags, cover) and visibility.
Publish
Publish immediately, or request review in moderated orgs.
Improve
Use stats, version history, and AI Rewrite.
Related
Editor
Slash commands, Markdown paste, code blocks, and step management.
Lab settings
Title, slug, category, level, tags, and cover image.
Version history
Save, compare, and restore section versions.
Publish and share
Visibility, embeds, SEO, and unpublishing published labs.
Take a lab
How learners read and complete a published lab.
Collaboration
Invite co-authors, leave comments, and track revisions.
Reader feedback
Collect and triage messages from learners on published labs.
Generate labs with AI
Draft a lab from GitHub, PDF, or Google Slides.
Quickstart
Create and publish your first interactive lab in minutes.