visualbuilder / filament-screenshot-review
Human QA review for Filament v5 screenshot catalogues — approve, request changes, and file tickets per capture.
Package info
github.com/visualbuilder/filament-screenshot-review
pkg:composer/visualbuilder/filament-screenshot-review
Requires
- php: ^8.2
- filament/filament: ^5.0
- illuminate/bus: ^11.0 || ^12.0
- illuminate/console: ^11.0 || ^12.0
- illuminate/database: ^11.0 || ^12.0
- illuminate/support: ^11.0 || ^12.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- orchestra/testbench: ^9.0 || ^10.0
- pestphp/pest: ^3.0 || ^4.0
- pestphp/pest-plugin-laravel: ^3.0 || ^4.0
- pestphp/pest-plugin-livewire: ^3.0 || ^4.0
- visualbuilder/filament-screenshot-catalogue: ^5.0
Suggests
- visualbuilder/filament-design-system: Mount the review plugin alongside design-system review pages on a single dev panel — convenient when designers and QA share one workspace.
- visualbuilder/filament-screenshot-catalogue: Captures the screenshots this dashboard reviews — the natural pairing in the visualbuilder/filament-screenshot-* ecosystem.
README
Human QA review on top of visualbuilder/filament-panel-screenshot-catalogue.
Mounts as a Filament v5 plugin and adds three navigation surfaces:
- Status — at-a-glance health card per registered panel
- Captures — full-width grid of capture cards, inline approve / request-changes per card
- Pages — sitemap management; toggle inclusion, add custom URLs
When a reviewer requests changes, the package files a ticket through a host-defined TicketSink with the captured image URL embedded in the ticket body.
Install
composer require --dev visualbuilder/filament-screenshot-review php artisan migrate
Mount the plugin on whichever panel you choose (default convention: the design-system panel):
// app/Providers/Filament/DesignSystemPanelProvider.php ->plugins([ \Visualbuilder\FilamentScreenshotReview\Filament\FilamentScreenshotReviewPlugin::make(), ])
Ticket sink
Bind your own TicketSink implementation to file tickets in your tracker:
// app/Providers/AppServiceProvider.php $this->app->bind( \Visualbuilder\FilamentScreenshotReview\Contracts\TicketSink::class, \App\TicketSinks\YoutrackTicketSink::class, );
The default binding is NullSink, which logs and returns an empty URL.
Workflow
php artisan screenshot-review:sync-pages --panel=enduser— populate the page registry from the catalogue's sitemap JSON.php artisan screenshot:dispatch --panel=enduser --tag=latest— capture every included page.php artisan screenshot-review:sync-captures --panel=enduser --tag=latest— pull capture metadata into the DB.- Open the Captures tab in Filament — review each card, approve or request changes.
License
GPL-2.0-or-later. See LICENSE.md.