Oddbean new post about | logout
 noStrudel NIP-72 Moderated Communities update
I've got to start packing for #nostraisa so now is as good a time as any to release another update

This time its all about NIP-72 Moderated Communities
TLDR; noStrudel now support all the community features that satellite.earth supports

Changes:
 - Add voting and Approval to community posts
 - Allow users to create and edit existing communities
 - Show the communities a user has join in their profile
 - Make community view usable on mobile
 - Show community members in community view
 - Add option to search for notes in search view

Fixes:
 - Better support for non-english hashtags
 - Center page layout
 - Fix reaction counts when user react multiple times
 - Only show first 10 badges on user profile ( saves data )

You can find the client here https://nostrudel.ninja/ or run it using docker "docker run --rm -p 8080:80 ghcr.io/hzrd149/nostrudel:master"

https://i.nostr.build/Yqr6.png 
https://i.nostr.build/P6w4.png 
https://i.nostr.build/v6yv.png 

Come join the noStrudel community? nostr:naddr1qqykum6nw3e82er9dsq3zamnwvaz7tmwdaehgun4v5hxxmmdqyxhwumn8ghj7mn0wvhxcmmvqgszv6q4uryjzr06xfxxew34wwc5hmjfmfpqn229d72gfegsdn2q3fgrqsqqpphk8c2vfk

P.S. 25% of zaps on this note go to @Stuart Bowman for building satellite.earth which helped me learn how NIP-72 works. and 25% with @Karnage for nostrdesign.org because I also stole all his designs 
 Lobely. Nice to see a Community post feed too:) 
 Commenting from within the community! Nice....looking great if I may say! 
 enjoy the trip ! 
 So far the best web client  
 The best web client just got better.

nostr:nevent1qqspqlhcjcsna0a9gcj84xpdeprqrs3c3mh0tryky2x9209lrdcqzscppemhxue69uhkummn9ekx7mp0qgszv6q4uryjzr06xfxxew34wwc5hmjfmfpqn229d72gfegsdn2q3fgrqsqqqqqpu25f7p 
 If you're all about replacing Reddit with Nostr's Moderated Communities, then this update is for you. The noStrudel web client just got a whole lot better.

nostr:nevent1qqspqlhcjcsna0a9gcj84xpdeprqrs3c3mh0tryky2x9209lrdcqzscpz9mhxue69uhkummnw3ezuamfdejj7q3qye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjsxpqqqqqqzfm6ddz 
 Releasing to prod on Friday. I like it. 
🤣🥰 
 Cc @Dielan 
 👏 design stealing highly encouraged! 😆 
 “Invalid lightning address “ when trying to zap you 
 How much P2P is this communities thing in a scale from 0 to 10? 
 Well the community definition even has "relay" tags. Which can be used to tell the clients what relays to use. So maybe half way P2P? 
 Wishlist: 
- New comment overview. Right now I have no idea if a new comment comes in or where to find it.
- It's a bit odd that people who are not in my community are responding to comments without joining the community. That means I have no way to moderate conversations.  
 The first can be fixed with a better notifications view and maybe a live notification sound.

As for the replies being unmoderated. I don't know what the original intention was. But I think it might be better then the mods having to approve every comment 
 based. you are actually the only nostr dev that is not a retard and makes a useful application 
 Nostrudel.ninja is only missing the automatic translation of the notes and then it would be perfect for me. 
 @hzrd149 if you need a LibreTranslate endpoint to test against, hit me up. 
 Transactions is probably one of the oldest things on my to-do list. Ive tested LibreTranslate although I couldn't figure out how to make it ignore URLs and other non word content. 
 Interesting. I might look at how some of the other FOSS clients do this sometime this week. 
 oops, I meant "Translations" 
 I wrote some custom filtering when we do translations with nokyctranslate.com, which I run which filters out certain patterns like urls, e-cash nuts, etc. I mostly did it so that what is translated is shorter and thus cheaper.

I’d be happy to work with you to integrate it as a paid translation option for your client. I did it on damus, which also supports another paid (non btc though, cc only) DeepL.

I’m really excited about your client btw! 
 Removing the URLs is only half the problem. You have to add them back in the correct position. And since the text is translated the length and position has changed 
 Yep, that’s what we do. A special syntax counter keeps track of where each piece of non translated text goes and inserts it back in after we get the translation. This does assume the translation service will leave the symbol of the counter untouched. Currently we use AWS machine translation as the translator and it’s nearly perfect at leaving the symbols in place. Haven’t tested LibreTranslate tho.

While our code isn’t open source, I’d be happy to share my logic there as I wrote it in python. 

Are you open to offering paid translation services through the client? You could offer libre translate as a free option as well. That’s what damus has. 
 *untouched and in the right position.

Traveling now but can shoot you over my code logic later tonight, in case it’s helpful. 
 I have similar issue when using LibreTranslate to detect language. The quality and the performance can be lower whenever involves text with url and non word (symbol). Have to use regex to remove those url and symbols 😅

I have take a look at Mastodon source code, the interesting thing is it seems they don't preprocess any text before request translation

https://github.com/mastodon/mastodon/pull/19218/files