Free & Open Source

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.

GitHub View on GitHub composer require laraveldaily/filacheck --dev
FilaCheck Pro — $49
Terminal output
$ 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 (15)

deprecated-reactive
Before
->reactive()
After
->live()
deprecated-action-form
Before
->form([...])
After
->schema([...])
deprecated-filter-form
Before
Filter->form([...])
After
Filter->schema([...])
deprecated-placeholder
Before
Placeholder::make()
After
TextEntry::make()->state()
deprecated-mutate-form-data-using
Before
->mutateFormDataUsing()
After
->mutateDataUsing()
deprecated-empty-label
Before
->label('')
After
->hiddenLabel()
deprecated-forms-get
Before
use Filament\Forms\Get;
After
use Filament\Schemas\...\Get;
deprecated-forms-set
Before
use Filament\Forms\Set;
After
use Filament\Schemas\...\Set;
deprecated-image-column-size
Before
->size(40)
After
->imageSize(40)
deprecated-view-property
Before
public $view = '...';
After
protected string $view = '...';
action-in-bulk-action-group
Before
Action::make('export')
After
BulkAction::make('export')
wrong-tab-namespace
Before
use ...\Pages\...\Tab;
After
use ...\Schemas\...\Tab;
deprecated-bulk-actions
Before
->bulkActions([...])
After
->toolbarActions([...])
deprecated-url-parameters
Before
tableFilters, tableSearch
After
filters, search
deprecated-test-methods
Before
->setActionData()
After
->setData()

Developers Are Already Using It

Erik Slooff testimonial Athul K Suresh testimonial Vitalie Jalbu testimonial
Pro

FilaCheck Pro

19 additional rules for performance optimization, security, best practices, and UX suggestions — on top of the 15 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

Security Rules

file-upload-missing-accepted-file-types

Warns when FileUpload is missing acceptedFileTypes() or image()

action-missing-authorization

Warns when Action, BulkAction, ImportAction, or ExportAction is missing hidden(), visible(), or authorize()

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

$49

One-time payment

All 19 Pro rules + 15 free rules included
Lifetime access, no subscription required

Secure checkout powered by Paddle