visualbuilder/email-templates
Laravel package for database-backed email templates with a visual editor. Build reusable, variable-driven transactional emails, preview and manage them from your app, and send through Laravel Mail—no code changes or redeploys needed when content changes.
Architecture fit. visualbuilder/email-templates is a Filament plugin, not a standalone mail library. It targets the admin-panel layer of a Laravel application: it registers a Filament page/resource that hosts a visual email-template editor (likely GrapesJS or a comparable WYSIWYG canvas), persists templates, and renders them through Laravel’s Mail/Notification pipeline. That makes it a good architectural fit only for products already committed to Filament as their back-office framework. For a product on Nova, custom Livewire, or plain Blade admin, adopting this package means adopting Filament as a transitive platform dependency — a much larger decision than the package itself.
Integration feasibility. The surface area to integrate is small: composer require, publish config and migrations, register the plugin on a Filament panel, and point your mailables or notifications at stored templates. The hard dependency is the Filament major version; this package tracks a moving target and its compatibility matrix must be checked against the host app’s pinned Filament, Laravel, and PHP versions. The GPL-3.0 license is the single largest feasibility question: for internal or SaaS use, GPL obligations generally do not trigger, but for a distributed commercial product (a starter kit, an on-prem appliance, a marketplace app), GPL-3.0 copyleft is a legal review item, not a footnote. Zero registered dependents means no downstream validation of edge cases and no community-maintained compatibility patches.
Technical risk. Risks concentrate in four areas: (1) the rendering fidelity of editor-produced HTML across Outlook, Gmail, and Apple Mail — visual editors frequently emit markup that looks fine in the preview and degrades in real clients; (2) the template data model — whether templates are stored in package-owned tables, how variables/placeholders are declared, and how escaping and localization are handled; (3) the editor’s front-end asset pipeline and its compatibility with Vite and Filament’s asset publishing; (4) bus-factor — a single-maintainer package with a GPL license is forkable, but forking shifts maintenance cost onto your team.
Key questions for the spike.
Stack fit. Best fit is a Laravel 10/11/12 application already running Filament v3 or v4 for internal admin, with a transactional-email surface (order confirmations, password resets, lifecycle campaigns) that non-engineers want to edit. Poor fit if the team has standardized on a different admin stack, has a hard requirement for a hosted ESP with its own template editor (SendGrid, Postmark, Braze), or ships a closed-source distributed product where GPL-3.0 is disqualifying.
Migration path. Treat this as a strangler-fig migration away from hardcoded Blade mail views. Stand up the plugin on a non-production panel, model the current Blade templates as editor templates one at a time, and run both renderers in parallel behind a feature flag so you can diff output per mail type before cutting over. Legacy Blade templates remain the fallback until the new path is validated per email class.
Compatibility. Pin the Filament major version in composer.json and gate package upgrades behind the same lockstep cadence you use for Filament itself. Verify Node/Vite compatibility for the editor’s published assets in CI, not just locally. Confirm PHP and Laravel version constraints against your deployment matrix before committing; do not assume the package’s composer.json matches your lowest-supported PHP.
Sequencing.
Maintenance. Single-maintainer risk is real. Budget a recurring line item for tracking upstream releases and for a contingency fork under GPL if the maintainer goes dormant. Filament major upgrades will likely force package upgrades on the same schedule, so align release trains. The composer.lock is your friend here — do not float the constraint.
Support. Expect GitHub-issue-level support with no SLA. There is no commercial backing evident. If the feature is customer-visible (marketing or transactional email quality), the support gap must be absorbed internally — designate an owner on the platform team who can debug template rendering and editor asset issues.
Scaling. The editor is admin-only, so its scaling profile is trivial. Rendering scales with email volume, not with the package: cache compiled template output, keep rendering on the queue, and avoid re-parsing templates per send. Storage cost is negligible. The real scaling concern is organizational — once non-engineers can edit templates, governance (review, versioning, rollback) becomes the bottleneck, and the package may not provide it out of the box.
Failure modes. Most likely failures, in order: editor JS breaks after a Filament or Vite upgrade; rendered HTML degrades in a specific email client not caught by preview; a template references a variable the sending code no longer supplies, producing blank or broken emails in production; package migration conflicts on upgrade; maintainer abandonment. Mitigations: CI screenshot/render regression tests per template, schema validation of template variables against the mailable’s payload, a pinned version with a documented fork procedure, and a production kill-switch that reverts to Blade.
Ramp-up. End-user ramp-up is low — the value proposition is precisely that non-engineers can edit email without touching code. Developer ramp-up is moderate: learning the template data model, variable syntax, and rendering API takes a day or two; the ongoing cost is the compatibility treadmill with Filament. Legal ramp-up is non-trivial if the product is distributed. Net: viable and low-effort to trial, contingent on the license question and a willingness to own the fork if the maintainer disappears.
How can I help you explore Laravel packages today?