---
schema_version: "1"
id: e761b08a946049e3235b268be7b40136d1afa2de9e3d9587e160d71329b93a8e
title: Custom Block Widget Best Practices
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/guides/mc-app-development/block-widget-best-practices.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/block-widget-best-practices.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 506a79b4a0efdbd16bcbb3f96b546bf127bc74e80d1e8a34037b6189c11b15ad
products:
  - Marketing Cloud Engagement APIs and Programmatic Languages
  - Marketing Cloud
---
# Custom Block Widget Best Practices

When developing custom blocks, adhere to these best practices.

## Use the Lightning Design System

[](https://www.lightningdesignsystem.com/)<https://www.lightningdesignsystem.com/>

## Remember User Choices

When the user makes choices in the block widget and saves the block, they expect those choices to be remembered when they open that same block again. To save configuration separately from the block content itself, you can use `getData`.

## Update the Canvas in Real Time

Most of the editor’s system blocks update the canvas in real time, so your custom block widget should create the same experience for your users. If the user types or selects an option in the block, update those activities in real time rather than waiting for the user to exit or manually save. Use `setContent` or `setSuperContent` on changes.
