- 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.