Stash is a featureful tag based library to organise your media collections.
History
A long, long time ago (like a year or two) I used to use Raindrop to manage a lot of media files because it has good tagging functionality, but I ran into limitations, a lack of polish on features I cared about, a 100mb per file limit, and a general slowness of the whole application (to be fair, I don’t think it was designed for massive media collections and more for collecting links, but the point still stands). Unfortunately, I couldn’t find another alternative that ticked all my boxes.
Of course, I did what any “sensible” person would do and created my own solution, tailored to my personal needs. Little did I know that this “little weekend project” would end up expanding far beyond a minimum viable product.
Please note, that this project is open source, however I do not (yet) recommend you use it. Because part of my initial idea for the project was for it to just be a “weekend project”, things are still not implemented in ways that I am fully happy with. Some things are still hardcoded (so not configurable unless you count making a fork as “configuration”), and the project is not setup for non-breaking-changes.
How it works
The application is a SvelteKit project that get’s deployed as a Docker Container. I used to use go as the backend, however I decided to stop using that as I have ran into a few issues, and the code became a pain to maintain.
For the Database I use PostgreSQL (run as a seperate container), as it has a lot of features and can easily be hosted locally. I access it though Prisma.
Future Plans
I plan on continuing to develop this application, as I am using it myself regularly and find it extremely useful for my purpose. It is not even close to being complete though and has already used a lot of my time though, so don’t expect it to be finished anytime soon… or probably ever. Nevertheless here are some of the features that I still plan to add:
- Importer from various web sources
Probably using yt-dlp, as well as some auto-import scripts for sites like Patreon or Twitter - Automatic media optimisation
A lot of media files aren’t well optimised, even without loosing any quality a lot of storage space can be saved - Use AI to automatically suggest tags and find good names for content
Definitely quite ambitious as (so far at least) my AI knowledge is quite limited, but it would save a lot of tedious work if some basic tags could be automatically suggested based on metadata as well as the media content - Final goal: Make everything customizable (nothing hardcoded)
This would finally allow other people to use the software too, a lot of work is needed though to get the application to this point and at the moment it is unclear for me if I want to putin the effort for (probably) 0 actual users