Did not oversleep but ended up sitting on my little train of thoughts untill 1.30am...and my alarm went off at 6am... oops. xD
Welp! Time to suck down a Monster and be EVEN MORE WEIRD :D Dude I am in suuuuuuuch a good mood today because last night was possibly the most creative I have been in two fucking years and I am so incredibly stoked about this like I can't wait to get home and pop open Zed and then start banging in dem Go codes and like doing all of that stuff and implement a real fucking thing and just put my vision into code into stuuuuuuff ermahgerd.
Yes, I am a little hyper.
Yes, I do not give a shit.
Yes, I really am actually sorry for bombarding fiatjaf with this absolute holy wall of text XD
OH WELL LETS KEEP NOSTR WEIRD BABYYYYYYYY
quoting"Community messenger" is kind of my own naming for it - don't worry to much about that. Basically: Signal, SimpleX, Telegram and Whatsapp are "direct messengers" - IRC and public Nostr chats (iirc, kind 9? didnt double check) would be "group messengers". Discord - and its many thousand alternatives like Stoat, Loqa, Nerimity, ... - is what I like to call a "community messenger": A set of channels dedicated to a specific topic/community; be it a community about Touhou or just a community for fans of the Drakengard/Nier series. As said, just a term, really. And, my own quirky way of thinking, I guess... x)
nevent1q…dvwe
So, yes - Community, Categories, Channels, Threads. That is the model I am aiming for, for my own thingy, with channels being either text, call, or app channels (nabbed this idea from Root) which are just WebXDC archives containing an SPA and that can use `window.nostr` if they need to make new events or whatever. Might be useful for hosting the Piped frontend inside a community, or perhaps a browser game, or something like a WatchTogether-esque service.
I wanted to try Flotilla, but I could not find any relay/community to join, and I was severely confused how to even _do_ that. There was a list of relays, which I tried to click Join on, got a dozen errors, saw no default "Recommended server" to join, and just left in frustration. Have not read the spec of it yet to see if there is something in it I can fully re-use.
But I guess the main difference is that my vision is different. Instead of relay-scoped, many communities exist within one relay, and said relay isn't exactly inactive either; broadcasting call channel states and enforcing light authZ (i.e. for moderation or only sendng certain events to the correct user). The idea is that it should be dead easy for someone at r/selfhosted to spin up a docker container, grab a client, point it at the server, grab a generated admin token from the console and paste it in and thus gain full control of the server. Each server is just stored in a relay-ish list - or, more specifically, each community the user added to their profile is stored together with the relevant server.
So, practically speaking, I am using Nostr both by spec, but also in a more "fenced" way. Instead of pulling a new RPC protocol out of the void, I am using what exists today - and fix my BIGGEST gripe with all the Discord alternatives today: Federation and Decentralization. More specifically, one client has it's identity (npub) and can send events to many servers that may host many communities.
That way, even a company like Patreon, could spin one up and create a community per creator on the platform. If the creator wants to leave Patreon, they can copy the whole thing from one server to another since it's just Nostr relays and they'd just have to "re-create" certain things.
It takes ideas from commonly "liked" centralized services - specifically Discord here, obviously - and also does things I wish Matrix did. It is centralized to that one server, but you can leave and join as you like, yet provides moderation to keep the place from being overswept with bullshit, but uses an easy protocol in Nostr to realize it that won't force you into implementing thousands of switch/match statements to figure out what's what in the object.
This is why I want to implement my own; I have a different vision, and why I will attempt to refrain from ever saying it is "implemented IN nostr" when it _really_ is just "implemented USING nostr".
PS.: I was dead-ass sleepy and thought you replied to a separate note. Also sorry for the ramblyness LMAO XD