I’ve been hanging out on Mastodon lately. Mastodon is kind of like Twitter, but without the politicians, the outrage (🤞), or the algorithms. It’s also open source and decentralized, meaning that one person or company doesn’t control it. Instead, Mastodon is made up of many different servers (called “instances”) which are managed by different people; this is sometimes called the “Fediverse”.
Since anyone can create their own Mastodon instance, there are many different instances to choose from. Many people join a general-purpose instance such as mastodon.social or mastodon.xyz. Others join one or more topical instances, such as ruby.social (an instance for Ruby developers!). There’s a full instance list here.
Oh yeah, and carrying on the whole proboscidea theme, instead of “tweets”, status updates on Mastodon are called “toots” (yeah it’s cutesy, deal with it).
Mastodon for Developers
If you’re a developer, check out Mastodon’s source code: it’s open source and built with Ruby on Rails and Sidekiq (with React front-end).
Mastodon is an implementation of a new web protocol called ActivityPub (which is itself inspired by an older protocol called OStatus). The W3C Recommendation for ActivityPub is here (read it—it’s super interesting to learn how federation works).
If you’re into Elixir, there is also an ActivityPub implementation built in Elixir and Phoenix; it’s called Plemora.
In fact, since ActivityPub is an open standard, there can be many implementations. Keep up to date with the ecosystem that is developing around ActivityPub here.
Mastodon for Ruby Developers
Imagine a place where people politely discuss — yeah, that rules reddit out — nothing but Ruby all day. James Adam runs ruby.social, a Mastodon instance and community for Ruby developers. If you’re interested in Ruby, I highly recommend joining.
I had some fun giving out around 75 Honeybadger t-shirts to promote the instance when it first launched.
My first pull request to Mastodon was merged in November
2017! I added a keyboard
shortcut legend, which in the web interface you can check out by typing