# Layout & Workspace Sharing in io.Connect Desktop Implementation Tips

**URL:** <https://community.interop.io/t/layout-workspace-sharing-in-io-connect-desktop-implementation-tips/733>\
**Category:** io.Connect Desktop\
**Tags:** iocd-10, layouts\
**Created:** [October 21, 2026, 4:39pm UTC](https://community.interop.io/t/layout-workspace-sharing-in-io-connect-desktop-implementation-tips/733 "2026-10-21T16:39:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![toni.petrov](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/toni.petrov/32/17_2.png) [@toni.petrov](https://community.interop.io/u/toni.petrov)\
**Post date:** [October 21, 2026, 4:39pm UTC](https://community.interop.io/t/layout-workspace-sharing-in-io-connect-desktop-implementation-tips/733/1 "2026-10-21T16:39:00Z")

</div>

Layout and Workspace sharing in io.Connect Desktop 10.5 lets users publish their setups for colleagues and teams to use, without involving an administrator every time.

The [docs](https://docs.interop.io/desktop/getting-started/changelog/platform/10-5/index.html) clearly explain how to enable sharing and use the new APIs + [requirements](https://docs.interop.io/desktop/getting-started/changelog/platform/10-5/index.html#new_features-layout_sharing-requirements).

> ### You must
> 
> - Use **io.Manager 4.0+** as the Layout store, with **Desktop 10.5+ on every instance connected to it**. In `system.json`, set `server.enabled` to `true` and `server.features.layoutsStore` to ` true`.
> - Enable Advanced Layouts in both io.Connect Desktop and io.Manager.
> - Migrate existing Layouts using **Layouts → Migrate legacy layouts** in the Manager Admin UI or the migration REST endpoint.
> - Update application code: Use **`io.layouts.v2`** available in **`@interopio/desktop 6.23`** or later for Layout operations.
> - To provide the sharing controls, custom **Launchpad apps** must use **`@interopio/components-react` 5.0 or later** , and custom **Workspaces Apps** must use **`@interopio/workspaces-ui-react` 5.0 or later**.

Below are a few tips, things worth testing, and less obvious behaviors to keep in mind when implementing sharing or explaining it to users.

## Will sharing work with a customized Launchpad?

Check how your Launchpad was customized and whether the sharing controls appear after upgrading.

The answer depends on how you’ve customized your setup.

| Your setup | What you need to do | What to expect |
| --- | --- | --- |
| **Customized Launchpad**   
(you extended or modified the standard Launchpad) | Upgrade to the new Launchpad version.  
  
To get started quickly, use the [Launchpad template](https://github.com/InteropIO/templates/tree/main/io-connect-desktop-launchpad). | Standard customizations like logos, buttons and app configuration keep working.   
Deeper code changes may need small fixes to pick up the new sharing functionality. |
| **Custom Launcher**   
(you built your own launcher app) | Add the sharing interactions yourself   
(some extra development). | Sharing controls won’t appear automatically.   
To build them faster, use the new `io.layouts.v2` APIs and the ready-made functions in `@interopio/components-react` and `@interopio/workspaces-ui-react`. |

The minimum library versions to use are `@interopio/components-react` 5.0, `@interopio/workspaces-ui-react` 5.0 and `@interopio/desktop` 6.23. If you’ve disabled automatic library injection, make sure your applications explicitly reference a compatible `@interopio/desktop` version.

* * *

## Layouts with the same name

- Use Layout IDs when you need to target a particular saved Layout.

With Advanced Layouts enabled, a user can have a private Layout and access a shared Layout with the same name. Layouts are identified by unique IDs, and the io.Connect protocol handler supports restoring Layouts by ID. This is important if you use application code that looks up Layouts by name or deep links.

**Worth testing:**

Create private and shared Layouts or Workspaces with identical names, then try your existing links and restoration logic. Make sure each action restores the intended Layout. Update any logic that relies on Layout names instead of IDs.

* * *

## Sharing is role- and permission-based

Sharing uses **role-based permissions** : the **Owner** manages the Layout and its access, **Editors** can update it and manage access, and **Viewers** can use it and save a private copy to customize. Users can share with specific people or groups and assign view or edit permissions.

A private copy is independent of the shared original. Changes to that copy do not update the version colleagues use.

These permissions apply to both Global Layouts and Workspace Layouts. See the [sharing roles and permissions documentation](https://docs.interop.io/desktop/capabilities/windows/layouts/overview/index.html#layout_sharing).

## Saving Layouts without cluttering Launchpad

As teams start sharing Layouts, users may end up with many configurations that they don’t need regularly. They can use the _ **Hide from Launchpad** _ functionality to declutter. Here’s the catch: hiding is controlled by both the Layout’s hidden state and the user’s Launchpad preference.

If someone has hidden a Layout but it still appears, check whether their preference to show hidden items is enabled.

* * *

## Agree on a process for sharing and updating Layouts for end-users

A user can share a Layout by clicking Publish. The “Keep a Private Copy” option preserves the user’s private Layout, which remains accessible only to them.

This means a user can create a Layout for a team and publish it + his own private copy. A week later, he improves that private version by adding another application and changing the arrangement. His colleagues won’t automatically receive those improvements. They’re still using the published version. For everyone to benefit from the new arrangement, he’ll update the shared version.

This distinction also matters when colleagues save private copies of Layouts shared with them. Viewers can use **Save a Private Copy** to create their own version, customize it, and even publish that copy to someone else.

Teams should agree on when to update shared Layouts and when to work with private copies, to avoid unexpected changes affecting colleagues.

* * *

## The “Public” label in the UI includes both public and shared Layouts

io.Connect distinguishes between **private** , **shared** , and **public** Layouts:

| Type | Who can access it? | How is it created? |
| --- | --- | --- |
| **Private** | Only its owner. | A user saves a private Layout or makes a private copy of an existing one. |
| **Shared** | Its owner and the selected users or groups, with view or edit permissions. | A user selects **Publish** in Launchpad or the Workspaces App and chooses whom to share it with. |
| **Public** | All users, while the Layout remains public. Editing is limited to its owner and users or groups granted edit permissions. See the Desktop 10.5 caveat below.\* | Through io.Manager or an application using the new Layouts API. Launchpad and the Workspaces App cannot create public Layouts. |

The potentially confusing part is how these types appear in the UI: **Launchpad groups both shared and public Layouts under “Public.”** The Workspaces App similarly labels both types **“Public Workspace.”**

For example, a Layout a trader publishes for just two colleagues appears under **Public** for those colleagues. It remains a shared Layout accessible only to the selected audience. But appearing under the “Public” label does not mean it’s available to everyone.

The UI label alone therefore doesn’t tell you who has access. Check the Layout’s access details to see its audience and permissions.

> \* **Desktop 10.5 caveat:** Adding users or groups with **view permissions** to a public Layout through Launchpad or the Workspaces App converts it to a **shared Layout** in io.Manager. Access then follows the selected sharing permissions, so the Layout is no longer available to everyone. It still appears under **Public** in the UI, which can make this change easy to miss. **Desktop 10.6 will change this behavior** : public Layouts will remain available to all users, and only users or groups with **edit permissions** can be added to them.

* * *

Have you encountered other behaviors worth knowing about? Share your experience or questions below.

---

<div class="post-metadata">

**Author:** ![toni.petrov](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/toni.petrov/32/17_2.png) [@toni.petrov](https://community.interop.io/u/toni.petrov)\
**Post date:** [October 21, 2026, 4:38pm UTC](https://community.interop.io/t/layout-workspace-sharing-in-io-connect-desktop-implementation-tips/733/2 "2026-10-21T16:38:11Z")

</div>


