notfloran/mjml-bundle
A Symfony bundle that integrates MJML into PHP apps, compiling MJML markup into responsive HTML emails. It wraps the MJML renderer with configurable options and a simple service for generating templates, making it easy to build maintainable, mobile-friendly transactional emails in Symfony projects.
BinaryRenderer adapted for the MJML 5 binary). That matters for the "build vs. buy" call on responsive email: teams can keep authoring emails in MJML and relying on the upstream compiler rather than hand-maintaining table-based HTML per template.Adopt when:
mjml-bundle — a Symfony bundle, not a Laravel-native package). Laravel teams should treat it as a reference implementation and pair it with a plain MJML PHP wrapper or a small compile step, rather than assuming a drop-in.BinaryRenderer shells out to the MJML CLI). If you cannot, prefer a hosted rendering API or precompiled templates checked into the repo.Look elsewhere when:
For executives: Email is a revenue and trust surface that is usually built ad hoc and breaks quietly in Outlook. This release is small — it aligns our PHP-side email rendering with MJML 5, the current version of the open-source standard for responsive email — but it is the signal that this dependency is actively maintained and tracking upstream. The business case is cost avoidance and speed: one templating approach instead of per-campaign hand-coded HTML, fewer client-specific rendering bugs, and faster localization rollouts. Cost is low (open-source library; engineering time is the real investment). Risk is contained: no breaking changes here, and the main dependency — a Node binary on our build hosts — is an infrastructure choice we control.
For engineering: v3.11.0 adapts BinaryRenderer for MJML 5. It is a compatibility release, not a feature release — no public API changes called out, so upgrading from 3.10.x should be a version bump plus a regression pass. Action items: confirm the MJML 5 CLI is pinned and available wherever BinaryRenderer executes (CI and production), re-render the full template suite against MJML 5 since major-version compiler changes can shift output, and re-run cross-client checks (Outlook desktop, Gmail app) rather than trusting the compiler upgrade alone. Treat the binary as a first-class deploy dependency: pin the version, fail the build loudly if it is absent, and prefer build-time compilation so production never depends on a shell-out. If we are Laravel-only, budget a small adapter layer — this is a Symfony bundle — or evaluate a lighter wrapper before committing.
How can I help you explore Laravel packages today?