m6web/draftjs-bundle
m6web/draftjs-bundle is a Symfony bundle for server-side rendering of Draft.js content. It converts Draft.js raw JSON into HTML, letting rich text created with the React editor be displayed in Twig templates without relying on client-side JavaScript.
ContentState JSON, HTML, or Markdown. If you store raw JSON, every consumer that isn't the editor — server-rendered article pages, transactional email, RSS/AMP, mobile clients, search indexing, LLM pipelines — needs a converter. That's the exact gap this bundle filled.Effectively never for new or existing production work. It is explicitly marked deprecated, archived, last released February 2017, has 7 stars and zero dependents — no maintenance, no PHP 8 compatibility story, no security response, no community to inherit it.
Narrow cases where it is still worth ten minutes:
Look elsewhere — or build — when any of the following apply:
The high "opportunity" score is the interesting signal here: server-side rendering of rich-text editor output is genuinely underserved in PHP. That argues for a small, owned, well-tested internal package, not for resurrecting this one.
Executive summary. We evaluated m6web/draftjs-bundle, a PHP library that converts Draft.js rich-text content into HTML on the server. Recommendation: do not adopt. It is formally deprecated and archived, last shipped in 2017, and has no users or maintainers. It is also a Symfony bundle, so it does not fit our Laravel stack.
Why it still matters. It surfaces a real, unowned product problem: any content our users write in a rich-text editor has to be rendered somewhere other than the browser — article pages for SEO, emails, feeds, and APIs. Today that problem has no clear owner, and the most popular PHP solution in this space is dead. The market gap is real; the specific artifact is not viable.
What we recommend. (1) Decide and document our rich-text storage format this quarter — ideally one where HTML is a first-class output, not a re-derivation. (2) Budget a short engineering spike to build a small, tested, sanitized converter we own, or to migrate the editor to one with maintained server-side rendering. (3) Inventory any legacy Draft.js content and define a migration path.
Risk of the status quo. Adopting an archived converter would put an unmaintained, unpatchable component on the trust boundary for user-generated content — an XSS and compliance exposure — with no upgrade path. The cost of building our own is measured in days; the cost of an incident is not.
How can I help you explore Laravel packages today?