{"id":51577639,"url":"https://github.com/thecodezone/filament-mediazone","last_synced_at":"2026-07-11T02:01:45.305Z","repository":{"id":367634118,"uuid":"1281599297","full_name":"thecodezone/filament-mediazone","owner":"thecodezone","description":"A media manager package for Laravel Filament.","archived":false,"fork":false,"pushed_at":"2026-06-26T21:15:31.000Z","size":11366,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-26T22:05:50.182Z","etag":null,"topics":["crop","cropper","filament","filamentphp","file-manager","image","media","media-manager","media-resource","uploads"],"latest_commit_sha":null,"homepage":"https://thecodezone.github.io/filament-mediazone/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thecodezone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":"https://www.paypal.com/donate/?hosted_button_id=T2TCWZXD7J97E"}},"created_at":"2026-06-26T18:09:12.000Z","updated_at":"2026-06-26T21:15:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/thecodezone/filament-mediazone","commit_stats":null,"previous_names":["thecodezone/filament-mediazone"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/thecodezone/filament-mediazone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodezone%2Ffilament-mediazone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodezone%2Ffilament-mediazone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodezone%2Ffilament-mediazone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodezone%2Ffilament-mediazone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thecodezone","download_url":"https://codeload.github.com/thecodezone/filament-mediazone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodezone%2Ffilament-mediazone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35348377,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crop","cropper","filament","filamentphp","file-manager","image","media","media-manager","media-resource","uploads"],"created_at":"2026-07-11T02:01:44.458Z","updated_at":"2026-07-11T02:01:45.296Z","avatar_url":"https://github.com/thecodezone.png","language":"PHP","funding_links":["https://www.paypal.com/donate/?hosted_button_id=T2TCWZXD7J97E"],"categories":[],"sub_categories":[],"readme":"![Banner](banner.png)\n\n# Filament MediaZone\n\nA full-featured media manager for [Laravel Filament](https://filamentphp.com/). Upload, browse, crop, and serve images and files from any Laravel filesystem disk — all within your Filament admin panel. Made with care by [CodeZone](https://codezone.io).\n\n**[Full documentation →](https://thecodezone.github.io/filament-mediazone/)**\n\n![Media library grid view](screenshot-1.png)\n\n---\n\n## Features\n\n- **Media library** — Grid and list browsing with search, folder, and type filters\n- **File uploads** — Drag-and-drop or click-to-upload with configurable accepted types and size limits\n- **Image cropping** — Interactive cropper with presets, locations, aspect ratio, format, and quality controls\n- **Glide integration** — On-the-fly image transformations served via [League Glide](https://glide.thephpleague.com/) with signed URLs\n- **MediaPicker field** — Drop-in Filament form field for single or multi-select media on any form\n- **Configurable model** — Bring your own `Media` model; the package derives the table name automatically\n- **Tenant-aware** — Works with Filament's multi-tenancy; edit URLs resolve with the correct tenant context\n- **Rename files** — Rename media directly from the edit form; the physical file on disk is moved automatically\n\n---\n\n## Requirements\n\n- PHP 8.2+\n- Laravel 11 or 12\n- Filament 3.2+\n- Livewire 3.0+\n- Imagick or GD extension\n\n---\n\n## Installation\n\n### 1. Require the package\n\n```bash\ncomposer require codezone/filament-mediazone\n```\n\n### 2. Publish and run the migration\n\n```bash\nphp artisan vendor:publish --tag=mediazone-migrations\nphp artisan migrate\n```\n\n### 3. Publish the config\n\n```bash\nphp artisan vendor:publish --tag=mediazone-config\n```\n\nThis creates `config/media.php`. See the [Configuration docs](https://thecodezone.github.io/filament-mediazone/configuration.html) for all available options.\n\n### 4. Publish assets\n\n```bash\nphp artisan filament:assets\n```\n\nRun this once after install and again after each upgrade.\n\n### 5. Register the plugin\n\nAdd `MediaZonePlugin` to your Filament panel provider:\n\n```php\nuse Codezone\\MediaZone\\MediaZonePlugin;\n\npublic function panel(Panel $panel): Panel\n{\n    return $panel\n        -\u003eplugins([\n            MediaZonePlugin::make(),\n        ]);\n}\n```\n\n### 6. Configure a filesystem disk\n\nAdd a `media` disk to `config/filesystems.php` (or point `MEDIA_FILESYSTEM_DISK` to an existing disk):\n\n```php\n'media' =\u003e [\n    'driver' =\u003e 'local',\n    'root'   =\u003e storage_path('app/public/media'),\n    'url'    =\u003e env('APP_URL').'/storage/media',\n    'visibility' =\u003e 'public',\n],\n```\n\n---\n\n## Quick start\n\nAfter installation, navigate to **Content → Media** in your Filament panel. Upload files via the **Create** button or drag-and-drop.\n\nTo add a media picker to any Filament form:\n\n```php\nuse Codezone\\MediaZone\\Forms\\Components\\MediaPicker;\n\nMediaPicker::make('image_id')\n    -\u003elabel('Featured Image'),\n```\n\nFor full usage — including crop presets, locations, multi-select, and custom models — see the **[documentation](https://thecodezone.github.io/filament-mediazone/)**.\n\n| | |\n|---|---|\n| ![List view](screenshot-2.png) | ![Image cropper](screenshot-3.png) |\n| ![Saved crops](screenshot-4.png) | ![MediaPicker form field](screenshot-5.png) |\n\n---\n\n## Contributing\n\n### Prerequisites\n\n- [PHP 8.2+](https://www.php.net/)\n- [Composer](https://getcomposer.org/)\n- [Node.js 20+](https://nodejs.org/) and npm\n- [Imagick](https://www.php.net/manual/en/book.imagick.php) PHP extension\n\n### Setting up the development environment\n\nThe package is developed as part of a Laravel application using [ddev](https://ddev.com/). If you are working within that monorepo, the environment is already running. For standalone development, install dependencies directly:\n\n```bash\n# PHP dependencies\ncomposer install\n\n# Node dependencies\nnpm install\n```\n\n### Running the test suite\n\n```bash\nvendor/bin/phpunit\n```\n\nTests use [Orchestra Testbench](https://github.com/orchestral/testbench) and run against both Laravel 11 and 12. The CI matrix covers PHP 8.2 and 8.3.\n\n### Linting\n\nAll three linters must pass before a PR can merge.\n\n```bash\n# Check only (what CI runs)\nvendor/bin/pint --test\nnpm run eslint\nnpm run stylelint\n\n# Auto-fix\nvendor/bin/pint\nnpm run eslint:fix\nnpm run stylelint:fix\n\n# Fix everything at once\nnpm run fix\n```\n\nCode style follows the [Laravel Pint](https://laravel.com/docs/pint) preset with `declare_strict_types` enforced. JavaScript follows the ESLint config in `eslint.config.js`. CSS follows the Stylelint BEM pattern config.\n\n### Pull requests\n\n1. Fork the repository and create a branch from `main`\n2. Make your changes with tests where applicable\n3. Ensure `vendor/bin/phpunit`, `vendor/bin/pint --test`, `npm run eslint`, and `npm run stylelint` all pass\n4. Open a pull request against `main` — CI will run automatically\n\n### Documentation\n\nDocumentation lives in `Writerside/topics/` as Markdown files and is built with [JetBrains Writerside](https://www.jetbrains.com/writerside/). It is automatically deployed to [GitHub Pages](https://thecodezone.github.io/filament-mediazone/) on every push to `main`. Edit the topic files and the build will update on merge.\n\n---\n\n## About CodeZone\n\n[CodeZone](https://codezone.io) is a web development studio specializing in Laravel, Filament, and modern PHP applications. We build tools and packages that help developers ship great products faster.\n\n## Support CodeZone\n\nFilament MediaZone is free and open source. If it saves you time, consider [supporting ongoing development via PayPal](https://www.paypal.com/donate/?hosted_button_id=T2TCWZXD7J97E).\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodezone%2Ffilament-mediazone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodezone%2Ffilament-mediazone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodezone%2Ffilament-mediazone/lists"}