$ show hyperbrew/bolt-cep
Bolt CEP is a comprehensive boilerplate for building Adobe Common Extensibility Platform (CEP) extensions using modern web technologies. It provides a unified development experience for creating extensions that work across Adobe applications like Photoshop, Illustrator, Premiere Pro, and After Effects. The system features a monorepo structure containing the core boilerplate, a project creation CLI (create-bolt-cep), and a specialized Vite plugin (vite-cep-plugin) that handles CEP-specific build tasks. Developers can choose between React, Vue, or Svelte for their frontend framework while writing type-safe ExtendScript that compiles down to ES3 for CEP compatibility. Key innovations include an end-to-end type-safe bridge between CEP JavaScript and ExtendScript (via evalTS/listenTS/dispatchTS), automated ZXP packaging with cross-platform signing support, and intelligent asset handling. The build process leverages Vite for fast HMR during development and Rollup for producing CEP-compatible ExtendScript bundles.
The LLM identified 3 files worth highlighting for reuse:
Implements end-to-end type-safe communication between CEP JavaScript and ExtendScript layers through evalTS, listenTS, and dispatchTS functions. Provides automatic JSON serialization/deserialization, error handling, and proper scoping to prevent namespace collisions. This pattern allows developers to call ExtendScript functions with full TypeScript support while maintaining compatibility with CEP's evalScript API.
Handles the complete ZXP signing process for Adobe extension distribution. Manages platform-specific ZXPSignCmd paths, ensures executable permissions, creates self-signed certificates, and implements intelligent TSA (Time Stamp Authority) fallback logic. Automatically handles cases where TSA signing fails and provides clear error messaging.
Generates valid CEP manifest.xml files from configuration objects. Properly handles the complex XML structure required by Adobe CEP including ExtensionList, ExecutionEnvironment, and DispatchInfoList sections. Ensures all required attributes are correctly formatted and handles panel duplication prevention.