🎐

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
predefinedBlocks
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.