Appearance
Media Library Pro vs Media Manager (tomatophp)
tomatophp/filament-media-manager is a free Filament plugin that manages Spatie media through a GUI. It supports Filament 4 and 5. It suits projects that already use Spatie media and want folders and an input that picks from them.
For the full matrix and the note on the ralphjsmit product, see the comparison overview.
What it does well
- Spatie underneath. "Manage your media files using spatie media library" through a GUI, so existing collections keep working.
- Folders. Folders and optional subfolders (
->allowSubFolders()), with auto-created folders for a model, collection or record. - Access control. Password-protected folders, and per-user folder access with
->allowUserAccess()and theInteractsWithMediaFolderstrait. - Two components.
MediaManagerInputuploads directly andMediaManagerPickerbrowses and selects. Several pickers on one page can use separate collections. - Extras. RTL and multi-language support, dark mode, drag reordering, previews, responsive images and min/max selection validation.
- Free and open source.
Differences that matter
| Media Library Pro | tomatophp Media Manager | |
|---|---|---|
| Filament | 4 and 5 | 4 and 5 |
| Folders | Nested, drag to move, private folders | Folders and optional subfolders, password protection |
| Private files | Per-user, with signed links and temporary S3 URLs | Password-protected folders and per-user folder access |
| Tags, focal point, editor | Included | Not documented |
| Usage tracking and delete guard | Included | Not documented |
| Chunked uploads, duplicates, URL import | Included | Not documented |
| Tenancy | Filament, stancl/tenancy or custom, with quotas | Not documented |
| Table columns, infolist entries, rich editor | Included | Not documented |
| Price | Commercial licence | No paid tier documented |
Both are RTL-aware. This plugin ships English and Arabic and mirrors the whole layout, see Translations, theming and RTL.
Migrating
If your files are Spatie media rows, import them with the Spatie source:
bash
php artisan media-library:import spatie --model="App\Models\Post" --collection=gallery --dry-run
php artisan media-library:import spatie --folder="Imported" --moveEach file gets a library record and an attachment that points back to its original model and collection, so existing usage is preserved. --move deletes the original Spatie media after copying. Folder structure is not carried over: files land in --folder, or in Imported/<model name> by default. For files that live in plain directories, use the directory source, which turns sub-folders into library folders. See Importing existing files.
Swap your MediaManagerInput fields for MediaPicker after the import.
When to pick which
Pick tomatophp's Media Manager when it is free, your files are already Spatie media, and folders with a password are the main thing you need.
Pick Media Library Pro when you need tags, a focal point, an editor, usage tracking, large uploads, tenant isolation, or table and infolist components that go with the picker. See the overview.