beyondcode/laravel-visual-diff
Laravel Visual Diff by Beyond Code captures snapshots of your app's rendered pages and highlights exactly what changed between runs, making it easy to catch unintended UI regressions during development, testing, and code review.
--dev install, publish config, baseline one public page, run three times (baseline → no-op → intentional CSS change → diff artifact).composer require to fail on dependency resolution; on Laravel 10/11 + PHP 8.2 the realistic paths are fork-and-widen plus owning the browser-layer breakage, or don't start.php artisan route:list in a production-like environment. Extension points are thin — plan a single wrapper trait as the only place tests touch the package, so swapping tools later is a one-file change.For executives: Visual regression testing protects the customer-facing UI and reduces manual QA effort — that's the value worth funding. This specific package is not the way to get there. It is archived and unmaintained, and release 1.1.0 only extends compatibility to Laravel 5.7/5.8; it does not modernize anything or signal renewed investment. Recommendation: approve a small, time-boxed spike to validate the value of visual diffs on one or two high-traffic pages, then either fork with a named owner or adopt a maintained alternative. Do not let it become a core platform dependency.
For engineering: Architecturally this is the lowest-risk category of dependency — dev-only, test-time, no runtime footprint in production, no DB impact; a failure removes a test capability, not the application. The concept is sound and still industry-standard. The 2019 artifact is the problem: 5.7/5.8 is the ceiling of advertised support, the project has no dependents and no maintainer, so on modern Laravel you will fight dependency resolution and then own the headless-browser layer yourself. Treat it as a one-day spike or a fork candidate, not a drop-in dependency. If you proceed, pin the version exactly, commit the lockfile, generate baselines inside the same pinned browser container as CI, commit only baselines (never current/diff outputs), and keep all package contact behind a CapturesVisualDiffs-style wrapper trait. Validate compatibility against your actual PHP/Laravel version, CI browser infrastructure, and screenshot stability before you write more than a handful of tests.
How can I help you explore Laravel packages today?