--- title: "Distribute a custom desktop app" --- You can customize and distribute your own Mattermost desktop application by configuring [src/common/config/buildConfig.ts](https://github.com/mattermost/desktop/blob/master/src/common/config/buildConfig.ts). 1. Configure the desktop app's `buildConfig.ts` file. You can configure the following parameters to customize the user experience, including [defaultTeams](#defaultteams), [helpLink](#helplink), and [enableServerManagement](#enableservermanagement). 2. Follow the [Mattermost Desktop Development Guide](https://developers.mattermost.com/contribute/more-info/desktop/developer-setup/) to build the application. 3. Distribute the application to your users. ## `defaultTeams` List of server URLs and their display names added to the desktop app by default, which the user cannot modify. Users can still add servers [through the Server Management page](#enableservermanagement) unless `enableServerManagement` is set to `false`. Expects an array of key-value pairs. Example: ``` text defaultTeams: [ { name: 'example', url: 'https://example.com' }, { name: 'mattermost', url: 'https://www.mattermost.com' } ] ``` ## `helpLink` The URL of the help documentation in **Help \> Learn More** menu bar item. If none is specified, the menu option is hidden. Expects a string. Example: ``` text helpLink: 'https://docs.mattermost.com/messaging/managing-desktop-app-servers.html' helpLink: '' ``` ## `enableServerManagement` Controls whether users can add, edit, or remove servers on the app settings page. If set to false, at least one server must be specified for `defaultTeams` or else users cannot interact with any servers. Expects a boolean, true or false. Example: ``` text enableServerManagement: true ``` ## Managed resources [Custom builds](/deployment-guide/desktop/distribute-a-custom-desktop-app) of the Mattermost desktop app support managed resources which are services available on the same hostname and protocol as the Mattermost server. To configure managed resources, add their path to the `managedResources` field in your configuration file. Selecting a managed resource opens it as a pop-up window in the desktop app. Additionally, you must configure the :ref:Managed Resource Paths \\` server configuration setting. For example, adding the `/video` path: ``` text [...] managedResources: ['trusted', 'video'], [...] ``` Below are examples of server URLs with valid and invalid managed resource URLs: Server: `https://mattermost.my.org` - Valid: `https://mattermost.my.org/video` - Valid: `https://mattermost.my.org/conference` - Invalid: `http://mattermost.my.org/video` (different protocol) - Invalid: `https://conference.my.org` (different origin) Server: `https://my.org/mattermost` - Valid: `https://my.org/video` - Valid: `https://my.org/conference` - Invalid: `http://my.org/video` (different protocol) - Invalid: `https://conference.my.org` (different origin)