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

Visual Editor Laravel Package

artisanpack-ui/visual-editor

A visual editor for Laravel that lets you build and edit page content directly in the browser, with a drag-and-drop interface that saves structured data your Blade views and models can render.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

The v1.15.2 release is a feature-and-fix release for ArtisanPack UI's Visual Editor — a block-based content editor that renders Gutenberg-style blocks across three renderers (Blade, React, Vue). From a TPM standpoint, the most important signal here is not any single feature but the accumulating evidence that this package's value proposition is renderer parity and WordPress core fidelity, and that both are still actively maturing.

Architecture fit. The package is a Laravel-native block editor with a PHP resolver layer (QueryInliner), a Blade renderer, and parallel React/Vue renderers. This is a genuinely dual-audience architecture: PHP/Laravel teams get server-rendered blocks, and JS teams get hydrated interactivity. The release reinforces this by shipping features "in all three renderers" as an explicit acceptance criterion — reading time, query total, table spans, post terms, featured image crops. That consistency discipline is a real architectural strength, but it also means every block surface triples the implementation and test matrix.

Integration feasibility. This is a drop-in dependency update with no new services, no schema migrations signalled, and no auth/session implications. New blocks (post-reading-time, query-total) are additive and self-contained; query-total explicitly renders nothing outside a resolved query, which is a sensible fail-closed default. Attribute additions (defaultOpen, collapseBreakpoint, layout) are optional with documented fallbacks — "Navigation without the attribute renders as before," "Stacked output is unchanged," "empty keeps 600px." That backward-compatibility posture is why I'd rate integration risk low-to-moderate rather than moderate.

Technical risk. Two categories stand out:

  1. Behavioral changes to existing output. Several fixes change rendering for content already in production: Post Date now honours its format attribute (previously always F j, Y) — any site that set a format and saw it ignored will suddenly see dates change. Query Pagination now prints nothing for single-page results instead of a lone "1", and switches from a 1fr auto 1fr grid to flex with saved justification — both are layout/shape changes that can shift pixel output. Post Template grids now collapse to 2 columns at ≤1023px and 1 at ≤767px. Image width/height strings now emit inline styles instead of width="0". These are all correct fixes, but each one is a visible regression-to-expected-behavior that will surface in visual QA or client review.
  2. Security-relevant fix. QueryInliner was letting a saved status leak into front-end query loops (cms-framework #403). That is a real content-visibility bug — draft/pending posts potentially queryable on the public site. It is fixed here, which is good, but the existence of the class of bug warrants a check of whether any site was exposed before upgrading.

Lower-severity but worth logging: the breakpoint cascade fixes (#949, #927, #929, #914) mean the responsive CSS resolution order was subtly wrong in multiple independent places. That suggests a shared specificity/ordering problem, and I'd want confirmation a test harness now covers cascade interactions rather than only the individual reported cases.

Key questions. Does upgrading require a content re-save or cache/asset rebuild for the fixed attributes (format, width/height, displayLayout) to take effect? Is the status leak exploitable via public query parameters, and is there a disclosure obligation? Is there a renderer-parity test suite enforced in CI, or is parity verified per-ticket? What is the deprecation policy for core/navigation's hardcoded 600px collapse? Do the new _resolvedTotal/_resolvedItems block attributes leak into persisted content or remain resolver-only?

Integration Approach

Stack fit. Strong for Laravel monoliths and Laravel + Inertia/Livewire apps that want a block editor without adopting WordPress. The package's decision to keep React and Vue renderers first-class means it fits teams with an existing JS framework preference rather than forcing Blade-only. The one asymmetry in this release: the Form block gains layout but "the React and Vue renderers don't render this block, so they're unchanged" — so Form is genuinely Blade-only. Any team expecting headless/SPA form rendering needs to plan around that explicitly.

Migration path. Effectively a minor-version bump with no migration script indicated. Recommended path: pin to v1.15.2 in a staging environment, run a block-render diff across a representative content sample (especially any page using Post Date with a custom format, Query loops with pagination, Post Template grids, Images with string dimensions, and Columns with custom gaps), then promote. Because several fixes change output only for saved attributes that were previously ignored, a re-save of affected blocks may be needed for editor-side state to match — this should be verified rather than assumed.

Compatibility. Backward compatible by design across all new attributes. The risk surface is rendered output, not API shape. No PHP version or Laravel version floor change is mentioned, which I'd want confirmed. Navigation's collapseBreakpoint is additive and overrides the 600px default in both directions, so existing headers are untouched unless opted in.

Sequencing. (1) Upgrade in staging; (2) validate the status leak fix against any public-facing query loops and confirm no drafts were visible pre-upgrade; (3) visual-diff the output-changing fixes; (4) adopt new blocks (post-reading-time, query-total) as net-new content work, not as part of the upgrade; (5) adopt collapseBreakpoint, defaultOpen, and Form layout as separate opt-in tasks once the base upgrade is stable. Do not bundle the opt-in features with the patch — keep the upgrade diff reviewable.

Operational Impact

Maintenance. Ongoing cost is driven by the three-renderer surface. Every block feature in this release touched Blade, React, and Vue, and the fixes repeatedly describe a bug as "the Blade renderer did X while React/Vue did Y" or vice versa (Avatar border, Table spans, Post Terms, Image dimensions, Post Featured Image crops). That is a recurring class of defect where one renderer drifts. Budget for parity testing as a standing line item, not a per-release scramble.

Support. Expect a short-term uptick in tickets immediately post-upgrade from the behavioral fixes: dates changing format on sites that had set one, pagination landmarks disappearing on single-page queries, grid column counts dropping at tablet/mobile widths, and avatar/image sizing shifting. These are all "working as intended" but will read as regressions to content editors. Pre-brief the support team and prepare a one-page changelog aimed at editors rather than developers. The status fix may also generate questions from anyone who had come to rely on the buggy behavior.

Scaling. No new scaling concerns introduced — these are render-time changes. query-total reads resolver-stamped attributes (_resolvedTotal, _resolvedItems, _resolvedCurrentPage, _resolvedPerPage, _resolvedTotalPages), which is the efficient approach (no second query per block) and should hold up. Worth confirming the inliner doesn't stamp these outside a resolved query in a way that persists into saved content. The per-page <style data-ve-navigation-collapse> emission is duplicated-once-per-page by design; verify that deduplication holds when multiple navigations with different breakpoints appear on one page.

Failure modes. (a) Renderer divergence — a block looks correct in Blade but wrong in React/Vue, or the canvas preview disagrees with the front end (the release notes repeatedly call out canvas-preview matching as a fixed defect, e.g. Columns gap, Flex wrap, Navigation collapse). (b) CSS cascade regressions — the cluster of specificity fixes implies responsive overrides were silently losing to base rules; a future block could reintroduce this. (c) Silent no-render — query-total and query-pagination now intentionally render nothing in defined conditions; correct, but it means "block missing" is no longer automatically a bug, which complicates triage. (d) Content-visibility leakage, now patched but worth monitoring.

Ramp-up. Low for Laravel developers already comfortable with Blade components and block-editor concepts; moderate for JS developers who need to learn the PHP resolver layer and the attribute contract shared across renderers. The real ramp-up cost is domain knowledge: understanding which attributes are resolver-stamped, which are user-saved, and how responsive breakpoint keywords interact with arbitrary values. That cascade semantics (#949, #927, #929) is the steepest part of the learning curve and deserves a written internal reference before more teams adopt. Estimate roughly one to two days for a Laravel developer to ship a new simple block, and materially longer for one that needs cross-renderer parity plus responsive behavior.

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