Blushy-Crushy Fediverse Idol: A Chat with Lain about Pleroma

Sean Tilley
Apr 24, 2018 · 11 min read
This is the only picture Lain would give me.

Lain is one of the more interesting figures developing software in the fediverse right now. As one of the lead developers of Pleroma, they focus on the development of a lightweight social server that works with Mastodon apps, and even supports its web interface.

For the purpose of this interview, Lain insisted on keeping the details of their own identity private.

Note: because Lain is a funny human being, their posts have been sprinkled throughout the interview.

Tell me a little bit about yourself. How did you get into developing federated web applications?

Lain’s contribution to Diaspora

Around that time, I registered a Diaspora account and used that one a lot for a while. I also contributed to Diaspora a bit, implementing the redesign of the single page view. This was when you were holding that ship together :) Still, after a while, I stopped using Diaspora. I guess following the #nsfw hashtag isn’t enough forever. I did start using Twitter, which I did not see as problematic as Facebook, because it’s all public data anyway.

I had once installed GNU social, but back then, the network was mostly Spanish socialists, so it wasn’t too interesting for me. I later read about Gnu Social on a tech discussion board and tried it out again. This was a few months after the ‘new’ Gnu Social servers (SPC, SLC, Gnu/Smug) came online. This time, there were a lot more interactions and just general fun things in the Fediverse, so I quickly stopped using Twitter altogether.

Of course, after using it for a while, some problems and missing features became apparent, so I started working on the tech side of the Fediverse.

What motivated you to develop a new federated social platform, rather than work on an existing one?

GNU Social with the popular “Qvitter” frontend that made the UI more Twitter-like

As I had written a social network in Ruby for my work at around that time, I wanted to apply my experience to a new project. As Mastodon was going in a rather different direction, technologically speaking, I started writing my own system. This was also to get some experience with Elixir and the Erlang ecosystem, which seemed like a great fit for a fediverse server — and I think it is.

“That’s something I’d recommend to other fediverse projects, too: Write compatible APIs. I implemented the Mastodon API, too, so now we can use nearly all Mastodon apps, including the Mastodon UI itself.”

How did you initially develop Pleroma? What’s the history behind the project?

This two-stage approach worked very well. I could quickly get something useful for me and others going and still work towards the goal. That’s something I’d recommend to other fediverse projects, too: Write compatible APIs. I implemented the Mastodon API, too, so now we can use nearly all Mastodon apps, including the Mastodon UI itself.

Pleroma is rapidly growing into its own unique community on the fediverse now. What has your experience been like in organizing and developing an open source project with volunteer contributors?

One thing I’m not happy about is that it sometimes takes a bit long until I can properly review a merge request. I don’t want people to think I’m ignoring them, but sometimes a merge request (especially a complicated one) might sit there for a week or two. I hope with more people contributing regularly, reviewing will be done by other people, too. This already happens, and I hope it will be a lot more in the future.

Also, I hate writing documentation, so just having it appear in your Wiki page is a great feeling :) I’m also very happy about people sharing their experiences with Pleroma on blog posts or helping each other out with installation and configuration, both on the fediverse and on IRC. I think it makes people feel welcome.

In the user community space, it seems that there is a bit of a schism between Pleroma and Mastodon. What is the overall relationship between both projects?

“I think Mastodon tries to steer the network in a certain direction with strong, unchangeable defaults. We like to put more power into the hands of the individual admin and user.”

I think a big difference between the way Mastodon and Pleroma are developed is that I’m that set on a vision as they are. Usually, if something makes sense and is configurable, we will merge it.

Hopefully Lain is joking.

This isn’t the case at all for Mastodon, where, for example, merge requests for a configurable character limit have been rejected many times, even though there’s a lot of demand for it. I think Mastodon tries to steer the network in a certain direction with strong, unchangeable defaults. We like to put more power into the hands of the individual admin and user.

One thing that stands out to me about Pleroma is the fact that the server backend is in Elixir, which sits atop Erlang. What made you decide to use that instead of, say, a certain Ruby-based framework?

What has your experience been like in working with ActivityPub?

What’s your overall impression of the ActivityPub applications currently being worked on? Is it hard to maintain compatibility between all these systems?

On the other and, some parts can be rather hard to implement, though, because many properties of AP Activities can take several forms. For example, an “actor” might be just the user id, or a full user object, or a list of users, or a list of user objects… I wish AP was defined more strictly and not as ‘free-for-all’ as it is. This flexibility comes at a cost of hugely increased implementation complexity. Luckily, most servers don’t actually use that flexibility, so you can get away with implementing only parts of it.

Overall, I’d say that federation bugs happen a lot, but they are also quickly fixed, because they usually don’t involve big differences. They are very annoying, though.

A lot of former GNU Social instances seem to be steadily migrating onto Pleroma. What do you think of that?

That all being said, I don’t really want to push people to migrate to Pleroma. If they are happy with what they have, they should stay where they are :) We will support OStatus and AP as long as people use them, so there’s no rush to switch.

Let’s talk about the Gopher support in Pleroma for a moment. A lot of people initially thought it was a joke, but apparently it really does work?

Gopher mode in action

It is inactive by default, but I want to keep it around and enhance it a bit. Having a bit of fun in a social network never hurts. Install lynx and run “lynx pleroma.soykaf.com:9999” to check it out!

What developments are you working on right now? Are there any features in particular that you’re excited about?

The things on my mind right now (besides all the small fixes we need to reach 1.0) are groups, polls and chat. Groups and polls should be rather self-explanatory.

Chat is probably the most interesting of those. We already have a local-only chat box on Pleroma instances, but this new, enhanced chat, will federate over AP. My plans for it are to make it an IRC server that federates, so you’ll be able to use it with an IRC client or with our Pleroma chat interface.

An early look at Pleroma Chat, which looks strikingly familiar…

This project was born out of frustration with Discord (good but non-free) and Matrix (free but non-good… for my use case) and it’s progressing well. I should have something out to test for people very soon.I hope that it can be an alternative to systems like Discord or Slack.

As people will be able to use it with their existing accounts, there’ll also be a good existing userbase to test it out. It’s an experiment, but I’m looking forward to it!

What’s the hardest part of doing all of this?

What do you do for fun in your spare time, when you’re not developing Pleroma?

Usually playing with old technology. I installed Windows 95 recently and bought a few Laserdiscs. The future is here.

Is there anything else you’d like to share with the people reading this?

For everyone who is interested in Pleroma: Please try out Pleroma and see if you like it! If you do, maybe set up your own instance! It’s much easier than you probably think. I already found many new friends on the fediverse; I’d be very happy to make a few more!

Thanks for reading this interview with Lain from Pleroma! If you’d like to know more, check out these links:

We Distribute

Reporting on decentralization and the free web.