Besao's avatar
Besao
npub1qc8q...twss
Cooking 🍳
Besao's avatar
Besao 3 days ago
Just pushed some changes to Browser Attention & Reconnect Status - Chat attention service: centralized browser-level unread tracking including dynamic tab-title message counts, browser notifications for new messages, and mobile sidebar attention indicators. - Reconnect status tracking: new service to display real-time coordinator connection states in the chat UI. - Key-package tracking refactor: groups now store `joinedWithKeyPackageRef` directly instead of marking packages as consumed, simplifying lifecycle management. - `ChatGroupListItem` component: extracted reusable list item for consistent group rendering across sidebar and main views. - Message UX improvements: added touch actions for mobile, improved text wrapping, and reaction tooltips showing reactor names. - Welcome notifications: enabled periodic background refetching to keep pending welcomes up to date.
Besao's avatar
Besao 3 days ago
Wake up, check cordn.net, catch up on messages, everything’s still working. Life is good 🧘🏼‍♀️ Good morning!
Besao's avatar
Besao 4 days ago
So far, so good. The release of went great, new people are joining, activity is increasing, and everything is holding up nicely. We’ve received good feedback, though there are still a few things to polish. Life is great, and I’m very proud of this. Bringing private, permissionless communications into an increasingly less private, aggressive, and permissioned world feels truly powerful 🔥
Besao's avatar
Besao 5 days ago
🔥Today is the day 🔥 I’m excited to introduce Cordn (https://cordn.net). This is my take on private, accessible communication for everyone. image Cordn is a small protocol built on two solid foundations: @ContextVM and MLS. MLS is already emerging as an internet standard, and it handles the cryptographic heavy lifting. It provides quite strong security guarantees, including post-compromise forward and backward secrecy. It is also highly scalable, handling large groups efficiently without the overhead that double-ratchet protocols like Signal carry. image That power comes with a requirement. MLS needs tight coordination between group members. All the secrets that let you participate are computed locally, and without strict message ordering, an out-of-order message can cause your state to drift. You could silently fork yourself out of a group without ever noticing. That is exactly why Cordn is built around the concept of coordinators, or delivery services, as the MLS specification calls them. A coordinator have very little responsability: it keeps messages in order. It cannot see who is participating. It cannot read messages. It cannot see IP addresses. It just orders messages and delivers them. Cordn uses one coordinator per group. This keeps state simple and avoids the consistency problems and race conditions that come from splitting a group across multiple coordinators. The upside is that Cordn is fully open source, and deploying your own coordinator is effortless. Switching between coordinators is straightforward too, thanks to ContextVM. You can run a coordinator behind a firewall or NAT. No static IP, no domain, no DNS required. Just run the existing coordinator implementation on any device and it becomes accessible. Using ContextVM was a deliberate choice. It makes deployment trivial, and it strengthens privacy because Cordn traffic is fully encrypted and blends into broader ContextVM traffic. An external observer learns nothing useful. They cannot tell that Cordn is being used, let alone who is using it or which groups exist. Running your coordinator would be the equivalent of running a Discord server or a Signal server, but in a very easy way, fully private and open source. Coordinators handle three things: message ordering, storing and delivering encrypted blobs, and acting as a key package directory. That's it. Spinning one up takes a single command: 'docker run --rm ghcr.io/cordn-msg/cordn:latest' Because coordinators are intentionally minimal, migrating between them is clean. If your group’s coordinator goes offline, you can move to another one and carry on. The rule is simple: one coordinator per group at a time. Migration is not fully implemented yet, but it is coming soon, along with multi-device support. Today I am announcing both the coordinator and a web client, now live at There is also a CLI client available in the main repo; it is primarily intended for testing, but it is fully usable and interoperable with the web client. The web client is already quite capable. It is early, and there are still rough edges, but the experience is quite solid. I spent the weekend stress-testing it with groups of around ten people, plus smaller groups and individual chats. It held up well, which gives me the confidence to release it. Cordn is also a protocol. It draws inspiration from @marmot around user identities, group metadata, and Nostr envelopes for group messages. Kudos to the Marmot team for pushing boundaries. The protocol defines coordinator roles, transport conventions, group metadata, identity conventions, and Nostr message envelopes. If you are curious and want to build on it, the spec and code are at https://github.com/Cordn-msg/cordn. There is also a larger text about the why behind Cordn at if you are einterested. That is Cordn in a nutshell: private messaging you can own, sovereign, and accessible to everyone. To lower the barrier to entry, we are running a public coordinator so you can get started without hosting anything yourself. It is completely free and will stay that way until everything is stable. After that, we will figure out how to pay the bills. The important part is that a fully sovereign experience is always available. You can run your own coordinator for yourself, you agent swarm, your friends, your family, or your community, you own it. We are running ours on an inexpensive VPS from @LNVPS.net , and you can easily do the same. We also plan to release deployments for Umbrel and Start9 soon. If you have experience packaging apps for those platforms, your help would be deeply appreciated. Cordn is fully open source, and every contribution matters. We are building this for love and freedom. I cannot close without thanking @Gzuuus and the @ContextVM team. They provided the inspiration and the core technology that made Cordn possible. It began with a ContextVM project called cvm-mls, which planted the seed for everything here. gz also opened my eyes with his article “Private communications, over public infrastructure” and pointed me to the cvm-mls repo. None of this would exist without them. Thank you so much. Without further ado, you can reach me here on Nostr and, of course, on Cordn. Do not hesitate to ask anything. We also have a Cordn dev group you are totally invited to join, so let me know and we will add you. image Reference RFC9420: View article →
Besao's avatar
Besao 1 week ago
I’ve been quietly working heads down on a new approach to truly private messaging over Nostr. It uses cryptographic MLS guarantees, with Nostr serving as the transport layer, identity layer, and envelope semantics for group messages, everything ephemeral and blended into the traffic. This is almost ready! I’ll release it on Monday after polishing a few bugs to make it as solid as possible. Just sharing because I'm so excited to release this. Mark your calendars! 🚀
Besao's avatar
Besao 1 week ago
Hello nostr! GM have been heads down working on cool stuff. I think I'll release something really cool soon. Stay tuned! Also on-chain zaps are retarded
Besao's avatar
Besao 2 weeks ago
GM Nostr! ready to rock!