The HTML-based Rich Text Editor (RTE) field enables users to input different types of content such as text, image, videos, and so on. When you add a HTML-based RTE field in a content type, it displays a text area with editing and formatting options in the entry page. This field allows you to edit and format content entered in the field without using HTML tags (however, you can use HTML tags in the HTML mode, if needed).
Note: We now have a JSON Rich Text Editor that stores content in structured JSON blocks and returns clean data in the response body. You can also migrate content from your HTML-based RTE to the new JSON RTE using our CLI. Read more about our JSON Rich Text Editor and migration guide.
Apart from choosing between the Basic and Advanced editors, developers can also choose the Custom editor, while adding the HTML-based RTE field to content types.
The Custom editor allows you to choose from the various formatting options, and control what will be available in the HTML-based RTE toolbar for content managers.
Note: Only the stack owner, admins, and users assigned “Developer” roles have the right to customize the RTE field.
To customize the HTML-based RTE field, log in to your Contentstack account, and perform the following steps:

Now, when the content managers edit or create an entry of this content type, they will see the HTML-based RTE with the formatting/inserting options that you selected in the above step.

Additional Resource: You can read more about Field Visibility Rules in our documentation where we have covered it extensively.
Contentstack allows you to embed entries and assets within the HTML-based Rich Text Editor field. Embedded entries and assets are automatically updated within the Rich Text Editor field whenever the source entry or asset is updated.
The HTML-based RTE field lets you embed entries inline within the flow of text, as a separate content block, or as a dynamic hyperlink.
Here are some real-world scenarios where we use embedded entries:
In the case of assets, they can be embedded in the HTML-based Rich Text Editor in two ways, either as a displayable component or as a downloadable file.
Here are some real-world scenarios where we use embedded assets:
Note: The option to embed entries and assets within rich text content is available only for Advanced and Custom Rich Text Editor fields. The Basic type of Rich Text Editor does not have this option.
To enable the option to embed entries and assets inside the HTML-based Rich Text Editor field, log in to your Contentstack account and perform the following steps:



Now when the Content Managers try to edit or create an entry within the selected content types, they will be able to see the Embed icon in the RTE. After embedding the asset in your HTML-based RTE, hover over the image and click the edit button to view, edit or delete the asset.

You can also embed items within your RTE using the Custom Editor type.
To do this, log in to your Contentstack account, add a Rich Text Editor (RTE) field to your content type, and perform the following steps:


Note: You can only embed entries within the Advanced and Custom type HTML-based Rich Text Editor. This option is not available for the Basic RTE.
To embed entries in your HTML-based Rich Text Editor, log in to your Contentstack account and perform the following steps:





Note: You can only embed a maximum of 100 objects (entries and assets combined) within the RTE at the same time.
To embed an entry as a hyperlink inside the HTML-based RTE, you can perform the following steps:


Note: If you've inserted the link of a child entry within a parent entry in the Master language and later decide to localize the parent entry, you'll need to update the embedded link manually in the localized version as well.
For instance, if you've linked the "Blog" entry in English within the "Home" entry in English, and subsequently localize the "Home" entry into Arabic, you'll need to manually update the URL for the embedded "Blog" entry to the Arabic version.
To embed assets in your HTML-based Rich Text Editor field, log in to your Contentstack account and perform the following steps:


Note: You can only embed a maximum of 100 objects (entries and assets combined) within the RTE at the same time.
Note: This real-time update of frontend items works the same for embedded entries.
Social embedding refers to the process of incorporating social media posts into your webpage. This process enhances your website's content by offering you interactive and easily shareable social media content.
With the Social Embeds feature, you can embed your social media links within the HTML RTE.
To embed a link within your HTML RTE, log in to your Contentstack Account and follow the steps below:

Note: You can use any shareable link from the list of allowed embeds that you see below the Social Embeds modal.
Your embedded content should look as follows:

Note: Contentstack supports embedding content from YouTube, Vimeo, Facebook, Twitter, Instagram, and TikTok only.
Indentation allows you to visually offset blocks of content in the HTML-based Rich Text Editor (RTE) to improve readability and content structure. You can indent or outdent supported content using toolbar icons or keyboard shortcuts.
Indentation is supported for the following elements:
Note: Indentation is not supported for tables or entire lists. Lists follow standard nesting behavior.
You can indent or outdent content using the Indent and Outdent icons in the toolbar or use the keyboard shortcut Tab for Indent and Shift+Tab for Outdent.

Note:
Indentation is disabled if text alignment (left, center, right, justify) is applied.
| Windows | Mac | |
|---|---|---|
| Bold | CTRL + B | ⌘ + B |
| Italic | CTRL + I | ⌘ + I |
| Underline | CTRL + U | ⌘ + U |
| Strikethrough | CTRL + SHIFT + X | ⌘ + SHIFT + X |
| Inline Code | CTRL + E | ⌘ + E |
| Superscript | CTRL + . | ⌘ + . |
| Subscript | CTRL + , | ⌘ + , |
| Remove Formatting | CTRL + \ | ⌘ + \ |
| Normal (Paragraph) | CTRL + ALT + 0 | ⌘ + OPTION + 0 |
| Heading 1 | CTRL + ALT + 1 | ⌘ + OPTION + 1 |
| Heading 2 | CTRL + ALT + 2 | ⌘ + OPTION + 2 |
| Heading 3 | CTRL + ALT + 3 | ⌘ + OPTION + 3 |
| Heading 4 | CTRL + ALT + 4 | ⌘ + OPTION + 4 |
| Heading 5 | CTRL + ALT + 5 | ⌘ + OPTION + 5 |
| Heading 6 | CTRL + ALT + 6 | ⌘ + OPTION + 6 |
| Block Quote | CTRL + ALT + 7 | ⌘ + OPTION + 7 |
| Code Snippet | CTRL + ALT + 8 | ⌘ + OPTION + 8 |
| Left | CTRL + ALT + L | ⌘ + CTRL + L |
| Center | CTRL + ALT + E | ⌘ + CTRL + E |
| Right | CTRL + ALT + R | ⌘ + CTRL + R |
| Justify | CTRL + ALT + J | ⌘ + CTRL + J |
| Indent | TAB | TAB |
| Outdent | SHIFT + TAB | SHIFT + TAB |
| Ordered List | CTRL + SHIFT + 7 | ⌘ + SHIFT + 7 |
| Unordered List | CTRL + SHIFT + 8 | ⌘ + SHIFT + 8 |
| Choose from Uploads | CTRL + SHIFT + F | ⌘ + SHIFT + F |
| Insert Table | CTRL + ALT + SHIFT + T | ⌘ + OPT + SHIFT + T |
| Link | CTRL + K | ⌘ + K |
| Add Properties | CTRL + SHIFT + P | ⌘ + SHIFT + P |
| Divider | CTRL + H | ⌘ + H |
| Undo | CTRL + Z | ⌘ + Z |
| Redo | CTRL + Y SHIFT + CTRL + Z | ⌘ + Y SHIFT + ⌘ + Z |