Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Editorjs Laravel Package

alaminfirdows/laravel-editorjs

A Laravel package for integrating Editor.js, the block-style content editor. It helps you store, parse, and render Editor.js JSON output in Laravel apps, making block-based content easier to use in models, controllers, and Blade views.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Whether to build a rich-text authoring surface or buy/borrow one. laravel-editorjs is thin Laravel glue around Editor.js (a block-based JS editor). It lets you ship content authoring without writing your own persistence, casting, rendering, and file-upload plumbing — so the "build vs. buy" question shifts from editor to content model, which is the decision that actually matters.
  • Content model architecture: structured blocks vs. HTML blobs. Choosing this package commits you to storing content as JSON blocks rather than rendered HTML. That is a strategic decision, not just a library choice — it enables downstream reuse (web, email, mobile, search indexing, AI summarization, structured feeds) because blocks are addressable and re-renderable. Compare explicitly against TinyMCE/CKEditor-style HTML storage if multi-channel reuse is on the roadmap.
  • Feature scoping for the editor toolbar. Each enabled tool is a product decision (checklists, tables, embeds, code, and — as of 2.4.0 — callout/warning blocks). The newly added warning tool is directly useful for docs, help centers, onboarding content, and anything where admonitions carry meaning; it is a small but concrete roadmap unlock.
  • Roadmap timing for CMS/admin surfaces. Blog posts, help center articles, knowledge base entries, job postings, product copy, internal wikis. If any of these are on the next two quarters, this package compresses the estimate meaningfully.
  • Platform lifecycle planning. v2.4.0 adds Laravel 12 and Laravel 13 compatibility plus PHP 8.4 support. That is a signal the package is tracking framework upgrades, which feeds directly into your upgrade-window planning and reduces the "will this block our Laravel 13 migration?" risk.
  • Vendor and maintenance risk posture. A new Blade directive (@editorJsRender()) is a convenience layer that reduces view boilerplate — but it also creates framework-level coupling in your templates. Worth noting in an ADR so a future swap stays cheap.

When to Consider This Package

Consider it when:

  • You are on Laravel (10–13 per the release line) and PHP 8.2–8.4, and you want block-based content authoring without maintaining the Laravel-side integration yourself.
  • You want structured, re-renderable content rather than opaque HTML — i.e., you anticipate reusing the same content in more than one presentation surface.
  • Your editorial UX needs are block-oriented (sections, checklists, callouts, embeds) rather than prose-heavy with fine inline typography control.
  • You are comfortable letting Editor.js own the authoring UX and Laravel own persistence, casting, and rendering — a clean separation your team can reason about.
  • You want a low-ceremony integration you can prototype in an afternoon and evaluate against real editors.

Look elsewhere when:

  • You need real-time multiplayer editing or comments. Editor.js does not provide this; you would be pairing it with a separate collaboration layer or choosing a different product entirely.
  • You need enterprise-grade sanitization and content security guarantees out of the box. This is a community package. Treat output sanitization as your responsibility and budget for it explicitly; if that audit is not affordable, a commercial editor with a security story may be the better call.
  • Your content is prose-first with heavy inline formatting, paste-from-Word fidelity, or complex table editing. Block editors are a poor fit for those workflows and users will fight the tool.
  • You are not on Laravel, or you are pinned to an older PHP version outside the supported range.
  • Your content needs are trivial — a single short description field does not justify a block editor or its JS bundle.
  • You require a vendor with an SLA, indemnification, or a named support channel. This is single-primary-maintainer software; the bus factor is a real procurement consideration for regulated or revenue-critical surfaces.

How to Pitch It (Stakeholders)

For executives (one paragraph): We can add rich content authoring — blog, help center, internal docs — without licensing costs or a from-scratch build, using a well-established open-source editor plus a small Laravel adapter. The strategic upside is that content is stored as structured blocks rather than flat HTML, so the same article can later feed email, search, mobile, or AI summarization without a migration. The latest release (v2.4.0) is a low-risk, additive upgrade that keeps us current with Laravel 12 and 13 and PHP 8.4, so adopting it does not create an upgrade cliff. The main trade-off is vendor risk: it is community-maintained, so we should treat output sanitization and an exit path as our responsibility rather than assume them.

For engineering: This is a thin adapter — Editor.js JSON in, Eloquent casts and rendering out. v2.4.0 adds Laravel 12 and 13 compatibility, PHP 8.4 support, a @editorJsRender() Blade directive to cut view boilerplate, a warning/callout block, and additional unit tests. There are no breaking changes in this release; it is a safe minor bump from 2.3.x. Two things to own deliberately: (1) sanitize rendered output server-side and do not treat the package as a security boundary, and (2) keep the Blade directive usage isolated behind our own partial/component so swapping the renderer later is a one-file change, not a template-wide refactor. Recommend a short spike: one content type, two or three tools enabled, storage + render round-trip, and a sanitization review — enough to validate the fit before committing broadly.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings