XD and Creative Cloud Extensibility FAQ

If you’ve been following this blog, you’ve probably noticed a steady increase in the volume of content by the Creative Cloud Ecosystem team regarding tips and tricks, upcoming events, and developer guides for building integrations into CC applications. This is due to the ever increasing importance of a robust developer ecosystem as designers and creative teams are using more tools to get work done, to solve the unique challenges and demands of them.

Recently, we shared that Adobe XD will be opening up a developer platform to serve this growing need, and just this week we announced the new Adobe Fund for Design to encourage development on this platform and to support entrepreneurs building innovative products in the creative field. While the XD developer platform is still in private beta, we’ve received an influx of questions from new and existing CC extension developers, and we’d like to address some of them here.

What skills do I need to develop XD plugins?

The XD developer platform follows a similar set of principles that XD does — lightweight, high performance, zero friction. We’ve developed a modern JavaScript-based plugin architecture that’s powered by a native/javascript bridge to allow for rapid iteration, higher performance, and multi-platform feature development. Plugin APIs are OS-agnostic, meaning they install and run on Mac and UWP versions of XD. Our philosophy is to respect web API standards whenever possible, and to offer clean platform abstractions when it’s not.

What will I be able to do with XD plugins?

We have a ton of context specific APIs in the works, but the initial offering will support a wide array of workflows. Specifically, XD plugins will:

  • Be written in modern JavaScript
  • Be able to automate user interactions
  • Be available to interact with the open XD document, including accessing and generating content
  • Have access to local file system
  • Have network access
  • Be able to inject menu items and display custom UI

These features will enable workflows from content generation, to document organization, to workflow automation, and service integration.

When will I be able to access XD’s developer platform?

The rough platform timeline is as follows:

  • Private Beta (Ongoing through June) — During this period, we’re focusing primarily on delivering a great developer experience for building plugins. A number of internal and external developers are already banging away at the API surface, providing critical feedback and building a collection of sample plugins and best practices.
  • Pre-release Group (June) — In June, XD’s User Pre-release group will get access to the developer platform and the plugins being built for it. This will be a first step toward delivering the designer experience for using plugins.
  • Public Release (Late Summer) — We plan to open up the first iteration of the platform publicly to the broader XD user-base late this summer, with an aggressive roadmap for adding additional functionality, including in-app plugin discovery, with the standard XD monthly release schedule.

We’re accepting developers to the pre-release on a rolling basis, so if you’re interested in building plugins for XD, you can sign up to be notified when the developer platform is available, and get a chance to participate in the developer beta.

Will XD be using CEP to power its extensibility offering?

While XD’s plugin architecture shares many similarities with CEP, first among them being that it’s JavaScript-based, we’ve taken XD’s blank slate opportunity to build a plugin architecture with modern web technologies in mind.

What will happen to CEP?

CEP, or the Common Extensibility Platform, is a JavaScript-based plugin architecture that powers extensibility in 10+ CC applications, from Dreamweaver to Photoshop. The ecosystem is thriving, and CEP powers thousands of plugins and integrations used by millions of creatives.

Because XD doesn’t have an existing developer ecosystem, it gives us an opportunity to start from scratch with a new plugin architecture without risk of changes to APIs that are heavily in use. This new model borrows many of the great characteristics from CEP, but addresses some of the lingering issues, such as performance, memory usage, and lack of modern JavaScript support. We’re building this new model with the rest of the ecosystem in mind, so that once it’s matured, we can introduce it in the rest of the CC portfolio along side the current CEP APIs, which will allow us to offer a clear migration path to existing CEP developers with minimal friction.

Internally, we’re calling this new architecture UXP, or Unified Extensibility Platform (names are hard, ok!).

What’s new about UXP?

While UXP is powered by a new architecture under the hood, it was built with the CEP blueprint in mind, which means that like CEP, plugins will run in a JavaScript VM and will have access to a web view for custom UI. There are a few key differences:

  • Modern JavaScript VM
  • Addition of UWP support
  • JSON manifest format and simplified packaging
  • New Filesystem APIs will require user-mediated file access for resources outside of the plugin’s sandbox

Will CEP continue to be supported in existing applications?

While we plan to ship UXP in Adobe XD later this year, the current CEP model will continue to power extensibility in other Creative Cloud applications. When UXP is introduced to the current CEP-powered apps, existing plugins will continue to work alongside UXP-based plugins. This will ensure that CEP developers have enough time to migrate their plugins to the new model.

How hard will it be to migrate my CEP plugins to UXP?

As previously mentioned, UXP is heavily inspired by CEP, which means that migration of existing plugins should be straightforward with the help of Adobe-provided migration guides and support libraries. In addition, since Adobe XD will be the first Creative Cloud application to ship with UXP, so developers will be able to get an early look at what we’re planning and will have the opportunity to provide feedback.

Developers who are interested in building on XD can sign up to be notified when the developer platform is available, and get a chance to participate in the developer beta.

Follow the Adobe I/O blog for more developer stories and resources, and check out Adobe I/O on Twitter for the latest news and developer products.