In my last few posts I talked a bit about Pleroma. Since then, we had a lot of questions about what Pleroma is, how it is different from GNU Social and Mastodon, why you should use it and so on. This post will be an introduction to Pleroma, so read on if you are interested.

What is Pleroma?

Pleroma is a microblogging server software that can federate (= exchange messages with) other servers that support the same federation standards (OStatus and ActivityPub). What that means is that you can host a server for yourself or your friends and stay in control of your online identity, but still exchange messages with people on larger servers. Pleroma will federate with all servers that implement either OStatus or ActivityPub, like GNU Social, Friendica, Hubzilla and Mastodon.

How does it work?

Here’s a screenshot of the main interface.

When you are not logged in, you can see the Public Timeline and The Whole Known Network. The Public Timeline is every post that was made on that server. If you are looking for new people, it’s often a good idea to look through the public timeline of other Pleroma servers to see what people there are writing. It will also help you figure out if a server is a good one to join.

The Whole Known Network contains all local posts PLUS all the posts from other servers that reached this one. This means that it will contain all the posts from users that users on that server are following or communicating with. Looking through the whole known network will give you a good overview of the fediverse (our term for the network of servers).

When you are logged in, you have access to a few more features. You can post new messages, of course, which will be sent to your followers. Pleroma has a default maximum of 5000 characters per message, but this is just a suggestion. A server can set it to any value.

Your main timeline is the one that contains all the people your are following. You can do the usual functions like favorite, repeat and reply from the timelines. You also get a Notifications section, which will contain notifications about posts you have been mentioned in or posts of yours that have been shared or favorited by other people.

Pleroma also features a little chat in the sidebar. This is a real time chat that does not federate (for now). Every user on your instance is a member of this chatroom.

When you click on the little [+] symbol on the upper right, you will open an inline conversation view. This gives you a quick overview into conversation threads. You can do all the usual functions from inside that conversation view as well.

Those are the basic features. I’d encourage you to take a look at a Pleroma server to find out what else there is to see, like themes, custom backgrounds, attachment hiding and so on. Here are some servers that you could check out:

How is it different from Mastodon?

If you are currently using Mastodon, you are probably interested in the differences between Mastodon and Pleroma. Here are some of the big ones.

Lower system requirements.

Pleroma can run well on a Raspberry Pi or a $2.50 Vultr instance. This makes it affordable to host for single user instances. You can still run a hundred users or so on instances this small, though, so it also works well for bigger instances.

Less moving parts.

Pleroma is built on a lot less technology than Mastodon. To run a Mastodon instance, you need Rails, PostgreSQL, Redis, Sidekiq, NodeJS and - if you want search - ElasticSearch. For Pleroma, you only need Elixir and PostgreSQL, while still getting all the features. This simplifies installation and makes maintenance somewhat easier.

Internally ActivityPub.

Mastodon is, internally, based around the concept of “Statuses”. It uses ActivityPub to federate, but it has no internal concept of Activities, it just generates ‘fake’ Activities for message exchange.

Pleroma is ActivityPub even in its internal data structures. Activities are actually saved as JSON in the database, so the external and internal representations are the same.

Why should you care? Because it makes it easier for Pleroma to add new Activity types. Adding a new Activity type in Pleroma involves no database changes, you just need to add some rules how to handle them. This will help us to add new features like groups or polls in the future.

Compatible with Mastodon clients (including the Mastodon frontend).

This is not really a difference, but Pleroma implements the Client-Server APIs of both GNU Social and Mastodon, so you can use most of their clients with Pleroma, too. For Mastodon clients, this includes Twidere, Tusky, Mastalab, Tootdon and many others.

The biggest surprise for many is that Pleroma includes the Mastodon UI, too. As the Mastodon UI is mostly just another API client, it will run fine on Pleroma. As you can see in the screenshot, you can use it quite well on any Pleroma instance. We bundle it with Pleroma, so you don’t need to install anything new.

Try it out

I hope you learned some new things about Pleroma in this post. If you want to find out more, I’d suggest just making an account on one of the instances I linked above and try it out a bit. You can also take a look at the homepage, which also has links to the code, or chat with us at #pleroma on freenode.

If you want to install your own instance, you can take a look at Jeff’s post The magical world of Pleroma, setting up your instance, where he describes the process step-by-step.

Either way, have fun, and see you on the fediverse! :)