MJML Componenets integration in GrapesJS

Usage no npm install needed!

<script type="module">
  import sergeysovaGrapesjsMjml from 'https://cdn.skypack.dev/@sergeysova/grapesjs-mjml';



This plugin enables the usage of MJML components inside the GrapesJS environment. MJML components are rendered in real-time using the official compiler, therefore the result is, almost, the same as using the MJML Live Editor.



Supported components: mj-container mj-section mj-column mj-text mj-image mj-button mj-social mj-divider mj-spacer


|Option|Description|Default| |-|-|- |categoryLabel|Category for blocks|''| |importPlaceholder|Import placeholder MJML|''| |modalTitleImport|Title for the import modal|Import MJML| |modalBtnImport|Test for the import button|Import| |modalLabelImport|Description for the import modal|''| |modalTitleExport|Title for the export modal|Export MJML| |modalLabelExport|Description for the export modal|''| |overwriteExport|Overwrite default export command|true| |preMjml|String before the MJML in export code|''| |postMjml|String after the MJML in export code|''| |resetBlocks|Clean all previous blocks if true|true| |resetDevices|Clean all previous devices and set a new one for mobile|true|, |resetStyleManager|Reset the Style Manager and add new properties for MJML|true|,


  • npm i grapesjs-mjml


<link href="path/to/grapes.min.css" rel="stylesheet"/>
<script src="path/to/grapes.min.js"></script>
<script src="path/to/grapesjs-mjml.min.js"></script>

<div id="gjs">
  <!-- Your MJML body here -->
            <mj-text>My Company</mj-text>

<script type="text/javascript">

  var editor = grapesjs.init({
      fromElement: 1,
      container : '#gjs',
      plugins: ['gjs-mjml'],
      pluginsOpts: {
        'gjs-mjml': {/* ...options */}


Clone the repository

$ git clone https://github.com/artf/grapesjs-mjml.git
$ cd grapesjs-mjml

Install it

$ npm i

The plugin relies on GrapesJS via peerDependencies so you have to install it manually

$ npm i grapesjs --no-save

Start the dev server

$ npm start

Alternatively, you can clone the grapesjs repository in a different directory, npm link it and use that as the grapesjs dependency. This lets you simultaneously run grapesjs-mjml and grapesjs from source.

Install grapesjs and run the webpack watcher in it:

$ git clone https://github.com/artf/grapesjs
$ cd grapesjs
$ npm install
$ npm link
$ webpack --watch

Install grapesjs-mjml, link the grapesjs repo from above and start the dev server:

$ git clone https://github.com/artf/grapesjs-mjml
$ npm install
$ npm link grapesjs
$ npm run


BSD 3-Clause