---
schema_version: "1"
id: e275407659280e1948e9b3a8de73b1e8bb52a550d1cece2dc03c5a16c68f237e
title: Develop a Custom Block Widget
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/guides/mc-app-development/develop-block-widget.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/develop-block-widget.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 07de9353daa5b6fb2ed68cc9a5fb8a31c22d2d6b7c4c5ef1702c63090a18a35c
products:
  - Marketing Cloud Engagement APIs and Programmatic Languages
  - Marketing Cloud
---
# Develop a Custom Block Widget

To develop and offer a custom block, you need the following:

- A block widget: an HTML page for editing content that uses the Content Builder Block SDK to interact with content blocks in the editor.
- A block icon and dragging icon. This icon displays as users drag and drop the block onto the canvas.
- An app that serves this page and a hosting provider to host the app.
- An installed package that includes your block component.

## Content Builder Block SDK on GitHub

<https://github.com/salesforce-marketingcloud/blocksdk>

## Block Widget URL

When adding a block component to an installed package, provide a block widget URL. This is the registered endpoint for your custom content block app. For example, if the URL for your block widget is `https://www.example.com/myblock/`, then the Content Builder editor assumes these URLs exist.

- `https://www.example.com/myblock/index.html` is your block widget page.
- `https://www.example.com/myblock/icon.png` is your block icon.
- `https://www.example.com/myblock/dragIcon.png` is your block drag icon.

## Test Your Block Widget

To test your block, you need an account that's provisioned for Content Builder, with user permissions to use the editor. Add a block component to your installed package and test it in Content Builder.

## Register Your Block Widget on AppExchange

To sell or distribute your custom block outside of your account, register your block widget's installed package on AppExchange.

## Related Items

- [Register Endpoint for Custom Content Block Component](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/create-content-block.md)
- _Salesforce Help_: [Content Builder Permissions](https://help.salesforce.com/articleView?id=mktg.mc_ceb_content_builder_permissions.htm)
- [List Your App in AppExchange](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/list-app-appexchange.md)
