Continuing what I said here:
I think we’re losing people at pretty “easy” parts of the contributor acquisition funnel.
Not much to do here for a free project. Having users who love your project and think it would meet other people’s needs would create organic marketing. Currently, I hardly ever bring up beets, and even more rarely do I recommend it, because it’s so complicated and niche.
This is where I think we lose a lot of people. Beets is focused on local music files, which are going extinct.
My pitch, very much welcome to criticism, is this:
“Beets can organize your music library easily and safely. When you want more advanced control, you can fine-tune it to your liking, including:”
(the list from https://beets.io/ )
Going along with getting more casual users to use beets, what’s the reward for them? There are some great bullet points on beets.io, but they are geeky (that’s the audience for beets after all!). Maybe it’s worth mentioning surface-level features?
- Download cover art and lyrics
- Import your local music files to Spotify playlists. (I took a quick look at doing this within Spotify, but there doesn’t seem to be an option?)
- Visualize your music habits and get recommendations. (None of this functionality is in beets yet )
- (The rest of the existing list goes here.)
This doesn’t quite work with a free product, but let’s call this the “on the fence” phase. A user is using beets but isn’t sure about importing their whole library to it. Beets has a bit of a learning curve on the UI/UX (and it’s command line based :O) but I don’t think this is why we don’t have contributors. Other cmd based tools seem to have contributors.
Let’s pretend a user who imports all their library to beets has “bought” it.
But that’s about users of beets! What about contributors to code, docs, and tests? (I’m leaving out bug reports and graphics, because I don’t think there’s much overhead to submitting one.)
Theory: Most/all contributors to an open source project are users of it. That means a beets contributor has to go through all of the above, then face a new funnel:
This time, there has to be some feature or some bug fix a user can make that they want to do.
They might or might not discuss it on our forums and get people’s ideas. If others support them, they might be more motivated. If there’s no interest, they may lose desire to continue. This is why I am so focused on creating a “community” within beets, to foster good will among users.
Now, they try to implement it in the code. They look for what’s causing the problem or where they might add the feature. I think this is where we lose people too, because beets is hard to understand. I don’t think this is wrong or a problem, but I think we could ease people into beets better. “Good first issue” on github is a fantastic tag, and I’d like to help people along that journey into full contributors more. (And I’m still very much a novice. I now work in tech, but when I started, I didn’t, and everything was Greek to me.)
This time, they submit a pull request.
It is evaluated by maintainers and hopefully approved.
Critically, the project cannot sustain itself if each contributor only contributes one time. We need repeat contributors to become intermediate/expert tier understanders of beets. These contributors repeatedly go through the code-change-funnel. Without high retention on this funnel, you eventually lose everyone.
TLDR: I think we’d have more beets contributors if we improved these areas:
- Interest: make “easy” changes to beets that make it useful to more people. As a longer term goal, make “hard” changes that differentiate it from Spotify and other streamers. The tagging and musicbrainz could be key. In many different domains, I see a dominant “convenient” player, but a strong minority that offers more control. Examples: Steam vs. emulators, Netflix vs. Blu-Rays, Twitter vs. Mastodon, Facebook/Twitter vs. Reddit, Discord vs. IRC. I don’t buy that “beets has almost no contributors because major players are just too convenient”.
- Make it easier to contribute to beets.
- As a distant third, make the community more welcoming, to make contributing more fun.