UXP Hub is now live - we’d like your feedback

Hi everyone,

UXP Hub is now live!

:backhand_index_pointing_right: Explore the new UXP Hub

A Central Place for UXP

With the launch of the UXP Hub, we’ve redesigned the documentation journey to provide a central place to learn and understand UXP - from the fundamentals to advanced topics, APIs, guides, and examples.

We’ve organized the Hub around the different stages of building with UXP:

Get Started → Build Plugins → Publish Plugins

Whether you’re getting started with UXP, actively building a plugin, or preparing to publish it, the goal is to make the relevant documentation and resources easier to find as you move through your developer journey.

We’ve also reorganized the navigation and sidebar to group related concepts, guides, APIs, and resources together in a way that we hope makes the documentation easier to understand and navigate.

Reducing Duplication Across Host Documentation

Previously, common UXP content was maintained across individual host documentation sites. Bringing this content together in the UXP Hub helps reduce duplication and makes it easier for us to keep UXP documentation consistent and up to date.

Note: Host-specific DOM APIs, changelog will continue to live on the respective product documentation sites. From the UXP Hub, you can easily navigate to the relevant host documentation when you’re ready to go deeper into a specific host.

The goal is simple: start with UXP to understand the platform and the fundamentals of building, then dive into the APIs and resources specific to the host you’re building for.

Migration Center

We’ve also introduced a Migration Center, where we plan to bring together migration guides, recommended practices, and other resources to help developers move existing plugins and integrations to UXP.

What’s Next

This is a first step. We plan to continue improving the UXP API documentation and examples, and to expand the resources available through the UXP Hub.

We’d like to hear your feedback on the UXP Hub and the new documentation experience. Please share your thoughts, questions, or suggestions directly in the comments on this post.

If you’d prefer to share feedback anonymously, you can use this form:

:backhand_index_pointing_right: Share anonymous feedback

Let’s keep building with UXP!

11 Likes

By way of feedback that you have asked for . . .

You write:

Previously, common UXP content was maintained across individual host documentation sites. Bringing this content together in the UXP Hub helps reduce duplication and makes it easier for us to keep UXP documentation consistent and up to date.

I think the most serious problem with duplicating common UXP content across host documentation sites was that actually, in doing so, you ended up with documentation that was inaccurate.

I became aware of this problem when UXP panel flyout menus were introduced for InDesign. I read the documentation for UxpMenuItem and UxpMenuItems (/uxp-api/reference-js/modules/uxp/entry-points/uxp-menu-item and /uxp-api/reference-js/modules/uxp/entry-points/uxp-menu-items). After considerable trial-and-error, it became apparent that most of that simply does not work in UXP for InDesign. I eventually realised that the documentation had simply been copied from the Photoshop site where it does work to the InDesign site where it does not work.

If you are now going to put all the common UXP documentation in one place, I think you need to meticulously document when things don’t work in a particular host application . . . or else the developer is left going down a very frustrating rabbit hole trying to make something work that never will.

Off the top of my head, here are a few other places where the documentation says things that in fact don’t work in InDesign or are, at best, problematic in InDesign . . .

Multiple panels. You have a guide about multiple panels in a single plugin (/uxp/guides/how-to/add-panels/). It’s a feature that I would love to use because it would mean that multiple panels could share common code (rather than duplicating code for each panel I create), but there are issues (principally panels not rendering but appearing blank and it being impossible for each panel to have its own flyout menu).

Icons. In the section on the Manifest, /uxp/guides/explanation/concepts/manifest/, it tells you how you can give your plugin an icon. This does not work in InDesign.

Lifecycle hooks. These are documented here /uxp/guides/explanation/concepts/entrypoints/ and in the guide here /uxp/guides/how-to/add-lifecycle-hooks/. In the guide you have included this text in an alert box:

Current limitations

The hide() and destroy() hooks are not reliable in every host. In Premiere, for example, hiding or closing a panel may not trigger the corresponding callback. Do not depend on these hooks for essential cleanup, and check your target host's release notes for current behavior.

In plugins with multiple panels, lifecycle hooks may fire for all panels without distinguishing which panel triggered the event.

In InDesign the hide() hook has never worked, the destroy() hook did work but now, as of the most recent releases of InDesign, does not. I think that alert message makes for a very poor user experience. I think you should either list which hooks work and which don’t for each application there on the page or you should provide actual links to where it is listed in each application’s documentation. I don’t think it is good enough to vaguely ask the user to “check your target host’s release notes for current behaviour” – where are those release notes, where in the release notes is the information I need? In the case of InDesign, I’m pretty sure the complete, correct information is not in the InDesign documentation anywhere because, as far as I know, you have nowhere acknowledged that the destroy() lifecycle hook is now broken. Furthermore, it is rather galling to read “Do not depend on these hooks for essential cleanup”. We desperately need the destroy() lifecycle hook precisely so that we can perform essential cleanup! It used to be the case that we could add InDesign event listeners in the create() lifecycle hook and then remove them (i.e. perform essential cleanup) in the destroy() lifecycle hook. Now that hook no longer works, there is no way to know when the user has closed the panel/plugin, so no way to perform the essential cleanup.

I’m sure there are other instances where what is documented does not match what is the case for InDesign, and, no doubt, the same is true for the other applications.

Philip

Hi Philip,

I discussed this with the UXP team.

The features you mentioned are available from the UXP side, but each host team is responsible for integrating and supporting them in their application.

But I agree with your point - developers shouldn’t have to find these differences through trial and error or dig through release notes to figure out what works in a particular host.

We’re going to work with the host teams on a clearer checklist to validate UXP features and identify these gaps. As we get that information back, we can also make it clearer in the UXP Hub with inline notes where something isn’t supported or behaves differently in a particular host.

We’ll also follow up on the InDesign examples you mentioned - menus, multiple panels, icons, and the lifecycle hooks.

Thanks for calling this out.

Hi Karan,

Thanks for your response.

We’re going to work with the host teams on a clearer checklist to validate UXP features and identify these gaps. As we get that information back, we can also make it clearer in the UXP Hub with inline notes where something isn’t supported or behaves differently in a particular host.

That’s great. I think that that is exactly what is needed.

We’ll also follow up on the InDesign examples you mentioned - menus, multiple panels, icons, and the lifecycle hooks.

The examples I mentioned have been discussed extensively on this forum and certainly some, perhaps all, have been reported as bugs, so I would expect the InDesign team to know what I have referred to. However, if they would like any further information – precise clarification of a bug, steps to reproduce, etc – I would be more than happy to provide it. They can direct message me here.

Thanks

Philip

1 Like

The issue with the icons will be fixed in the upcoming MAX release of InDesign.

2 Likes