Project archives
Taking a whole project out as a ZIP and bringing it back — what is in the archive, what import actually does, and why the version must match exactly.
All documentation — Getting it out
Boards and the canvas
The node builder
Modelling the world
Variables, logic and commands
Voice and audio
AI
Working together
Project settings
On this page
An archive is your entire project as a single .zip — boards, entities, documents, media and
all. It is the backup, the hand-off, and the way a project moves between organizations.
Export one
Two places, same archive.
From the project: settings → Export → Download ZIP. See project settings.
From the dashboard: the card menu on any project → Export.
Your browser asks where to save before it starts, because the file is written as it downloads. Dismissing that dialog cancels the export.
Then it works through three phases, and you can Cancel at any point:
- Preparing export…
- Downloading media (3/17 files — 1.2 MB / 5.0 MB)
- Creating ZIP archive…
The file is named «project name»_«YYYY-MM-DD».zip, with anything outside A–Z a–z 0–9 - _ replaced
by an underscore.
If something could not be fetched you get Export completed with N warning(s) and the first one — usually a single media file. The archive is still valid; that file is simply not in it.
What is in the archive
The zip is deliberately two things at once: a restore format and a readable copy.
| Inside the zip | What it is | Readable | Used when importing |
|---|---|---|---|
manifest.json | Version, project name, slug, description, cover | Yes | Yes |
project.yjs | The project itself, compressed | No | Yes — this is the restore |
content.json | Everything structured, as readable JSON | Yes | No |
documents/…html | One HTML file per document, in its folder | Yes | No |
media-map.json | Which file in media/ is which media item | Yes | Yes |
media/… | Your actual files, original bytes | — | Yes |
document-content/… | Each document’s body, compressed | No | Yes |
Media travels inside the archive, as the original bytes. Nothing points at a server.
Import one
From the projects dashboard: Import, beside New Project. It accepts .zip only.
It runs four phases — Reading archive, Creating project, Uploading media, Finalizing — and ends with Import successful!, or Imported, with problems and the list of what went wrong. Then Open project takes you straight into it.
What is preserved, and what is not
| Preserved | Changed |
|---|---|
| Every internal id — boards, nodes, entities, documents, media, fields | The project’s own id, slug and name |
| Every reference between them | — |
| Your media, under the same media ids | — |
| Document bodies | — |
Because the ids survive, so does everything that points at them. A variableRef on a node still
finds its variable; a mention still finds its entity.
The mention and backlink indexes are cleared and rebuilt as documents are opened — they are derived data, so restoring a stale copy would be worse than recomputing.
The new project is created empty of the standard node-type pack, because the archive brings its own.
The version must match exactly
Every archive records the version it was written by. The current one is 4.1.0.
An archive from before 4.0.0 has no restore data at all and is refused with This archive was exported before TaleShard 4.0.0 and can no longer be imported.
An archive is a backup, not a format. Treat it as something you refresh, not something you file away for three years and expect to open.
Limits
| Limit | Value |
|---|---|
| Imports running at once | One per person |
| Exports running at once | One per project |
| Documents, or media files, in one archive | 10,000 each |
| Per-file size, and storage per project | Your plan’s — the same guards as any upload. See media. |
| Projects | Your plan’s |
| An import session | Expires after an hour |
Importing also requires a verified email address.
What breaks
| Situation | What you see |
|---|---|
| The version does not match | The message above. Re-export. |
| The zip is missing a required file | Invalid ZIP: missing «name» |
| You already have an import running | You already have an import running. Wait for it to finish, then try again. |
| A media file trips a plan limit | A warning naming it — the import continues |
| A document body did not upload | A warning; that document opens empty |
| The cover image did not upload | A warning; the project has no cover |
| The restore itself failed | Failed to restore project data — and the half-made project is deleted rather than left behind |
| The session expired | Import session not found or expired. Restart the import. |
| A media link expired mid-export | Presigned URL expired (403) |
A media file that fails is a warning, not a failure: you get the project, minus that file.