Skip to main content

The .course file

A course is one file. Inside it is a container holding your course data alongside every image, video, audio file, 3D model and downloadable resource you added — not links to them, the files themselves. That means:
  • A course is portable. Copy the .course to another machine and everything comes with it.
  • Moving or deleting the original media does not break the course. Once added, it is embedded.
  • A media-heavy course produces a large file, and a correspondingly large export. Keep long video hosted elsewhere and link to it if package size is a constraint.
Courses saved by much older builds as plain JSON still open. Saving always writes the container format.

The media picker

Because a course carries its own media, anything you have added once is already there — so every media control opens the course’s own library first. Choosing an image, video, audio file or 3D model shows what the course already contains, filtered to the kind you are picking. Click a tile to use it; Import from disk… adds something new.
This matters most on a course somebody else made. Opening a shared .course and clicking an image control used to send you looking through your own Pictures folder for a file that only ever existed on their machine. Now it shows you what is in the course.
Picking the same file twice reuses the one copy rather than embedding a second — so swapping a logo across ten blocks costs one image, not ten.

Saving

An unsaved change is shown as a dot beside the course name in the title bar, and by the status strip.

Autosave

On by default, five seconds after you stop editing, with a small confirmation toast. Both the interval (2 s, 5 s or 15 s) and the toast are configurable in Settings ▸ Editing ▸ Saving. Autosave only ever writes to a file you already chose. A new, untitled course is never written somewhere behind your back — it waits for you to save it once. Rapid edits never queue up a backlog of writes: while a save is in flight, the newest request is held and runs immediately afterwards, so two saves never overlap on the same file.

Leaving a course

Every path out of a course — New, Open, Welcome screen, closing the window — goes through the same unsaved-changes prompt. There is no route that quietly discards work.

Recent courses

The welcome screen shows recent courses as cards with their real titles and lesson and block counts, not just filenames. Those details are cached when a course is saved or opened, so the welcome screen does not have to open every file to draw itself. A course saved by an older build, or opened before the cache existed, falls back to its filename and modification time — and Compose knows not to display counts it does not actually have. File ▸ Open recent gives the same list as a menu.

Where Compose keeps things

New projects default to that folder, but a .course file can live anywhere. Preferences, recent files and custom shortcuts are stored in your platform’s normal settings location — Settings ▸ Advanced ▸ About shows the exact path. Your session token is kept in a separate, owner-only file; see Accounts.

Moving a course between machines

Copy the .course file. That is the whole procedure — media travels inside it. To carry your look as well, export the design preset (.cetheme) or the course template (.cetemplate) from the Design tab or the Course menu; those embed their own media too.
Compose has no built-in sync and no simultaneous editing. Two people editing copies of the same .course produce two divergent files with no way to merge them. Decide who owns the file.

Backing up

A .course is a single self-contained file, so any backup tool covers it. Uploading it to Mauvely Cloud works too — it is encrypted in your browser before it is uploaded, and Pro and Max plans keep previous versions.
Automatic syncing between Compose and Cloud is planned but not built. Today, uploading a course is something you do yourself.