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

Filament Table Filter Presets Laravel Package

wotz/filament-table-filter-presets

A Filament plugin for saving, naming, and reapplying table filter combinations as reusable presets, helping admins skip repetitive filtering and switch between common views faster.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: The package is a narrow Filament UX enhancement: per-user named filter presets for tables. Conceptually it fits Laravel/Filament admin panels where operators repeatedly apply complex table filters. Its trait-based integration (HasSavedTableFilters on a List page) suggests a low-ceremony approach, but it couples directly to Filament’s List page lifecycle and table/query-builder internals. The persistence model is not documented here, so the TPM must verify whether presets store raw query strings, serialized filter state, or structured JSON, and how that state is scoped by user, tenant, panel, resource, and table.

Integration feasibility: Feasible only after source inspection and a spike. The documented setup implies publishing migrations/config, adding the trait to each resource List page, and configuring QueryBuilder constraints. That is small for one resource but scales linearly across resources unless the team introduces a shared base List page. The main uncertainty is compatibility with the target Filament major version and whether the package supports panel tenancy, UUID/ULID users, custom filter types, and non-MySQL databases.

Technical risk: High relative to value. The repository has 0 stars, 0 dependents, sparse documentation, and no visible adoption signal. That implies single-maintainer/abandonment risk, undocumented behavior, and likely thin test coverage. Filament table APIs have changed across versions, so an upgrade can break presets. Saved filters may contain sensitive search terms, and a scoping bug could expose another user’s or tenant’s presets. Invalid presets after schema/filter changes are also likely unless the package handles stale references gracefully.

Key questions: Which Filament and Laravel versions are supported? What exactly is persisted, and is it validated on load? How are presets authorized and scoped by user/tenant? Are migrations publishable and reversible? What happens when a referenced filter or column is deleted? Is there a preset limit or cleanup mechanism? Are there tests/CI? Is the maintainer responsive? Can we audit and fork under MIT if needed? Does it conflict with Filament’s built-in filter persistence or table state behavior?

Integration Approach

Stack fit: Good conceptual fit for internal admin/ops tooling built on Laravel and Filament. It is not core business logic and should be treated as a reversible UX enhancement. Fit depends entirely on matching the existing Filament version and auth/tenancy model.

Migration path: Run a timeboxed technical spike in a non-production branch: inspect composer constraints, service provider, migrations, trait, and tests; install into a sandbox panel; publish migrations; add the trait to one low-risk List page; configure QueryBuilder constraints per the package docs; verify save/load/delete behavior and authorization. If the package is viable, wrap it behind an internal interface or base List page so resources do not depend on package specifics. If not viable, implement a small internal equivalent—presets table, trait, JSON filter payload, authorization policy—or vendor/fork the MIT-licensed code.

Compatibility: Confirm PHP/Laravel/Filament version matrix, database support, user key types, and tenant scoping. Validate against the exact Filament table filter APIs used in our app, not just the package’s supported version. Check that package migrations do not collide with existing tables and that preset payloads survive application changes. Ensure no reliance on undocumented Filament internals without a fallback plan.

Sequencing: 1) source and security review; 2) sandbox install and smoke test; 3) privacy/authorization review of stored filter content; 4) pilot on one high-value resource with volunteer users; 5) define internal wrapper and rollback/fallback; 6) roll out to additional resources; 7) instrument usage and collect feedback; 8) decide to standardize, fork, or replace. Do not block a release on this package.

Operational Impact

Maintenance: Low code footprint but nonzero ownership. With 0 stars and 0 dependents, assume we own maintenance. Pin the version, monitor Filament upgrades, and budget occasional compatibility patches. If forked, assign an owner and document divergence from upstream.

Support: Community support is effectively absent. Rely on source reading and internal Laravel/Filament expertise. No vendor SLA. Create a short runbook covering preset schema, authorization expectations, troubleshooting stale presets, and rollback.

Scaling: Preset volume is per-user metadata and should be modest, but payloads can grow if raw query strings or large filter states are stored. Index user/resource/table keys, enforce per-user preset limits, and consider cleanup for inactive users. Verify the package does not add eager queries to every table render; load presets on demand.

Failure modes: Filament upgrade breaks the trait or table API; deleted filters/columns make presets invalid; tenant or user scoping bug leaks presets; migration failure; corrupted serialized state; preset name collisions; slow table loads from eager preset queries; missing authorization allows cross-user access. The integration should degrade gracefully to unsaved filters and surface clear errors rather than breaking the List page.

Ramp-up: Developer ramp-up is low-to-moderate: Filament familiarity plus source inspection because docs are thin. Estimate roughly 0.5–1 day for the spike, 1–3 days for a pilot integration with tests and authorization checks, plus ongoing ownership. End-user ramp-up is minimal if the UI is discoverable, but users need brief guidance on save/load/delete behavior and the privacy implications of saved filter terms.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource