The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
So you made it through the first fiery sermon in this series. Trust me—I didn’t enjoy preaching it any more than you enjoyed reading it. But every word came from a place of love—for the Fediverse, and for what it still could become.
But fear not, dear reader: as the preacher once said, salvation is within your reach.
And to reward you for slogging through that earlier wall of hard truths, here’s your moment of grace. We’re keeping the cute animal theme going, so here you go:
(insert animal pic, obviously)
The grim part’s over. Truly. From here on out, it’s all hope and possibility. Not even kidding.
Because here’s the good news:
Each of the Seven Deadly UX Sins is fixable—not through divine fiat, but through thoughtful, realistic iteration. And probably by far fewer developers than you’d expect. Many of them are already out there fighting the good fight (though they could always use more encouragement—and dare I say it, a little Patreon love).
What follows is the path to redemption.
A roadmap of what could be—if we want it badly enough.
If you’re building any of these fixes: reach out. I’m happy to offer free, detailed suggestions—no patents, no strings, no license required. Just one ask: drop a little nod in a JavaScript comment or server-side file somewhere so I can brag about it to nobody in particular. I’m a simple man.
And if you’ve got better ideas than mine? Even better. Especially if they’re practical, near-term, and close to ship-ready. My DMs are open. Let’s make this thing work.
Let’s dig in. Get a coffee as this may be a long-ish read.
1️⃣ Redemption for UX Sin One: One Single Social Home to Join, Many Doors to Explore Later.
Rather than the status quo across much of the Fediverse’s onboarding UX—asking new users to choose from 8,000 server names they don’t understand—what about this wild idea:
Offer just one default, trustworthy, well-run server community to start. Which, honestly, is what most people are looking for.
Yes—just one. Not a wizard. Not a choose-your-own-server adventure that most newbies abandon a third of the way through.
One. Am I clear?
For most people joining the Fediverse, simply offer them a single, well-maintained, general-purpose on-ramp to their new social home.
Make it dead simple onboarding—with as few steps as needed to get them going - and not a single click more.
Localized to the user’s preferred language. Seamless. Thoughtful.
Pair that with a short, clear explanation of why it’s the recommended path, and what makes it a good place to begin and links to the friendly local admin. And sure—add a clearly marked, clearly optional toggle: “Choose a different community server,” for the curious and confident.
And please—for the love of onboarding UX: Drop the engineering-speak. Swap “instance” for server community. Make the copy human. Friendly. Clear. Onboarding should take 60 seconds, not 60 decisions.
Yes, Mastodon’s official mobile apps mostly do this already—inspired by Mammoth app, RIP.
Now cue the predictable guy in the back row who rightly asks:
“How does this not just re-centralize the beloved decentralized Fediverse we’re fighting for?”
Simple.
Under the hood, the magic stays decentralized.
Unbeknownst to new users, the onboarding software quietly runs a curated round robin of trustworthy servers—offering just one at random to each new user.
We gave some ideas on how one could choose this trusted set servers for the Mastodon platform here but similar metrics could be created for any Fediverse platform.
Maybe that means the software is choosing from between three trusted community servers in the round robin. Maybe it means dozens. But the user never sees that. That random round robin is being done under the hood.
Users see just one served up to them to join —and that’s the point.
The key: no single server gets favored. New users get distributed, not funneled into a single mothership.
🟨 Decentralization: preserved. 🟨 Friction: dramatically reduced.
Plenty of time to educate folks on the joys of migrating to other community servers later should they choose to. It’s not rocket science. Friends and I proposed this years ago. Still waiting on someone to take it across the finish line.
Pixelfed. Mastodon. Bonfire. Friendica. Misskey. PeerTube. Bookwyrm. Patchwork. Warfn. Snort. Bleeb. (Just made up those last two to see if you were still paying attention)
But to that whole crew above and others… Let’s make it a race. Let’s see who nails this first—and shows the rest of the web how it’s done.
And if you’re running a non-general purpose server, say, a cool, niche-focused server community like the affore mentioned Jazztodon? Or other fun topic focused ones? You’re not out in the cold on this fix. It already exists for Mastodon just to share a link like this - rather than sending them to some more global sign up.
It already uses the same model: a clean, direct onboarding flow with just one server—yours. Invite your people, your way.
No dropdown menus. No guesswork. Just:
“Join our space. Let’s go.”
2️⃣ Redemption for UX Sin Two: One Feed To Rule Them All (at First).
Let’s be honest: per UX Sin Two: most users—especially new ones—don’t care or are abjectly confused about the metaphysical distinctions between Home, Local, and Federated feeds. Mashing them together under a “Live Feeds” menu isn’t the solution IMHO.
So here’s crazy talk: don’t confuse them and upon first arrival, only feature ONE feed. Just one feed. Simple. Personal. Familiar.
Call it Home. Just the people you follow. Just what you asked for. That’s what every user expects—and what feels safe, legible, and human.
If they’re not following many folks yet? Nudge them gently: “Here are some great active accounts to get you started.” Different Fediverse platforms do this to mixed results, all can do better.
Once they’re settled, expand the horizon—progressively:
A few days in, they see this on their home feed from their friendly local admin account:
“Want to check out what is trending people nearby on your server are talking about?”
A week later from same:
“Curious about the chatter across the Fediverse? (Warning: it gets weird—in a good way.)”
You get it. This is called progressive disclosure—a fancy UX term for “don’t drop the entire buffet on someone who just asked for toast.”
Game designers do it, allowing characters to “level up” as they go. We should too. And when you do introduce content or users from the Local and Federated views, make them feel like power-ups, not puzzles.
Let people toggle. Let them filter. Let them filter, and sort with easy tools as they explore. But start with clarity, not complexity.
As with Redemption #1, this fix doesn’t require much complex backend wizardry. No protocol overhauls needed. Just frontend compassion. The equivalent of a cron script and some solid user experience design dust.
Honestly? Elk, Phanpy, or Patchwork could probably ship a beta v1 of this idea before you finish reading this post.
3️⃣ Redemption for UX Sin Three: Remote Actions Redeemed
You know the sin already. We covered it in Sin #3: Remote Interaction Purgatory back in Part 1 of this series. So let’s skip the anatomy of the pain and get straight to the path out of this hell.
And yes—apps like Ivory, Mona, and Ice Cubes? They largely sidestep this sin. Good for them. But the Open Social Web is, you know, about the web.
And for the millions of people trying to explore the Fediverse in a plain ol’ browser, this is one of the worst and thorniest of UX offenses.
I’ll spare the gory details, but it boils down to one thing: Browsers support a standard called “protocol handlers.” Or more accurately, how some browsers don’t.
If you’ve ever clicked a mailto: link and your email app just opens, that’s a protocol handler. In a perfect Open Web, it would be just as easy:
- Set your home server once (prompted to do so during onboarding – or at worst when you engage on another server).
- From then on? Follows, replies, boosts—across any server—just work.
Folks (myself included) have been hashing over what magical incantation should be used to actually make this work:
“Use web+ap!” “No, fedi+ap!” “Wait, what about activity+magic?”
Germanic feuding tribes settled things faster than this.
And yes, browser support used to be completely hot garbage. But here’s the twist: it’s not nearly as bad anymore. As of now, almost 90% of users from desktop browsers but still sadly with almost zero mobile browser support.
When you look at users of Mastodon as an example, that maths out to about half of all users could use this solution now.
That is enough for making this far better for so many today, and with a bit of JavaScript fallback, we can cover everyone else.
We’re not waiting on a miracle. We just need to create and ship. Here’s the redemption arc for this UX sin in two steps.
When a user first interacts with a remote server (a post, a profile, anything), the code will prompt them once to confirm this Fediverse protocol handler.
✅ One click.
✅ One prompt.
✅ Done. Forever done.
Guy in the back, raising hand, rightly: “But what about all the browsers that don’t support handlers?”
Relax. We got them too. Just drop in a lightweight JavaScript snippet on that server that:
- Asks (once) what the user’s home server is. And at worst only gets one more ask form their home server “are you sure?”
Then it does the following in the background under the hood:
- Rewrites all remote follow/reply/engagement links in the background automagically.
- And then for every user and every post on that server —✨it just works✨ forevermore.
No more “open in your instance” dead ends. No more copy-paste drama.
Are you the kind of masochist who wants the gory details of this idea? No kink-shaming here. Dig in (including code you can steal):
👉 The Remote Fedi UX Protocol Handler Plan™
OK so I think that solution is pretty good - at least a ton better – but what if we know that we could count on server code to do some of the lifting? Could we go even better from a UX perspective?
That might take more time to do: but if Mastodon, or Pixelfed, or Peertube servers got in on the act and added some custom code there - I think we might be able to make that JavaScript failover code actually be ZERO prompts. See the later more exploratory “Option C” part of this proposal - FediDev’s and JavaScript folks and see if I got that wrong. Or if my crazy talk for Option C might work. I haven’t seen a show-stopper yet.
But all options of what I am proposing above should be able to work on any fediverse platform.
And yes—to the true believers out there, rightly working on the true end goal of getting a single protocol handler as a canonical standard adopted by all browser vendors: thank you. You are doing the Lord’s work.
But for the rest of us? We don’t have to wait. Even the basic version of the idea here takes a few paragraphs of code, not divine intervention.
It’s just… basic UX hygiene. Who’s going to dig in, proof case this, and ship it first?
Once one of you does—and the sky doesn’t fall—the rest will follow like dominoes.
4️⃣ Redemption for UX Sin 4: Direct Messages that Aren’t a Death Trap
As I wrote in Sin 4 in the previous blog post: sending a DM in the fediverse are confusing UX experience, that basically are a panic attack waiting to happen.
So let’s fix it. Developers:
-
Build a real DM composer. Not a slightly tweaked post box. Not “just set visibility to Direct.” A separate space. Different UI. And make it glaringly visually different - no subtle mild color difference or tiny visual flare. Make it as obvious a purpose as a Chernobyl button to empty out fuel.
-
Slap a giant banner across the top if encryption isn’t available. If it’s not secure, say so—loudly.
-
Throw a confirmation modal any time someone flips visibility to or from “Direct.” Yes, every time. One bad toggle should never equal public humiliation.
-
Color-code visibility tiers like your reputation depends on it:
🔓 Public. 👀 Followers-only. 🙈 Unlisted. 🔒 DM.
You know—something humans can actually see and understand.
And for the love of privacy, label every DM with “Not Encrypted” right in the message window. Not in the fine print. Not in the docs. Right there. Every time. Forever.
Because this isn’t overkill. This is respecting boundaries. This is basic UX dignity.
⚡️ And in case you think this is all pie in the sky—guess what?
Chee Aun at Phanpy already did nearly all of this.
Separate composer, clear dramatically, unmissable different visual distinctions for DM’s, safer flows. They moved private messages into their own tab by itself, away from the others and away from the Main Feed. It’s thoughtful, it’s sane, and it’s live.
Here is another great example from an upcoming Newsmast and Channels App UX:
The rest of you: copy their homework. The answers are right there.
5️⃣ Redemption for Sin 5: Search Without Surveillance
Search shouldn’t feel like shouting into the void—or worse, like you’re being punished just for asking.
To be fair, Mastodon’s search system on paper rocks. PixelFed and PeerTube’s federated search? Same.
But here’s the problem: for these—and many other federated platforms—search is opt-out by default per user, and that opt-in option for users to turn on if they choose is buried.
Meanwhile, other fediverse platforms like Misskey, Frendica, Lemmy and Hubzilla made different choices: making it so all public posts on those spaces are by default searchable. In essence defaulting to opt-in for search unless users individually opt-out. That worked for them.
But across Mastodon, Pixelfed, PeerTube, and others?
Search is locked behind obscure settings and rarely explained consent screens. Most users don’t even know search opt-in is a thing.
Right now, federated search is like a power tool buried in a locked cabinet,
down a hallway, behind a curtain labeled: “Don’t Worry About It.”
Here’s the good news: We don’t need to replicate Big Social’s surveillance dragnet to make discovery delightful. We can do this while also respecting user consent and privacy. The backend tech? Mostly done from a tech point of view.
The real challenge now? UX. This is an opt-in problem—and we already have the tools to fix it.
Here’s the better path forward:
✅ Nudge users early. And often. Make the choice to opt-in to search unmissable during onboarding. Then reinforce it gently and re-prompt users to opt in - every time a user tries to search.
Give them clear, kind, privacy-respecting language:
“Search helps others find your public posts. It never touches your private ones. Want in?”
Let them decline, sure. Let them silence future prompts. But always give them the why.
✅ Enrich search NOW with these great hand-chosen feeds.
Curated topic feeds? Already out there. Newsmast, Flipboard, Surf, and others are curating hundreds of quality feed lists right now.
Let’s plug these in like power cables into a server rack—directly into federated search engines of today and into Fediscovery search as it launches - and into all key relay servers to boot. Make 100% sure these are all findable, and featured, beyond just being “public” as they are now. Let the good, human-curated stuff shine inside search.
✅Nudge admins to help, too.
If a server’s opt-in rate is low, send a prompt to encourage the admin to reach out to their users. Give them a clean, pre-written nudge. Include a one-tap opt-in button to opt-in they can share. Most folks just need to know it’s an option and a simple way to say yes.
🛠️ Mid-Term Fixes Worth Considering
🟨 Consider building into future search features that let server admins choose the default search opt-in state appropriate for their community - and that might be defaulting new users to opt-in for some. where it fits their needs.
This one might be controversial, but I just put on my fireproof gear and am ready - it’s worth a serious look.
Every server has its own culture. So let the server set appropriate call for their community: Opt-in by default, or Opt-out by default. But in all cases, the user has final say. As long as consent is respected, flexibility is strength in my book. Far better than a divine fiat across the whole Fediverse.
🟨 Watch this space: Federated Auxiliary Services Providers (FASP- a tech acronym that just rolls off the tongue doesn’t it?) But the first FASP based offering to go live will be Search - is coming soon! Early tests are in sight!
This project will launch a unified, cross-platform search layer—exactly what the fediverse ecosystem needs. That promises to be a game changer. Here’s hoping.
But while we wait?
Most of the groundwork is already laid. Most of the wins are low lift. We have what we need to make federated search feel like a superpower.
We just need to unlock it—for everyone.
Let’s get to the point where people say:
“Wait… why didn’t I turn this on sooner?”
5️⃣ Redemption for Sin 5: Filling in the Blanks of Ghost Conversations
The bad news: this one’s not just a superficial fix. It needs real backend plumbing—deeper stuff that most Fediverse mortals can’t DIY.
(Though it is not rocket science level - users like this have shown how it’s done in miniature form)
The good news: it’s already underway at Mastodon. And not in the “quote-posts-have-been-in-the-works-since-2019” sense of being underway. We’re talking real commits. Real work. This year.
➡️ When a user opens a post, their server begins fetching the surrounding context—replies, parent posts, and profiles—automagically. The UX then should immediately let users know - fetching posts is underway…so don’t panic, wait a second and all will be well.
Want to peek under the hood? The dev threads on GitHub are alive with it. Feature merged into Mastodon upcoming release. See for yourself:
🔧 Thread fetching on Mastodon GitHub
Merged in and closed. On the runway for a near term Mastodon release.
Some other Fediverse platforms are also working on this problem for their platforms —most notably NodeBB, Discourse, Wordpress, Frequency, Mitra and Streams. Everyone else: please take notes from what works. Fork it. Build it. Improve it. Help other to do the same.
This one fix could massively reduce confusion, dead-end threads, and ghost replies.
Meanwhile, for client apps:
Elk, Phanpy, IceCubes, Ivory, Mona, Newsmast Mobile —can you lend a hand here? Even while we wait for the full back-end fix, you can improve the experience with a few thoughtful touches:
-
If a reply or profile can’t be fetched, show a friendly, clear placeholder:
“👻 *Reply not federated here yet. Want us to try to get it updated?”
-
Let users tap to fetch it manually, if needed. But make it clear what is up.
-
Show when a profile is incomplete and offer to sync to the latest and greatest.
-
Consider a simple age warning: “Heads up: this might be old or partial. Click here to refresh and update.
Even these little affordances make a big difference. They tell users:
“No, you’re not crazy. The Fediverse just hasn’t pulled this in yet.”
And for anyone out there grumbling that Mastodon (or any platform) isn’t moving fast enough—maybe skip the subtweets and fund them.
(And here are a few helpful links in this regard.)
A few dollars a month moves roadmaps more than a thousand hot takes.
Oh, and speaking of hot takes, here is one: If you are a coder, maybe roll up your sleeves and pitch in. Perfect example: The initial contribution for the Mastodon fix for fixing and filling in ghost conversations came from Jonny - neuromatch.social/@jonny Who was a new Ruby coder at the time but didn’t let that hold them back - and they sparked this crucial addition.
Give them some thanks and netfame online!
6️⃣ Redemption for Sin 6: Make Great Content Unmissable
Let’s be honest: even outside of search, the Fediverse still fumbles content discovery (See Sin 6) But buck up: There are a thousand ways we could help users find the posts, people, and conversations they actually care about—without building a surveillance dragnet or rage-bait machine.
It’s time to bring back and scale up old fashioned human editorial discovery.*
(Remember “blog rings”? OK, most folks under 50 don’t—but trust me, they worked way better than they had any right to.)
Let’s revive human-curated content—with a Fediverse twist. The good news? We already have an embarrassment of riches just waiting to surface—if we design for it with some smart, consent-respecting UX.
So why is this stuff still so hard to find?
🟨 Federated well moderated groups from upvoting platforms like Lemmy, Piefed, and Mbin are already bubbling up top posts, voted on by real people. Why not spotlight them?
(Note, Piefed is already got the ball rolling with their version of feeds)
🟨 From Redemption Path Five, remember these? We already have hundreds of hand-picked thematic feeds from:
- Newsmast
- Flipboard’s federated magazines
- Flipboard’s News Desks
- Individual curators building focused feeds
- Surf’s Social Feeds (soon to be federated!)
These are not theoretical. They’re already open web content. Usable right now. So let’s feature them. Pipe them into onboarding, trending views, search, suggested follows—anywhere users might want to find signal in the noise.
💡 Slightly mid-term idea:
🟨 What if the current public server directories from each community server became feed actors too? Hear me out on this one.
Most Fediverse servers already show off public profiles—and many expose each public user posts via RSS. Given that RSS can be turned into a Mastodon bot in no time, we are more than half way there.
Let’s evolve that: turn each server’s local public post stream into a followable ActivityPub actor. A single, followable automated account for all voices on a server. Make it so each admin can opt out - like some opt out of making their public feed visible now. Make it so they can configure their own ServerBot to only boost posts with certain engagement, or set filters on it and all that good moderating stuff.
I, for one, welcome our new ServerBot overlords.
These kinds of curated “boosting bots” are how Newsmast Channel feed accounts work. Could a standard protocol for feeds be better? Hells, ya. Working group folks are on that.
But until then - this works TODAY. And then notice how all such ServerBots are followable immediately. And remixable and addable into other feeds, etc. These are all lego blocks building on each other.
Browsing remote public feeds: Apps are already hacking toward this with clunky workarounds. People want this. Let’s make it work on the web, too. Smooth. Intentional.
Someone smarter than me, help prototype this one. I’ll talk you up, I promise.
All these ideas—both near-term and mid-term—are really just about one thing: curated feed accounts. Most of them already exist. They just need the spotlight.
So what now?
📍 Index them in existing search. All of them. Prepare to index them into the Fediscovery FASP once that launches. Stat.
📍 Evolve feed standards to make easier to build and make them remixable—so apps like Surf, Flipboard, Newsmast and others can feature them and and build on them.
📍 Pull them into big relay hubs to boost visibility across the network.
Done right, great public content starts to feel everywhere. No tracking. No noise. No black-box algorithms.The Fediverse is overflowing with public posts that people want to be seen.
Let’s help them be seen—while respecting server context and dramatically improving discoverability.
Let’s make great content… unmissable.
7️⃣ Redemption for User Discovery Hell: UX for People Finding
Let’s imagine a world where we’ve fixed all the other sins. Welcome to Fediverse Narnia. Content is rich. Discovery is delightful. Search is humane and powerful. Great.
But even in that better world, Sin #7 still haunts us: finding people. Not just content—people. Friends. Experts. Communities. Shared interests. It’s a related beast, but a distinct one.
So here’s how we begin to tame it—mostly with smart UX and a little coordination:
🟨 Give server profile directories a real UX overhaul.
Make them sortable and filterable and searchable:
- By interest or profile tags
- By post recency
- By community role
- And auto-hide inactive accounts unless the user asks to see them
And for Mastodon, do the same for the Explore People tab. And make the Explore Hashtags page so that each tag is foldable with one click. Other Fedi platforms: do similar tune ups.
Right now, many server directories are just flat walls with limited sorting or browsing. Let’s turn them into useful, browsable, followable entry points to the community.
🟨 Pipe local community server profiles into opt-in Fediverse-wide discovery hubs. Simply making them an ActivityPub actor alone would get you more than halfway there. Just like we suggested for public posts in Sin 6—let’s do the same with people. Let users opt in to be featured in thematic discovery feeds or server-based “people to follow” hubs. Let this be federated.
Fediscovery once it launches should be a playground to try this out - and should be an early thing to try.
But until then: Here too I’ll bet Patchwork, Pleroma, Misskey or others could do this quickly and lessons adopted by everyone else.
🟨 Fix follower/following graph federation. Once Sin 5 (the federation of follows/followers content) is fixed, you’ll actually be able to see who someone follows across instances. You find someone awesome? You can actually explore their social graph—just like you expect in every other social app. This fix is foundational. And these fixes all build on each other.
Also, wait for it:
💡 Mid-term idea: Federated Starter Packs Are Coming
Bluesky got this one mostly right: give new users a thoughtfully curated “starter pack” of people to follow. It eases onboarding, sparks connection, and gets feeds flowing fast.*
But Bluesky they left out pesky things like security - their version left out any means to get yourself off of a list you don’t care to be associated with.
Now imagine a Fediverse version that’s got a bit more privacy respect to keep you off of starter packs you don’t want to be on. It’s on its way from a few places. Here is one in the works from Mastodon, and here is another.
I’d offer some other notes: Fedi Starter Packs could live at either the user but also discoverable integrated at the server level, too.
Like Surf Social App does today with BlueSky Starter packs, they need to be remixable into other feeds by curators, Maybe in some fashion they could be shared as ActivityPub actors themselves—just like a feed. (See a pattern forming?)
✨ The goal for all of these ways of fixing account discovery? Make discovering people feel effortless, inviting, and safe.
Because the open social web isn’t just about finding content. It’s about finding each other.
🌀 OK let’s bring this two part series in for a landing:
Here’s the real punchline:
Almost none of the short term fixes I listed above require:
- Rewriting the protocol - no need to wait for longer term fixes. (Though we love improved protocols, too)
- They don’t need a governance working group. (But might inform them)
- They don’t need VC funding.
- They mostly don’t even need big backend changes beyond what is already done.
What they do need?
What they need is focus. What they need is momentum.
The willingness to say “good enough” isn’t good enough if it leaves people confused, invisible, or gone.
Most of these paths out of UX Hell are:
- Mostly Frontend tweaks and updates
- Smarter federation fetches - and some manual bandaids to tide us over for a few months
- Rediscovered ideas from the early web implemented with the raw materials we have
- And a dash of UX love
The Fediverse already has what most platforms spend billions for and can’t buy:
🫀 We have the passion. 🧭 We have the values. 👥 We have a community that actually gives a damn.
Now it just needs the polish—and a collective push to make great user experience a first-class priority.
Thus endeth the sermon. Thanks for coming to my TED talk.
Let’s get to work.
This was the Final Part 2 of my two-part series on the Seven Deadly UX Sins of the Fediverse. No more sequels. This is it for the series. But will chat it up in comments.
Missed Part 1? Go read it—or send it to that friend still wondering why their cat memes don’t federate properly. And if you’re building any of these fixes: DM me. I’ve got free suggestions, zero patents, and endless opinions.