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
Nova Editor Js

Nova Editor Js Laravel Package

advoor/nova-editor-js

A Laravel Nova field that brings Editor.js block-style editing to your admin panel, letting you create clean structured content and render it as HTML. Easy to install and customize for any Nova resource.

View on GitHub
Deep Wiki
Context7

Advoor Nova Editor.js brings the block-based Editor.js experience to Laravel Nova. It provides a ready-to-use Nova field that stores structured JSON content, making rich text easier to render, reuse, and extend across your application.

  • Seamless Nova field integration with Editor.js
  • Stores clean, portable JSON instead of raw HTML
  • Supports Editor.js block tools and custom configurations
  • Ideal for structured content, blogs, and CMS-style resources
  • Simple setup for Laravel/Nova projects
Frequently asked questions about Nova Editor Js
How do I install advoor/nova-editor-js in a Laravel Nova project?
Run composer require advoor/nova-editor-js, then publish the package config and frontend assets with php artisan vendor:publish. Add a nullable json column to the resource's table and cast it to array on the model, then add the field to your Nova resource definition. The final step developers forget is the public vendor bundle: make sure the publish step runs in your deploy pipeline or the published assets are committed to the repo.
Which Laravel and Nova versions does this package support?
Check the package's composer.json and README for its tested matrix before committing, because Nova's field API shifts across majors 3, 4 and 5. Run a short spike against your exact Nova major rather than assuming compatibility from the description alone. With zero downstream dependents, you are effectively the first to catch regressions, so budget one to three engineer-days per Nova major upgrade and expect to vendor the package into packages/ within about a year.
Does Nova Editor.js store JSON or HTML?
It stores the Editor.js output payload as structured JSON, typically the { time, blocks, version } object, in a JSON column rather than raw HTML. That keeps the content portable so you can render it, reuse it, or expose it through an API. The package is a capture component only: getting from that JSON to displayable HTML is your responsibility.
Do I need a renderer and an HTML sanitizer to use this field?
Yes, both are effectively mandatory and neither is supplied by the package. Pair it with a server-side renderer such as editorjs-php or a client-side one such as editorjs-html, plus an HTML sanitizer for raw HTML blocks and tool output. Sanitize at write time rather than read time, and if you have multiple consumers like web, mobile API, email and a search index, normalize blocks at write time instead of forking a renderer per client.
How do I add custom Editor.js block tools or change the toolbar configuration?
The package ships a config file that maps Editor.js tools, so start there. Confirm whether the source registers tools purely through that config or hardcodes some of them, because that is the most common surprise when a team assumes it can just add one tool. Each tool also pins peer versions of Editor.js core, so lock the toolchain and re-test the editor mount after any single tool upgrade.
Why is my Editor.js field blank in production but working locally?
A missing public/vendor asset bundle is the number one production-versus-local failure and it usually produces a blank editor with no console error. Verify that vendor:publish runs during deployment or that the published assets are committed, and that they are served from the path the field expects. This is a deploy-pipeline problem rather than a code problem, so check your build steps before debugging the Vue component.
Is content created with this Nova field safe from stored XSS?
Not automatically. Raw HTML blocks and unsanitized tool output are the sharpest edge in this stack. Sanitize on write so bad markup never reaches the database, and treat the JSON as untrusted input even though it originates from admin users.
What happens to Editor.js block types the renderer does not recognise?
Most renderers silently drop unknown block types, so removing a tool can quietly delete paragraphs from the rendered output. Add an explicit unsupported-block renderer that falls back to a visible placeholder or plain text, and log the unknown type so content loss is detectable. Consider maintaining a plain-text shadow column as well if you need reliable search.
How does the package handle two admins editing the same entry?
It is a single-editor surface with last-write-wins semantics, so two admins saving the same resource will overwrite each other with no warning. If that matters for your workflow, add optimistic locking around an updated_at or version check, or lean on Nova's own conflict handling. For low-traffic CMS resources this is often acceptable; for busy editorial teams it is not.
Is advoor/nova-editor-js actively maintained, and what are the alternatives?
Treat it as a thin, forkable dependency rather than a maintained content platform: roughly 92 stars and no dependents means no one else catches regressions first. If your organisation will not accept a one to three day fork budget per Nova major, evaluate a maintained alternative such as a Tiptap or CKEditor based Nova field. Otherwise scope adoption as a two to three week mini-program covering a spike, renderer, sanitizer, block normalizer and deploy hardening, and decide up front who owns that pipeline.
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.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core