community-sdks/unlayer-filament
A Filament integration for Unlayer that lets you create, edit, and manage email templates with a drag-and-drop designer directly in your Laravel admin panel. Embed the Unlayer editor in Filament resources and streamline template management.
Package: community-sdks/unlayer-filament — v1.0.0 (first tagged stable release)
What it appears to be: a Filament plugin that embeds the Unlayer drag-and-drop email/page builder as a Filament form field (Livewire + Alpine + Unlayer JS SDK), persisting the design payload for a Laravel application.
Confidence caveat: the v1.0.0 release notes contain only a
Full ChangelogURL and no changelog body. Everything below is inferred from the package name, namespace, and Filament conventions. Treat the technical risk rating as provisional until the README,composer.json, and CI status are reviewed. Do not approve adoption on the strength of these release notes alone.
Architecture fit
Plugin/FilamentPlugin contract in a PanelProvider and expose a field class usable inside any form schema — low architectural intrusion.exportHtml() callback or the paid Export API. If our app needs HTML for mailables, we own that export step.Integration feasibility
composer require community-sdks/unlayer-filament, register the plugin on the panel, optionally vendor:publish config/assets, add an env-backed Unlayer project/API key, add the field to a resource form. Realistically a half-day spike for a developer already fluent in Filament.Technical risk
| Risk | Severity | Note |
|---|---|---|
| Empty changelog → unknown scope of v1.0.0 | High | Cannot distinguish "first public release" from "stabilised rewrite"; no breaking-change surface documented |
| Filament major-version lag | Medium-High | Filament ships majors quickly; single-purpose wrappers commonly fall behind |
| Unlayer JS SDK drift / CDN availability | Medium | Editor load failure is a hard blocker on an admin form |
| Vendor lock-in (Unlayer commercial) | Medium | Design JSON is proprietary; migration to another builder means re-authoring templates |
Maintenance posture of community-sdks |
Medium | Community org, no visible SLA; bus-factor unknown |
| Payload size / column typing | Low-Medium | Design JSON is large; needs LONGTEXT/json with care in MySQL |
| CSP / iframe / asset restrictions | Low-Medium | Editor often fails silently behind strict script-src policies |
Key questions to close before approval
composer.json constraints)?exportHtml() output, or JSON only? Is the paid Export API required?Verdict: technically plausible and low-effort to pilot, but information-insufficient for production commitment. Approve a timeboxed spike only.
Stack fit
design_json — LONGTEXT (or JSON on MySQL 8/Postgres) for the Unlayer designhtml — LONGTEXT, nullable, populated on saveplain_text — nullable, deriveddesign_version / editor_version — small ints, cheap insurance for future migrationsMigration path
Compatibility & sequencing
composer.json, open issues, CI badge; confirm Filament version and Unlayer account tier; confirm CSP allowance for Unlayer domains in staging.^1.0 and record the exact installed version in the ADR; require an explicit review before any 2.0.Maintenance
Support
Scaling
design_json in list queries.Failure modes
| Failure | Blast radius | Mitigation |
|---|---|---|
| Unlayer CDN blocked / CSP change | Admin cannot edit templates; form may hang | Local asset publish where supported; CSP allowlist; feature flag to fall back to plain-HTML editor |
| Silent save of malformed design JSON | Broken templates discovered at send time | Validate JSON on save; keep last-known-good HTML column |
| Livewire re-render discards unsaved editor state | Content loss, user frustration | Autosave hook / beforeunload guard / dirty-state check |
| Oversized payload exceeds column limit | Truncated designs, unrecoverable | LONGTEXT, explicit length check with a clear error message |
| Unlayer API key committed to repo | Billing/abuse exposure | Env-only config, secret scanning, per-environment projects |
| Filament major upgrade breaks the field | Blocks panel upgrade | Pinned constraint, upgrade rehearsal in staging, fork as fallback |
| Unlayer pricing/plan change | Cost or feature loss | Contract review; design JSON is at least exportable for re-authoring |
Ramp-up
How can I help you explore Laravel packages today?