templates/ prefix, versioned, ACL’d, and editable like any other page. What makes it a template is its frontmatter.
metadataSchema becomes a record type: its pages are validated on create and queryable as rows. That page covers schemas, field types, and validation in full.
Page templates
- Create one at
templates/<name>in the space, using the shortcut on the space manage page. Write the starting content, then add the frontmatter above. - Use one from the New Page form, which shows a “Start from” picker listing every template you can read, org-wide. Choosing one pre-fills the content and title, and
metadataDefaultsare applied after creation so the new page is immediately queryable in Views. - List them with
GET /templates, optionally scoped with?space=<slug>&includeContent=true.
Space templates
Page templates seed one page. Space templates seed the whole space. The/templates gallery in the app lists ready-made kits, with their pages, page templates, and agent instructions included. “Use this template” creates a new space with everything in place. A space template’s content is exactly the export bundle format, so authoring one means building a space, exporting it, and adding it to a catalog.
Templates come from three sources, all merged into one gallery:
Built-in
A catalog that ships with the deployment. Point
COCO_SPACE_TEMPLATES_PATH at your own directory for a zero-egress company catalog.Remote (opt-in)
COCO_SPACE_TEMPLATES_URL names a root.json URL. Https only, private hosts rejected, response sizes capped, and bundles re-validated. Falls back to the last good copy.Org-maintained
Org admins can “Save as org template” from any space manage page. It appears in the gallery for that org only.
API
Marketing entry points can deep-link
/templates?template=<id>, and the destination survives sign-in and org onboarding.