cipres

Zero-JS Hypermedia Browser

avatar
cipres
catomizer@zaps.lol
npub1r3cn...fx0c
Having fun writing nostr projects. voistr (nostr p2p softphone): https://voistr.codeberg.page paz (semantic nostr client that uses an RDF events store): https://pazstr.codeberg.page nostralink (Linked Data for Nostr): https://nostralink.codeberg.page caracal (Nostr client for Gemini): https://gitlab.com/cipres/caracal ssnrelay (relay with pkdns): https://gitlab.com/cipres/ssnrelay

Notes (10)

I'm working on a multiplayer nostr game development library called disastr. https://codeberg.org/disastr/disastr It is based on Bevy, a game engine written in Rust. Nostr relays are used to establish webrtc connections between the players. Rollback netcode (with ggrs: https://crates.io/crates/ggrs) is used by default. Games are deployed on the web (WebAssembly). The idea is to make it easy to develop multiplayer nostr games without having to worry about identity management, networking, lag issues, and focus on writing the game instead. There's a demo here with pongstr, a multiplayer pong game. https://pongstr.codeberg.page/
2025-11-12 14:29:48 from 1 relay(s) View Thread →
voistr (nostr softphone) now supports (encrypted) file transfers between peers. Private filesharing between nostr users will be useful i think. Really enjoy working on this project 🔥
2025-09-24 22:54:53 from 1 relay(s) View Thread →
I wrote a basic softphone for #nostr (it uses nostr relays for #webrtc signaling) called #voistr: https://voistr.codeberg.page/ More features are planned, chat and maybe video calls. Both the signaling exchange and the voistr protocol use NIP-44 encrypted events. Follow voistr here: nostr:npub1lcfnjgme4s9whl6n4fym0ft034rdmghahal7jzg7zw35w8f6dq2s2kn6vm
2025-09-13 12:33:21 from 1 relay(s) View Thread →
Interesting post about the problems with #vibecoding https://nmn.gl/blog/dangers-vibe-coding "Technical debt compounds exponentially when you don’t understand your code. Each “vibed” solution becomes a black box, and these black boxes multiply. Soon, you’re building on top of foundations you don’t comprehend."
2025-06-29 10:24:28 from 1 relay(s) View Thread →
"Accepting this initiative (Iran's proposal of the creation of a denuclearized zone in the middle east) would open the gates of international inspections and reveal what everyones suspects. That Israel has nuclear weapons and has no intention of abandoning them. In other words, Israel doesn't want to eliminate the nuclear threat in the region, it wants to remain THE ONLY nuclear threat in the region." Excellent article (in French) https://reseauinternational.net/ambiance-mossad-en-israel-ou-la-guerre-des-ombres-devient-lapocalypse-publique/ on #israhell 's self-destruction.
2025-06-16 11:46:49 from 1 relay(s) View Thread →
I think that nostr's most problematic technical flaw is that the "content" field in an event is a string, and not an object. Really bugs me. It's a serious limitation, and embedding stringified JSON like it's done for kind 0 events is inferior to having a native JSON object. I don't see any justification for using a simple string (although, sure, it makes things easy for simple events like short notes and reactions). NIP-68 (picture events) really highlights this problem with these questionable "imeta" tags. Feels like the authors were like "hey where should we put this stuff ?". If "content" was an object, the content would contain a list of objects containing the url and dimension for each picture ... Is each picture's metadata stored in a imeta tag so that it can be queried with relay filters ? (like on the picture's "alt" description). Nevermind though, i really like #nostr.
2025-06-06 20:06:06 from 1 relay(s) View Thread →
I've been working on a nostr client (with egui and nostralink) that stores events as linked data (in an RDF graph). https://codeberg.org/nostralink/paz Everything is stored as RDF triples, including followings, mutes, notes view/read status ... image
2025-05-16 13:26:01 from 1 relay(s) View Thread →