PHPackages                             frosh/mjml - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. frosh/mjml

ActiveShopware-platform-plugin[Utility &amp; Helpers](/categories/utility)

frosh/mjml
==========

Compiles MJML email templates to HTML for Shopware mail sending

20PHP

Since Jun 9Pushed todayCompare

[ Source](https://github.com/FriendsOfShopware/FroshMjml)[ Packagist](https://packagist.org/packages/frosh/mjml)[ RSS](/packages/frosh-mjml/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

FroshMjml
=========

[](#froshmjml)

> ⚠️ **Work in progress** — this plugin is still under active development and not yet production-ready. Expect breaking changes.

MJML email templates for Shopware 6.7. MJML in a mail's HTML body is compiled to responsive HTML at send time — pure PHP (`shyim/mjml-php`), no Node required.

Requirements
------------

[](#requirements)

- Shopware ~6.7.0
- PHP 8.2+

Installation
------------

[](#installation)

```
composer require frosh/mjml
bin/console plugin:refresh
bin/console plugin:install --activate FroshMjml
```

Usage
-----

[](#usage)

**Per mail template:** open a mail template, toggle *Use MJML*, and write MJML in the editor. The default HTML stays untouched, so the toggle is reversible.

**Reusable components** (Settings → MJML Components) are referenced from Twig:

- `{{ mjml_component('name', { headline: '…' }) }}` — inline fragment
- `{% mjml 'name' %}…{% endmjml %}` — fragment with a `{{ content }}` slot
- `{% extends mjml_base('name') %}{% block content %}…{% endblock %}` — base layout

Content inside a block or slot must be valid MJML (`…` etc.); raw text in an `` is dropped by MJML.

###  Health Score

21

↑

LowBetter than 18% of packages

Maintenance65

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7c45ef9077b73fce78afbfab2fa27e611a453dd77de003e2785ac84105d02bef?d=identicon)[shyim](/maintainers/shyim)

---

Top Contributors

[![stefanpoensgen](https://avatars.githubusercontent.com/u/22468102?v=4)](https://github.com/stefanpoensgen "stefanpoensgen (1 commits)")

### Embed Badge

![Health badge](/badges/frosh-mjml/health.svg)

```
[![Health](https://phpackages.com/badges/frosh-mjml/health.svg)](https://phpackages.com/packages/frosh-mjml)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
