Introducing Mostr: a Fediverse Nostr bridge

Cover Image for Introducing Mostr: a Fediverse Nostr bridge
Alex Gleason
Alex Gleason

Introducing Mostr: a Fediverse Nostr bridge

When I first saw Nostr, I didn't think people would actually do it. The last few months have told a different story. Nostr has been exploding with developer activity! I looked closer.

Nostr solves my most basic frustration with ActivityPub, which is that some of my followers on different servers can't see me because their admin said so. I'm tired of it.

We've been investing in the ActivityPub ecosystem for years. Nostr is a better protocol, but it lacks the years of work that went into making the Fediverse usable. However, things are moving fast. This is partly because of the protocol, which is easy to implement and gives clients a lot of control. It seems like only a matter of time until it overtakes the Fediverse, and I'd rather be a part of it than get left behind.

So the first thing I've decided to do is build a bridge. This bridge connects ActivityPub and Nostr together, so we can communicate across the pond. Everyone wins.

We hope you enjoy getting to know each other, and that this opens new doors for collaboration.

Source code: https://gitlab.com/soapbox-pub/mostr

Usage

To interact with ActivityPub users on Nostr, please subscribe to our relay:

wss://relay.mostr.pub

You can then find a user by their NIP-05 identifier, eg: alex_at_gleasonator.com@mostr.pub

To see Nostr users on the Fediverse, search for them by their hexadecimal public key:

https://mostr.pub/users/<pubkey>

As your network interacts with Nostr users, you'll start seeing more of them over time.

Implementation

The bridge acts as an ActivityPub server and a Nostr client.

It has an ActivityPub inbox which converts data into Nostr events which it pushes to a relay. It listens on the relay and federates ActivityPub data for relevant Nostr events.

Tech stack

  • TypeScript + Deno
  • Web Cache API
  • SQLite

What's next?

Mostr is a work in progress. We plan to fix bugs, add support for emoji reactions, and more.

Next, we are going to make Mastodon clients work on Nostr. Not just Soapbox, all of them. This will require a middleware service that acts like a Mastodon "instance" and talks to Nostr relays behind the scenes.

Support us

If you like what we do, please support us!

BTC bc1q9cx35adpm73aq2fw40ye6ts8hfxqzjr5unwg0n

Source code: https://gitlab.com/soapbox-pub/mostr

Last edited .

Like what we do?

Soapbox is open source software, and we rely on generous donations from community members like you. ❤️