Damus
MMOnostr profile picture
MMOnostr
@MMO 🇨🇭

Solo builder + AI cowork, no vibecoder, a real IT guy with more than 40 years of experience.
https://www.linkedin.com/in/mauro-moro/ | https://llmops.pro
I'd love to speak to anyone interested:
https://calendly.com/llmops/new-meeting

Shipping sovereign agent-payment rails on Lightning + NOSTR — nostr-merchant (PyPI) and five MCP servers (npm).
https://github.com/llmops-pro

The shop, the demos, and the voice live at @SOVEREIGN_CITIZENS → https://njump.me/npub1hdg932jvwc3jdvkqywgqv0ue4nn60exrf92asy8mtazt3hjg7d2s2yw0nw

Building NOSTRAS, a Nostr client with no app store gatekeeper and no custody of your keys or funds — paired with a self-hosted relay that does the heavy lifting so the client stays fast, wherever you install it.
https://nostras.app

Relays (24)
  • wss://nostras.app/ – read & write
  • wss://brb.io/ – read & write
  • wss://highlighter.com/ – read & write
  • wss://ftp.halifax.rwth-aachen.de/nostr/ – read & write
  • wss://auth.nostr1.com/ – read & write
  • wss://nos.lol/ – read & write
  • wss://relay.damus.io/ – read & write
  • wss://bostr.azzamo.net/ – read & write
  • wss://nostr.bitcoiner.social/ – read & write
  • wss://relay.primal.net/ – read & write
  • wss://hist.nostr.land/ – read & write
  • wss://no.str.cr/ – read & write
  • wss://aegis.relayted.de/ – read & write
  • wss://eden.nostr.land/ – read & write
  • wss://haven.eternal.gdn/ – read & write
  • wss://frens.nostr1.com/ – read & write
  • wss://cfrelay.puhcho.workers.dev/ – read & write
  • wss://news.nos.social/ – read & write
  • wss://multiplexer.huszonegy.world/ – read & write
  • wss://nostr.mom/ – read & write
  • wss://relay.mostr.pub/ – read & write
  • wss://atlas.nostr.land/ – read & write
  • wss://filter.nostr.wine/?global=all/ – read & write
  • wss://lockbox.fiatjaf.com/ – read & write

Recent Notes

DeAllen Young · 1d
GM GM GM 🖖🏾⚡☕
MMOnostr profile picture
Follow-up: made my VIP list in NOSTRAS yesterday, opened it in Coracle today — it shows up as "VIP by MMO, 5 items", and "Load feed" turns it into a live feed there too.

Same kind:30000 event, zero extra work. That's the whole point of building on NIPs instead of our own format.

https://app.nostras.app

#nostr #nip51

Derek Ross · 1w
Introducing Opal 💎 Nostr, built into your Omarchy desktop. One gem in your bar, three modules you turn on as you need them: 🔐 Signer: a NIP-46 bunker on your desktop. Your nsec stays in the sy...
MMOnostr profile picture
Nice — a keyring-backed bunker on the desktop is exactly the missing piece. One interop thing worth testing: NDK's NIP-46 signer (3.0.3, at least) only accepts a literal "ack" as the connect result for the bunker:// flow. When we tested against Amethyst's bunker, it echoes the secret instead, and NDK-based web apps reported "failed to connect" even though the user had approved on the phone. We worked around it in https://app.nostras.app by falling back to a get_public_key call, but if Opal answers bunker:// connects with "ack", NDK apps will just work out of the box.
SkyLords · 1w
I think I found a small Nostrich bug. 😀 If I like a note once and then click again to remove the like a reaction still seems to remain recorded. If I like it again another reaction appears. I repea...
MMOnostr profile picture
+1 to Nilo's "drop reactions that have a matching deletion" — and it's cheaper to do than it sounds. We hit the exact same class of bug yesterday with NIP-51 lists (delete a list, reload, a relay that ignores NIP-09 hands it right back). What fixed it: in the same REQ, also ask for your own kind:5s ({"kinds":[5],"authors":[you]}, add "#k":["7"] if the client sets the k tag), then drop any of your kind:7s whose id is referenced by a kind:5 at least as new. Relays that honor NIP-09 make it a no-op; relays that don't can't resurrect the reaction anymore. It only works for your own events (you trust your own deletions), but that's exactly the case you're describing. Working reference for lists in https://app.nostras.app — honestly, NOSTRAS doesn't do unlike at all yet, so we haven't shipped it for reactions.
1❤️1
SkyLords · 1w
That is actually a very practical solution. If I understand it correctly the client does not need to trust every relay to honor NIP 09. It can fetch my own kind 5 deletion events together with my kind 7 reactions and locally ignore any reaction whose event id is referenced by a newer deletion. That ...
MMOnostr profile picture
New in NOSTRAS: Lists.

Tap the ⭐ on any profile, add them to a list you name yourself — "VIP", "Devs", "Bitcoin people", whatever — and each list becomes its own tab on your home feed. Separate from who you follow, so curating doesn't touch your public follow list.

Under the hood it's plain NIP-51 follow sets (kind:30000), nothing proprietary: lists you made in other clients show up in NOSTRAS, and lists made in NOSTRAS are readable by any client that supports follow sets. Public by design, same as your follows.

One detail I cared about: the list's name lives in a title tag, its identity in a random d tag — so renaming never breaks a list. And deleting sends a real NIP-09 request, with NOSTRAS checking for it on load, so a relay that ignores deletions can't bring a list back.

My own VIP list has 5 people on it already. Try it: https://app.nostras.app

#nostr #nip51
Bac0t · 1w
whats the best nostr instant messenger? is it 0xChat? or any other ones? #asknostr
MMOnostr profile picture
0xChat's a solid pick if you want a dedicated messenger. If you'd rather have DMs alongside a full client (feed, zaps, articles, etc.) instead of a separate app, we built real NIP-17 DMs into NOSTRAS too (app.nostras.app) — gift-wrapped per NIP-59, not the weaker NIP-04 some older clients still use, so relays only see two random-looking pubkeys, not who's actually talking to whom. Different tradeoff depending on whether you want dedicated vs. all-in-one.
☕1
Dr. Hax · 1w
I just search #nostr for the word "bicycle" and my client turned up zero results. Has nobody ever used the word bicycle on nostr? Even if only searching a small number of relays, that seems unlikely. ...
MMOnostr profile picture
NIP-50 (search) support is genuinely spotty across relays — most public ones don't index full text at all, so a lot of "zero results" is really "this relay doesn't support search," not that the word's never been posted. We hit an almost identical bug building NOSTRAS's own NIP-50 search (app.nostras.app): NDK's local cache is cache-aware by default and doesn't implement full-text matching, so it was silently blending in structurally-matching cached notes regardless of the actual search term — had to force cacheUsage: ONLY_RELAY to get real, relay-verified results instead of cache noise. Worth checking which relay(s) your client is actually querying and whether they advertise NIP-50 in their own relay info before assuming search itself is broken everywhere.
Nathan Day · 1w
What's the best tool for social media teams to use for scheduling notes? Bonus points for allowing this without handing over the nsec to the intern? #asknostr
MMOnostr profile picture
Don't know of a dedicated scheduler for this, but the harder part — not handing the intern a raw nsec — has a real, well-supported answer: NIP-46 (remote signer / "bunker"). You keep the actual key in your own signer app (Amber, or run nak bunker yourself), the intern's client only gets a scoped, revocable connection string — it can sign what you allow, never touches the nsec, and you can cut it off any time. We use this exact flow for real accounts in NOSTRAS (bunker:// URIs, no plaintext key ever hits the browser).