Copy link to clipboard
Copied
So you want to build an Adobe Express add-on. This is how you do it. We’ll make an AI color palette generator that takes prompts and creates color schemes. Nothing fancy, just the basics.
What We’re Building
An add-on where users type something like “sunset colors” and get AI-generated palettes they can add to their Express projects. Basic stuff.
Prerequisites
You need these things:
Step 1: Setting Up Your Project
Create your add-on project with this command:
npx @adobe/create-ccweb-add-on color-ai-addon - template react-typescript-with-document-sandbox
This creates a new folder with all the files you need. It includes document sandbox support so you can actually add things to the Express document.
Navigate into your project:
cd color-ai-addon
Step 2: Understanding the Project Structure
Here’s what gets created:
color-ai-addon/
├── package.json - project config
├── webpack.config.js - build settings
├── tsconfig.json - TypeScript config
├── src/
│ ├── index.html - main UI file
│ ├── manifest.json - add-on metadata
│ ├── components/
│ │ └── App.tsx - main React component
│ └── sandbox/
│ └── code.js - document manipulation logicb
Adobe Express add-ons have two main parts:
Step 3: How Add-Ons Work
Adobe Express add-ons have two main parts that talk to each other.
UI part (React components):
Sandbox part (document manipulation):
The two parts talk to each other using the Add-On SDK. The UI sends messages to the sandbox when users do things, and the sandbox does the actual work.
Step 4: React TypeScript Setup
The React-TypeScript template gives you:
You get a basic App.tsx component that you can modify. It already has the Add-On SDK set up and ready to use.
Step 5: Spectrum Web Components
Adobe uses Spectrum Web Components for the UI. These are web components that look like native Adobe Express elements. You can use them in React with the @swc-react packages.
Common components you’ll use:
Step 6: Document Sandbox APIs
The sandbox part has access to the Express document APIs. You can:
The main APIs you’ll use:
Import pattern:
import { editor, colorUtils } from "express-document-sdk";
Step 7: Communication Between UI and Sandbox
The UI and sandbox talk through a proxy system:
This is how you get user input from the UI and then actually add things to the Express document.
For external API calls:
The sandbox cannot make network requests directly. You need to:
Step 8: Building and Testing
To build your add-on:
npm run build
npm run start
This creates a local server at `https://localhost:5241` where you can test your add-on.
Step 9: Loading in Adobe Express
To test your add-on:
3. Create a new project
4. Go to the Add-Ons panel
5. Enable “Add-On Testing”
6. Enter your local server URL
7. Click your add-on to run it
Step 10: How the Color Palette Add-On Works
For our color palette generator:
Important note: The document sandbox has limited web APIs and cannot make external network requests like calling APIs. External calls must be made from the UI iframe and the results passed to the sandbox through the communication API.
Common Issues
Add-on won’t load:
API calls fail:
Things don’t appear in the document:
What You Learned
You now know:
This is the basic structure for any Adobe Express add-on. You can build whatever you want using these same patterns.
If you guys want, I can also come up with a blog where we will deep dive into how to actually write Add-On code. This blog was just for you to get introduced to how Add-On works.
See you in the next one!!
Follow me on X: [removed]
Copy link to clipboard
Copied
Hi @fardeen26,
This is awesome, thanks for sharing such a clear and detailed walkthrough!
It’s super helpful for anyone looking to understand how Adobe Express add-ons work and get started with their own projects. A follow-up deep dive on writing actual add-on code sounds like a great idea too, would love to see that!
Feel free to share it here too!
Appreciate you sharing this with the community.
Best!
Copy link to clipboard
Copied
Thank you Amitej! I’m happy it’s helping the community, I’ll share the next deep-dive on coding soon.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now