Stash

Feb 20, 2024
2 minutes

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: