🎐

experience.json

Introduction

The structure of experience.json is similar to venue.json, but with 2 additional fields called defaultMenus and defaultLivePages. Here's an overview:

{
    "name": "Half-Day Seminar with Breakout",
    "description": "A very simple, efficient and minimalist style of venue, Genesis is ideal for 1-day multi-track conferences, seminars or meetings, with breakouts as options.",
    "version": "1.0.0",
    "author": "GSI",
    "keyword": "1-Day, Multi-Track, Conference, Seminar, Meeting, Breakout",
    "features": "7 templates, Sticky menu, Live stream, Chat, Direct message, Participants list, Speakers and agenda, Content blocks, Notifications, Responsive template, Light and dark mode",
    "defaultMenus": // Configuration for default menus go here
    "defaultLivepages": // Configuration for default LivePages go here
}

Specifications

⚙️
JSON Config

KeyTypeDescription
String

Name of the author / company

JSON Object

JSON Object

String

Description. Limit to 250.

String

Comma-separated list of features. Eg: Sticky menu, Live stream, Chat, Direct message, Participants list, Speakers and agenda, Content blocks, Notifications, Responsive template, Light and dark mode

String

Comma-separated list of keywords. Eg: 1-Day, Multi-Track, Conference, Seminar, Meeting, Breakout

String

Name of the menu group

String

Version number to differentiate between releases. Recommended to use semantic versioning - ie MAJOR.MINOR.PATCH

defaultMenus

defaultMenus section of experience.json follows the following format:

"defaultMenus": [
  {
    "name": "Header Menu",
    "items": [
        {
            "name": "Lobby",
            "link": "lobby",
            "openInNewWindow": false
        },
        {
            "name": "Main Stage",
            "link": "main-stage",
            "openInNewWindow": false
        },
        {
            "name": "Studio",
            "link": "https://www.gevme.com/en/studios/",
            "openInNewWindow": false
        },
        // ... more items
    ]
  }
]

Specifications

⚙️
JSON Config

KeyTypeDescription
Array

Array of JSON objects, where each object represents a menu item. The format of each menu item follows: { "name": "Lobby", "link": "lobby", "openInNewWindow": false } link can refer to one of the following: 1. Unique slug of a LivePage that is specified within defaultLivepages 2. External link that starts with https://

String

Name of the menu group

defaultLivepages

defaultLivePages section of experience.json follows the following format:

"defaultLivepages": [
    {
        "slug": "lobby",
        "title": "Lobby",
        "isPublic": false,
        "template": "lobby"
    },
    {
        "slug": "agenda",
        "title": "Agenda",
        "isPublic": false,
        "template": "blank",
        "predefinedBlocks": {
            "page-title-block": {
                "type": "RichText",
                "title": "Page Title",
                "data": {
                    // Block data goes here
                }
            },
            "agenda-block": {
                "type": "Agenda",
                "title": "Agenda",
                "data": {
                    // Block data goes here
                }
            }
        }
    }
]

Specifications

⚙️
JSON Config

KeyTypeDescription
Boolean

Flag to determine whether the LivePage should be made public.

JSON Object

JSON object listing predefined blocks along with default configuration. Read full specs at

String

Unique slug for the LivePage. When instantiating the venue for a project, if the slug is already taken, it will be automatically suffixed with some additional characters to make it unique.

String

LivePage Template name as defined in the venue.

String

Title of LivePage

❗predefinedBlocks in experience.json overrides template.json

The configuration specified in predefinedBlocks  within experience.json overrides that in template.json.

In fact, the set of attributes in predefinedBlocks on experience.jsoncan be a subset of the full set specified in template.json. The specific values in experience.json will then overrides those in template.json.

Any attributes listed in experience.json file overwrites those in template.json.

Note: The attributes are not compulsory to be stated in experience.json. If certain attributes do not exist, template.json template will be used instead.