kitpages/file-bundle
A Symfony bundle for file and image upload management. It offers Doctrine-backed file entities, configurable storage, and thumbnail support, simplifying attaching and reusing uploaded files across your application.
KitpagesCmsBundle; file management is bound to one CMS's data model. That's a concrete precedent for the decision "decouple asset management from content management, or embed it?" Decoupled usually wins for reuse, at a higher up-front cost. This package is the cautionary version of the coupled path — and its 0 dependents is the outcome of that coupling.Due diligence flag for the product record: although this is framed as a Laravel/PHP package, it is a Symfony bundle (Kitpages\FileBundle) in the Kitpages CMS family. It will not drop into a Laravel application — no service provider, no facade, no publishable config or migrations. Anyone comparing it to Laravel's Storage facade or Spatie Media Library is comparing the wrong things, and the "opportunity" signal in the scoring should not be read as Laravel-ecosystem demand.
Consider it only when all of the following hold:
KitpagesCmsBundle, and uploads must keep working there.Look elsewhere when:
Storage abstraction plus a maintained media library (e.g. Spatie Media Library) and an image pipeline. Porting a Symfony bundle across HTTP primitives, DI, Doctrine, and templating would reimplement most of the value for no gain.VichUploaderBundle for entity-bound uploads with Flysystem for storage is the maintained equivalent with a real user base and a patch pipeline.Executive summary: We evaluated kitpages/file-bundle as an option for file upload and asset management. It is a small, MIT-licensed Symfony bundle written specifically to serve one CMS package — it is not a Laravel package and cannot be reused in our Laravel services. It shows minimal adoption (single-digit stars, zero dependent repositories), no meaningful maintenance signal, and no support channel.
Recommendation: do not adopt. It is not a viable dependency for new work. Adopting it would mean owning an unmaintained, narrowly coupled component in a security-sensitive area — upload handling — with no community backstop and knowledge concentrated in whoever performs the port.
What we take from it: the package is genuinely useful as a scope reference. It confirms the baseline asset feature is smaller than it looks — upload, store, derive thumbnails, associate, delete — which lets us tighten the estimate on the native build. It also reinforces a roadmap principle: keep the file layer decoupled from the CMS, because the alternative is exactly this outcome.
Engineering guidance: if any legacy Symfony surface depends on KitpagesCmsBundle, treat this as a contained maintenance item with a planned exit. Migrate files to object storage behind a thin internal interface so the bundle can be removed without touching product code. Never expose it to a new application's request path.
Cost of the alternative: a maintained path — Flysystem plus a maintained uploader bundle on Symfony, or object storage plus a media library on Laravel — is a small, well-understood integration. The delta versus adopting this package is days, not weeks, and it removes an open-ended maintenance and security liability. That trade is clearly worth taking.
How can I help you explore Laravel packages today?