FilaCheck
Static analysis for Filament v4/v5 projects. Like Pint, but for Filament. Run it after AI agents generate code or during CI to catch common issues.
View on GitHub
composer require laraveldaily/filacheck --dev
$ vendor/bin/filacheck Scanning: app/Filament ..x..x........ deprecated-reactive (Deprecated Code) app/Filament/Resources/UserResource.php Line 45: The `reactive()` method is deprecated. → Use `live()` instead of `reactive()`. deprecated-action-form (Deprecated Code) app/Filament/Resources/PostResource.php Line 78: The `form()` method is deprecated on Actions. → Use `schema()` instead of `form()`. Rules: 10 passed, 2 failed Issues: 2 warning(s)
What FilaCheck Does
Detect Deprecations
Find deprecated patterns like ->reactive(), old form methods, and more.
Auto-Fix Issues
Built-in auto-fixer with optional backup file creation.
CI/CD Ready
Clean exit codes and pre-configured GitHub Actions workflow.
3-Minute Demo: See FilaCheck In Action
Free Rules (16)
deprecated-reactive
->reactive()
->live()
deprecated-action-form
->form([...])
->schema([...])
deprecated-filter-form
Filter->form([...])
Filter->schema([...])
deprecated-placeholder
Placeholder::make()
TextEntry::make()->state()
deprecated-mutate-form-data-using
->mutateFormDataUsing()
->mutateDataUsing()
deprecated-empty-label
->label('')
->hiddenLabel()
deprecated-forms-get
use Filament\Forms\Get;
use Filament\Schemas\...\Get;
deprecated-forms-set
use Filament\Forms\Set;
use Filament\Schemas\...\Set;
deprecated-image-column-size
->size(40)
->imageSize(40)
deprecated-view-property
public $view = '...';
protected string $view = '...';
action-in-bulk-action-group
Action::make('export')
BulkAction::make('export')
wrong-tab-namespace
use ...\Pages\...\Tab;
use ...\Schemas\...\Tab;
deprecated-bulk-actions
->bulkActions([...])
->toolbarActions([...])
deprecated-url-parameters
tableFilters, tableSearch
filters, search
deprecated-test-methods
->setActionData()
->setData()
deprecated-image-editor-aspect-ratios
->imageEditorAspectRatios()
->imageEditorAspectRatioOptions()
Developers Are Already Using It
FilaCheck Pro
19 additional rules for performance optimization, security, best practices, and UX suggestions — on top of the 16 free rules.
Performance Rules
too-many-columns
Warns when tables have more than 10 columns
large-option-list-searchable
Suggests ->searchable() for lists with 10+ options
heavy-closure-in-format-state
Detects database queries inside formatStateUsing() closures that cause N+1 issues
stats-widget-polling-not-disabled
Warns when StatsOverviewWidget uses the default 5-second polling interval
navigation-badge-not-cached
Warns when getNavigationBadge() is not cached using the Cache facade or cache() helper
Security Rules
file-upload-missing-accepted-file-types
Warns when FileUpload is missing acceptedFileTypes() or image()
UX Suggestions Rules
flat-form-overload
Warns when form schema has more than 8 fields without any layout grouping
relationship-select-not-searchable
Warns when Select with relationship() is missing searchable()
missing-table-filters
Warns when table has filterable columns but no filters defined
table-without-searchable-columns
Warns when table has text columns but none are searchable
filter-missing-indicator
Warns when custom Filter has a schema() but no indicateUsing() or indicator()
Best Practices Rules
custom-theme-needed
Detects Tailwind CSS usage in Blade without a custom theme configured
unnecessary-unique-ignore-record
Detects ->unique(ignoreRecord: true) — default in Filament v4 (auto-fixable)
string-icon-instead-of-enum
Use Heroicon::Pencil enum instead of string icons (auto-fixable)
string-font-weight-instead-of-enum
Use FontWeight::Bold enum instead of strings (auto-fixable)
deprecated-notification-action-namespace
Detects old notification Action namespace (auto-fixable)
file-upload-missing-max-size
Warns when FileUpload is missing maxSize()
bulk-action-missing-deselect
Warns when BulkAction is missing deselectRecordsAfterCompletion() (auto-fixable)
enum-missing-filament-interfaces
Warns when enums cast in Eloquent models are missing Filament interfaces like HasLabel
FilaCheck Pro
One-time payment
Secure checkout powered by Paddle
FilamentExamples Membership
30-day money-back guarantee