christhompsontldr/laravel-inky
Laravel Inky integrates Zurb's Inky email templating with Laravel, letting you write clean, component-based Blade views that compile into responsive HTML emails. It simplifies building mobile-friendly transactional messages with reusable partials and Laravel Mail.
<container>, <row>, <columns>, <button>) that compile to the table-based HTML Outlook and Gmail actually render. The decision it unlocks is whether to schedule an email refresh at all: cheap, low-risk iteration is the precondition for treating email design as planned work rather than reactive firefighting.Adopt only when all of these hold:
Look elsewhere — or plan to own the integration — when:
inky PHP library in-house (~200–400 LOC you control) vs. MJML vs. status quo.Mail::markdown(), which is maintained upstream and accessible by default. Inky is an upgrade in layout control and a downgrade in maintenance posture; migrate only templates where layout is genuinely constrained.Gating questions before commitment: declared Laravel/PHP versions with CI evidence, which Inky implementation is wrapped and at what pin, last commit and license, whether compiled output is cached, partials/variables support, coexistence with Markdown mailables, and whether a render helper exists for tests and local preview. If these cannot be answered from the repo in under an hour, treat that as a signal and proceed to the fork path.
To executives: Transactional email — receipts, password resets, shipping notices — is a high-visibility surface that today costs disproportionate engineering and QA time because email clients render HTML inconsistently. This lets engineers write simple, readable templates that compile automatically into client-safe HTML, shortening the cycle from design change to shipped email and cutting "it looks broken in Outlook" defects. It is free and open source, keeps templates in our own codebase, and carries no per-seat or per-send vendor cost. The trade-off is that it is a small, lightly adopted project, so we should run it as a low-cost, easily reversed experiment: the integration is thin and swappable for MJML or a hosted editor if requirements change. Ask: one engineer, one week, one template in production, with a defined abandon trigger.
To engineering: A thin Laravel wrapper that runs Inky compilation over mail views, so templates stay in Blade and ship with deploys — no vendor lock-in, no new runtime service, and the Mail/queue/transport path is untouched. It handles structure only; we still own CSS inlining and Foundation assets. Pin the dependency exactly and assume we may fork or vendor it — the wrapper is plausibly a few hundred lines, so the fallback is cheap. Recommended sequence: a 1–2 day spike on three representative templates (receipt, multi-column marketing, nested-component edge case), diff output against canonical Node Inky as a fidelity gate, then a cross-client render check as go/no-go, then a fork-or-vendor call, then migrate one low-risk template behind the existing Mailable interface before going broad with a snapshot test per template.
To design and marketing: You get component-level consistency between web and email and faster turnaround on layout changes, because designers specify in a shared Inky vocabulary instead of negotiating table hacks. What you do not get is self-serve editing — each change is a PR and a deploy. If campaign-speed editing is a requirement, say so now; that pushes us toward a hosted template product instead, which is a different and larger budget.
How can I help you explore Laravel packages today?