easily-hostable-protocols-over-applications.html (5802B)
1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> 3 <head> 4 <meta charset="utf-8" /> 5 <meta name="generator" content="pandoc" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> 7 <title>easily-hostable-protocols-over-applications</title> 8 <style> 9 code{white-space: pre-wrap;} 10 span.smallcaps{font-variant: small-caps;} 11 div.columns{display: flex; gap: min(4vw, 1.5em);} 12 div.column{flex: auto; overflow-x: auto;} 13 div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} 14 /* The extra [class] is a hack that increases specificity enough to 15 override a similar rule in reveal.js */ 16 ul.task-list[class]{list-style: none;} 17 ul.task-list li input[type="checkbox"] { 18 font-size: inherit; 19 width: 0.8em; 20 margin: 0 0.8em 0.2em -1.6em; 21 vertical-align: middle; 22 } 23 .display.math{display: block; text-align: center; margin: 0.5rem auto;} 24 </style> 25 <link rel="stylesheet" href="style.css" /> 26 </head> 27 <body> 28 <h1 id="easily-hostable-protocols-over-applications">Easily Hostable Protocols Over Applications</h1> 29 <h2 id="date-20260425">Date: 2026/04/25</h2> 30 <p>Motivated by Joshua Blais’ blog post about using the internet like it’s 1999 [1] I wanted to discuss an application and a protocol with characteristics that make them bad from a user freedom perspective. I also want to discuss solutions.</p> 31 <h2 id="zulip">Zulip</h2> 32 <p>Zulip [2] is an instant messaging program that looks like a bastion of freedom. I thought it was because it is free software which ought to be the epitome of user freedom, but it is not that simple. Free software is necessary but not sufficient for appropriate user freedom.</p> 33 <p>Try to find a third party Zulip client for GNU/Linux. You will not. This frequently happens when you use applications and not protocols. Let’s consider three alternative protocols that facilitate instant messaging:</p> 34 <ol type="1"> 35 <li>IRC</li> 36 <li>XMPP</li> 37 <li>Matrix</li> 38 </ol> 39 <p>Look for third party clients for any of these and they will abound. These protocols were sensibly designed to give users the freedom to decide how they interact with their data and the data others show them.</p> 40 <p>Nothing is stopping you from creating a third-party client for Zulip. The problem is applications aren’t designed with this in mind, but protocols are. The main reason applications generally have so few clients is they frequently change their interfaces in breaking ways. Quality protocols are designed from the ground up to ensure consistent interfaces, often with backwards compatibility in mind.</p> 41 <h2 id="at-protocol">AT Protocol</h2> 42 <p>The AT Protocol [3] is used by the social network Bluesky. This is a common way people introduce the protocol, and it should give you pause that a protocol is frequently associated with a singular company and social network.</p> 43 <p>Choices in the design of the AT Protocol have led to it being too costly for individuals to run full-fledged servers (see [4] for details). This results in most AT Protocol users being entirely dependent on the Bluesky organization [5] (this link is worth following). Having a strong reliance on a VC backed social media company [6] is a good way to become the product when investors demand returns. This also limits freedom by having a centralized authority with the ability to censor speech [7].</p> 44 <p>An alternative to the AT Protocol is ActivityPub. Mastodon [8] uses ActivityPub to facilitate microblogging, and the software can be hosted on cheap hardware without a reliance on a third-party. Proponents of the AT Protocol may claim the two perform different functions, and I agree, but the centralized feed functionality the AT Protocol can provide but ActivityPub can’t is something I consider to be deeply problematic from a human psychology perspective. As such, while ActivityPub can’t directly replace “your” BlueSky feed, it will give you a healthier microblogging experience. With that said, I think the case for microblogging is lacking, and individuals should consider if microblogs, both their own and those of others, are worthwhile (my answer is emphatically no).</p> 45 <h2 id="proposition">Proposition</h2> 46 <p>Host your own services for the dissemination of information, ensuring the services you host implement protocols designed for the type of information you are disseminating.</p> 47 <p>I use Git (not GitHub) for software distribution, RSS, Gemini [9], and HTTP for broadcasted textual information, email for bidirectional individual or small group communication, and XMPP or IRC for larger group communication. These are the protocols built for these use cases, and they should be used as such.</p> 48 <h2 id="citations">Citations</h2> 49 <p>[1] - <a href="https://joshblais.com/blog/using-the-internet-like-its-1999/">https://joshblais.com/blog/using-the-internet-like-its-1999/</a></p> 50 <p>[2] - <a href="https://zulip.com">https://zulip.com</a></p> 51 <p>[3] - <a href="https://en.wikipedia.org/wiki/AT_Protocol">https://en.wikipedia.org/wiki/AT_Protocol</a></p> 52 <p>[4] - <a href="https://dustycloud.org/blog/how-decentralized-is-bluesky/">https://dustycloud.org/blog/how-decentralized-is-bluesky/</a></p> 53 <p>[5] - <a href="https://arewedecentralizedyet.online/">https://arewedecentralizedyet.online/</a></p> 54 <p>[6] - <a href="https://bsky.social/about/blog/03-19-2026-series-b">https://bsky.social/about/blog/03-19-2026-series-b</a></p> 55 <p>[7] - <a href="https://bsky.social/about/support/community-guidelines">https://bsky.social/about/support/community-guidelines</a></p> 56 <p>[8] - <a href="https://joinmastodon.org/">https://joinmastodon.org/</a></p> 57 <p>[9] - <a href="http://geminiprotocol.net/">http://geminiprotocol.net/</a></p> 58 </body> 59 </html>