The current incarnation of stash was originally created by StashAppDev
, with the very first commit appearing in February 2019. It was a rewrite of a rails-based porn organisation app StashServer. Before that, it was an OSX-based app, so this would be the third iteration technically
My personal involvement in the project began in July 2019. I discovered stash after spending a non-trivial amount of time developing my own application with a similar purpose (it was java-based, with an Angular front-end and was very generic because I wasn’t comfortable making a specifically porn-centric application). I found stash to be a far better applications of the similar ideas I had, and I had previous experience with go, so it was a good fit for me to develop personally and contribute to.
My first contribution to stash was to add live streamed transcoding. Back then, stash could only serve video files that the browser could play natively. Anything that couldn’t be streamed directly had to be transcoded using the Generate Transcode task that remains today (though to my knowledge largely unused). I had a lot of avi
, mpg
and wmv
files that I wanted to be able to play, and I didn’t want to transcode them into mp4 files.
I contributed regularly after that. At some point late in 2019 I was invited into the stashapp organisation (joining @Diustent and bnkai
who I haven’t seen in a long time), and StashAppDev
began spending less time on the project, and I began taking a more active role managing the project.
As an aside, late 2019 saw the launching of the stash-box project, with myself and @Infinite working on the original prototype.
In March of 2020 when the pandemic was beginning, I was made redundant from my software engineering job after 14 years in the industry. My original plan was to work on some personal coding projects and eventually return to the workforce on my own terms - since I was fortunate enough to not need to immediately seek another job. This plan was thrown awry with the pandemic, since I suddenly had to home-school and supervise my two kids. Alongside that, I began to feel an obligation to continue development of stash, at the expense of pursuing my own projects.
Late in 2020, I raised the idea of drawing income from our OpenCollective. Up to that point, all funds that we were raising were put towards hosting our stash-box instance and the stashapp.cc DNS registration. We introduced the bounty system last in 2020, and I began drawing a monthly $350 stipend in mid-2021. This figure was what I judged as sustainable, based on the amount of monthly contributions that were coming in at the time.
In the intervening years, our OpenCollective attracted more generous backers and sponsors. In mid 2023, I raised the prospect of billing for the hours that I actually work developing stash and managing the project. I had been treating the development and management of stash basically as a job for a few years up to that point, my financial state was slowly worsening and I needed to either draw an income from stash or seek paid employment (which would take away time I could dedicate to stash). With the blessing of our awesome backers and sponsors, I began expensing for my hours at US$30/hour with a cap of 40 hours for a month, to ensure that the expenses were sustainable.
Finally, again with the blessing of our backers and sponsors, last month I proposed to lift the cap on my hours per month. Due to personal issues, my hours worked on the project would vary significantly over and under the 40 hour cap. Over a 12 month period I worked an average of 49.2 hours per month, but was expensing for an average of 33 hours per month due to the cap.
As of today, the stashapp project has the following regular expenses:
- WithoutPants development hours - billed at US$30/hour
- hosting costs for stashdb which is currently approximately US$50/month
- hosting costs for Discourse, which is currently US$6/month
- DNS registration fees for stashapp.cc, paid yearly