Oddbean new post about | logout
 yo! I'm happy to announce the first release of chachi, a relay-based group (NIP-29) client for the web. NIP-29 allows creating groups that can be read by anyone or only authenticated users. These groups can be open to new members or require explicit approval from the group admins.

Every group gets a chat and a timeline of posts. I'll add more content types such as long-form and video in the future. Check out these videos explaining the main features of chachi.

https://nostr.download/71eedcea101f5fe9f1deb4c534ea3fbae67953e911f85a40fb0ac731b482b65f.mov

Finding and joining groups

https://nostr.download/47b29148c31c08f0295d97b9956396658ac8300d5e73598630fd4fe9996178ab.mov

Interacting with chat messages with reactions and replies

https://nostr.download/2af6f1a9c2f6ad96cdf529836737585a49038e8ba423465d17e96520239215bd.mov

Sharing different content types in chat

https://nostr.download/01f4ed8300b7dad45098780633597e3c1e91c93e13c50fedab6f817541529975.mov

Try it at https://chachi.chat

Source code is at https://git.v0l.io/verbiricha/chachi

Let me know what you think in the #chachi hashtag, this post or the official chachi group https://chachi.chat/groups.0xchat.com/chachi 
 i get an error message:

Unexpected Application Error!
Object.groupBy is not a function. (In 'Object.groupBy(e,b=>b.relay)', 'Object.groupBy' is undefined) 
 what browser are you using? must be a really old one https://caniuse.com/mdn-javascript_builtins_object_groupby 
 i am using Orion on my phone (so i can use browser extensions), but same error if i open in Brave.

i have an iPhone 8 so i don't have newest iOS. 
 I see, I'll add a polyfill so it doesn't crash those browsers, thanks for the help! 
 💪 
 it works now, thank you! 
 cc @cloud fodder @Karnage @Derek Ross @rev.hodl @lunaticoin @florian since you have shown interest in the project, please respond to the root post to avoid creating a hellthread 😹  
 🦖🐳🏝️ suhweet, ill def check this out #soon 
 Very clean looking! I was just messing around and couldn’t figure out how to start a group chat, I joined a few but unable to create. 
 thanks 💜  You can create a group clicking the button under your group list, let me know if you run into any issues! 
 Hmmm not seeing any create group buttons anywhere, I’m on mobile so that might be the issue 
 I see, it might be a bug. I'll fix it 🫡 
 No worries 😉 🙏 
 Btw, cha(a)chi means aunty in hindi😅 
 hehehe that's funny, it also means "cool" in spanish 😄  
 Check out the new chat app!
nostr:nevent1qqsv25qz88gdhu2c5a9ykhpltychv90726ngnllel2ka96g7xewn76spr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9upzqla9dawkjc4trc7dgf88trpsq2uxvhmmpkxua607nc5g6a634sv5qvzqqqqqqyck08pk 
 Chachi piruli! 😅  
 Jajaja me pareció gracioso y dije: por qué no? 😹 
 👀 
 Great work!  When creating a new group it gives an error: "name must be set". 
 I’m trying to create a group but there’s no text field to add name ): https://i.nostr.build/To7IAWDxByr3VQyP.jpg  
 Nvm works now! 

If anyone has this issue just refresh! 
 Congrats, excited to play with it 
 Cool, congrats!
Happy to see a lot of work in the NIP-29 area. 
 Thanks Daniele, I'm really excited about the possibilities of NIP-29 
 Bullish on the NIP-29 stuff!

On my desktop everything works quite well 🤙🏻 but on my iOS device with Brave its giving me errors when opening the url
https://image.nostr.build/dd09db89b8083d31734c7d66940e9c76ba8ef381c91d84cb7a40837bbb34e8e2.jpg 
 Noted, I know what's wrong and I'll fix it asap! 
 Let me know if I need to test it again to confirm if the fix is working 🫡 
 should be fixed now, can you confirm? 🙏 
 The errors are gone 👌🏻 
 Ole!! 
 Zoom killer 
 this looks cute but I don't know how to use it from my phone! 
 Are you on Android or iOS? I'll add more login options soon so it's easier to use on mobile. 
 🔥 
Would be cool to auto bookmark chats i spoke in or joined 
 💯 I will implement that shortly 
 @verbiricha casually building one of the most promising Nostr projects in his free time. 

Chachi = :110percent: Cool
nostr:nevent1qvzqqqqqqypzqla9dawkjc4trc7dgf88trpsq2uxvhmmpkxua607nc5g6a634sv5qqsv25qz88gdhu2c5a9ykhpltychv90726ngnllel2ka96g7xewn76s9hefvn 
 Running   wss://relay29.notoshi.win 
 oh nice, I'll add it to the list so people can create and browse groups there. in the future I'll use nip-66 to get the list of relays that support it but it's a hardcoded list for now. 
 btw can you enable the special `_` group for top-level relay groups? Thanks Notoshi 💜  
 I can use it 🫂 
 Do you have some short notes on how you got it working? 
 Nice work! 

I noticed a couple of things I'm sure you are working on. 

- A send button would be nice instead of just pressing enter.
- When I'm connected to a relay in "relay view" I still get auth prompts for like a dozen other relays, I have not configured (assume hard coded).
- When I deny some requests the app becomes unresponsive. This is common among some apps like primal and coracle to name some. By unresponsive, I mean, I can no longer sent messages or change profile etc. I have to refresh and then re-do the entire cycle. 
- When I deny a request to sign a note, it sill appears in the right hand chat pane as if it was sent, even though I got a toast notification saying it failed. 

I built a custom signer. When I deny a request it raises an exception. I've noticed some apps don't handle the exceptions well and just stop working. 

If you have an issue tracker I'd be more than happy to submit a more detailed error report or multiple issues :) 
 i'm a big fan of ctrl-enter to send as a shortcut to activate the send button also (this works with coracle and nostrudel also) 
 great UX suggestion 📝  
 wow thanks for reporting these, was aware of some but not all. there is an issue tracker at https://git.v0l.io/verbiricha/chachi/issues I'd like to use nostr for issue tracking but haven't set up the repo yet. we can use gitea in the meantime. 
 Okay, I added the three I've reported, so far, so that you can post updates on them, there. I'll report there, going forward. 
 t-y for thread & all! 
 Maybe nostr:nprofile1qqst8ep73nr7dhlj8geajgf686gjmz2mrslyy5pypcxfnkl0uvrgkhcpzemhxue69uhhxetpwf3kstnwdaejuar0v3shjqgkwaehxw309aex2mrp0yhxummnw3ezucnpdejqzxnhwden5te0wfjkccte9448qtngv9hxjampwghxxmmdx95fe9-san will be interested in this?
Or nostr:nprofile1qqspqxesa6yvy7snme5t7lyvqcmgaglraqmkg9v4cxr82emarzjx53gpp4mhxue69uhhjctzw5hx6egpzpmhxue69uhkummnw3ezuamfdejsz8nhwden5te0dehhxarj94ex2mrp0yhxummtda6xzun09e3k7mgk0y3k9 ?
nostr:nevent1qqsv25qz88gdhu2c5a9ykhpltychv90726ngnllel2ka96g7xewn76spzpmhxue69uhkummnw3ezumt0d5hsygrl54h466tz4v0re4pyuavvxqptsejl0vxcmnhfl60z3rth2xkpjspsgqqqqqqssnzryt 
 Enhorabuena!!

nostr:nevent1qqsv25qz88gdhu2c5a9ykhpltychv90726ngnllel2ka96g7xewn76sppemhxue69uhkummn9ekx7mp0qgs8lft0t45k92c78n2zfe6ccvqzhpn977cd3h8wnl579zxhw5dvr9qrqsqqqqqpnc0d69 
 lmao 
 That's a bug, @hzrd149 pls fix sir 
 I'll fix it in the next version 
 This should be fixed in the next version now, I removed `dir="auto"` from the whole page and moved it to just the note content. what way it does not flip the whole page 😅  
 haha true, I suspect it happens because my name is in Arabic and the text direction is set to auto so it switches the UI to RTL mode. haven't checked tho. 
 It even reversed my shadow DOM too, which was new to me.