Template context & schema (for editors)

This page is for users who build or tweak templates. It explains the two halves of a parameterized template.

Context schema — what parameters exist

The context schema is a JSON Schema that defines the parameters a template accepts: their names, types, and any defaults. It's the contract between the template's code and the values a user fills in. Examples of parameters: title (text), price (number), imageUrl (a file/URL), accentColor (a colour). Two extras worth knowing: "format": "table/tabs" on a list makes the editor show it as an editable table, and propertyOrder controls the order fields appear in the form.

You can inspect a template's schema before using it to see exactly which parameters it expects.

Context values — the filled-in values

The context values (the "template context") are the actual values for one content item — e.g. { "title": "Lunch", "price": "7.90" }. Each template-based content item stores its own values; rendering combines the code + schema + values into the final image or video.

Working with templates as an editor

  • Create a template from HTML/CSS/JS plus its context schema; choose image or video rendering. A sample item is created so you can see it immediately.

  • Edit the code to change the layout/styling for all items using the template.

  • Edit the schema / rename a parameter when you add or change inputs — keep existing items in mind, since they reference parameter keys.

  • Inspect or update an item's context values to change one item without touching the template.

See Building and editing templates for the step-by-step, and Template examples (real) for full working code.

Good practice

  • Keep parameter keys stable; renaming a key affects every item that uses it. (Renaming only the friendly label is safe — see Building and editing templates.)

  • Provide sensible defaults in the schema so new items look right immediately.

  • Test with the auto-created sample before rolling a template out widely.

Building a template from scratch (or wiring it to an external data source) is an advanced / bespoke task — impressBox can build these for you.