CEP extensions (Common Extensibility Platform) have been around since the start of the Creative Cloud days, but they weren’t, and still aren’t widespread amongst developers and users. Even today, most extensions in my opinion are mostly Photoshop and InDesign related stuff – hardly anything for After Effects. Despite this, there has been a growth in AE devs switching from traditional ScriptUI stuff and moving over to CEP. I am one of these dabblers, and although this isn’t a “Getting Started” post, I will briefly talk about my initial impression and experience developing CEP extensions.
I’d like to mention first that I am no programmer by trade. I took a few programming classes at my university, have a decent background in general programming, and have developed a decent amount of traditional After Effects scripts in the past.
Pain to Even Get Started
Getting started with CEP development is a huge pain. You don’t just open your IDE and start typing away on a blank document like you would traditionally. There’s a file structure you need to follow, which you can grab via official CEP samples, or with a generator (Sublime / Brackets). I opted for the Sublime generator, it works and gives you basic styling. There’s an XML file you have to modify to specify which apps, app versions, and other details your extension supports. You also can’t even run your extensions in your host apps by default, you’ll need to do some registry or terminal commands to enable running unsigned extensions first.
Lack of Clarity
Lastly, the lack of documentation and information is what makes CEP development a little difficult. With strange behaviors and bugs, you don’t know if it’s your mistake or something wrong with the engines. There’s only two or three resources out there that talk about CEP, one being the official GitHub repo with sample extensions. I’ll cover more about these resources and how to get started in another post. If you thought scripting lacked documentation, you’ll find that CEP has a ton less information that makes you question what this particular snippet does, etc. It’s not that the lack of information will be a huge issue per se, but it just makes the idea of CEP a little unclear. You don’t want to try to understand everything there is to know, because a lot of it isn’t documented.
Overall, the experience of developing a CEP extension has been a rough, yet pleasant one. I’ve always wanted to dabble more into web development, and this is a great excuse to do so. Since extensions are pretty much a mini Chrome window inside your host app, this opens up many possibilities for unique UI’s and experiences, and this is all useful knowledge you can apply to web apps as well. If you have web development experience, I think you’ll find the CEP experience more enjoyable than traditional scripting, especially if you’re a UI freak. At the current state, I’d only recommend CEP extension development for more fancy and complex scripts that really require a unique interface. For simple stuff involving buttons and basic inputs, I believe traditional ScriptUI is still the faster and easier way to go. Of course, I will keep you guys posted as I progress in this CEP journey, and will probably do more informative posts about CEP as I go.