Weave Code
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 Curator

Filament Curator Laravel Package

awcodes/filament-curator

View on GitHub
Deep Wiki
Context7

A media picker plugin for Filament Panels.

Frequently asked questions about Filament Curator
How do I install Filament Curator in a Laravel project with Filament Panels?
Run `composer require awcodes/filament-curator` and execute `php artisan curator:install`. For Filament Panels, register the plugin in your panel configuration. Ensure you’ve set up a custom theme first, as Curator requires theme integration for styles and views.
Does Filament Curator work with Filament v3 or v4? What about v2?
Yes, Curator supports Filament v2 (package v1.x), v3 (v2.x), and v4 (v4.x). Each major version of Curator is locked to a specific Filament version—check the compatibility table in the README. Upgrading Filament may require updating Curator to avoid breaking changes.
Can I use Filament Curator with Spatie Media Library?
No, Curator explicitly blocks Spatie Media Library integration. The package is designed as a standalone alternative, offering native Filament media management without dependency conflicts. Migrate away from Spatie if needed before adopting Curator.
How do I handle media storage (e.g., S3) with Curator?
Curator is storage-agnostic and supports any Laravel disk (local, S3, etc.). Configure your default disk in `config/filesystems.php` and ensure Glide is set up for your chosen backend. Custom path generators (e.g., `DatePathGenerator`) can be configured via the published config file.
What’s the best way to optimize Glide performance for large media libraries?
Configure Glide’s cache paths and TTLs in `config/glide.php` to minimize processing overhead. Use `imagick` as the driver if available, and enable lazy loading (`lazyLoad()`) for non-critical media. For high-volume sites, pre-generate thumbnails during uploads to reduce runtime processing.
How do I add Curator fields to a Filament resource form?
Use the `CuratorPicker` field in your resource’s form fields. For example: `CuratorPicker::make('image')->columnSpanFull()`, then register the field in your resource’s `getFormFields()` method. Curator integrates natively with Filament’s form system.
Can I customize media curation presets (e.g., resizing, focal points) for specific use cases?
Yes, Curator allows custom curation presets via Glide’s configuration. Extend the `CuratorServiceProvider` or override default behaviors in your published config. For reusable presets, create a service class to manage Glide transformations dynamically across environments.
Will Filament Curator work with my existing Filament plugins or resources?
Curator is designed for low coupling and integrates seamlessly with Filament’s plugin system. Replace existing media fields (e.g., `FileUpload`) with `CuratorPicker` without disrupting other plugins. Test relationships (e.g., `hasMany`) to ensure eager loading (`with()`) is applied where needed.
How do I secure media access (e.g., tenant isolation, signed URLs) in production?
For S3 or cloud storage, use signed URLs via Laravel’s `temporaryUrl()` method. Configure Glide’s `force()` option carefully to avoid exposing raw media paths. For tenant isolation, implement custom path generators or middleware to scope media access by tenant ID.
Are there performance concerns with N+1 queries when using Curator in table columns?
Yes, relationships in table columns (e.g., `CuratorPicker` in a `Table`) trigger N+1 queries by default. Mitigate this by eager loading relationships with `with(['media'])` in your query. For large datasets, consider lazy loading or pagination to reduce query load.
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.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor