Skip to content

Overview

Instruqt is an interactive learning platform that enables you to create hands-on labs and training experiences. Instead of traditional documentation or video tutorials, Instruqt provides learners with real, sandboxed environments where they can practice with actual tools, technologies, and workflows.

  • Hands-on Learning: Learners work with real tools in isolated environments
  • No Setup Required: Pre-configured environments eliminate installation friction
  • Interactive Validation: Automatic checking ensures learners complete tasks correctly
  • Scalable Infrastructure: Spin up containers, VMs, and cloud resources on-demand
  • Rich Content: Combine instructions, code examples, and interactive elements

Instruqt labs consist of three main components:

  1. Sandbox Infrastructure - The underlying compute, networking, and storage resources
  2. Interactive Content - Step-by-step instructions, tasks, and validation logic
  3. Lab Configuration - Settings that control behavior, appearance, and flow

Labs guide learners through structured learning paths with automatic environment provisioning, task validation, and progress tracking.

Instruqt has introduced a new HCL format for defining labs, replacing the previous YAML-based approach. This brings several advantages:

  • Everything as Code: Treat lab configuration with the same practices as infrastructure and application code - version control, code reviews, and automated testing
  • Better Validation and Debugging: Strong typing and schema validation catch configuration errors early in development, with clear error messages that pinpoint issues
  • Improved Modularity for Scale: Resource references and reusable modules enable large organizations to standardize and share common patterns across teams and labs
  • Expanded Resource Vocabulary: Rich set of specialized resources for containers, cloud services, networking, storage, and UI components provide precise control over lab environments
  • Declarative over Imperative: Replace hidden complexity from YAML files, directory structures, bash scripts, and platform-specific knowledge with explicit declarative configuration - you define what the lab should look like and the system handles the implementation
  • Enhanced Developer Experience: Modern IDE support with syntax highlighting, autocompletion, and linting makes lab creation more efficient
# Define sandbox infrastructure
resource "container" "web_server" {
image {
name = "nginx:latest"
}
}
# Create instructional content
resource "page" "introduction" {
title = "Getting Started with NGINX"
file = "instructions/intro.md"
}
# Configure the lab
resource "lab" "nginx_basics" {
title = "NGINX Fundamentals"
description = "Learn NGINX configuration and deployment"
layout = resource.layout.two_column
content {
chapter "setup" {
title = "Environment Setup"
page "intro" {
reference = resource.page.introduction
}
}
}
}

This documentation is organized to support both newcomers and experienced lab creators:

Getting Started: New to Instruqt? Start with the hands-on tutorial to build your first lab in 30 minutes.

Reference Documentation: Looking for specific configuration options? Browse the complete reference organized by resource type.

Migration: Have existing YAML labs? Use the migration toolkit to convert them to the new HCL format.

Ready to start building? Choose your path: