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.
tcms jumpstart:export --name="My Site" --output=my-site.json
tcms jumpstart:import my-site.json
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.
At a glance
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.
JumpStart export/import
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.
Try it on a site of your own.
45 days, every Pro feature, no credit card. Build it, hand it to a client, and see what they can and can’t touch.