Skip to main content

Edit Studio JSON

Open Website > Studio, select Edit, then Source to edit your website's JSON. Choose a document in the picker before changing its contents. Each document controls one part of the website.

Start with Insert a component for a small change. Use the component reference for exact fields and worked examples for complete documents.

Choose the document​

DocumentControls
layout.jsonThe website theme. It does not contain component positions.
navigation.jsonThe public menu, as an ordered array of entries.
calendar.jsonWhether the public calendar is enabled. It has no component positions.
landing.jsonThe homepage choice and the managed landing page's ordered components array.
contact.jsonExtra sections around the public contact information.
page.jsonExtra sections around every public page.
articles.jsonExtra sections around the news list.
article.jsonExtra sections around every individual article.
products.jsonExtra sections around product lists, such as leagues or programs.
product.jsonExtra sections around individual product details.
rentals.jsonExtra sections around the rentals page.
product/note.jsonExtra sections around product notes.
product/registrations.jsonExtra sections around a product's registrations.
product/teams.jsonExtra sections around a product's teams.
product/spares.jsonExtra sections around a product's spares.
results.jsonExtra sections around results.

The page documents have top and bottom arrays. These place sections before and after the page's normal content. They do not replace the content, hide its access rules, or change records. For example, article.json affects every article's surrounding layout. Edit a single article's body in Website > Articles.

The first seven page documents, from contact.json through rentals.json, accept editorial sections. The remaining five accept a smaller set of supplemental sections. The reference lists each component's exact documents and positions. A component that works on the landing page may be refused on a results page.

Sign-in, account pages, cart, checkout and other protected workflows have no editable component documents. They use the shared theme and navigation.

Edit your club's Terms and Privacy in Settings > Policies, including Markdown text and optional external URLs. Policy pages use the shared theme and navigation, with no editable Studio sections or footer JSON document. See Studio.

Write valid JSON​

Use double quotes around names and text. Separate entries with commas; leave no comma after the last entry. JSON has no comments. Keep true, false, null and numbers unquoted.

A component is an object with its exact type, version and fields. Component kinds start with cio-. Keep version at the value shown in the reference. Unknown names, misspelled fields and unsupported versions are rejected.

The editor shows the selected document alone. Do not wrap it in a filename, documents or schemaVersion object. Those belong to the complete website package used by agent tools, not the document editor. Keep all the other documents when an agent updates the complete package.

Choose the homepage​

landing.json always contains enabled and components. Use enabled: true for the managed landing page. To use a published page instead, set enabled: false and homePageId to that page's positive numeric ID. Omit homePageId when using the managed landing page or the automatic first product type. The Homepage picker can make this choice for you.

Turning the managed landing off keeps its components saved for later. Turning the calendar off uses enabled: false in calendar.json; it does not remove events.

Use English and French text​

Authored text accepts a shared string or a language map with en and fr. For example, a heading may be "Welcome" or {"en":"Welcome","fr":"Bienvenue"}. Supply usable text in your club's primary language. A missing secondary translation uses the primary text. A shared string appears in every enabled language.

Translate headings, body text, link labels, image alternative text, captions and form labels. Keep component types, field names, URLs, account identifiers and record IDs unchanged. Text fields are plain text; Markdown punctuation does not turn component text into formatted content.

Use Upload image in Studio and copy its Asset ID into a component's media.assetId. Include useful alt text. An image must belong to your club and be ready or attached. A private reference image sent to the assistant cannot be published as website media.

Link actions contain label and href. Use a path starting with one / for your website, or a complete HTTPS URL for another website. HTTPS actions reject credentials, IP hosts and non-default ports. Optional appearance accepts filled, secondary or outline; size accepts small, normal or large. Omit them for the component's normal presentation. Your theme supplies colours and spacing. Components do not accept custom HTML, scripts or CSS fields.

Live components read current club records. Configure sponsors, products, events and articles in their own sections. Changing a JSON heading does not change the underlying records. Record IDs must belong to your club and be eligible for public display. Providers may need visitor activation and Premium; adding JSON does not grant an entitlement or make private provider content public.

Save, preview and publish​

  1. Take the editing lock with Edit before changing the source.
  2. Change the selected document, then select Save. Studio validates your draft and saves a checkpoint of the website design. Fix any reported error before continuing.
  3. Check the private preview, including links and both enabled languages.
  4. Select Publish when the saved draft is ready. Visitors then see it.
  5. Select Release lock when you finish.

Saving a checkpoint leaves the public website on its last published version. Use History of changes to compare or restore a checkpoint. Restoring creates a new draft; publish it to make it public. It does not undo registrations, payments or edits to club records.