This is a relay implementation I plan to release shortly. It will be the most flexible relay to operate and write plugins for. It will be perfect for small relays of several hundreds of people for local communities, friends, and small businesses.

Pay-To-Join, Pay-To-Post, per-kind-access-control, read/write separation, all sorts of features that a relay admin wants will be implemented.

You can deploy it to your own server, or use serverless platform such as Deno Deploy to no-code deploy.

Make Small Relay Great Again! #MSRGA

Stay Tuned

Reply to this note

Please Login to reply.

Discussion

expecting

Good work!

I just hope you don't do ws.on('message', onMessage(deps));

why?

Because 'on' method does not support accepting functions that return promises (your handles is async fn). It will work, until rejected promise will crash your app.

TS does a poor job at warning on these mistakes.

I am aware of this and I am writing code to take advantage these "mistakes", so worry not

Is this python?

JavaScript

Oh yeah, const/let isnt in python

I'm also working on a plugin-supported relay implementation https://github.com/CodyTseng/nostr-relay (the plugin system is still in development), and it can replace the database implementation. It's currently being used in my personal relay (wss://nostr-relay.app) and the nostr-relay-tray application. They respectively use PostgreSQL and SQLite as the databases.

More flexible than Khatru? Is it written in JS?

Yes, more flexible than Khatru

Yes, JS. Not Node, but Deno