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

# Preview and export

> Preview your course as a learner sees it, then export SCORM 2004, SCORM 1.2 or standalone HTML5.

## Preview

Click **Preview** in the title bar, or press `Ctrl` `P` (`F5` also works). The button becomes
**Back to editor** while you are in it.

**The preview is the real thing.** Compose builds the actual export and runs it inside the editor,
rather than drawing an approximation. That means:

* Interactive blocks behave exactly as they will for a learner — quizzes mark, drag and drop drags,
  the 3D viewer orbits.
* Navigation, the lesson bar and the progress gate work.
* Anything that renders correctly in preview renders correctly in the export, because they are the
  same code.

### Device widths

The device toggle simulates three viewports:

| Device  | Width                                          |
| ------- | ---------------------------------------------- |
| Desktop | The course's content width (760 px by default) |
| Tablet  | 540 px                                         |
| Mobile  | 390 px                                         |

Worth doing on any course with images, tables or freeform blocks — those are where narrow screens
find problems.

<Note>
  On a Compose build without the bundled browser engine, the preview shows a "requires QtWebEngine"
  placeholder instead. The official Windows installer and Linux AppImage both include it; you would
  only see this in a build you compiled yourself.
</Note>

## Before you export

The **status strip** along the bottom lists validation notices. None block an export, all are
things a learner would hit:

* A text or rich text block with nothing in it
* An image with no source, or no alt text
* A quiz with no question, fewer than two answers, or no correct answer marked
* A matching block with fewer than two pairs, or an empty side
* A flashcards block with no cards, or an empty side
* An empty custom code block

## Export

**Course ▸ Export…**, or `Ctrl` `E`.

### Formats

<CardGroup cols={2}>
  <Card title="SCORM 2004" icon="graduation-cap">
    3rd Edition. The default, and the best-tracked option if your LMS supports it. Produces a `.zip`.
  </Card>

  <Card title="SCORM 1.2" icon="stack">
    For older LMSes, or any LMS that rejects a 2004 package. Produces a `.zip`.
  </Card>

  <Card title="HTML5" icon="desktop">
    No LMS involved. Runs from any web server, or straight from a folder on disk.
  </Card>

  <Card title="xAPI" icon="target">
    Listed as *coming soon* and **not implemented**. Selecting it falls back to SCORM 2004.
  </Card>
</CardGroup>

[SCORM in detail, and what gets tracked →](/compose/exporting-scorm)

### HTML5: zip or folder

For HTML5 only, you can export a plain **folder** instead of a `.zip` — convenient when you are
copying the result straight onto a web server or into a shared drive.

Open `index.html` in a browser and the course runs, with progress saved to that browser's local
storage.

### What is in the package

Whatever the format, the export is self-contained:

* The course runtime — `index.html`, one stylesheet, and the scripts
* Your course content, embedded as data
* Every image, video, audio file, 3D model and downloadable resource, staged into `assets/`
* The typefaces you chose, embedded as web fonts
* The course theme, written in as CSS
* For SCORM formats, `imsmanifest.xml`

Nothing is fetched from the internet at runtime, which is what lets a package run inside an LMS on
a locked-down network — or off a USB stick.

### Missing media

If a file you referenced has since been moved or deleted, the export still succeeds: the missing
path is dropped and reported as a **warning** when the export finishes. Check that list — a
silently missing image is the most common cause of "it looked fine in the editor".

### Defaults

**Settings ▸ Export** sets the format each new course starts on, and whether Compose opens the
containing folder once an export finishes.
