A year ago, I released Dedupler - Laravel package that prevents duplicate file storage using SHA-1 hashing. The idea was simple: don't repeat yourself (DRY) shouldn't just apply to code; it should apply to your storage too. Why store the same 10MB PDF five times just because it's attached to five different models?
To my surprise, the package crossed 1,000+ installs. It turns out that dealing with storage bloat and slow backups is a pain point many of us share.
However, the relevance of deduplication isn't fading - it's becoming more critical. With SSD and cloud storage prices surging over the past year, every wasted gigabyte has a real cost.
But I noticed a barrier: some developers wanted to use the package but found the setup a bit too manual. They just wanted a simple file upload field in their admin panel that magically doesn't create duplicates.
So, I built a solution for the Laravel community's favorite admin panel.
🚀 Introducing filament-dedupler-uploader
It's a lightweight Filament plugin that gives you a ready-to-use UI for Dedupler. It brings the DRY principle to your Filament forms.
Instead of writing custom logic, you can now just use the component:
use Maxkhim\FilamentDeduplerUploader\Forms\Components\DeduplerFileUploader;
DeduplerFileUploader::make('attachment')
->multiple()
What happens under the hood?
The user uploads a file.
The plugin checks the SHA-1 hash via Dedupler.
If it exists wherever else in Storage, it links the existing physical file to your model.
If it doesn't, it stores it once and links it.
No duplicates. Cleaner database. Smaller cloud bill.
If you are running a SaaS, a CMS, or any Filament app with file uploads, give it a try.
🔗 Filament Plugin
🔗 Core Package
I'd love to hear your feedback! Have you ever had to clean up a legacy storage folder full of duplicates? How did you solve it? Let's chat in the comments. 👇
Top comments (0)