blog

Personal blog
git clone git://git.laack.co/blog.git
Log | Files | Refs

commit bc116080f20ad3646ca0874facc1322fa2d11a59
parent 0a053032ee2f74773cf8c18420846ee60a99b5cd
Author: Andrew Laack <andrew@laack.co>
Date:   Sun, 26 Apr 2026 13:56:15 -0500

Renamed

Diffstat:
Aposts/wip/easily-hostable-protocols-over-applications.md | 46++++++++++++++++++++++++++++++++++++++++++++++
Dposts/wip/protocols-over-applications.md | 46----------------------------------------------
2 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/posts/wip/easily-hostable-protocols-over-applications.md b/posts/wip/easily-hostable-protocols-over-applications.md @@ -0,0 +1,46 @@ +# Easily Hostable Protocols Over Applications + +## Date: 2026/04/25 + +Motivated by Joshua Blais' blog post about using the internet like it's 1999 [1] I wanted to discuss an application and protocol with characteristics that make them bad from a user freedom perspective. I also want to discuss solutions. + +## Zulip + +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. + +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: + +1. IRC +2. XMPP +3. Matrix + +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. + +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. + +## AT Protocol + +The AT Protocol [4] 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. + +Choices in the design of the AT Protocol have led to it being too costly for individuals to run full-fledged servers (see [5] for details). This results in most AT Protocol users being entirely dependent on the Bluesky organization [6] (this link is worth following). Having a strong reliance on a VC backed social media company [7] 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 [8]. + +The alternative to the AT Protocol is ActivityPub. Mastodon [9] uses ActivityPub to facilitate microblogging, and the software can be hosted on cheap hardware without a reliance on a third-party. + +## Proposition + +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. + +I use RSS, Gemini [10], 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. + +## Citations + +[1] - [https://joshblais.com/blog/using-the-internet-like-its-1999/](https://joshblais.com/blog/using-the-internet-like-its-1999/) +[2] - [https://zulip.com](https://zulip.com) +[3] - [https://github.com/skyjake/lagrange](https://github.com/skyjake/lagrange) +[4] - [https://en.wikipedia.org/wiki/AT_Protocol](https://en.wikipedia.org/wiki/AT_Protocol) +[5] - [https://dustycloud.org/blog/how-decentralized-is-bluesky/](https://dustycloud.org/blog/how-decentralized-is-bluesky/) +[6] - [https://arewedecentralizedyet.online/](https://arewedecentralizedyet.online/) +[7] - [https://bsky.social/about/blog/03-19-2026-series-b](https://bsky.social/about/blog/03-19-2026-series-b) +[8] - [https://bsky.social/about/support/community-guidelines](https://bsky.social/about/support/community-guidelines) +[9] - [https://joinmastodon.org/](https://joinmastodon.org/) +[10] - [http://geminiprotocol.net/](http://geminiprotocol.net/) diff --git a/posts/wip/protocols-over-applications.md b/posts/wip/protocols-over-applications.md @@ -1,46 +0,0 @@ -# Reasonably Hostable Protocols Over Applications - -## Date: 2026/04/25 - -Motivated by Joshua Blais' blog post about using the internet like it's 1999 [1] I wanted to discuss an application and protocol with characteristics that make them bad from a user freedom perspective. I also want to discuss solutions. - -## Zulip - -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. - -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: - -1. IRC -2. XMPP -3. Matrix - -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. - -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. - -## AT Protocol - -The AT Protocol [4] 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. - -Choices in the design of the AT Protocol have led to it being too costly for individuals to run full-fledged servers (see [5] for details). This results in most AT Protocol users being entirely dependent on the Bluesky organization [6] (this link is worth following). Having a strong reliance on a VC backed social media company [7] 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 [8]. - -The alternative to the AT Protocol is ActivityPub. Mastodon [9] uses ActivityPub to facilitate microblogging, and the software can be hosted on cheap hardware without a reliance on a third-party. - -## Proposition - -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. - -I use RSS, Gemini [10], 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. - -## Citations - -[1] - [https://joshblais.com/blog/using-the-internet-like-its-1999/](https://joshblais.com/blog/using-the-internet-like-its-1999/) -[2] - [https://zulip.com](https://zulip.com) -[3] - [https://github.com/skyjake/lagrange](https://github.com/skyjake/lagrange) -[4] - [https://en.wikipedia.org/wiki/AT_Protocol](https://en.wikipedia.org/wiki/AT_Protocol) -[5] - [https://dustycloud.org/blog/how-decentralized-is-bluesky/](https://dustycloud.org/blog/how-decentralized-is-bluesky/) -[6] - [https://arewedecentralizedyet.online/](https://arewedecentralizedyet.online/) -[7] - [https://bsky.social/about/blog/03-19-2026-series-b](https://bsky.social/about/blog/03-19-2026-series-b) -[8] - [https://bsky.social/about/support/community-guidelines](https://bsky.social/about/support/community-guidelines) -[9] - [https://joinmastodon.org/](https://joinmastodon.org/) -[10] - [http://geminiprotocol.net/](http://geminiprotocol.net/)