> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xkat.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Lab Environment

> Configure languages and compiler profiles for practice.

Each course defines the **lab environment** learners practice in — the programming
languages and compiler profiles behind the
[Dynamic Workspace](/en/learn/workspace/overview).

## Choosing languages

Pick the programming language(s) your course teaches. xkat supports many
languages through configurable **compiler profiles**, so learners get authentic
behavior for the language you choose.

## Compiler profiles

A **compiler profile** defines how a learner's code is built and run on the remote
servers — the language, version, and execution settings. Selecting the right
profile ensures:

* Errors and output match the real toolchain.
* Exercises behave consistently for every learner.

## Workspace layout

Your choice of lesson type drives the workspace layout learners see:

<CardGroup cols={2}>
  <Card title="Editor + Terminal" icon="terminal" href="/en/learn/workspace/editor-terminal">
    For backend and CLI lessons.
  </Card>

  <Card title="Editor + Preview" icon="window" href="/en/learn/workspace/editor-preview">
    For frontend lessons.
  </Card>
</CardGroup>

<Tip>
  Course cards display [workspace badges](/en/learn/explore-courses) based on this
  configuration, so learners know what to expect before enrolling.
</Tip>
