Abuuba - a drop-in replacement for Mastodon

A Fediverse server built with Elixir and Phoenix. A drop-in replacement for Mastodon.

  • All 289 client API endpoints
  • Keeps your domain, accounts, and existing phone tokens
  • Timelines at least 12× faster
  • Fan-out to 10,000 followers 68× faster
  • Less compute. Lower hosting costs.
  • MIT licensed

Swap it in. Keep everything. Go faster. Pay less.

And a friendly nudge to our favorite sparring partner @Mastodon@mastodon.social
:elephant: meet :leopard:.

Your move. Show us how fast a mastodon can run. :wink:

11 Likes

Awesome! Congratulations.

1 Like

@wintermeyer, when do you sleep if ever?! :exploding_head:

I don’t use Mastodon, but Abuuba looks great! Those numbers can’t lie.

Good work and congratulations all over again!

1 Like

This happened by sheer coincidence. I needed a counterpart for https://vutuv.de to test and develop the Fediverse features. I had been waiting so long for Mastodon that at some point, the frustration became unbearable. I do hope that Mastodon takes this as a nudge to improve their performance. There is a lot of room for improvement.

1 Like

Sheer coincidence or not, you are still a MONSTER! :flexed_biceps:

I’d like to hope so too. They have some smart people working there. The head of engineering is a math and theoretical computer scientist, so the brain power is there. But I think their choice of stack(i.e. Ruby) hampered them. However, this argument is questionable because Stripe runs Ruby and they’ve been performant.

Either way, at least we have you and Abuuba. :smiley:

A couple of questions for you:

  1. I’ve been looking into the fediverse and these protocols; did you choose ActivityPub just because of Mastodon? Or had you considered other protocols?
  2. How good is the documentation for ActivityPub? Did you have prior experience with Fediverse protocols or are were you relying on Claude/AI?
  3. Do you have any specific tips or pointers you have for anyone looking to build a Fediverse-related app?

Looking forward to your response!

Sometimes all it takes is a competitor. So I hope this becomes a little wake up call for them.

I make a living by improving performance of Ruby on Rails and Phoenix Framework applications. Of course Phoenix has a big advantage but I bet you 20 USD that Mastodon can become much faster even while still using Ruby on Rails.

Because of Mastodon. For vutuv I am still considering other protocols. But that is easier said than done. I want vutuv to be as open to other servers as possible.

I am the wrong person to ask here because I tried to create a bug by bug Mastodon alternative. So I did not care too much about the cleanest possible way of doing it but the way Mastodon does it today.

Claude Code moves mountains.

1 Like

Thanks for the response, @wintermeyer.

I can’t refute that. I just wish they’d hire an expert and get this part fixed.

Hahaha, good one. It has definitely moved this one :wink:

1 Like

I can’t believe it’s written by one person, great work!

Did you compare Abuuba’s performance with Pleroma (pleroma/pleroma - Forgejo: Beyond coding. We forge.), a Fediverse protocol implementation also written in Elixir?

1 Like

It is one person using Claude Code. Otherwise this wouldn’t have been possible in the time it took.

No, I just compared it with Mastodon. The repo includes a benchmark mix tasks which runs Mastodon and abuuba against each other on the given hardware.

1 Like

I have wished for an Elixir implementation of Mastadon ever since I learned about Mastodon. This is truly amazing: congratulations and thank you, @wintermeyer!

Having said that, may I suggest a new feature? :grin: The ability to run multiple domains on one server instance. I would love it if I could have my own domain myname@m.mydomain.abc but still use a hosted server, so all it would require would be pointing a CNAME m.mydomain.abc to this hosted server. This would give full portability (ie: my mastodon account doesn’t have to change if the host goes out of business or I want to switch) without having to run a separate VM. This could be a great premium (paying) feature for existing hosts.

1 Like

A multitentant functionality would be food for a version 2.0 (plus a couple of other things).

1 Like