Customizing your app - 100mslive/100ms-web GitHub Wiki

Table of Contents

Configure UI layout

Depending on the value of REACT_APP_POLICY_CONFIG in .env, you can customize which roles should be displayed in center stage and which roles should be display in side pane.

The value of REACT_APP_POLICY_CONFIG should be a JSON stringified object of the structure:

type HMSRoleName = string;

/**
 * undefined means none
 * empty array [] for all roles
 */
interface RoleConfig {
  center?: HMSRoleName[];
  sidepane?: HMSRoleName[];
  selfRoleChangeTo?: HMSRoleName[];
  remoteRoleChangeFor?: HMSRoleName[];
}

interface PolicyConfig {
  [role: string]: RoleConfig;
}

Example: REACT_APP_POLICY_CONFIG = "{"trainer":{"center": ["student"],"sidepane":["trainer"]}}"

It is used in the app as:

const envPolicyConfig = JSON.parse(process.env.REACT_APP_POLICY_CONFIG || "{}");

Tile Aspect Ratio

REACT_APP_TILE_SHAPE can be used for this, the format is width-height e.g. 1-1 for square tiles, 4-3 for landscape tiles and 16-9 for wide tiles.

Theme and Color

Env - REACT_APP_THEME

dark - for dark theme light - for light theme

Env - REACT_APP_COLOR

You can give a hex code the color will be used for buttons, border audio level and such.

Playlist Tracks(Watch Party)

This is a way to play any music or any videos from a url for everyone in the room to see/vibe to together. The support is only for file formats which are supported by the native audio and video elements, but it's super cool.

REACT_APP_AUDIO_PLAYLIST - a list of audio tracks which can be played by a person in the room for everyone REACT_APP_VIDEO_PLAYLIST - a list of video tracks which can be played by a person in the room for everyone

That's it for the basics. You could continue to Build and deploy your app or do Further Reading to understand more about 100ms-web.


Next Section Building and Deployment, Further Reading
Previous Section Creating and Joining the Room