« Back to Lee's Blog

When my users became someone else's problem

In March, someone posted in r/Soulseek asking how to ban Aurral clients. Their Nicotine+ queue was full of usernames starting with aurral_, none of them shared anything back, and they were thinking about leaving Soulseek over it. The thread got 57 comments. A month later another r/Soulseek post asked why strange aurral accounts kept downloading one song at a time.

They were right. My app was being a bad neighbor.

How it happened

Aurral builds weekly playlists from your listening history and downloads the tracks. The first version had its own small Soulseek client so people didn't need to set anything else up. To make that painless, Aurral generated a Soulseek account for each install.

That made setup easy for my users and expensive for everyone else. Soulseek runs on reciprocity. You share files, other people download from you, and the network works. A growing crowd of auto-generated accounts that only downloaded broke that deal. I hadn't thought about the people on the other side of the downloads, because they weren't my users.

What I changed

  1. Share by default. I started on it the day the first thread went up. A week later Aurral shipped with seeding turned on, so its downloads folder was shared back to the network. Users could turn it off, but the default followed Soulseek's norms instead of ignoring them.
  2. Listen to the next complaint. In May an Aurral user opened an issue saying other Soulseek users ran bots that ban leechers, and Aurral's client still looked like one. They already ran slskd, the standard self-hosted Soulseek client, and wanted Aurral to use it.
  3. Wait for upstream, then rebuild. I wanted that too, but Aurral needed control over where slskd saved files, and slskd didn't support that yet. I explained the blocker in the issue and linked the upstream slskd issue so people could follow along. Aurral v2, which went into public testing in June, removed the built-in client entirely. Now people use their own slskd and their own Soulseek account, and they share their own folders.

What I took from it

Your product's footprint includes people who never installed it. Self-hosted tools talk to shared networks, public APIs, and other people's servers. The slskd change also meant Aurral stopped leaning on a homemade client, which made downloads more reliable. Doing right by the neighbors ended up being the better product decision.

Read the communities next to yours. I found the r/Soulseek threads because I get an alert whenever Aurral is mentioned on Reddit. If I had only watched my own Discord and GitHub, I would have heard about this much later, from users getting banned.

Explain the wait. The slskd switch took months. Saying exactly what was blocking it and linking the upstream issue gave people something concrete to follow. "Soon" without a reason doesn't.

Easy defaults have costs. Auto-generated accounts saved my users five minutes of setup. Someone else paid for those five minutes. Now when I make something frictionless, I ask who absorbs the friction I removed.