amidesfahani/filament-tinyeditor
A TinyMCE rich text editor integration for Filament Admin and Forms. Supports Filament 5.x, 4.x, and 3.x, with configurable profiles, toolbars, RTL direction, image and file attachments, custom external plugins, and resizable editing.
RichEditor — so the decision this really supports is "TinyMCE or the built-in editor?", not "editor or no editor."external_plugins config), and RTL/ multilingual authoring (->rtl(), ->direction('auto|rtl|ltr')). If none of those appear in your interview notes or support tickets, you have no case to switch.default, simple, full, minimal) plus custom and none let you ship a reduced toolbar to marketers and a full one to editors, per form, without a fork. That's a cheap lever for reducing support tickets and accidental formatting damage.fileAttachmentsDisk, fileAttachmentsVisibility, and fileAttachmentsDirectory force an explicit decision on where author-uploaded images land (public disk vs. S3 vs. CDN, private vs. public ACL). That's a compliance, cost, and CDN decision worth capturing in the ADR rather than letting it default.Consider it when:
RichText field class) so a swap back to Filament's RichEditor is a single-file change.Look elsewhere (or use Filament's built-in RichEditor) when:
For executives (30 seconds): This is a small, free, MIT-licensed adapter that puts a professional-grade text editor (TinyMCE) into our admin panel instead of the one that comes with our framework. Cost is roughly a day of engineering, no new infrastructure, and no schema changes. The strategic value is that it unlocks Word-paste fidelity, table editing, and right-to-left authoring — the last of which is a prerequisite for the non-English markets on the roadmap. The honest caveat: it's a single-maintainer open-source project with a thin adoption base, so we treat it as a swappable component behind our own interface, not as foundational infrastructure. Exit cost if we abandon it: one file.
For engineering (the real pitch):
TinyEditor::make('content') extends Filament's Field class, so ->required(), ->columnSpan('full'), validation, and the rest of the familiar API keep working. Config and views are publishable, so behavior is tunable without forking.fileAttachmentsDisk / Visibility / Directory); direction is explicit (->rtl() / ->direction()); toolbars are declared profiles with pipe-separated groups. There's little hidden magic to reverse-engineer.external_plugins changes are visible in diffs — external_plugins loads third-party JS from URLs, which is a real CSP and supply-chain surface that should not be freely editable.RichText field, answers build-vs-buy definitively and leaves us with a cheap reversal if it doesn't hold up.How can I help you explore Laravel packages today?