Skip to content

feature request: Named MJML Blocks + Reusable Block Library #366

Description

@linuxd3v

Feature Request: Named MJML Blocks + Reusable Block Library

Problem

I find the left-side MJML block panel difficult to work with.

Currently, the sidebar displays a list of sections and blocks, but it can be hard to visually identify what each block represents without clicking through them. When templates become larger, locating specific content areas becomes increasingly cumbersome.

Proposed Solution #1: Custom Block Names

Allow users to assign custom names to MJML blocks/sections.

For example:

  • Header
  • Hero Banner
  • Mid Body
  • Product Widget
  • CTA Section
  • Footer

Instead of seeing a generic list of similar-looking blocks, users would immediately understand the purpose of each section and could rearrange them more efficiently via drag-and-drop.

Proposed Solution #2: Reusable Block Library

Introduce a reusable block catalog/library where users can save individual blocks or groups of blocks and reuse them across templates.

Example workflow:

  1. Create a reusable "Recipe Card" widget.
  2. Save it to a personal block library.
  3. When building a new template, drag the widget directly into the editor.

Current Workaround

Today, the only practical way to reuse content is to duplicate an existing template and manually modify it. This works, but becomes increasingly difficult as the number of templates grows and often leads to duplicated maintenance effort.

Benefits

  • Easier navigation within complex templates.
  • Faster drag-and-drop editing.
  • Improved template organization.
  • Reduced duplication of work.
  • Better scalability for teams managing many email templates.
  • More consistent branding and design across campaigns.

Screenshot

Image

I think the reusable block library would be especially valuable since it would effectively enable a component-based workflow for email templates, which becomes increasingly important as template complexity grows.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions