<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: fediverse</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/fediverse.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2024-06-04T06:14:37+00:00</updated><author><name>Simon Willison</name></author><entry><title>How do I opt into full text search on Mastodon?</title><link href="https://simonwillison.net/2024/Jun/4/how-do-i-opt-into-full-text-search-on-mastodon/#atom-tag" rel="alternate"/><published>2024-06-04T06:14:37+00:00</published><updated>2024-06-04T06:14:37+00:00</updated><id>https://simonwillison.net/2024/Jun/4/how-do-i-opt-into-full-text-search-on-mastodon/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://fedi.tips/how-do-i-opt-into-or-out-of-full-text-search-on-mastodon/"&gt;How do I opt into full text search on Mastodon?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I missed this new Mastodon feature when it was released &lt;a href="https://blog.joinmastodon.org/2023/09/mastodon-4.2/"&gt;in 4.2.0 last September&lt;/a&gt;: you can now opt-in to a new setting which causes all of your future posts to be marked as allowed to be included in the Elasticsearch index provided by Mastodon instances that enable search.&lt;/p&gt;
&lt;p&gt;It only applies to future posts because it works by adding an "indexable" flag to those posts, which can then be obeyed by other Mastodon instances that the post is syndicated to.&lt;/p&gt;
&lt;p&gt;You can turn it on for your own account from the &lt;code&gt;/settings/privacy&lt;/code&gt; page on your local instance.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/mastodon/mastodon/releases/tag/v4.2.0"&gt;release notes for 4.2.0&lt;/a&gt; also mention new search operators:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;from:me&lt;/code&gt;, &lt;code&gt;before:2022-11-01&lt;/code&gt;, &lt;code&gt;after:2022-11-01&lt;/code&gt;, &lt;code&gt;during:2022-11-01&lt;/code&gt;, &lt;code&gt;language:fr&lt;/code&gt;, &lt;code&gt;has:poll&lt;/code&gt;,  or &lt;code&gt;in:library&lt;/code&gt; (for searching only in posts you have written or interacted with)&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://front-end.social/@robinwhittleton/112556840499268599"&gt;@robinwhittleton&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;



</summary><category term="search"/><category term="mastodon"/><category term="fediverse"/></entry><entry><title>Threads has entered the fediverse</title><link href="https://simonwillison.net/2024/Mar/22/threads-has-entered-the-fediverse/#atom-tag" rel="alternate"/><published>2024-03-22T20:15:20+00:00</published><updated>2024-03-22T20:15:20+00:00</updated><id>https://simonwillison.net/2024/Mar/22/threads-has-entered-the-fediverse/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://engineering.fb.com/2024/03/21/networking-traffic/threads-has-entered-the-fediverse/"&gt;Threads has entered the fediverse&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Threads users with public profiles in certain countries can now turn on a setting which makes their posts available in the fediverse—so users of ActivityPub systems such as Mastodon can follow their accounts to subscribe to their posts.&lt;/p&gt;

&lt;p&gt;It’s only a partial integration at the moment: Threads users can’t themselves follow accounts from other providers yet, and their notifications will show them likes but not boosts or replies: “For now, people who want to see replies on their posts on other fediverse servers will have to visit those servers directly.”&lt;/p&gt;

&lt;p&gt;Depending on how you count, Mastodon has around 9m user accounts of which 1m are active. Threads claims more than 130m active monthly users. The Threads team are developing these features cautiously which is reassuring to see—a clumsy or thoughtless integration could cause all sorts of damage just from the sheer scale of their service.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://anderegg.ca/2024/03/22/poking-at-threads-in-the-fediverse"&gt;Gavin Anderegg&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/facebook"&gt;facebook&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/threads"&gt;threads&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/activitypub"&gt;activitypub&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;



</summary><category term="facebook"/><category term="threads"/><category term="mastodon"/><category term="activitypub"/><category term="fediverse"/></entry><entry><title>Phanpy</title><link href="https://simonwillison.net/2024/Mar/16/phanpy/#atom-tag" rel="alternate"/><published>2024-03-16T01:34:04+00:00</published><updated>2024-03-16T01:34:04+00:00</updated><id>https://simonwillison.net/2024/Mar/16/phanpy/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://phanpy.social/"&gt;Phanpy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Phanpy is "a minimalistic opinionated Mastodon web client" &lt;a href="https://github.com/cheeaun/phanpy"&gt;by Chee Aun&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I think that description undersells it. It's beautifully crafted and designed and has a ton of innovative ideas - they way it displays threads and replies, the "Catch-up" beta feature, it's all a really thoughtful and fresh perspective on how Mastodon can work.&lt;/p&gt;
&lt;p&gt;I love that all Mastodon servers (including my own dedicated instance) offer a CORS-enabled JSON API which directly supports building these kinds of alternative clients.&lt;/p&gt;
&lt;p&gt;Building a full-featured client like this one is a huge amount of work, but building a much simpler client that just displays the user's incoming timeline could be a pretty great educational project for people who are looking to deepen their front-end development skills.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cors"&gt;cors&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="mastodon"/><category term="fediverse"/><category term="cors"/></entry><entry><title>Where is all of the fediverse?</title><link href="https://simonwillison.net/2024/Jan/12/where-is-all-of-the-fediverse/#atom-tag" rel="alternate"/><published>2024-01-12T18:54:15+00:00</published><updated>2024-01-12T18:54:15+00:00</updated><id>https://simonwillison.net/2024/Jan/12/where-is-all-of-the-fediverse/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.benjojo.co.uk/post/who-hosts-the-fediverse-instances"&gt;Where is all of the fediverse?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Neat piece of independent research by Ben Cox, who used the /api/v1/instance/peers Mastodon API endpoint to get a list of “peers” (instances his instance knows about), then used their DNS records to figure out which hosting provider they were running on.&lt;/p&gt;

&lt;p&gt;Next Ben combined that with active users from the /nodeinfo/2.0 API on each instance to figure out the number of users on each of those major hosting providers.&lt;/p&gt;

&lt;p&gt;Cloudflare and Fastly were heavily represented, but it turns out you can unveil the underlying IP for most instances by triggering an HTTP Signature exchange with them and logging the result.&lt;/p&gt;

&lt;p&gt;Ben’s conclusion: Hertzner and OVH are responsible for hosting a sizable portion of the fediverse as it exists today.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://lobste.rs/s/kzl90v/where_is_all_fediverse"&gt;lobste.rs&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dns"&gt;dns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;



</summary><category term="dns"/><category term="hosting"/><category term="mastodon"/><category term="fediverse"/></entry><entry><title>Quoting Mike McCue</title><link href="https://simonwillison.net/2023/Dec/18/mike-mccue/#atom-tag" rel="alternate"/><published>2023-12-18T18:45:49+00:00</published><updated>2023-12-18T18:45:49+00:00</updated><id>https://simonwillison.net/2023/Dec/18/mike-mccue/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://www.theverge.com/2023/12/18/24006062/flipboard-fediverse-mastodon-activitypub-profiles-social"&gt;&lt;p&gt;Basically, we’re in the process of replacing our whole social back-end with ActivityPub. I think Flipboard is going to be the first mainstream consumer service that existed in a walled garden that switches over to ActivityPub.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://www.theverge.com/2023/12/18/24006062/flipboard-fediverse-mastodon-activitypub-profiles-social"&gt;Mike McCue&lt;/a&gt;, CEO of Flipboard&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/activitypub"&gt;activitypub&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;



</summary><category term="mastodon"/><category term="activitypub"/><category term="fediverse"/></entry><entry><title>Meta/Threads Interoperating in the Fediverse Data Dialogue Meeting yesterday</title><link href="https://simonwillison.net/2023/Dec/12/metathreads/#atom-tag" rel="alternate"/><published>2023-12-12T01:05:32+00:00</published><updated>2023-12-12T01:05:32+00:00</updated><id>https://simonwillison.net/2023/Dec/12/metathreads/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://reb00ted.org/tech/20231208-meta-threads-data-dialogue/"&gt;Meta/Threads Interoperating in the Fediverse Data Dialogue Meeting yesterday&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Johannes Ernst reports from a recent meeting hosted by Meta aimed at bringing together staff from Meta’s Threads social media platform with representatives from the Fediverse.&lt;/p&gt;

&lt;p&gt;Meta have previously announced an intention for Threads to join the Fediverse. It sounds like they’re being extremely thoughtful about how to go about this.&lt;/p&gt;

&lt;p&gt;Two points that stood out for me:&lt;/p&gt;

&lt;p&gt;“Rolling out a large node – like Threads will be – in a complex, distributed system that’s as decentralized and heterogeneous as the Fediverse is not something anybody really has done before.”&lt;/p&gt;

&lt;p&gt;And:&lt;/p&gt;

&lt;p&gt;“When we think of privacy risks when Meta connects to the Fediverse, we usually think of what happens to data that moves from today’s Fediverse into Meta. I didn’t realize the opposite is also quite a challenge (personal data posted to Threads, making its way into the Fediverse) for an organization as heavily monitored by regulators around the world as is Meta.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/facebook"&gt;facebook&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/social-media"&gt;social-media&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/meta"&gt;meta&lt;/a&gt;&lt;/p&gt;



</summary><category term="facebook"/><category term="social-media"/><category term="mastodon"/><category term="fediverse"/><category term="meta"/></entry><entry><title>Guppe Groups</title><link href="https://simonwillison.net/2023/Jan/26/guppe-groups/#atom-tag" rel="alternate"/><published>2023-01-26T19:45:51+00:00</published><updated>2023-01-26T19:45:51+00:00</updated><id>https://simonwillison.net/2023/Jan/26/guppe-groups/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://a.gup.pe/"&gt;Guppe Groups&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
This is a really neat mechanism for helping build topic-oriented communities on Mastodon: follow @any-group-name@a.gup.pe to join (or create) a group, then that account will re-broadcast any messages from people in that group who mention the group in their message.&lt;/p&gt;

&lt;p&gt;I found it via the histodons group. I was pondering how something like this might work this recently, so it’s great to see someone has built it already.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;



</summary><category term="mastodon"/><category term="fediverse"/></entry><entry><title>Jortage Communal Cloud</title><link href="https://simonwillison.net/2023/Jan/24/jortage-communal-cloud/#atom-tag" rel="alternate"/><published>2023-01-24T23:23:04+00:00</published><updated>2023-01-24T23:23:04+00:00</updated><id>https://simonwillison.net/2023/Jan/24/jortage-communal-cloud/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://jortage.com/"&gt;Jortage Communal Cloud&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
An interesting pattern that’s emerging in the Mastodon / Fediverse community: Jortage is “a communal project providing object storage and hosting”. Each Mastodon server needs to host copies of files—not just for their users, but files that have been imported into the instance because they were posted by other people followed by that instance’s users. Jortage lets multiple instances share the same objects, reducing costs and making things more efficient. I like the idea that multiple projects like this can co-exist, improving the efficiency of the overall network without introducing single centralized services.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;



</summary><category term="mastodon"/><category term="fediverse"/></entry><entry><title>Mastodon is just blogs</title><link href="https://simonwillison.net/2022/Nov/8/mastodon-is-just-blogs/#atom-tag" rel="alternate"/><published>2022-11-08T15:48:17+00:00</published><updated>2022-11-08T15:48:17+00:00</updated><id>https://simonwillison.net/2022/Nov/8/mastodon-is-just-blogs/#atom-tag</id><summary type="html">
    &lt;p&gt;And that's &lt;em&gt;great&lt;/em&gt;. It's also the return of Google Reader!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://simonwillison.net/2022/Nov/5/mastodon/"&gt;Mastodon&lt;/a&gt; is really confusing for newcomers. There are &lt;a href="https://mastodon.social/@Ciaraioch@mastodon.ie/109287818914999148"&gt;memes about it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you're an internet user of a certain age, you may find an analogy that's been working for me really useful:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mastodon is just blogs&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Every Mastodon account is a little blog. Mine is at &lt;a href="https://fedi.simonwillison.net/@simon"&gt;https://fedi.simonwillison.net/@simon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can post text and images to it. You can link to things. It's a blog.&lt;/p&gt;
&lt;p&gt;You can also subscribe to other people's blogs - either by "following" them (a subscribe in disguise) or - fun trick - you can add &lt;code&gt;.rss&lt;/code&gt; to their page and subscribe in a regular news reader (&lt;a href="https://fedi.simonwillison.net/@simon.rss"&gt;here's my feed&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;A Mastodon server (often called an instance) is just a shared blog host. Kind of like putting your personal blog in a folder on a domain on shared hosting with some of your friends.&lt;/p&gt;
&lt;p&gt;Want to go it alone? You can do that: run your own dedicated Mastodon instance on your own domain (or pay someone to do that for you - I'm using &lt;a href="https://masto.host/"&gt;masto.host&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Feeling really nerdy? You can build your own instance from scratch, by implementing the &lt;a href="https://www.w3.org/TR/activitypub/"&gt;ActivityPub&lt;/a&gt; specification and a few others, plus matching &lt;a href="https://docs.joinmastodon.org/spec/activitypub/"&gt;some Mastodon conventions&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;Differences from regular blogs&lt;/h4&gt;
&lt;p&gt;Mastodon (actually mostly &lt;a href="https://www.w3.org/TR/activitypub/"&gt;ActivityPub&lt;/a&gt; - Mastodon is just the most popular open source implementation) does add some extra features that you won't get with a regular blog:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Follows: you can follow other blogs, and see who you are following and who is following you&lt;/li&gt;
&lt;li&gt;Likes: you can like a post - people will see that you liked it&lt;/li&gt;
&lt;li&gt;Retweets: these are called "boosts". They duplicate someone's post on your blog too, promoting it to your followers&lt;/li&gt;
&lt;li&gt;Replies: you can reply to other people's posts with your own&lt;/li&gt;
&lt;li&gt;Privacy levels: you can make a post public, visible only to your followers, or visible only to specific people (effectively a group direct message)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These features are what makes it interesting, and also what makes it significantly more complicated - both to understand and to operate.&lt;/p&gt;
&lt;p&gt;Add all of these features to a blog and you get a blog that's lightly disguised as a Twitter account. It's still a blog though!&lt;/p&gt;
&lt;h4&gt;It doesn't have to be a shared host&lt;/h4&gt;
&lt;p&gt;This shared hosting aspect is the root of many of the common complaints about Mastodon: "The server admins can read your private messages! They can ban you for no reason! They can delete your account! If they lose interest the entire server could go away one day!"&lt;/p&gt;
&lt;p&gt;All of this is true.&lt;/p&gt;
&lt;p&gt;This is why I like the shared blog hosting analogy: the same is true there too.&lt;/p&gt;
&lt;p&gt;In both cases, the ultimate solution is to host it yourself. Mastodon has more moving pieces than a regular static blog, so this is harder - but it's not impossibly hard.&lt;/p&gt;
&lt;p&gt;I'm paying to host my own server for exactly this reason.&lt;/p&gt;
&lt;h4&gt;It's also a shared feed reader&lt;/h4&gt;
&lt;p&gt;This is where things get a little bit more complicated.&lt;/p&gt;
&lt;p&gt;Do you still miss &lt;a href="https://en.wikipedia.org/wiki/Google_Reader"&gt;Google Reader&lt;/a&gt;, almost a decade after it was shut down? &lt;strong&gt;It's back&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;A Mastodon server is a feed reader, shared by everyone who uses that server.&lt;/p&gt;
&lt;p&gt;Users on one server can follow users on any other server - and see their posts in their feed in near-enough real time.&lt;/p&gt;
&lt;p&gt;This works because each Mastodon server implements a flurry of background activity. My personal server, serving &lt;em&gt;just me&lt;/em&gt;, already tells me it has processed 586,934 Sidekiq jobs since I started using it.&lt;/p&gt;
&lt;p&gt;Blogs and feed readers work by polling for changes every few hours. ActivityPub is more ambitious: any time you post something, your server actively sends your new post out to every server that your followers are on.&lt;/p&gt;
&lt;p&gt;Every time someone followed by you (or any other user on your server) posts, your server receives that post, stores a copy and adds it to your feed.&lt;/p&gt;
&lt;p&gt;Servers offer a "federated" timeline. That's effectively a combined feed of all of the public posts from every account on Mastodon that's followed by at least one user on your server.&lt;/p&gt;
&lt;p&gt;It's like you're running a little standalone copy of the Google Reader server application and sharing it with a few dozen/hundred/thousand of your friends.&lt;/p&gt;
&lt;h4&gt;May a thousand servers bloom&lt;/h4&gt;
&lt;p&gt;If you're reading this with a web engineering background, you may be thinking that this sounds pretty alarming! Half a million Sidekiq jobs to support a single user? Huge amounts of webhooks firing every time someone posts?&lt;/p&gt;
&lt;p&gt;Somehow it seems to work. But can it scale?&lt;/p&gt;
&lt;p&gt;The key to scaling Mastodon is spreading the cost of all of that background activity across a large number of servers.&lt;/p&gt;
&lt;p&gt;And unlike something like Twitter, where you need to host all of those yourself, Mastodon scales by encouraging people to run their own servers.&lt;/p&gt;
&lt;p&gt;On November 2nd Mastodon founder Eugen Rochko &lt;a href="https://mastodon.social/@Gargron/109277492892460574"&gt;posted the following&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;199,430 is the number of new users across different Mastodon servers since October 27, along with 437 new servers. This bring last day's total to 608,837 active users, which is without precedent the highest it's ever been for Mastodon and the fediverse.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's 457 new users for each new server.&lt;/p&gt;
&lt;p&gt;Any time anyone builds something decentralized like this, the natural pressure is to centralize it again.&lt;/p&gt;
&lt;p&gt;In Mastodon's case though, decentralization is key to getting it to scale. And the organization behind &lt;a href="https://mastodon.social/"&gt;mastodon.social&lt;/a&gt;, the largest server, is a German non-profit with an incentive to encourage new servers to help spread the load.&lt;/p&gt;
&lt;p&gt;Will it break? I don't think so. Regular blogs never had to worry about scaling, because that's like worrying that the internet will run out of space for new content.&lt;/p&gt;
&lt;p&gt;Mastodon servers are a lot chattier and expensive to run, but they don't need to talk to everything else on the network - they only have to cover the social graph of the people using them.&lt;/p&gt;
&lt;p&gt;It may prove unsustainable to run a single Mastodon server with a million users - but if you split that up into ten servers covering 100,000 users each I feel like it should probably work.&lt;/p&gt;
&lt;p&gt;Running on multiple, independently governed servers is also Mastodon's answer to the incredibly hard problem of scaling moderation. There's a lot more to be said about this and I'm not going to try and do it justice here, but I recommend reading &lt;a href="https://time.com/6229230/mastodon-eugen-rochko-interview/"&gt;this Time interview with Mastodon founder Eugen&lt;/a&gt; for a good introduction.&lt;/p&gt;
&lt;h4&gt;How does this all get paid for?&lt;/h4&gt;
&lt;p&gt;One of the really refreshing things about Mastodon is the business model. There are no ads. There's no VC investment, burning early money to grow market share for later.&lt;/p&gt;
&lt;p&gt;There are just servers, and people paying to run them and volunteering their time to maintain them.&lt;/p&gt;
&lt;p&gt;Elon did us all a favour here by setting $8/month as the intended price for Twitter Blue. That's now my benchmark for how much I should be contributing to my Mastodon server. If everyone who can afford to do so does that, I think we'll be OK.&lt;/p&gt;
&lt;p&gt;And it's very clear what you're getting for the money. How much each server costs to run can be a matter of public record.&lt;/p&gt;
&lt;p&gt;The oldest cliche about online business models is "if you're not paying for the product, you are the product being sold".&lt;/p&gt;
&lt;p&gt;Mastodon is our chance to show that we've learned that lesson and we're finally ready to pay up!&lt;/p&gt;
&lt;h4&gt;Is it actually going to work?&lt;/h4&gt;
&lt;p&gt;Mastodon has been around for six years now - and the various standards it is built on have been in development I believe since 2008.&lt;/p&gt;
&lt;p&gt;A whole generation of early adopters have been kicking the tyres on this thing for years. It is not a new, untested piece of software. A lot of smart people have put a lot of work into this for a long time.&lt;/p&gt;
&lt;p&gt;No-one could have predicted that Elon would drive it into hockeystick growth mode in under a week. Despite the fact that it's run by volunteers with no profit motive anywhere to be found, it's holding together impressively well.&lt;/p&gt;
&lt;p&gt;My hunch is that this is going to work out just fine.&lt;/p&gt;
&lt;h4&gt;Don't judge a website by its mobile app&lt;/h4&gt;
&lt;p&gt;Just like blogs, Mastodon is very much a creature of the Web.&lt;/p&gt;
&lt;p&gt;There's an official Mastodon app, and it's decent, but it suffers the classic problem of so many mobile apps in that it doesn't quite keep up with the web version in terms of features.&lt;/p&gt;
&lt;p&gt;More importantly, its onboarding process for creating a new account is pretty confusing!&lt;/p&gt;
&lt;p&gt;I'm seeing a lot of people get frustrated and write-off Mastodon as completely impenetrable. I have a hunch that many of these are people who's only experience has come from downloading the official app.&lt;/p&gt;
&lt;p&gt;So don't judge a federated web ecosystem exclusively by its mobile app! If you begin your initial Mastodon exploration on a regular computer you may find it easier to get started.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://joinmastodon.org/apps"&gt;Other apps exist&lt;/a&gt; - in fact the official app is a relatively recent addition to the scene, just over a year old. I'm personally a fan of &lt;a href="https://apps.apple.com/app/toot/id1229021451?ls=1"&gt;Toot!&lt;/a&gt; for iOS, which includes some delightful elephant animations.&lt;/p&gt;
&lt;h4&gt;The expanded analogy&lt;/h4&gt;
&lt;p&gt;Here's my expanded version of that initial analogy:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mastodon is just blogs and Google Reader, skinned to look like Twitter&lt;/strong&gt;.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/blogging"&gt;blogging&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google-reader"&gt;google-reader&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/twitter"&gt;twitter&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/activitypub"&gt;activitypub&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sidekiq"&gt;sidekiq&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="blogging"/><category term="google-reader"/><category term="twitter"/><category term="mastodon"/><category term="activitypub"/><category term="fediverse"/><category term="sidekiq"/></entry><entry><title>It looks like I'm moving to Mastodon</title><link href="https://simonwillison.net/2022/Nov/5/mastodon/#atom-tag" rel="alternate"/><published>2022-11-05T05:32:20+00:00</published><updated>2022-11-05T05:32:20+00:00</updated><id>https://simonwillison.net/2022/Nov/5/mastodon/#atom-tag</id><summary type="html">
    &lt;p&gt;Elon Musk laid off about half of Twitter this morning. There are &lt;a href="https://twitter.com/gergelyorosz/status/1588517143490199552"&gt;many terrible stories&lt;/a&gt; emerging about how this went down, but one that particularly struck me was that he laid off &lt;a href="https://twitter.com/gerardkcohen/status/1588584461398347777"&gt;the entire accessibility team&lt;/a&gt;. For me this feels like a microcosm of the whole situation. Twitter's priorities are no longer even remotely aligned with my own.&lt;/p&gt;
&lt;p&gt;I've been using Twitter since November 2006 - wow, that's 16 years! I've accumulated &lt;a href="https://twitter.com/simonw"&gt;42,804 followers there&lt;/a&gt;. It's been really good to me, and I've invested a lot of work generating content there to feed the machine.&lt;/p&gt;
&lt;p&gt;I can't see myself putting the same work in to help the world's (current) richest man pay the billion dollar annual interest on the loans he took out to buy the place on a weird narcissistic whim.&lt;/p&gt;
&lt;p&gt;So I've started to explore &lt;a href="https://joinmastodon.org/"&gt;Mastodon&lt;/a&gt; - and so far it's exceeding all of my expectations.&lt;/p&gt;
&lt;p&gt;My new profile is at &lt;a href="https://fedi.simonwillison.net/@simon"&gt;https://fedi.simonwillison.net/@simon&lt;/a&gt; - you can follow &lt;code&gt;@simon@simonwillison.net&lt;/code&gt; in your Mastodon client of choice.&lt;/p&gt;
&lt;p&gt;Not ready to sign up for Mastodon? It &lt;a href="https://fedi.simonwillison.net/web/@rysiek@mstdn.social/109288881107985329"&gt;turns out&lt;/a&gt; RSS support is baked in too - you can subscribe to &lt;a href="https://fedi.simonwillison.net/@simon.rss"&gt;https://fedi.simonwillison.net/@simon.rss&lt;/a&gt; in your feed reader (I really like NetNewsWire for macOS and iOS these days).&lt;/p&gt;
&lt;h4&gt;Why Mastodon?&lt;/h4&gt;
&lt;p&gt;The lesson I have learned from Twitter is that, even if a service you trust makes it past an IPO and becomes a public company, there's always a risk that it can be bought by someone who very much doesn't share your values.&lt;/p&gt;
&lt;p&gt;Mastodon has been designed to avoid this from the start. It operates as a federated network of independent servers, each of which is run by a different person or organization with the ability to set their own rules and standards.&lt;/p&gt;
&lt;p&gt;You can also host your own instance on your own domain.&lt;/p&gt;
&lt;p&gt;My initial nudge to try this out was from Jacob and Andrew, who figured out how to do exactly that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://aeracode.org/2022/11/01/fediverse-custom-domains/"&gt;The Fediverse, And Custom Domains&lt;/a&gt; - Andrew Godwin&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jacobian.org/til/my-mastodon-instance/"&gt;Setting up a personal Fediverse ID / Mastodon instance&lt;/a&gt; - Jacob Kaplan-Moss&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Andrew and Jacob both opted to pay &lt;a href="https://masto.host/"&gt;masto.host&lt;/a&gt; to run their instance for them. I've decided to do the same. It's on my domain, which means if I ever want to run it myself I can do so without any visible disruption.&lt;/p&gt;
&lt;p&gt;I'm paying $9/month. I find it darkly amusing that this is a dollar more than Elon has been planning to charge for users to keep their verified status on Twitter!&lt;/p&gt;
&lt;p&gt;If you don't want to use your own domain there are plenty of &lt;a href="https://joinmastodon.org/servers"&gt;good free options&lt;/a&gt;, though I recommend reading Ash Furrow's &lt;a href="https://ashfurrow.com/blog/mastodon-technology-shutdown/"&gt;post about his shutdown of mastodon.technology&lt;/a&gt; to help understand how much of a commitment it is for the admins who run a free instance.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mastodon.ie/@klillington/109287983727726762"&gt;This post&lt;/a&gt; by &lt;code&gt;@klillington@mastodon.ie&lt;/code&gt; has some good links for getting started understanding the system. I particularly enjoyed &lt;a href="https://docs.google.com/document/d/1D9gfeKg_-hlsU66R-dLEvUeyMsqEfyIx2pnfUeX0t_E/edit#"&gt;Nikodemus’ Guide to Mastodon&lt;/a&gt; as it matched most closely the questions I had at first.&lt;/p&gt;
&lt;h4&gt;Initial impressions&lt;/h4&gt;
&lt;p&gt;Despite taking the second hardest route to joining Mastodon (the hardest route is &lt;a href="https://docs.joinmastodon.org/user/run-your-own/"&gt;spinning up a new server from scratch&lt;/a&gt;) it took me just less than an hour to get started. I wrote up &lt;a href="https://til.simonwillison.net/mastodon/custom-domain-mastodon"&gt;a TIL describing what I did&lt;/a&gt; - more or less directly following the steps described by Andrew and Jacob.&lt;/p&gt;
&lt;p&gt;I signed into my new account and started following people, by pasting in their full Mastodon names (mine is &lt;code&gt;@simon@simonwillison.net&lt;/code&gt;). I was initially surprised that this did nothing: your timeline won't be populated until the people you follow have said something.&lt;/p&gt;
&lt;p&gt;And then people started to toot, and my timeline slowly kicked into life.&lt;/p&gt;
&lt;p&gt;And it was really, really pleasant.&lt;/p&gt;
&lt;p&gt;My fear was that everyone on Mastodon would spend all of their time talking about Mastodon - especially given the current news. And sure, there's some of that. (I'm obviously guilty here.)&lt;/p&gt;
&lt;p&gt;But there's lots of stuff that isn't that. The 500 character limit gives people a bit more space, and replies work much like they do on Twitter. I followed a bunch of people, replied to a few things, posted some pelican photos and it all worked pretty much exactly as I hoped it would.&lt;/p&gt;
&lt;p&gt;It's also attracting very much the kind of people I want to hang out with. Mastodon is, unsurprisingly, entirely populated by nerds. But the variety of nerds is highly pleasing to me.&lt;/p&gt;
&lt;p&gt;I've been checking in on the &lt;code&gt;#introduction&lt;/code&gt; hashtag and I'm seeing artists, academics, writers, historians. It's not just programmers. The variety of interest areas on Twitter is the thing I'll miss most about it, so seeing that start to become true on Mastodon too is a huge relief.&lt;/p&gt;
&lt;p&gt;Considering how complicated a federated network is, the fact that it's this smooth to use is really impressive. It helps that they've had six years to iron out the wrinkles - the network seems to be coping with the massive influx of new users over the past few days really well.&lt;/p&gt;
&lt;p&gt;I'm also appreciating how much thought has been put into the design of the system. Quote tweeting isn't supported, for reasons explained by Eugen Rochko &lt;a href="https://blog.joinmastodon.org/2018/07/cage-the-mastodon/"&gt;in this 2018 post&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Another feature that has been requested almost since the start, and which I keep rejecting is &lt;strong&gt;quoting messages&lt;/strong&gt;. Coming back to my disclaimer, of course it’s impossible to prevent people from sharing screenshots or linking to public resources, but quoting messages is immediately actionable. It makes it a lot easier for people to immediately engage with the quoted content… and it usually doesn’t lead to anything good. When people use quotes to reply to other people, conversations become performative power plays. “Heed, my followers, how I dunk on this fool!” When you use the reply function, your message is broadcast only to people who happen to follow you both. It means one person’s follower count doesn’t play a massive role in the conversation. A quote, on the other hand, very often invites the followers to join in on the conversation, and whoever has got more of them ends up having the upper hand and massively stressing out the other person.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mastodon so far feels much more chilled out than Twitter. I get the impression this is by design. When there's no profit motive to "maximize engagement" you can design features to optimize for a different set of goals.&lt;/p&gt;
&lt;h4&gt;And there's an API&lt;/h4&gt;
&lt;p&gt;Unsurprisingly, Mastodon has a powerful API. It's necessary for the system itself to work - those toots aren't going to federate themselves!&lt;/p&gt;
&lt;p&gt;Poking around with it is &lt;em&gt;really fun&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;First, a friendly note. &lt;a href="https://bsd.network/@pamela/109287805657081451"&gt;@pamela@bsd.network wrote the following&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hacky folks, please resist finding ways to scrape the fediverse, build archives, automate tools and connect to people via bot without their consent.&lt;/p&gt;
&lt;p&gt;[...]&lt;/p&gt;
&lt;p&gt;Whatever your thing is, make it 100% opt-in. Make it appropriate for a significantly more at-risk user than you are. Make sure it forgets things, purges info about servers it can't contact, can't operate in any sort of logged-in mode where consent is an issue.&lt;/p&gt;
&lt;p&gt;We will straight up help advertise your cool thing if it respects users properly and takes the time to consider the safety and preferences of every person involved. There are a lot of fun, thoughtfully-designed toys! And there are a lot of people really tired of having to come and tell you off when you wanted to help, honestly. Help yourself and ask around before you flip on your cool new thing, let folks point out what you're missing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(Read &lt;a href="https://bsd.network/@pamela/109287805657081451"&gt;the whole thing&lt;/a&gt;, it's great.)&lt;/p&gt;
&lt;p&gt;So far I've done a couple of things.&lt;/p&gt;
&lt;p&gt;I built &lt;a href="https://github.com/simonw/scrape-fediverse"&gt;a Git scraper&lt;/a&gt; to track the list of peer instances that various servers have picked up. This feels like a reasonable piece of public information to track, and it's a fun way to get a feel for how the network is growing.&lt;/p&gt;
&lt;p&gt;I also figured out how to &lt;a href="https://til.simonwillison.net/mastodon/export-timeline-to-sqlite"&gt;Export a Mastodon timeline to SQLite&lt;/a&gt; using the &lt;a href="https://docs.joinmastodon.org/methods/timelines/"&gt;timelines API&lt;/a&gt; and my &lt;a href="https://github.com/simonw/paginate-json"&gt;paginate-json&lt;/a&gt; and &lt;a href="https://sqlite-utils.datasette.io/"&gt;sqlite-utils&lt;/a&gt; CLI tools, so I could explore it in Datasette.&lt;/p&gt;
&lt;p&gt;Running my own instance means I have no ethical qualms at all about hammering away at my own API endpoint as fast as I like!&lt;/p&gt;
&lt;p&gt;I like to follow a lot of different people, and I don't like to feel committed to reading everything that crosses my timeline - so I expect that the feature I'll miss most from Twitter will be the algorithmic timeline! This is very much not in the spirit of Mastodon, which is firmly committed to a reverse chronological sort order.&lt;/p&gt;
&lt;p&gt;But with access to the raw data I can start experimenting with alternative timeline solutions myself.&lt;/p&gt;
&lt;p&gt;I'm somewhat intrigued by the idea of iterating on my own algorithmic timeline, to try and keep the variety of content high while hopefully ensuring I'm most likely to catch the highlights (whatever that means.)&lt;/p&gt;
&lt;p&gt;Past experience building recommendation systems has taught me that one of the smartest seeming things you can do is pick the top 100 most interesting looking things based on very loose criteria and then apply &lt;code&gt;random.shuffle()&lt;/code&gt; to produce a final feed!&lt;/p&gt;
&lt;p&gt;I have a hunch that this is going to be a lot of fun.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/accessibility"&gt;accessibility&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/twitter"&gt;twitter&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="accessibility"/><category term="twitter"/><category term="mastodon"/><category term="fediverse"/></entry></feed>