Oddbean new post about | logout
 I liked this so much that I wanted to host it directly as the homepage of a khatru relay.

So I started trying to extract the electron stuff that was hardcoded into it and ended up rewriting all the Nostr-related logic and some of the other parts too and ended up with https://git.fiatjaf.com/jouble

It's hosted at https://jouble.surge.sh as a standalone web client, and embedded in https://pyramid.fiatjaf.com/browse for browsing just that relay (although it will load metadata, replies, reactions and parent posts from elsewhere when you click).

nostr:nevent1qqsqqqqzzl4t0pkxuyy2plw8yrwpzc379ds0u6sqxvrwna5jarkeztcpzpmhxue69uhkztnwdaejumr0dshszrnhwden5te0dehhxtnvdakz7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctc2wgfra 
 Neat! 💯 It makes some much sense to just display the content living on that relay. 
 Take a look at jouble’s modifications later, and absorb some optimizations. 🫡 
 Hopefully they are actual optimizations and not me just destroying everything.

Please beware of other tons of unnecessary changes I did like with import paths and other stuff just because I am a disturbed person. 
 This is how you integrate it in your own relay, by the way: https://github.com/github-tijlxyz/khatru-pyramid/commit/928e801e69b137d52faeac89ba8ad0bb8734a147

Basically copy the HTML and host it somewhere -- make adjustments as necessary. Notice the window.relayGroups and window.hideRelaySettings options. 
 nostr:nprofile1qqsw9n8heusyq0el9f99tveg7r0rhcu9tznatuekxt764m78ymqu36cpz4mhxue69uhhyetvv9ujuat50phjummwv5hszymhwden5te0wahhgtn4w3ux7tn0dejj7qg4waehxw309an8yetwwvh82arcduhx7mn99uuwx66a, any thoughts on adding optional first-party integration support for Jouble on Haven? I’m happy to take this on, as well as add Jouble to the Docker Compose setup so users get “browsable” personal relays out-of-the-box. 
 We definitely want a browser, but I want to take a look at fiatjafs implementation as well before yoloing  
 In the meantime I also started this other library that can serve as a companion to nostr-tools for more high-level operations: https://jsr.io/@nostr/gadgets/doc

For now it does a reasonably good job at fetching profile metadata and replaceable lists efficiently for pubkeys, eventually I want to make it do outbox-model style fetching of posts and also have custom relay selection and WoT handling for each kind of content that can have its own Nostr "silo", like marketplaces, wiki articles, long-form articles, livestreams, recipes, music, podcasts and whatnot following the vision of nostr:naddr1qqyrze35vscrzvfcqyghwumn8ghj7enfv96x5ctx9e3k7mgzyqalp33lewf5vdq847t6te0wvnags0gs0mu72kz8938tn24wlfze6qcyqqq823c0z85e2. 
 By the way, this library is only available on https://jsr.io/ so @Alex Gleason 🐍🚬 is happy. 
 God I love JSR. Good choice. 
 If someone wants to know every conversation being started on the topic Khatru, gossip, inbox or outbox, began by fiatjaf, nostr:nprofile1qqswuyd9ml6qcxd92h6pleptfrcqucvvjy39vg4wx7mv9wm8kakyujgpypmhxue69uhkx6r0wf6hxtndd94k2erfd3nk2u3wvdhk6w35xs6z7qgwwaehxw309ahx7uewd3hkctcpypmhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjj7a0nq40 or nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqppemhxue69uhkummn9ekx7mp0qythwumn8ghj7anfw3hhytnwdaehgu339e3k7mf0qyghwumn8ghj7mn0wd68ytnhd9hx2tch2deau, in which no curse word or "gm" is said, here is the RSS link to it:

https://nostr-to-rss.deno.dev/feed?users=fiatjaf.com,vitorpamplona.com,mike@mikedilger.com&replies=false&whitelist=khatru,gossip,outbox,inbox&blacklist=fuck,gm

Powered by me

Ps: the examples for blacklists is just to add some humor 

nostr:nprofile1qqsqgc0uhmxycvm5gwvn944c7yfxnnxm0nyh8tt62zhrvtd3xkj8fhgprdmhxue69uhkwmr9v9ek7mnpw3hhytnyv4mz7un9d3shjqgcwaehxw309ahx7umywf5hvefwv9c8qtmjv4kxz7gpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7s3al0v