For example, for me, here are some things I wish to see (or would implement in my design) :
- design around ease of self-hosting. A non technical user must be able to self host easily and at a very low cost.
- Embrace content sorting and filtering algorithms, but on the client side, with optional control by the user.
- Standardize tags on all content. So many of the different ways different platforms classify or organize content can be implemented as tags, which increases interoperability between them.
- Abandon obsession with real-time-first implementations for use cases that don’t explicitly need it.
- Transferable user identity (between instances)
- User identity and authentication as separate service from social network instance
Would love to hear yours!
Fun and weird ways of using the internet socially. Fediverse has the unique opportunity that you can build anything and automatically reach people. I’d like to see people really push the idea of what a social platform looks and acts like.
Allow people who fund the platform vote on features (that are pre approved ). who contribute more get more in return.
“time well spent”. and maximizing the “average quality of content”. maybe by allowing custom feeds. or feeds that are based only on the votes of trusted users. with governance models supporting how those feeds are managed like how KDE and GNOME nonprofits are managed. maybe vote on best post/comment of the day/week/year/decade with leaderboards for that.
Linus law of trail and error. allow people to easily extend the software .with plugins and ideally a store with reviews for addons like in firefox and chrome. making experimentation easier and safer (without risking adding a bad feature to all users of the software). vote on features implemented rating for example how satisfied you are on a scale of one to ten.
information over speculations . use A/B testing to see what works in practice. maybe use “counted statement” for example “this is useful” or “this is important” beyond lemmy and reddit upvotes and downvotes.
Right now a life changing post from world class expert and a funny cat picture with someone who spend too much time online are treated the same by the software. this should somehow change.
For the threadiverse in particular I’d add transferable user created Communities (between instances).
If Activpub does portable actors (a user is just an actor) communities are just actors so therefore portable users means u get portable communities for free
User sovereignty first design, where users individually control what instances they wish to block.
I agree with this. I think instance owners retaining ability to block other instances is still unfortunately necessary, if at least for administrative and legal reasons. But putting the onus on granular blocking controls on the user is a big achievement, as I prefer the user to retain that control.
That’s not a universal want. Trans people and other vulnerable, targeted minorities face a real cost in having to play whack a mole with bigots. Sure, you can block them as they appear, but by that point, you’ve already seen their hate. And it means every trans person has to see and block that content. After which, the bigot just comes back with a new account, and does another round.
The blahaj instances offer aggressive, pre-emptive blocking of bigots and transphobes, at the instance level, with the goal of giving our users an experience of social media that isn’t shaped by hate.
Of course, not all trans folk want that, and some absolutely do want the power to choose for themselves who gets blocked and are willing to face the hate in order to retain that ability. But that’s the other power of the fediverse, because there are instances that cater to that approach as well.
tl;dr - Granular user control of blocking/federation is good, but it’s not “better” than instance level blocking and defederation.
An easy middle ground is the ability to sync your block list with someone else. This gives the same capability you desire, but allows users freedom to do it on their own. Everyone’s happy! What do you think?
It’s a good idea, but still not an alternative to instance level blocking.
The downside is that if you’re new to the fediverse, you have no way of knowing whose lists you should follow. So there needs to be some sort of instance/client level opt in recommendation to make it visible/useful to new users.
Beyond that though, on an instance like blahaj, it would be largely irrelevant, because there is no scenario where I let transphobes federate to the instance, whether or not individuals have the ability to block them from a subscription list.
The downside is that if you’re new to the fediverse, you have no way of knowing whose lists you should follow.
Isn’t the whole idea that you choose a trans-friendly instance and you naturally adopt the instance wide blocklist? Same thing here, except you choose the block list similar to choosing an instance in the old flow.
And if you disagree, this could still easily be mediated. For example, the instance could have a default block list. As long as one can opt out, that would respect user choice.
Or choosing the blocklists can be part of the account creation flow.
There’s others ways to go about it.
Beyond that though, on an instance like blahaj, it would be largely irrelevant, because there is no scenario where I let transphobes federate to the instance
What I suggest isn’t meant to take away the instance owner ability to defederate or moderate. But this makes it such that you don’t have to modify your moderation strategy when your users can adopt different moderation in addition to what you have. (example: maybe a large group of your users want to block US-centric content, or political content, etc.) and people not on your instance could possibly adopt your moderation as well!
Yep, that would pretty much be the ideal scenario :)
Thank you for listening to my idea, and I’m glad you like it :)
I’m not saying that instances shouldn’t have default blocklists, but that users should have the right to disable them granularly.
I think instance owners should retain the ability to make some blocks non-negotiable. They are responsible for the instance and legal implications after all.
No way. Transphobia is not welcome on any instance I run for example. And that isn’t something that a user should be able to change for themselves. That’s a scenario where you would pick a difference instance
you should look at the domain names of some of these blocked instances.
going live without a block list implemented upon start up is going to put you in a very serious legal quagmire where you are now responsible for your ISP having transmitted CASM.
That’s precisely why I call it necessary, you’re right!
Embrace content sorting and filtering algorithms, but on the client side, with optional control by the user.
You can only filter and sort what was downloaded by the client. So that runs into resource constraints.
Standardize tags on all content. So many of the different ways different platforms classify or organize content can be implemented as tags, which increases interoperability between them.
I’m so with you. https://xkcd.com/927/
Transferable user identity (between instances)
User identity and authentication as separate service from social network instance
That’s more the ATproto/Bluesky vision.
You can only filter and sort what was downloaded by the client. So that runs into resource constraints.
In the client, you wouldn’t need to be sorting and running extensive calculations on all data. You could, e.g, build the front-page by indexing/scoring posts and comments that have been created since your last visit with a hard cap on some time window (last 48h) or total data points (e.g, keep only the most recent 10k objects in a local hot database, freeze/archive everyhing else.)
I’m so with you. https://xkcd.com/927/
That’s what RDF/JSON-LD gives us for free. There is no need to have us arguing over what each tag means, all that developers need to do is to learn how to use the different vocabularies.
That’s more the ATproto/Bluesky vision.
Doesn’t mean that we can’t adopt it.
In the client, you wouldn’t need to be sorting and running extensive calculations on all data. You could, e.g, build the front-page by indexing/scoring posts and comments that have been created since your last visit with a hard cap on some time window (last 48h) or total data points (e.g, keep only the most recent 10k objects in a local hot database, freeze/archive everyhing else.)
Absolutely. There’s a lot you can do. The “For You” Feed on Bluesky is quite instructive. https://bsky.app/profile/spacecowboy17.bsky.social/post/3mb2r5qei322a
But when you’re talking about sending a lot more data to clients, you really need to consider what that means for the internet bill of instance owners.
But when you’re talking about sending a lot more data to clients, you really need to consider what that means for the internet bill of instance owners.
I would argue the opposite, actually. A lot of this data could be distributed in a p2p manner and the client nodes would have to rely even less on the servers. The key part would be that this data would have to be self-authenticating, but we do have the mechanisms to do that (Linked Data Signatures)
Good pitch. You could also ask people to help out with the more expensive computations. Say, adding alt text.
You can only filter and sort what was downloaded by the client. So that runs into resource constraints.
There shouldn’t be resource constraint issues in downloading new content Metadata from all your subscriptions
tags
When I say “standardize tags on all content”, what I mean is make it a standard to have the option of having tags on every type of content, and treat tags as a first class attribute of the content. The XKCD you reference is not relevant.
That’s more the ATproto/Bluesky vision.
Sure, they use it. But it is compatible with activityPub as well.
1.- and I’m going to emphasize this a lot.
PAGING
(or at least some concept in the vein of “show only a finite amount of information at a time”)
Lemmy does it well, but Mastodon sorely requires it for example. Anything that induces the pattern of autorefreshing, auto-filling, constantly changing timelines only empahsizes the addictions that antisocial media is working with already.
2.- More and better reactions than simply “upvote” and “downvote”.
A upvote or a downvote can mean things in different categories, from “I don’t like this” to “this is uninformative” to “this is misinformative!” to “enough Musk spam!”. Condensing and factoring such results into how threads are found and sorted artificiates any or all of popularity, consensus and usefulness. So, being able to “react” (add a singular tag to a message without the need for a reply) to a message with more options than “upvote” and “downvote” would be useful. I’d count at least three axis (axeses? switchaxes?) that are useful to gauge: “agree - disagree”, “informational - misinformational” and “verified - debunked”.
3.- Global, or at least shareable and moveable, user identity. Won’t comment on this more because others already cover it enough.
4.- Fucking decouple instance identity from DNS. DNS is the layer that big corpo will rein in next, depending on it to validate who an instance is is playing an eventually loser game.
I’m so far paging, and it’s so annoying this isn’t the default design on the fediverse.
On 4, I also agree, but what’s the best alternative?
Radical interoperability. If I want to subscribe to this board via Gopher, or via Dialup modem, there should be an implemented way to do that.
Uh, I’d love someone to have a try at full-blown direct democracy. Most aspects being controlled (and ideally owned) by the very same people who use the platform. Not sure if that’s good or feasible, though.
And what I always love is to see design principles that foster a nice, amicable atmosphere. Some online communities, games etc have aspects of that. It’s somewhat more rare on modern social media. I sometimes wish hanging out on the internet was a bit less about politics, trolling and memes, getting agitated amongst random anonymous people. And a bit more like an evening at the Irish Pub with friends. Or getting to know new friends there.
We do things like that. I just think good platform design still has potential to achieve way more than we currently do.Tbh It sounds awesome
What exactly would be controlled differently under this direct democracy?
I think the most obvious one is moderation. What gets deleted, who gets kicked out. Then for example community rules, what’s the topic and rules of discussion. Every user/member could have a say in that. Maybe we could do some more structural and organizational decisions.
It gets a bit tricky with technology. Ideally we could do things like democratically decide to have a voice chat (if that’s what people want) and somehow 3 months later the platform has a voice chat… But it’s not that easy, software development doesn’t work this way.
I do think that some direct democracy would be good, but there’s a reason why Switzerland still has representatives too.
Having to vote on every single moderation action would be a pain to deal with. Not just in terms of fatigueing users and causing only few to actually participate, but also because it’ll slow down the process and empower bad actors to cause more damage.
What should be a thing imo is what Switzerland has: the ability for regular users to propose new rules and then vote on approving them, and the ability to undo any moderation action through a democratic vote. Both of those being binding.
Also of course the ability to vote a mod out if they’re abusing their power. That’s something we’re lacking IRL too.
Edit: On your other point:
It gets a bit tricky with technology. Ideally we could do things like democratically decide to have a voice chat (if that’s what people want) and somehow 3 months later the platform has a voice chat… But it’s not that easy, software development doesn’t work this way.
I think one thing that’s possible is to copy the GOG model. Have a wishlist of features that people can add to and vote on. The highest voted features you prioritize in development.
Yes, surely. I mean we’re a bit in a different situation in a digital place. Votes are way easier here (than in real life) and we can easily automate it into bigger processes.
For example I could envision something like a jury to make judiciary decisions. Not sure if that counts as direct democracy… But we don’t have to ask everyone about every moderation decision. Maybe just grant everyone the ability to report stuff and then the software goes ahead and samples 15 random people from the community (who arent part of the drama) and makes them decide. I believe that could help with fatigue. And speeds it up, we can just set the software to take people who are online right now, and discard and replace them if they don’t get at it asap.
Or make it not entirely direct, but at least do away with the hierarchies in a representative democracy. Instead of appointing moderators, we’d form a web of trust. I’m completely free to delegate power to arbitrary people and if my web of trusted people arrive at a score of 30 it’s spam, it is spam for me. And someone else could have a different perspective on the network. That’d help with all the coordination as well, because I can just not care, and the platform automatically delegates the power. And once I do care, I’m free to vote and that spares other people the effort to do the same. That’d at least make it direct in a way that we’re all moderators and users at the same time.
Of course democracy is a trade-off. And there’s a million edge cases, and we need some other things which go along with it. Accountability and transparency. We’d need an appeal process, for example with my first example if the jury doesn’t do a good job.
I’m probably not at a 100% perfect solution with these ideas. But I’m fairly sure we’d be able to do way more in a software-driven platform than the analogies we can take from countries and their approach at decision making. Especially regarding hierarchies within the system. However, things also clash. Transparency might be opposed to privacy. We have a lot more abuse on the internet than in the real world and it’s maybe not just easier to do votes here, but also easier to manipulate them, than what we’d take inspiration from in the offline world.
- PieFed did a public poll to form a roadmap for 2025. I think it turned out very well. PeerTube also does that. The open-source tool that looks like GOG’s website is called Fider
I love it as well. Though, from a software developers perspective, it rarely goes all the way. There’s just so many technical decisions to be made, limitations, vague requirements, contradictions. Sometimes users think they want something but they really need the opposite of it… And they always want wildly different things and more often than not it’s not healthy for the projects to approach it that way. They’d instead do it in order as mandated by the technical design, have more pressing issues and all of that is buried beneath layers of technical complexity. So the users hardly know what’s appropriate to do. I believe that’s why we often gravitate to the “benevolent dictator” model in Free Software. Or why some regular (paid) software projects fail or exceed budged and time planning.
It should be that way, though. If software is meant for users, the developers should probably listen to them, so I love what these projects do, to at least augment their development process with some participation and guidance by the target audience. And some people are really good at it. (Edit: And we might have elements of a meritocracy as well, and people need programming skills to participate in some ways… So, I think we might not be able to do more than try to make it as democratic as possible. At least as far as we’re talking about the development process itself.)
Unified identity really needs a modification at the core of activpub. The issue at the moment is that a user is just an actor and an actor is just a url. What it needs to be is something like a did(distributed identity) which is what atproto (bluesky uses) does. And the did points to a list of actors that can be across multiple servers. The did has a private, public key pair and signs all activities by per server actors as ur user. What this means is u don’t need to trust any server with login details or anything and u can do activities acting as any instance you want.
I do like this, but it does require responsibility from the user to maintain their keys. I think having it as an option is great, alongside the identity providers I speak about.
but it does require responsibility from the user to maintain their keys
Not necessarily? We can have did methods that do not rely on key ownership.
So did has different providers so atproto uses did:plc and did:web but their are many different options and its a standard so u can get comparability with so many things ie did:pgp, did:eth, and like a million other options
DID-based identity already exists in Fediverse: https://codeberg.org/fediverse/fep/src/branch/main/fep/ef61/fep-ef61.md
We currently use
did:keybut in theory any DID method can be used, someone even tried to usedid:plc: https://github.com/bluesky-social/atproto/pull/3943
I’ve been thinking about that a lot and plan to build something I’m more interested in:
- powerless instances where all you can do is create accounts and store stuff to be served but every logic and integrity is done by clients
- anonymous account creation so that everyone can participate -> freedom of speech …
- follow-based interaction: if I don’t follow you, you cannot send me anything -> … not freedom of reach
- because instances are powerless they do not define community anymore. Communities are good old accounts, created, managed and animated by users directly
- because clients have all the power, they are the primary storage source
- Communities are the primary dissemination vector. If I don’t follow you but we’re both part of the same community and you post something to that community, I’ll see it
- when I block someone, that block can be propagated to others so they can automatically block that same account. This works for communities as well.
Hopefully a design like this should empower users and communities by letting them focus on the social aspect of building the group, nurturing it, instead of the technical parts that constrain users into artificial uses
Sounds a lot like Nostr, no?
Edit: or maybe SimpleX? I keep confusing various implementation details between the two.
Neither nostr nor simplex make “community building” a thing. The most important defining point is the ability to have communal intermediaries. All protocols can do a forwarding bot, starting with the good old mailing-list, but anything more complicated than that is rare. In nostr that would be running a full relay (which is just out of the question if you’re not technical). Simplex isn’t much better. Both are built for individualistic purposes, so it’s not really surprising.
ActivityPub isn’t perfect but it has Groups, with some people working on making them controllable. XMPP has highly configurable pubsub. Those are proper foundations for billions of people building billions of communities
If we’re doing wishful thinking, I’d love an age and location mechanism.
Theres currently no way to do this with privacy and security in mind. Because it’s just a clusterfuck of issues.
But, again - wishful thinking. It would be cool hell to be able to actually have spaces for specific ages, or specific locations.
All the eurocentric communities forcing the end user to be from europe. Imagine a community for only 40-60yos, or a real teenager community without the creepos.
My city has a forum for each generation (millennials, gen X, etc) and the conversations and chats are lightyears better than anything else. We have RL meetups and BBQs. It’s a real community. Trolls quickly get booted and those who were assholes beg to come back after apologizing.
I think having instances or communities dedicated to that would be wonderful.
I think having separate identity providers would work well with this. Those identity providers could optionally verify age and location, and your instance can just trust them on that to make it exclusive to certain ages or locations.
Some instances already implement this, but a hard anti-AI stance or at least requiring labeling of AI-generated content?
I need the ability to send someone over and lightly slap other users if their comment reaches enough downvotes
design around ease of self-hosting. A non technical user must be able to self host easily and at a very low cost.
This may be a controversial opinion, but I actually like the way that hosting a lemmy instance is somewhat difficult to spin up. I like the way that it is requires a time investment and spammers can’t simply spin up across different domain names. I like the way that problematic instances get defederated and spammers or other problematic individuals can’t simply move domain names due to the way activitypub is tied to those.
In theory, you could set up something like digitalocean’s droplets, where a user does one click to deploy an app like nextcloud or whatever. But I’m not really eager to see something like that.
Transferable user identity (between instances)
I dislike this for a similar reason, tbh. If someone gets banned, they should have to start over. Not get to instantly recreate and refederate all their content from a different instance.
Of course, ban evasion is always a thing. But what I like is that spammers or problematic individuals who had their content nuked are forced to start from scratch and spend time recreating it before they get banned again.
As for what I would really like to see, I would really love features that make lemmy work as a more powerful help forum. Like, on discourse if you make a post, it automatically searches for similar posts and shows them to you in order to avoid duplicate posts. Lemmy does something similar, but it appears to only be the title. It would also be cool to automatically show relevant wiki pages, or FAQ content, since one of the problems on reddit was that people wouldn’t read the wiki or FAQ of help forums.
I would also like the ability to mark a comment on a post as an “answer”, or something similar. I think stackoverflows model definitely had lots of issues with mods incorrectly marking things as duplicate, but I think it was a noble goal to try to ensure that questions were only asked once, and for them to accumulate into a repository of knowledge. For the all the complaints about it, stackoverflow is undeniably the one of the biggest and most useful repositories of knowledge.
I dislike this for a similar reason, tbh. If someone gets banned, they should have to start over. Not get to instantly recreate and refederate all their content from a different instance.
A ban on transferable ID would follow the ID.
The first issue you bring up would be resolved with the idea of separating identity and authentication as separate providers from instance providers. In fact, it’s much better than just relying on a small difficulty, as that is more likely to discourage a well meaning non-technical person than a malicious actor.
Wktn separate identity providers, your instance can trust the identity providers that have good reputation. And if I want to be seen by your instance, then I have to have one of those identity providers approve me.
Different identity providers will have different standards and requirements.












