The Working Group under the CSTO Council of Defense Ministers has discussed electronic warfare issues in Kyrgyzstan en.odkb-csto.org/news/news_odk…

Mitigating the "7 Deadly Fediverse UX Sins"


This article is a response to Tim Chambers' recent writeup, titled The Seven Deadly UX Sins of the Fediverse Web Experience (To Fix). It's a pretty great read, and I'm writing this not as a rebuttal, but to analyze and expand on the points made.

This is a musing on 7 problems that have been pointed out, with some ideas on what progress has been made to fix them.

in reply to 反いじめ戦隊

Well, no, this was just responding to a critique on UX shortcomings, and highlighting how different efforts could solve various problems.

It sounds more like you're talking about one of my previous blog posts, where I was talking about a super-flexible frontend that's basically a pagebuilder. Make no mistake, I would love to see custom profile music and radios! And I agree that accessibility needs to be way better!


My Dream Fediverse Platform


This article is a follow-up to an older post of mine, Towards a Greater Federated Architecture, and also a response from the wonderfully-thought out piece by Ben Werdmuller, If I Started Fresh. The goal here is to take the lessons learned from a variety of systems to propose the Fediverse platform I have always wanted to build: Postmodern.

No code has been written as of yet, but I am learning to program, from the bottom up, backend to frontend. I have some background in game design, Web development, and API clients, but I'm working on the more elusive foundational stuff. This is the only way I can possibly develop the confidence needed to build this thing.


The Fediverse, Social Web, Peopleverse, whatever you want to call it, has evolved considerably since it originally started back in 2008. During my entire time on the network, I've longed to design a platform of my own. I've learned a lot of lessons from amazing projects along the way: Hubzilla, Bonfire, Emissary, and ActivityPods have all done some really interesting things beyond what Mastodon offers to the network. I also think there's some really valuable ideas in both Nostr and Bluesky that are worth closer examination.

Before I dive into my technical brain-droppings of the past decade, let's establish a few core concepts.

Guiding Principles

1. It needs to be fun


On the surface, this might sound superfluous. What does it mean for a platform to be fun? This boils down to a few key areas that Fediverse platforms struggle with:

  • Ease of use - Good UX design is hard to execute well. As time goes on, I'm convinced that people want to use something without having to think too hard about conventions or side effects. They shouldn't have to dig under countless menus to find where the decentralization is.
  • Discovery - For the time being, the act of finding new, cool things to interact with or peruse is pretty bad. There's some promising work happening with Fediverse Discovery Providers. Regardless, discovery needs to also extend beyond simply finding stuff, and include a laser focus on finding people. Onboarding still kind of sucks, and there's a number of issues with trying to find your friends and connect with them.
  • Resiliency - One of the shakiest aspects of the Fediverse involves just how fragile instances can be. If an instance permanently goes down, and you didn't already have some alias set up to migrate your followers, you're dead in the water. Having to rebuild your social graph from scratch is the opposite of fun.
  • Control - This can mean a lot of different things: control over your timeline, control over how your space on the web looks, control over your connections, control over your data. A big missed opportunity in the space is that we'll say things like "you own your own data", but it's not exactly true. Your data mostly exists as a series of tables in a database, which can be serialized into a JSON export that you mostly can't use with anything.

It might seem like this is a catch-all, where you can throw any old thing into the guiding principle. Maybe it is. What I know is this: if the experience is bad for users, if they're getting harassed and seeing drama every day, if they don't really have much control over the platform, if they can't find their friends or cool things that interest them, then your platform is the opposite of fun.

2. Users should have maximum agency


Building on top of Principle #1, individual users should have total agency of how their experience is shaped online. This can be categorized in four ways:

  1. Visual / Conventional - the user decides what interfaces, themes, apps, and clients they will leverage to access the network. Custom designs and behaviors empower users to make their online space truly their own.
  2. Data Sovereignty - the user has strict controls over their data: what apps and services can use it, the extent to which different pieces are exposed to the Web, and the ability to seamlessly port the sum of that data from one place to another.
  3. Filtering and Connectivity - users should always be given the opportunity to decide what they see on their feeds, and what other people can see from them. This could take the form of filtering out keywords, blocking users and domains, leveraging a third-party labeling service, or being able to connect to individual accounts that may otherwise be banned instance-wide for everyone else.

Of course, this isn't to say that admins and moderators don't have a suitable place in community-building and curation. It's just that solely relying on them tends to result in communities where users have minimal input on policy, and admins have absolute authority. To me, this is a major barrier towards world-wide adoption of the Social Web, which is a goal for some of us in this massive, sprawling movement.

3. The platform must move the Fediverse forward


There's some absolutely amazing developments happening in the space. Most notably, the Fediverse Enhancement Proposals project has helped many different platforms standardize on undocumented behavior. It's the closest thing we have right now for improving ActivityPub implementations, in lieu of a formal update to the protocol spec.

FEPs are the reason why groups mostly just work across a variety of systems now, and related efforts such as the Threadiverse Working Group allows NodeBB, Discourse, Lemmy, PieFed, and Mbin to federate together with minimal issues. It's not perfect, but the project is bearing a lot of fruit.

The problem is that some of the biggest projects in the space, such as Mastodon, have historically been pretty indifferent to these efforts. Often, they choose to forgo established agreed-upon FEPs to do their own thing, forcing everyone else to bend over backwards and support their unique way of doing things. At the end of the day, FEPs still aren't advancements in the ActivityPub protocol itself.

We need more Fediverse platforms to champion these collaborative efforts, both to help influence further development of the protocol as well as putting pressure on larger projects to work with the community.

4.) The experience must be unique


This might come across as wildly conceited, but I don't want to build yet another clone of a service that already exists. I mean no disrespect towards the people doing that, but I think we've barely managed to scratch the surface of what can be built. There's a certain appeal in imitating existing familiar designs and paradigms, and iterating on them to be better.

What I want to do is develop new concepts that aren't quite like anything else. Sure, there may be a passing resemblance to half a dozen different things, but I want to develop something bold. I'm tired of describing the Fediverse as "the alternative" and want so badly to instead describe it as "the future", but we have to take much bigger risks to get there.

Implementation Details


Here are some of the pipe-dream ideas I've been refining over the years. There are probably a lot of aspects that still need key considerations, some of which is still above my ability to program! I'm currently going to school for Computer Science, and practicing to make my coding skills more capable of tackling these big ideas.

Composable Interfaces


This is probably the biggest idea behind Postmodern, the platform I hope to one day abuild. What are Composable Interfaces? To keep it simple: composable interfaces are a way to construct a custom frontend with whatever data is available.

Composable interfaces are not necessarily new; prior art exists in the following Fediverse projects:

  • Hubzilla - You can write pages, a custom theme, and widgets using an elaborate template system. You have to write it yourself by hand, there's not really a way to preview these changes, and some of the more high-level customization has to be done by making calls to pieces of code that aren't super well-documented.
  • Bonfire - Customization is largely accomplished through modules, which can be bundled together into a sort of unique software distribution. So, you can choose to add a group forum module, a wiki module, and a video module, and Bonfire will snap those pieces together for you. Super interesting, kind of complicated, still yet to be battle-tested for communities.
  • Emissary- Really wild template system built on HTMX and HyperScript. Emissary is really different from other projects because it allows developers to dictate data schemas and actions from within the view template. A lot of contemporary developers might balk at this, because it kind of violates the MVC design pattern. However, Emissary is crazy flexible, and makes it possible for a developer to add support for custom Activity types and actions with a single template.
  • Dokieli - a full-blown decentralized client-side editing tool. It implements ActivityPub, Linked Data, and a swath of other technologies related to Solid. It's extremely powerful, but the interface looks like it has a significant learning curve. It's hard even for me, a Fediverse nerd with 15 years of experience, to fully grok.

Looking at these concepts, I think Emissary and Dokieli come the closest to what I want to build. The ability to build a custom UI with unique capabilities just by dictating what the template is doing is awfully compelling.

My personal head-cannon differs in one specific way: take Dokieli, and marry its capabilities with that of Emissary. Focus on the page-building, widget-building, stream-building elements, and give people the power to delve into a vast pool of social data that they can edit client-side without having to touch any template code themselves.
Don't worry, this ugly thing is just a mockup. There's a lot to figure out.
Instead of taking inspiration from page-building tools like Gutenberg, Elementor, or Wix, my thoughts are to instead take inspiration from layer-based image editors. Each layer in the builder/inspector thing is a component, which can be altered, rearranged, and adjusted in a number of different ways. You can mix and match existing components, or compose your own from scratch by reaching into the pool of data that your account is aware of. It's not unlike the WordPress approach to Blocks in 2025...but, hopefully this approach can be more intuitive.
Again, this is just conceptual. A whole lot of things need refinement.
For this to be viable, a lot of work would need to be done to overcome any potential learning curve. The tools need to be accessible, with the page layout exactly matching what the user sees on the screen.The experience could really suck if it's not implemented carefully. After all, we have to follow the first guiding principle: it has to be fun. Fighting with an editing tool is not that.
I wanted to draw more widget ideas, but I need to finish writing this.
To accomplish this, the most straightforward approach would be to create a core set of widgets with data types and settings, bundled together for different experiences. I'm calling these bundles-of-things complications, which can be thought of as the snapping together of atomic units to make something greater. An experience that has a lot of complications put together would pretty much work as its own frontend made of stylized, curated pieces.

If this sounds way, way complicated: yeah, I know. For a social client frontend, this idea pushes a lot of boundaries. I have some ideas about how to get there (maybe use GraphQL for the builder?), but a lot of it is going to probably diverge from the standard Web application stack. I have a lot of homework to do.

Next-Gen Permissions System


I've written about this a bit before in my last article about moving the Fediverse forward, but we need to get our act together about permissions systems. Mastodon's offering is woefully lacking when it comes to granularity.
Sigh.
ActivityPub has these nifty things called Collections, which is really just a representation of a collection of objects. You can pretty much put any object in there, so in a roundabout way, you can create a scoped list of people you're connected with. Theoretically, you could use collections of people as privacy scopes, dictating who can see certain things, or certain versions of things.



Projects such as Bonfire have taken the logical next step, where it's possible to establish boundaries and barriers for different collections of people, under a variety of conditions. This can apply to everything from individual posts to group communities to whatever else you can come up with.

I think it's absolutely important that we build a system that not only accounts for message delivery and access, but capabilities as well. You the user should be the one that dictates whether people can see a post, boost it, reply to it, whatever. In a decentralized system, this is kind of hard to figure out, but not impossible.

I still hold the belief that Object Capabilities might be our best bet, and Christine Lemmer-Webber published a paper a few months ago detailing what oCap-enabled ActivityPub would look like.m

Data as Documents


Some people will disagree with me here, but I think a document database architecture might be the way to go for this whole thing. A traditional relational database might be too limiting for this kind of insane flexibility, especially when you consider how different platforms try to account for the complex data structures necessary for ActivityPub.

Pleroma, for example, historically used the jsonb data type in PostgreSQL to hold reams and reams of nested JSON data. At a small scale, it's not so bad, but ActivityPub data can grow exponentially when you're interacting with lots of people and content.

For some time now, I've been thinking a lot about Sir Tim Berners-Lee's Solid Project. When first approaching Solid, it seems super abstract and complicated. You get all these people talking about RDF, TripleStores, Quads, WebID, and a lot of other stuff. As someone that has a pretty firm grasp on Fediverse systems, Solid initially caused a vein to bulge in my temple. I went on to explain the semantics here.
A file manager, representing files in a Solid Pod
TL;DR: Solid is kind of a specification for data, data storage, and access. It allows users to store their data in pods, and that data is represented as different kinds of documents and metadata. There is no relational database. Instead, the data in your Solid pod is used as a database itself. If you wanted to migrate all of the posts you've ever made, Solid makes it super easy to pick all that stuff up and move it somewhere else.
An ActivityPods instance. All of these applications access the same pool of data.
ActivityPods manages to marry the two concepts, and does the heavy lifting to translate these documents and data into something ActivityPub implementations can understand, and vice versa. The real magic here is that ActivityPods makes the act of building ActivityPub apps relatively seamless and straightforward. Developers don't have to think about both ActivityPub and Solid. They just need to write an ActivityPub app.
Mastopod, an ActivityPub social app that uses Solid.
I still have some outstanding questions about whether ActivityPods can effectively scale up. The Solid community in general is pretty small, and ActivityPods is an even smaller subset of either Solid or ActivityPub communities. A large-scale community instance with over 100,000 users (who all individually have their own pods) doesn't feel that feasible to me.

Still, I respect everything these guys are doing, and I think about building on top of ActivityPods pretty often.

Relay-Based Supportive Infra


Fediverse instances suffer somewhat from a fragile network. In fact, I would go as far as stating that tethering user accounts to Fediverse instances is an antipattern. We've mistakenly followed this trend for a long time, and put the sum of a user's entire social graph into one server. If that server goes down for good, you're toast.
A Nostr client's network settings, showing many different relays.
Nostr doesn't have this problem, because it doesn't have instances. Instead, user accounts are free-floating, peer-to-peer identities that dispatch posts to individual relays. Instead of individual instances where everybody logs on to post, everything is done through clients. Your identity is basically a public key, tied to a profile and some posts.

What I'm advocating for isn't necessarily the prioritization of one method over the other, but a hybrid approach that includes the best of both. What if Fediverse identities could be free-floating, separate things from instances, that persist even when an instance goes down?

Suppose that the Move activity in ActivityPub was just a method for detaching the identity from one instance, and attaching to another? Or, taking the approach that Hubzilla takes, suppose that you could mirror your identity to multiple instances by attaching your identity to multiple servers? You post in one place, it shows up somewhere else, too.

Another way that relays could be useful is in attacking the notorious Discovery Problem so prevalent in the Fediverse. As Nostr has continued to evolve, different relays have emerged that specialize in specific things:

  • Caching
  • Hosting Media
  • Search
  • Premium Long-Term Storage

Theoretically, it could also be possible for relays to take on the role of Fediverse Discovery Providers. These things could not only act as an index of content and people, but conduits that pull in news, book reviews, events, and maybe even a contact directory. Maybe your instance could just subscribe to relays, rather than trying to broker message dispatching and pulling in new content itself.

A Single-Identity Ecosystem


Finally, we get to what I consider to be the Achilles heel of today's Fediverse. As highlighted in previous sections, I think we do a terrible job of handling identity. In fact, we don't really do any job at all.
Sigh
Part of the problem here is that every Fediverse server in the network is a full-blown platform, rather than a client. The decision of the Mastodon project was to forgo the Client-To-Server part of the ActivityPub spec, instead opting for a bespoke API of its own. Mastodon's API grew so popular that many other Fediverse platforms adopted it, just to have access to a vast amount of compatible apps.

The primary side effect of every Fediverse server being a platform instead of a client is that every platform needs its own account to be used. This quickly leads to a nightmare scenario where it's possible to have 15 different accounts floating around that don't actually connect to each other in any meaningful way.
Reimagining various platforms as client frontends instead, using the same profile.
Granted, the Client-To-Server API has its fair share of complaints. It's under-documented, clients are expected to handle all logic on the client side, and seemingly nobody uses it anyway. However...it still exists, can be improved upon, and could be used in conjunction with ActivityPods.

I'm greatly interested in the prospect of building ActivityPods apps that work with Postmodern, where you're really just viewing different crafted experiences in specific clients.

In Conclusion


Congratulations on getting to the end of my big, weird rant about how I'd do things. Some of these ideas remain unproven, and may not actually be the solutions I end up going with. Still, much of this exists as the byproduct of lessons learned from observing different Fediverse platforms evolve over time. I hope to start by building small prototypes to test out various ideas.

Some of this (all of it?) might be super convoluted and complicated. The biggest thing I want to focus on, however, is the experience of building composable interfaces. I think this idea really has legs, and could potentially be a radically different approach to building for the Social Web.

If you have any insights, ideas, suggestions, or critiques, please feel free to reach out! This article was, believe it or not, something of a shortlist. There's a lot of things I didn't discuss (Bluesky-styled labelers, custom feeds, etc) that still belong in this vision somewhere. For now, these are simply the topics most resonant to me, that I wanted to pay special attention to.


in reply to Sean Tilley

critique on UX shortcomings, and highlighting how different efforts could solve various problems


Which are solvable by creating a customized SNS frontend.

Lemmy is a community first centric ActivityPub network, thus most frontend tailor UX for community engagement, and not SNS.

Similarly Peertube is for videos, thus the UX will tailor for videos centric experiences.

What you detailed was a SNS tailored UX, not a community or video one.

This entry was edited (1 month ago)

Fake Ghetto Girl Jasmine Crockett Comes in Last

Pretending to be a ghetto girl isn’t working as well as Jasmine Crockett thought it would. Lacking total self-awareness, she put in her bid to become the Ranking member of House Oversight Committee and came in last. Crockett is actually a privileged private school graduate.

Iran Shows Us Why The US And Israel Should Not Be Allowed To Have Nukes thealtworld.substack.com/p/ira…
in reply to FundMECFS

Technically Schyzerdütsch is High German (you could even say it's the Highest German, considering elevation), while what most Germans call 'Hochdeutsch' is actually standard german (which, to be fair, is mostly derived from High and Middle German dialects, as opposed to Low German (and Middle German is much more similar to High German than to Low German)).
This entry was edited (1 month ago)

Seven Israeli Soldiers Killed in Khan Yunis Ambush: All the Details #Palestine palestinechronicle.com/seven-i…

Podcast: Reacting to Zohran Mamdani's primary victory, Peter Feld says, "It's proven that Zionism is a paper tiger in Democratic politics and that the emperor has no clothes."

mondoweiss.net/2025/06/breakin…

#Palestine #Israel #ZohranMamdani #USpol
@palestine @israel

thegatewaypundit.com/2025/06/d…

She said " we will continue to take any possibility of foreign interference extremely seriously"
This IS foreign interference
"What we are very proud of now is the young generation like Prime Minister Trudeau, the president of Argentina and so on, we penetrate the cabinets… I know that least half Trudeau’s cabinet or even more than half of his cabinet are actually from our young global leaders of the World Economic Forum" Klaus Schwab
youtu.be/bvCE3fAqUNQ?si=u9Za1C…

[Solved] "[OK] Reached target Graphical Interface" after login before getting booted back to the login screen


Hey all, semi-novice Linux user here.

I'm running EndeavourOS with KDE on a Lenovo with an Intel CPU and integrated GPU.

I was attempting to update my system today but kept getting the error referenced in this newsletter that I found after looking for the error online. I ran each command in the newsletter exactly as written and then rebooted my system.

After rebooting, I'm able to successfully get to the login screen and input my username/password but, instead of my desktop, logging in takes me to a command interface for about a second before reverting to the same login screen. The line in the title is the last entry shown in that command interface.

I've looked online for solutions but it doesn't seem like anyone with my same error is getting stuck on the login screen (most people seem to be stuck on Grub and are able to use e, ctrl+alt-F2, etc) and I'm just sorta lost on what to do at this point.

Any help is appreciated. Thanks!

Edit: Thank you to MyNameIsRichard for your help. It turns out that I needed to install plasma-x11-session as I am still an x11 user and a recent update made it necessary to install this package manually.

This entry was edited (1 month ago)

QEMU: Define policy forbidding use of AI code generators

Link: github.com/qemu/qemu/commit/3d…
Discussion: news.ycombinator.com/item?id=4…

And why self-determination for African and Indigenous people is the climate solution

Welcome to this livestream hosted by the African People's Solidarity Committee looking at the root causes of climate change and how you can be part of the solution under the leadership of the African liberation movement.
youtube.com/watch?v=Go_ac9P3al…

NSFW 18+

Sensitive content

Sanaa sends fiery message to Washington regarding ceasefire deal en.ypagency.net/360824

I saw a guy carrying a stack of board games in my neighborhood today


He must have been going to a party, he had catan, he had uno, and he had Scrabble way up at the top. His stack wasn't balanced very well though, and Scrabble fell, the box burst open, spilling tiles everywhere.

So I went up to him and asked, "what's the word on the street?"

This entry was edited (1 month ago)

Gaza Resistance op. sets APC ablaze, kills 7 soldiers inside english.almayadeen.net/news/po…

JWST has detected a potential Saturn-mass planet, TWA 7b, orbiting the young star TWA 7.

This discovery marks the first time a planet has been directly associated with sculpting a debris disc and could offer the first observational hint of a trojan disc.

The findings highlight Webb's ability to explore previously unseen, low-mass planets around nearby stars and open a new frontier for exoplanet discovery and characterization.

esawebb.org/news/weic2512/

#space

Unknown parent

kmyblue - Link to source

monarchist

Of course it's me. I wanted to try out a new instance since the Fediverse is so different depending which instance you're using. I intended this to link to Amerika.org but apparently never did that in the profile, although I post Amerika content daily.

How you fellows been?

XPipe - A connection hub for all your servers: Status update for the v16 release


Today I can share a major development status update of XPipe, a connection hub that allows you to access your entire server infrastructure from your local desktop. It can make your life easier when working with any kind of servers by eliminating all the commonly tedious tasks that come up when interacting with remote systems, either from the terminal or from a graphical interface. XPipe comes with integrations for SSH, docker and other containers, various hypervisors, and more without requiring setup on your remote systems. You can also keep using your favourite text/code editors, terminals, password managers, shells, command-line tools, and more with it.

Hub

Docker compose


This release introduces support for docker compose. Containers in compose projects are grouped together and can be managed all at the same time via compose project entries.

The container state information shown is also improved, always showing the container state in combination with the system information.

Compose

Batch mode


There is now a batch mode available that allows you to select multiple systems via checkboxes and perform actions for the entire batch. This can include starting/stopping, automatically adding available subconnections, or running scripts on all selected systems.

You can toggle the batch mode in the top left corner.

Batch

Password managers


The password manager integrations have been upgraded:
- There is now support for KeePassXC
- All password manager integrations have been reworked to work out of the box without configuration
- There is now support to use password manager SSH agents more easily
- You can now unlock the xpipe vault with your password manager

Password Manager

SSH


Various improvements were made to the SSH implementation:
- The SSH gateway implementation has been reworked so that you can now use local SSH keys and other identities for connections with gateways
- The VSCode SSH remote integration has been reworked to allow more connections it to be opened in vscode. It now supports essentially all simple SSH connections, custom SSH connections, SSH config connections, and VM SSH connections. This support includes gateways
- There is now built-in support to refresh an SSO openpubkey with the opkssh tool when needed
- There is now the option to enable verbose ssh output to diagnose connection issues better
- For VMs, you can now choose to not use the hypervisor host as SSH gateway and instead directly connect to the VM IP

Other


  • Connection names, e.g. VM names, will now automatically update on refresh when they were changed
  • You can now launch custom scripts within XPipe with a command output dialog window without having to open a terminal
  • Various installation types like the linux apt/rpm repository and homebrew installations now support automatic updates as well
  • The k8s integration will now automatically add all namespaces for the current context when searching for connections
  • The application window will now hide any unnecessary sidebars when being resized to a small width. This makes it much easier to use XPipe in a tiling window arrangement
  • The webtop has been updated to have terminal multiplexers, proper konsole tab support, disabled kwallet, and more
  • Various error messages and connection creation dialogs now contain a help link to the documentation sections


A note on the open-source model


Since it has come up a few times, in addition to the note in the git repository, I would like to clarify that XPipe is not fully FOSS software. The core that you can find on GitHub is Apache 2.0 licensed, but the distribution you download ships with closed-source extensions. There's also a licensing system in place with limitations on what kind of systems you can connect to in the community edition as I am trying to make a living out of this. I understand that this is a deal-breaker for some, so I wanted to give a heads-up.

Outlook


If this project sounds interesting to you, you can check it out on GitHub, visit the Website, or check out the Docs for more information.

Enjoy!

in reply to crschnick

Are there any plans to make a Flatpak version of this? I've moved to an immutable OS and none of the options you have will install. Flatpaks are their preferred method. I know I could self host my own version which may be what I may end up doing anyway, but I'd prefer to have it more local yet another docker container. 😀

Edit: I just went with the Appimage which works.

This entry was edited (1 month ago)

US has limited info about Iranian society — First Defense Deputy Chair Chizhov odysee.com/Chizhov-June-25-202…