gushphp/to-inline-style-email-bundle
A Symfony bundle that inlines CSS in HTML email templates for better rendering across email clients. It wraps the to-inline-style-email library and adds Symfony service and configuration integration, helping prevent stripped or ignored styles in Gmail, Outlook, and other clients.
<style> blocks and external stylesheets. This package is a data point in that build-vs-buy conversation, not the answer to it.tijsverkoyen/css-to-inline-styles, which is MIT and still maintained. This bundle is a Symfony2 service wrapper around it — a wrapper-of-a-wrapper whose last release was June 2017. The PM decision is: depend on the maintained library directly and write a ~1-day internal adapter, rather than inherit an unmaintained bridge.Consider it if:
Look elsewhere if:
fedeisas/laravel-mail-css-inliner, or call tijsverkoyen/css-to-inline-styles directly from a Mailable/ listener — that's the mainstream path and it's a few lines of code.soundasleep/html2text), AMP for Email, dark-mode handling, and client-specific hacks are all out of scope here — budget for them separately or you'll be stitching tools together later.Summary for executives and engineering:
We evaluated gushphp/to-inline-style-email-bundle for CSS inlining in our email pipeline — the technical step that makes branded HTML emails render correctly in Gmail, Outlook, and Apple Mail. It's MIT-licensed and free, and it solves a genuine customer-visible problem: broken layouts in transactional and notification emails, which generate support tickets and dilute brand trust.
However, I do not recommend adopting this package. It's a Symfony2 wrapper last released in June 2017, with zero dependent projects and a dependency tree pinned to an end-of-life framework. On a Laravel or modern Symfony codebase it isn't directly usable; even where it is, we'd own maintenance indefinitely with no upgrade path and no security response.
The recommendation is to get the same capability with far less risk: depend directly on the maintained upstream library (tijsverkoyen/css-to-inline-styles, MIT) and write a thin internal adapter — roughly one engineer-day. We keep the framework-agnostic core, control the integration point, and avoid betting the email pipeline on an abandoned bridge.
Cost/benefit: ~1 day of engineering against a recurring class of rendering defects and support load. Decision needed: approve the thin-adapter approach and, separately, decide whether inlining runs at send time or at template publish time — that choice affects infrastructure cost as volume grows and should be made before we build, not after.
How can I help you explore Laravel packages today?