Portable data

A whole site's structure in one JSON file

JumpStart exports your schemas, collections, objects and templates as a single JSON file you can read, edit, version and import into another install. It is how the bundled Site Builder starters seed their content, too.

A JumpStart file is a site's structure written as JSON: a collections block listing reserved and custom collections, the schemas they use, an objects array of real records, and a factory array that generates content instead of storing it. Export one from a site, read it, edit it in a text editor, commit it alongside your templates, and import it somewhere else.

Reserved collections can be listed as a plain id or as an object carrying overrides, so a blog can arrive already configured — an entry of {"id": "blog", "url": "/blog/{id}", "sortBy": "date:desc"} keeps the built-in schema binding while setting the public URL pattern and the default sort at the same time.

The factory array is what keeps a starter file small. Rather than forty near-identical blog posts, one block asks for a count and a set of Faker rules — sentence, paragraphs, date, boolean, numberBetween(1, 100), tags(1, 5) — and the importer generates them on the way in. Image and file fields are skipped during factory generation, so nothing you seed depends on a binary that was never there.

Which is the honest limitation, and the docs lead with it: JumpStart is not a backup. Image, gallery, file and depot values are normalised and referenced, but the binaries themselves are not embedded. A JumpStart round trip returns your structure and your text and none of your uploads. When you need a complete copy of a collection, use its Export to Zip instead.

You can run it three ways: from Admin → Utilities → JumpStart, where checklists narrow the export to particular schemas and collections and toggles add objects and templates; from the command line with tcms jumpstart:export and tcms jumpstart:import; or by POSTing a definition to /import/jumpstart. The importer skips objects that already exist, which is exactly why the bundled Site Builder starters ship their pages and demo content as JumpStart files — re-running one never clobbers what an editor has changed since.

What you get

One file, whole structure

Collections, schemas, objects and templates in a single readable JSON file you can diff, edit and commit.

Factory instead of fixtures

Ask for a count and a set of Faker rules and the importer generates the records, so a starter file stays short and easy to maintain.

Reserved collections, configured

A reserved entry can carry overrides — URL pattern, default sort, display name — so a collection arrives set up rather than needing a pass in the admin.

Admin, CLI or API

Export and import from Utilities, from tcms jumpstart:export and jumpstart:import, or by posting the definition to the import endpoint.

Not a backup — by design

Binary uploads are referenced but never embedded. For a full copy of one collection, including its files, use Export to Zip.

In practice

One snippet

tcms jumpstart:export --name="My Site" --output=my-site.json
tcms jumpstart:import my-site.json

Export everything to one file, then seed a fresh install from it — the importer skips objects that already exist, so re-running is safe.

FAQ

Common questions

Is JumpStart a backup?

No. Image, gallery, file and depot values are referenced but the binaries are not included in the export. Use a collection's Export to Zip when you need the actual files.

What is the factory array for?

It generates many objects from Faker rules rather than storing each one, which keeps starter files small. Image and file fields are skipped during generation to avoid depending on files that do not exist.

Can I run it from the command line?

Yes. tcms jumpstart:export writes a file with optional name and description, and tcms jumpstart:import reads one back. Both accept --json for machine-readable output.

What happens to records that already exist?

The importer skips them, so re-importing a starter or a shared template file will not overwrite edits made in the admin since the last import.