As I watch The Internet look like it’s starting to adopt a new phase (let’s call it federation writ large), I’m watching for signs of both success and struggle. I have some strong opinions of features and functionality lacking in the current suite of UIs that might help adoption, but thing I’ve been thinking about more recently is the effects of premature fragmentation.
Like so many things, it boils down to a problem of discovery. By discovery, I mean the user’s ability to find posts and topics that they want to read and engage with.
If lemmy had 10 users, we would not need separate topics. It’d probably be a few posts a day, tops, and it’d be easy enough to just scan through and see if anything of interest was being discussed. That could probably scale up a bit - let’s call it 100 users just for discussion. 100 users, 10-15 posts per day. Somewhere beyond that, you’d probably want to start some kind of classification. It would need to be at a fairly high level, like tech and politics. I’m thinking of things like 90s era slashdot. The point I’m making is that 1000 users would be too few to fragment the tech topic/tag into separate operating systems, much less specific flavors or versions of Linux.
My point is this: picture a growth curve. From biology and general network theory we would expect the growth curve of a successful service or community to grow exponentially. In the early part of growth, the exponential curve can appear linear - it can take time for the network effect to really kick in. Things like the Reddit exit can create a brief non-linearity, but until you hit the hockey stick part it’s just steady growth. Let’s call this function U(t) for users as a function of time.
Now let’s think about growth in the number of communities. From the above, and using discoverability as our fitness function, we’d expect them to grow as a function of the number of users. As the number of users goes up, both the number of and diversity in the posts go up, meaning we need additional metadata to find “our” content easily. Let’s call this one C(t) for communities as a function of time.
My thought right now is that a fitness function would discover that U(t) >> C(t). I’m not going to get a lot more specific because it’s just a thought but I suspect that there’s be some relationship between inter-topic and intra-topic diversity (and the overall information diversity of the service).
What I’m getting to is that it may be that one of the strengths of a service like lemmy, which allows for an almost unlimited expansion of communities including duplications, is not applying the concept of a fitness function, and actually can make things harder to discover and thus the service harder to use, reducing the ability to recruit and retain users. It reduces the average number of posts per topic and increases noise both in search and in the feed. I’ve ended up defaulting my clients to basically showing /all and sorting by recent just to make sure I’m not missing anything interesting, then blocking communities one by one. That’s not sustainable or friendly to more casual users. It’s definitely not the Apollo-on-Reddit kind of UX.
I’m not sure what can or should be done, given both the architecture and philosophy. I’m just thinking about how things like network theory can inform how this sort of thing can be optimized.