Human-Led Curation at the Relay Level
I cannot overstate my belief that good curation and moderation in Nostr is key to creating user-friendly, engaging, and valuable experiences. Nostr’s openness has proven over and over that the claims of censorship-resistence are indeed valid, often with the tradeoffs of excessive noise, distasteful content, and annoying spam. Who is to decide what is “excessive, distasteful, and annoying”? While client side interventions and complex algorithms may help, they ultimately place the responsibility of defining these terms on a single set of individuals, with these terms then applied to the end user’s experience. This is fine for a generalized UX. For those that want a more personalized experience, there are 2 obvious options:
-
Lean into AI driven algorithms at the user interface, leveraging user generated data to create synthetic feeds.
-
Give people the opportunity to connect with eachother over common interests or goals.
Being that meaning is most often found in our relationships with other human beings, I am going to expound upon some of the methods and tools available in Nostr, for curating, moderating, and ultimately creating the the human-built spaces for humans to connect with eachother. From my years of exploring the Nostr ecosystem, my own conclusion is that this is best accomplished at the relay level. Users get the chance to understand relays as more than just simple data hosts while also contributing to spaces that align with their interests, passions, and relationships. These spaces can be spread amongst eachother and grown more organically, compared to alternatives such as list-sharing or follow packs. All of these alternatives have their place, but they are not the appropriate medium for quality human connection. None of this is counter-intuitive to Nostr’s strengths, as most notes and other events move freely through the ecosytem, often because of the methodologies described below. If any of these talking points resonate with you and invoke a desire to learn more, please read on for a look at user-friendly curation techniques…
-
Republishing: This is an incredibly powerful, simple, and effective way to create unique, scoped feeds from exisiting Nostr content. The concept works as such: authorized members of a particular relay rebroadcast notes to a single destination, being the relay that they are entrusted to curate. This action works for nearly any note or author, barring the exceptions of unsupported event types, protected notes, and previously banned authors. The relay itself only accepts these incoming republished events, so the outcome of the feed is fully scoped to whatever topic or vibe that the operator and members have decided to host there. When the functionality is built into the client interface, the operation is smooth and effortless, presented as a user action in an event’s option menu. Currently, client-side support is limited to Jumble, Fevela, and many other variations such as X21 and ImWald. The Pyramid community relay comes packaged with a preset subrelay for this type of curation. Alternatively, many relay implementations will accept republished events, so the only limitation on building these feeds at the relay level is creativity.
-
Semi-Automated via User Actions: This method relies on the actions and interactions of relay members to create semi-automated feeds. The relay “listens” for members’ likes, replies, reposts, zaps, or any combination thereof, to create the feeds. A popularity threshold is set for the relay, meaning that a certain portion of a relay’s members must interact with a note to achieve approval for the main feed. Once any event has recieved the predetermined percentage of interactions, it is displayed for public consumption. Beyond the initial setup by the relay ooperator, most implementations of this curation style handle the count in the background, making it effortless for members and operators alike to create feeds of what is “trending” within a given community. Other implementations expose an additional staging area in a connected subrelay, where members can actively scroll and choose from nominations for the the main feed. This method works, on the user side, from nearly any client. There is no need for members to make changes to their relay lists or go out of their way to help with curation. The relay alone is tasked with “listening” for those events from its members. The Pyramid system houses 2 subrelay variations of this, for operators to use at their own descretion. The more complex version can be seen in action at Relays.land/spatianostra.
-
Hashtags, Labels, and Keywords: This method is a strict, but mostly user-agnostic, way to keep a relay feed’s content on topic with little need for interventions from the relay operator. Authors must actively visit the relay feed or set it accordingly within their announced relay lists, while also including authorized keywords, hashtags, or labels within their notes, in order for their content to be displayed. The resulting slow motion feed is often highly informative. Some implementations utilize a hard-coded set of keywords to validate content. Others use AI-assisted vetting to make sure content semantics stay within scope of the selected keywords. At the user level, this can work with any client, if the user opts to add the relay to their relay list. Alternatively, visiting and writing directly to the relay reduces useless data exchange for off-topic notes and can be done from many social clients, including Jumble, Fevela, Nosotros, Coracle, Nostur, and Yakihonne. Active relay implementations can be seen on Relay.tools and Relays.land, respectively.
-
Automating with WoT, Streams, and Keywords: This method, while slightly less intentional, leverages the chaos of open, public relays and turns it into a browsable feed. The relay is set to stream in notes from any relay that is open to send. From there, notes are validated against criteria set by the relay’s operator. A broad-reaching web of trust, such as Brainstorm’s assertions, is applied to immediately remove spam and notes from unauthorized users. This WoT is calculated from the perspective of the relay operator or whoever they choose to act as witness, so it does not take into account the veiwer’s trust assertions. These relay feeds are not intended to be “global” nor to act as a place to avoid censorship. Given that the number of hops between users can be extended to 6+, it is not uncommon to have 100k+ whitelisted authors. If an individual within that WoT authors a note that includes any of the keywords specified by the operator, it is eligible for the destination relay’s feed. The relay just needs to be set to stream from the public relay to which the author is publishing. Additionally, a fee can be charged for write access, making publishing rights available to anyone outside of the social graph. This method keeps heuristics within a human-capable realm, essentially creating a simple algorithm that anyone can launch and understand. Currently, this method is available exclusively through RelayTools (aside from the all the awesome homebrews that must exist beyond my tiny view.). Client level functionality is not considered here, as the method assumes that eligible authors will be publishing to free, public relays.
-
Moderating with Member Approvals: This method requires some level cooperation between the authors and moderators, and yields an incredibly high signal to noise ratio within the browsable feed. Notes are submitted into a moderation queue by authors, at which point authorized members can visit the queue to approve or deny which notes will be displayed. Potential authors must be aware of or be pointed towards this style of relay, in order to submit their nominations. Members must regularly visit the queue on the relay’s homepage to avoid backlog. Notes can be submitted as either a single-destination event or published to many relays. Currently, proof-of-work is utilized for spam prevention, which limits compatible authoring clients to most Jumble-like clients, Wisp, Coracle, and Alphaama. (I’m sure there are others) By happenstance, some clients produce low PoW regularly, unbeknownst to the user, so setting a lower precondition at the relay queue can open the submission option to many more users, with a still relatively low spam risk. To the best of my knowledge, this implementation is available exclusively through Pyramid’s moderated subrelay.
-
Whitelisting Users: While not in any way topic-scoped, this method works great for groups of friends, families, associates, or any other specific reason to focus on the people moreso than the content itself. Members of communties can browse and contribute with little worry or extra effort, while the operator leans into trust for most moderation. The concept can be extended past an explicit whitelist to include any of the varying implementations of social graphs or payment schemes, each increasing the need for relay operator intervention with every step further from the explicit list. This is probably the original moderation technique used across Nostr clients and relays, so I won’t expand futher, though I do want to accentuate that this method can be, and often is, the basis for many of the curation techinques listed above.
For members and those interested in joining a community to help curate interesting and useful feeds, read this post. For relay operators, look here for a list of moderation tools to help streamline your community management tasks.
Okay, yeah. I get that. I’m can expand on any of these methods, into hypotheticals… some of which are obviously applicable, so I’ll start there. I had a bunch of ideas when I was writing this. For my own catalog’s purposes, I needed to keep a broad view for this one.
Happy to participate in a brainstorming session, if you want. Just say when.
Great.
As an overview of method this is good. But albeit that it is mentioned in some places, if this is to make sense to most people, more emphasis on the purpose and use-cases would be useful. This should be separate articles though, and could be a variety of articles depending on the perspective.
Perhaps we could brainstorm at some point how those various types of relays would be relevant for a parent, what they can reasonably expect in terms of function/application.
While working on TEPP, i realized that a relay itself could apply the scheme, such that the permitted environment becomes the feed. Im thinking of the scenario where a family is new in town, and their kids get access to such a relay, which consists out of the collective permissioned environments of the local community there, introducing the kids directly to their new environment in a digital sense from the get-go, without having their parents to build those social connections bottom up first.
anyway…“toekomstmuziek” as we say. Thanks for the writeup dawn
work in progress

Hahaha you encapsulated the chaos of your current situation beautifully. No rush here, just wanted to see if this is along the lines of what you were looking for. Hold tight to your cognitive autonomy. Godspeed.
i ended up getting a claude subscription and am now swallowed by the AI demons, i will read it carefully tomorrow, but at first glance it looks good.
With the help of robot-satan it appears I have successfully specified and implemented a mostly complete working early version of my TEPP thingy.
Il take a break working on that to see if i can use digital diablo to make a finished version of that poetry thing.
cc @Constant ….yea? nay?
Write a comment