Webflow Designer Extension Development
Build extensions that run inside Webflow's Designer as iframes, interacting with the Designer API to manipulate elements, styles, pages, and more.
Quick Start Workflow
Prerequisite: Register your app in Webflow first — see references/register-app.md. You'll need a Workspace with Admin permissions.
- Scaffold:
npx create-webflow-extension@latest (interactive prompts for project name, package manager, linter)
- Develop:
cd <name> && pnpm dev (serves at localhost:1337; also works with npm/yarn/bun)
- Test: Install app on test site via Workspace Settings > Apps & Integrations > Develop
- Open: Press "E" in Designer to open app panel, launch extension
- Build:
pnpm build for deployment
CLI Options
npx create-webflow-extension@latest [project-name] [options]
Options:
--pm <pnpm|npm|yarn|bun> Package manager to use (default: pnpm)
--linter <oxlint|biome|eslint> Linter to use (default: oxlint)
--skip-git Skip git initialization
--skip-install Skip dependency installation
--quiet Suppress output
Designer API
For all API methods, patterns, and code examples, refer to the reference documentation below. Start with the quick lookup reference for a complete overview:
- Designer APIs Reference — all
webflow.* methods in one table
- Elements API — element selection, insertion, presets, and the element builder
- Styles API — creating styles, setting CSS properties, breakpoints, and pseudo-states
- Components API — component definitions, instances, and editing context
- Variables API — design token variables (colors, sizes, fonts, numbers, percentages)
- Error Handling — error structure, cause tags, and recovery patterns
Project Structure
Generated by create-webflow-extension (React 19 + TypeScript + Rspack):
my-extension/
├── public/
│ └── index.html # Entry point
├── src/
│ ├── App.tsx # Main React component
│ ├── main.tsx # React entry point
│ └── index.css # Styles
├── webflow.json # Extension settings
├── rspack.config.ts # Rspack bundler configuration
├── package.json
└── tsconfig.json
Reference Documentation
Each reference file includes YAML frontmatter with name, description, and tags for searchability. Use the search script to find relevant references quickly:
# List all references with metadata
python scripts/search_references.py --list
# Search by tag (exact match)
python scripts/search_references.py --tag <tag>
# Search by keyword (across name, description, tags, and content)
python scripts/search_references.py --search <query>
CLI & Tooling
- references/create-webflow-extension-reference.md:
create-webflow-extension scaffolding CLI
- references/webflow-cli-reference.md: Webflow CLI for serving, bundling, and listing extensions
Designer API
- references/designer-apis-reference.md: All APIs and methods in one place (start here)
- references/elements-api.md: Element manipulation and presets
- references/styles-api.md: Styling, breakpoints, pseudo-states
- references/components-api.md: Component definitions and instances
- references/pages-api.md: Page and folder management
- references/variables-api.md: Design token variables and collections
- references/assets-api.md: Asset upload and management
- references/extension-utilities.md: Site info, events, notifications, app discovery, authentication
- references/error-handling.md: Error structure, cause tags, and recovery patterns
- references/code-examples.md: Cross-API workflow examples combining multiple APIs
Design & Marketplace
- references/design-guidelines.md: UI design for native Webflow look
- references/register-app.md: Registering a Webflow App and configuring capabilities
- references/marketplace-guidelines.md: Marketplace review criteria (safety, technical, design, branding)
- references/app-submission-and-listing.md: Submitting your app and creating an effective listing
- references/faq.md: FAQ and troubleshooting for extensions, marketplace, and common issues
Scripts
scripts/search_references.py: Search reference files by tag, keyword, or list all with metadata
Assets
assets/webflow-variables.css: CSS variables for Webflow's design system colors, typography, and shadows
Best Practices
- Check element capabilities: Always verify
element.children before append/prepend, element.textContent before text operations
- Handle errors gracefully: Use try/catch with
webflow.notify() for user feedback — see Error Handling
- Responsive design: Test on multiple breakpoints when setting styles — see Styles API
- Use variables: Leverage design token variables for consistent theming — see Variables API
- Subscribe to events: Use Designer events to keep extension state in sync — see Extension Utilities
- Appropriate sizing: Use
webflow.setExtensionSize() for proper panel dimensions — see Extension Utilities
1---2name: webflow-designer-extension3description: Build Webflow Designer Extensions that run inside the Webflow Designer. Use when creating, debugging, or modifying Designer Extensions (iframes that interact with Webflow's Designer API). Covers CLI usage, element manipulation, styles, components, pages, variables, assets, error handling, and UI design patterns for Webflow's design system.4license: MIT5---67# Webflow Designer Extension Development89Build extensions that run inside Webflow's Designer as iframes, interacting with the Designer API to manipulate elements, styles, pages, and more.1011## Quick Start Workflow1213> **Prerequisite:** Register your app in Webflow first — see [references/register-app.md](references/register-app.md). You'll need a Workspace with Admin permissions.14151. **Scaffold**: `npx create-webflow-extension@latest` (interactive prompts for project name, package manager, linter)162. **Develop**: `cd <name> && pnpm dev` (serves at localhost:1337; also works with npm/yarn/bun)173. **Test**: Install app on test site via Workspace Settings > Apps & Integrations > Develop184. **Open**: Press "E" in Designer to open app panel, launch extension195. **Build**: `pnpm build` for deployment2021### CLI Options2223```bash24npx create-webflow-extension@latest [project-name] [options]2526Options:27 --pm <pnpm|npm|yarn|bun> Package manager to use (default: pnpm)28 --linter <oxlint|biome|eslint> Linter to use (default: oxlint)29 --skip-git Skip git initialization30 --skip-install Skip dependency installation31 --quiet Suppress output32```3334## Designer API3536For all API methods, patterns, and code examples, refer to the reference documentation below. Start with the quick lookup reference for a complete overview:3738- **[Designer APIs Reference](references/designer-apis-reference.md)** — all `webflow.*` methods in one table39- **[Elements API](references/elements-api.md)** — element selection, insertion, presets, and the element builder40- **[Styles API](references/styles-api.md)** — creating styles, setting CSS properties, breakpoints, and pseudo-states41- **[Components API](references/components-api.md)** — component definitions, instances, and editing context42- **[Variables API](references/variables-api.md)** — design token variables (colors, sizes, fonts, numbers, percentages)43- **[Error Handling](references/error-handling.md)** — error structure, cause tags, and recovery patterns4445## Project Structure4647Generated by `create-webflow-extension` (React 19 + TypeScript + Rspack):4849```50my-extension/51├── public/52│ └── index.html # Entry point53├── src/54│ ├── App.tsx # Main React component55│ ├── main.tsx # React entry point56│ └── index.css # Styles57├── webflow.json # Extension settings58├── rspack.config.ts # Rspack bundler configuration59├── package.json60└── tsconfig.json61```6263## Reference Documentation6465Each reference file includes YAML frontmatter with `name`, `description`, and `tags` for searchability. Use the search script to find relevant references quickly:6667```bash68# List all references with metadata69python scripts/search_references.py --list7071# Search by tag (exact match)72python scripts/search_references.py --tag <tag>7374# Search by keyword (across name, description, tags, and content)75python scripts/search_references.py --search <query>76```7778### CLI & Tooling7980- **[references/create-webflow-extension-reference.md](references/create-webflow-extension-reference.md)**: `create-webflow-extension` scaffolding CLI81- **[references/webflow-cli-reference.md](references/webflow-cli-reference.md)**: Webflow CLI for serving, bundling, and listing extensions8283### Designer API8485- **[references/designer-apis-reference.md](references/designer-apis-reference.md)**: All APIs and methods in one place (start here)86- **[references/elements-api.md](references/elements-api.md)**: Element manipulation and presets87- **[references/styles-api.md](references/styles-api.md)**: Styling, breakpoints, pseudo-states88- **[references/components-api.md](references/components-api.md)**: Component definitions and instances89- **[references/pages-api.md](references/pages-api.md)**: Page and folder management90- **[references/variables-api.md](references/variables-api.md)**: Design token variables and collections91- **[references/assets-api.md](references/assets-api.md)**: Asset upload and management92- **[references/extension-utilities.md](references/extension-utilities.md)**: Site info, events, notifications, app discovery, authentication93- **[references/error-handling.md](references/error-handling.md)**: Error structure, cause tags, and recovery patterns94- **[references/code-examples.md](references/code-examples.md)**: Cross-API workflow examples combining multiple APIs9596### Design & Marketplace9798- **[references/design-guidelines.md](references/design-guidelines.md)**: UI design for native Webflow look99- **[references/register-app.md](references/register-app.md)**: Registering a Webflow App and configuring capabilities100- **[references/marketplace-guidelines.md](references/marketplace-guidelines.md)**: Marketplace review criteria (safety, technical, design, branding)101- **[references/app-submission-and-listing.md](references/app-submission-and-listing.md)**: Submitting your app and creating an effective listing102- **[references/faq.md](references/faq.md)**: FAQ and troubleshooting for extensions, marketplace, and common issues103104## Scripts105106- **`scripts/search_references.py`**: Search reference files by tag, keyword, or list all with metadata107108## Assets109110- **`assets/webflow-variables.css`**: CSS variables for Webflow's design system colors, typography, and shadows111112## Best Practices1131141. **Check element capabilities**: Always verify `element.children` before append/prepend, `element.textContent` before text operations1152. **Handle errors gracefully**: Use try/catch with `webflow.notify()` for user feedback — see [Error Handling](references/error-handling.md)1163. **Responsive design**: Test on multiple breakpoints when setting styles — see [Styles API](references/styles-api.md)1174. **Use variables**: Leverage design token variables for consistent theming — see [Variables API](references/variables-api.md)1185. **Subscribe to events**: Use Designer events to keep extension state in sync — see [Extension Utilities](references/extension-utilities.md)1196. **Appropriate sizing**: Use `webflow.setExtensionSize()` for proper panel dimensions — see [Extension Utilities](references/extension-utilities.md)