Skip to main content
Compose can save three things to portable files so you do not build them twice. All three live next to your projects, in folders Compose creates for you:
Any media referenced by a saved file travels inside it, so a template or preset you send to a colleague works on their machine without a folder of loose images.

Course templates

A course template is a brand plus a starting structure. Use one when every course your team produces should open the same way — a welcome banner, a standard objectives block, house colours already applied.

Creating one

Set the course up the way you want new courses to start: apply the design, and put the blocks you want carried forward at the top of the first lesson. Then Course ▸ Save as template….

Using one

  • From the welcome screenFrom a template starts a new course from it.
  • Course ▸ Apply template… — applies a template’s design to the course you already have open.
Applying a template to an existing course applies its design. It does not insert the pinned blocks into a course that is already under way.

Design presets

A .cetheme is the look and nothing else: accent, background, surface and text colours, the three typefaces, corner rounding, content width and light/dark. Any background image is embedded, so the file stands alone. Manage them in the Design tab under Your presets: Use a preset when you want to restyle a course that already exists; use a template when you want a new course to start correct.

Shared blocks

Any block can be written to a .ceblock file with Edit ▸ Share block as file…. Files in your Blocks folder appear in the Blocks tab of the left panel alongside the built-in catalogue, and insert like any other block. This is most useful for custom code blocks, which carry their own HTML, CSS and JavaScript — a shared .ceblock containing one is effectively a portable interaction, and the closest thing Compose has to a plugin. File ▸ Import block… brings in a .ceblock from anywhere on disk. An imported block is given a fresh identity when inserted, so you can use the same one many times in a course without conflict.
Compose refuses to import a .cetemplate, .cetheme or .ceblock that is not really one, so pointing it at unrelated JSON produces a clear error rather than a broken course.