They’re posting on Nostr, videos, and they’re sending out 40 million invite codes to the divine app, plus running tv and streaming ads for the app when we drop invite codes on the 20th. Divine is part of Nostr and you’ve always been able to do use the app and our relays with any Nostr nsec and app, but we’re building something which makes it accessible to people who never have heard of the idea of open source or protocols.”
§1. Rabble announces a great milestone of Divine 🔥
rabble
Aug 18, 2026 16:10
A year ago when we started And Other Stuff, @npub1...uf63m asked me how to take Nostr mainstream, how do we get normies on here, an open protocol. Today I’m really excited to announce that @npub1...rklr7 has a brand partnership with @tacobell
They’re posting on Nostr, videos, and they’re sending out 40 million invite codes to the divine app, plus running tv and streaming ads for the app when we drop invite codes on the 20th. Divine is part of Nostr and you’ve always been able to do use the app and our relays with any Nostr nsec and app, but we’re building something which makes it accessible to people who never have heard of the idea of open source or protocols.
§2. A must-watch episode of the “You’re The Voice” podcast 👀
§7. Eventually, the Nostrich nest is filled with love after a painful period ❤️
walker
Aug 19, 2026 00:59
After 18 days in the NICU we finally got to bring baby girl home today. After a truly harrowing journey these past months, our family is finally all together at home.
:POLICE: A critical security vuln was fixed in Ditto Android that would allow an attacker to steal your nsec by getting you to tap an evil URL. :wisp_sad:
A new version has been released onto Zapstore and Google Play. UPDATE DITTO ANDROID IMMEDIATELY. :POLICE: :POLICE: :POLICE:
Ditto on web and iOS are unaffected. The issue only affects Android because it was a problem in the Android link handler. People using Amber are unaffected by nsec theft but should upgrade anyway because the attack is still arbitrary code injection via evil URL.
What does an evil URL look like? It contains JavaScript code inside of the URL. The path was not being escaped properly, so it could break out and run any script. The fixed version completely changes the way native code triggers UI navigation (event-driven) so we never inject JS code into the UI at all anymore.
Huge shout out and thank you to @calle for connecting me to the team behind https://v12.sh/ who discovered this vuln, and huge shout and and thank you to them for responsibly disclosing it to us. 🙏 They also discovered some other issues we patched in this release, but the evil URL is by far the worst.
§9. What do you think about this statement, Nostriches? 🤔
Hello, Nostr! After Twitter decided to randomly unfairly suspend my website’s account for doing what I’ve always been doing for several years (game screenshots and videos), I’ve decided I had enough and give Nostr a serious try. So I’ve decided to move my usual posting that I do on my personal Twitter account to Nostr. And also posts from my game dev stuff account and my gaming sites accounts. So more content for Nostr and less content for Mr. X. I hopefully can help Nostr grow more because it’s honestly a really great idea.
§The Nostr growth indicates differently in several sources!
According to https://github.com/aljazceru/awesome-nostr, there are over 240 Nostr clients and over 500 Nostr apps running in more than 40 countries around the globe now.
Nostr’s Value4Value (V4V) model is all about plebs directly rewarding creators for the value they receive, no middlemen fees, no ads, just pure community-driven support using sats via the Bitcoin Lightning Network.
Adds four home feed content types: Pictures (NIP-68), Videos and Shorts
(NIP-71), and Torrents (NIP-35), each with its own toggle.
Adds “New Picture”, “New Short” and “New Video” share targets, so media shared
into Amethyst opens the matching composer instead of a text note with a link.
Adds a bulk audience picker to the short-note composer: search people lists and
follow packs, review the members, then add them all at once.
Adds a poll results page with per-option vote counts and a filterable voter
list, replacing the feed card’s four-avatar preview.
Shows rich previews for comments scoped to external content (NIP-73), both in
the “replying to” line and as the thread’s title.
Offers a “Copy Original / Copy Translated” chooser when copying a note that has
been translated.
Opens the edit screen when a draft reply is tapped in a thread.
Redesigns the relay login permissions screen. Explicit exceptions, relays
blocked by your block list, and recent logins are now three separate sections.
Starts new accounts on “always log in” instead of deciding per relay.
Remembers a login for the rest of the session when you answer without ticking
“remember”, so a reconnect stops asking again.
Honors “always log in” for relays your own account does not publish to.
Makes the “reading someone I follow” toggle reachable — it sat behind a
first-party gate that could never be true.
Counts NIP-29 groups and Concord communities as rooms you joined, so their
host relays authenticate under “my relays and venues”.
Waits for an auth challenge to resolve rather than letting the fetch time out.
Mutes a public chat from a long press in Messages or from the channel menu.
Deletes (kind 9008) and archives NIP-29 channels, with the Buzz community UI to
match.
Keeps a channel invite’s replies, reactions and zaps inside the relay that sent
the invite, instead of broadcasting them to your outbox.
Derives Buzz channel invites from cached membership notices, so they stop
appearing and disappearing.
Redesigns channel invite cards as feed rows, with the person who added you as
the row’s author.
Shows the hosting relay’s name chip on relay group message headers.
Splits the Concord Control Plane’s stream key so a staff-held control_root
write-gates it (CORD-02 §2).
Closes the Concord CORD-05/06 invite lifecycle: an Invite List, a re-mint on
Refounding, and revocation.
Stops pinning Concord entities whose chain crosses a Refounding, which was
discarding their newer state on every refold.
Closes seven Concord soft-ban holes — a banned member kept control_root, half
the Control Plane never read the banlist, and the invite button still worked.
Scans NIP-19 entities, hashtags and legacy #[n] references without ICU. On
Android, Regex.matchAt copied the whole note content into native memory per
candidate, which grew a cold start to ~1.9 GB and got the app killed.
Scans note content by literal instead of restarting the regex engine at every
position in every note.
AOT-compiles the relay ingest path with a baseline profile. Release cold-start
ingest was spending 36× more CPU interpreting bytecode than verifying
signatures.
Demotes the ~650 relay and ingest worker threads below the UI thread, so the
connect storm cannot starve the first frames (~40% faster first paint).
Reclaims memory under heap pressure and stops leaking sandboxed WebView
Activities.
Bounds the duplicate-frame decoder cache in both size and age.
Stops blocking coroutine workers on synchronous OkHttp calls, which released
their CPU permits and starved the dispatcher.
Stops the outbox getting slower with every publish — it rebuilt an immutable map
per send, copying every pending entry.
Stripes the subscription-state lock per relay, ending the ANR convoy that had
37 of 52 workers spinning on one lock.
Memoizes Concord guestbook envelope opens, so the fold stops re-decrypting the
whole buffer on every arrival.
Caches the painter on its first miss in painterRes.
Optimizes the proof-of-work mining hot loop for the Android runtime.
Skips the ~220 ms system call when the app locale has not actually changed.
Confines the Blossom cache probe and server resolver to the IO dispatcher, and
re-probes it when the toggle flips.
Releases dead subscription rows, so connect and disconnect stop scanning every
subscription ever created.
Prefetches NIP-73 external-content preview URLs so those cards stop popping in
mid-scroll.
Adds fixed-size hex codecs for 32- and 64-byte values.
Settles the keyboard inside navigation, so leaving a screen mid-animation stops
stranding imePadding across the whole app.
Routes the draft-saving editors through KeyboardAwareBackHandler, so a
predictive back gesture no longer races the IME close.
Raises the keyboard again when you tap a field in an embedded tab that was
already focused.
Pads for the soft keyboard in full-screen napplet hosts on Android 15+.
Fixes the crash when switching between two pinned web-app tabs.
Stops drawing a blank parent card above a top-level community post.
Fixes Cashu wallet balances reading low: proofs are now backfilled past the
relay’s page cap and history is paged.
Keeps PDF previews stable — the page ratio is cached, so scrolling back no
longer collapses the card and replays the grow-in animation.
Stops rendering non-media NIP-94 files as video.
Repairs imeta MIME types written as a bare subtype, so those images can be
shared again.
Works around a fatal media3 crash on Low-Latency HLS streams.
Drives the “Can’t reach this relay over Tor” banner from live socket state
instead of a bare six-second timer.
Stops a lone repost from being bundled into the always-on service notification,
where it inherited the ongoing flag and refused to swipe away.
Fails push registration loudly on an HTTP error, instead of caching a token for
a device that will never receive anything.
Listens for location only while foregrounded, and fixes the meter that reported
7 hours of listening against 9 seconds of foreground.
Excludes quote characters from parsed URLs.
Fixes the OpenGraph meta parser losing every tag after an apostrophe inside a
comment or script, which broke link previews on some sites.
Requests the follower-count provider’s kind 30382 cards, so the count stops
rendering as --.
Gives the invite roster line’s member count its unit, so a bare number no longer
reads as counting the avatars beside it.
Removes the recent-poster facepile from Concord and Buzz channel rows.
Renders every NIP-71 video subtype through the shared interface.
Reworks the chat bubble reply swipe on lower-level pointer APIs, so it only
claims the gesture once the motion is clearly horizontal.
Turns the default log into a boot narrative instead of a firehose.
Converts the drawer’s hidden-count to a plural, fills the untranslated backlog
for Czech, German, Swedish and Brazilian Portuguese, restores placeholders
dropped from German and Polish plurals, and drops an unused plural.
Enriches the DM composer and message list: emoji picker with custom emoji,
@mentions, reply-quoting with jump-to-original, Nostr-native GIF search, rich
message rendering, per-message image quality, and encrypted file uploads.
Redesigns Settings as a searchable accordion of labeled cards, with
expand/collapse-all and a filter over titles and keywords.
Brings the profile screen to parity: banner, rich-text bio, a CLINK offer field,
six new tabs (Followers, Following, Relays, Bookmarks, Yours, Zaps received) and
header actions.
Adds a guided “save your keys” step on first run and a key backup in Settings.
Android gets a soft nudge after signup.
Loads metadata and reactions only for what is on screen, through the shared
finders in commons, and unsubscribes when it leaves.
Enables the master notification switch when the OS permission is already
granted.
Publishes Windows arm64 and Linux arm64 desktop builds.
Adds Trusted Lists (kinds 30392–30395), the aggregate counterpart to NIP-85
Trusted Assertions, and indexes their labels for NIP-50 search.
Fixes a SharedKeyCache collision that could return one peer’s shared secret
for another peer’s message, and compares MACs in constant time.
Measures NIP-66 relay health from traffic the client already makes, streams
probe verdicts as relays answer, checks read and write separately, lets a
monitor publish what it learned without dialling, and merges verdicts into the
record they replace instead of overwriting it.
Measures rtt-open as the transport handshake, not the time the call spent
queued in the dispatcher.
Records sync coverage per kind rather than one interval per filter, keys its
persistence with a typed band, closes a drained leg, and terminates a paged walk
against a relay that ignores until.
Strikes a host out and tracks its unreachability with publish-safe semantics,
so a dead host stops being retried at the same rate as a live one.
Sizes negentropy reconcile windows from the caller’s own index, states the
relay’s cap, and lets a caller decline an id before its body crosses the wire.
Normalizes every accessory timeout to an idle window, drops the maxTotalMs
ceiling that cut healthy fetches, and stops fetchAllPages cropping a streaming
page.
Stops COUNT inheriting the REQ page size, which capped a count at 500.
Suspends the incoming-message chain down to SubscriptionListener.onEvent, so a
consumer that cannot keep up no longer blocks every shared worker.
Compares every filter in FiltersChanged, not just the first.
Fixes an InProcessWebSocket race that delivered a connect-time AUTH challenge
before onOpen.
Adds StoreQueryContext, carrying the NIP-42-authenticated caller identity into
observer-relative stores.
Adds a NIP-50 search grammar (quoted phrases, negation) with weighted field
extraction, and shares the store-semantics rules across implementations.
Parses metadata leniently everywhere, and recovers blank, single-element and
malformed kind-0 content instead of dropping the profile.
Parses ServiceType without splitting on a separator that may not be there.
Declares pointer hints on Report, ChatMessage, Classifieds and ChannelCreate.
Refreshes created_at while mining, so a post that takes minutes to mine does
not publish stale.
Decouples the LocalCache and Account god classes into single-purpose
collaborators, 3,800 lines lighter, with no behavior change.
Adds a :baselineprofile module that records a real startup journey, replacing
the hand-authored profile’s wildcards.
Notarizes the macOS DMG and verifies it, adds libegl1 to the arm64 .deb
dependencies, and moves the Homebrew and Winget bumps onto a maintainer machine.
Shrinks the mirror-sync throughput corpus on CI, which had been timing out the test-geode job for weeks.
Confines the QUIC stream drainer to the producer’s event loop, deflaking it
under parallel test load.
Hardens workflow-ship.sh and pins it with a regression harness.
Adds three store-implementer skills: event store semantics, NIP-85 trusted
assertions and searchable events.
Bumps 30+ dependencies plus Gradle, Compose, Firebase, Media3, Ktor and OkHttp.
Opens Nostr web apps (NIP-5D napplets) and static websites (NIP-5A nSites)
directly inside Amethyst, rendered in an isolated, keyless sandbox process that
cannot reach your private key, storage, or data.
Adds an in-app Browser — a drawer entry and pinnable bottom-bar tab — with an
omnibox address bar, autocomplete, history, favorites, recents, and captured
favicons. The address bar is drawn by Amethyst, never by the page, so its URL
cannot be spoofed.
Adds “Log in with Amethyst”: nSites open with a NIP-07 window.nostr
provider, so standard Nostr web apps can sign in and request signatures as your
active account — consent-gated, sign-only, and scoped per site.
Lets web apps, with your permission, pay through your wallet (NWC), run live
relay subscriptions and queries, and read your identity (profile, lists, zaps,
badges) — every capability brokered and permission-gated (once / this session /
always). Payments always prompt with the amount shown.
Pins favorite web apps to the bottom bar as embedded, swap-in-place tabs that
stay warm between visits.
Discovers web apps: the empty browser suggests a curated list plus nSites and
napplets published by people you follow, and profiles gain an “Apps & Sites”
tab.
Adds a Connected Apps / permissions screen to review and revoke what each app
can do.
Routes nSite web traffic through Tor by default when Tor is active, with a
per-site onion/globe toggle.
Gives each account its own web storage — cookies, logins, and site data no
longer leak between the accounts on your device. Sites you were already signed
into are signed out once; signing back in stores the session under the account
you are using, and switching away and back keeps it.
Scopes granted permissions per account too, so each app asks once more under
each account you use it with. A grant by one account no longer applies to the
others.
Adds Concord: an end-to-end-encrypted communities protocol with channels,
membership, invites, roles, moderation, and history — reachable from a hub in
the drawer and pinnable to the bottom nav.
Creates and edits communities with encrypted icon/banner, relay editing, and
channel management.
Invites and joins via minted invites with QR codes, tappable invite links,
paste-to-redeem from Search, deep links, and direct member invites.
Chats in channels with a rich composer (@mentions, custom-emoji autocomplete,
reply preview), encrypted image messages, reactions, replies, and typing
indicators.
Adds threaded replies (inline or minichat modes) and delivery ticks for your
own messages.
Groups channels by community in Messages with last-message previews, unread
dots, facepiles, live typing, and per-type load toggles.
Adds moderation: ban/unban with read-time enforcement, role grants, a “Make
admin” toggle, and a full member roster. A ban hides a member’s posts for
everyone else; removing their access to the community’s keys takes a
Refounding.
Backfills channel history across epochs, paging back to the true start of a
channel.
Surfaces Concord replies and reactions on the Notifications tab with a
community pill.
Lets authors edit their own channel messages (kind 3302). Latest edit wins,
and it is non-destructive, so reactions and replies stay attached. Only the
original author’s edits take effect.
Browses Nostr git repositories in-app: a Git Repositories feed and a per-repo
screen with README and Code tabs.
Reads code with branch/tag switching, file search, image preview, commit
history, syntax highlighting, and word-level diff highlighting.
Reviews patches and pull requests with computed diffs and status actions; PR
updates surface on the repo screen. The code browser needs a repository with an
http(s) clone URL.
Manages issues: Issues and Patches & PRs tabs split by open/closed, issue
labels with filtering, and a full-screen New Issue composer.
Edits a repository announcement from the repo screen, bookmarks repositories,
and filters the feed to your own repos.
Adds a project-home dashboard with stats, languages, recent activity, and
last-commit rows.
Adds Location Channels: geohash-based public rooms that interoperate with
BitChat, browsable from a dedicated drawer list and pinnable to the bottom nav.
Posts under an unlinkable per-area anonymous identity, or opt in to post as
your real account. An optional nickname survives restarts, but it is a single
handle reused in every area — setting one links your posts across areas.
Teleports to any place from a map picker or the feed-filter dialog to read and
post to distant rooms, and follows a teleported place to keep its feed.
Reacts, zaps, and replies on location messages, with a “live near you” bubble
on Home surfacing nearby rooms.
Adds a “pick on map” location picker to the short-note and all other composers.
Adds Buzz: a self-hosted workspace where humans and AI agents build together on
a relay you own, built on the NIP-29 relay-group family with plaintext content
so the relay can run search, audit, and workflows. Reachable from a “Buzz
Workspaces” bottom-nav tab and the drawer Feeds list.
Renders workspace channels natively and composes messages; sections a community
into Channels, Forums, inline DMs, and an Agent Console; and renders forum posts
as Concord-style threads with the full chat composer.
Adds an agent-owner console with cost and personas tabs, an agent-fleet cost
aggregator, live observer telemetry, persona create/edit, and NIP-OA attestation
issuance.
Adds live typing indicators, presence dots, collapsible sections with unread and
stars, a workspace canvas viewer and edit composer, and a bot “Working…”
indicator.
Invites people to a channel or community and mints invite links; redeems invite
links (intercepted into the in-app browser) and auto-invites mentioned
non-members.
Wires Buzz direct messages end to end, titles a DM by its participant, and
surfaces Buzz DMs in the Notification feed rendered as messages.
Discovers workspaces and DMs via the relay’s own kinds, imports workspace
channels from a relay in “Find groups”, and routes Tor workspaces to clearnet
when needed.
Adds a shared Agent Work board. Any channel member files a task, upvotes
to reprioritize it, and watches the workspace’s agent carry it to a pull
request. Jobs that ship directly and gated workflow runs fold into one board,
grouped by Needs approval / Working / Up next / Shipped.
Approves or denies a gated run in place. The “Approve & open PR” step
authorizes a push and PR, but never merges or deploys. Adds a confirm step, an
approver and workflow-definition picker, and Buzz Agent Persona editors for
model, provider, and runtime.
Asks before adding you to a channel someone else put you in (Accept / Ignore /
Leave). Narrates channel changes as plain-language system lines: “Bob added
Alice”, topic, visibility, and TTL changes, and more.
Notifies the requester when their agent job finishes or fails. Lets a
self-hosted geode relay be the private Buzz workspace via a member-and-agent
membership policy.
Redesigns message rendering across every chat — DMs, public chats, groups, and
communities — with modern bubbles, swipe-to-reply, send motion and press
feedback, per-author name colors, jumbo emoji, day headers drawn above the
messages they introduce, and a timestamp on the last message of each author
run.
Replaces the message 3-dot menu with a compact two-stage long-press sheet that
unpacks wrapping reactions and zap-amount presets in place.
Renders channel admin events as centered system messages, and hides a reply
quote when it targets the message directly above.
Replaces the Messages FAB speed-dial with a full-screen, color-coded
new-conversation chooser, and adds a Messages settings screen with a
grouped-by-relay view and per-type load toggles.
Warns about DMs from senders reported by people you follow: flags a reported
counterpart on the chat-list row and inside the room, with a per-user
report-warning flow.
Redesigns push notifications into per-kind, observable, richly-rendered
notifications that resolve inline @npub mentions to display names, render an
inline image link as the big picture, and attribute a reply’s parent to its real
author.
Adds push notifications for Buzz DMs and for bare reactions and reposts to your
notes, with repost-mute parity. Auto-dismisses a tray notification once its
event is read in-app.
Rebuilds the in-app Notifications tab with infinite-scroll paging via a
look-ahead buffer, time-based history paging with in-feed load markers, and
auto-retry of stalled or faulty relays with an actionable relay detail.
Lets other apps and websites sign through Amethyst for the first time
(NIP-46): connect by scanning or pasting a nostrconnect:// code, and keep
signing in the background — whether your key is stored directly in Amethyst or
delegated to an external signer like Amber (NIP-55).
Asks for informed consent before authorizing an app — showing its name and
icon, which account will sign, the exact permissions, and an event preview —
with per-account sheets and one-tap batched approval.
Manages connected apps from a dedicated screen with per-app relay list, live
health, time-bound grants, and instant “forget this app”.
Adds interactive relay login prompts (NIP-42): choose Once / Always / Never
per relay, with venue-aware prompts for public chats, communities, and live
streams, and one-tap rules to trust relays used by people you follow. Apps
connected through the remote signer now ask before signing a relay login,
instead of approving it automatically under “Let’s be reasonable”.
Discovers Web-of-Trust score providers via NIP-85 and shows hop distance and
follower count on trust cards. Computing the scores — crawling the social graph,
reverse-follower crawling, and publishing NIP-85 cards — is done by the amy
command-line tool, not the app; see the Cli section.
Adds proof-of-work (NIP-13) publishing: a fire-and-forget mining queue with
per-account difficulty and per-category settings, scheduled-post mining, and
per-post overrides, shielded by a foreground service and mined across half the
device’s cores.
Adds NIP-77 negentropy sync as a first-class capability, with deletion
(NIP-09/62) propagation so scoped syncs no longer strand deletions.
Shows PoW mining progress, and surfaces PoW, OpenTimestamps, and location
markers as tap-to-explain pills in the note header.
Adds Podcasting 2.0: renders shows in detail and thread views, surfaces
episodes in the merged podcast feed, and plays trailers.
Shows person credits as real Nostr profiles, soundbites, in-app chapters, a
transcript viewer, and a Top Supporters leaderboard.
Adds per-episode reactions and NIP-22 comments, a Podcast Bookmarks screen, and
value-for-value Lightning splits paid per-minute during real playback.
Adds in-app podcast authoring: create and edit shows, episodes, and trailers
from an authoring hub, with a value-for-value split editor that adds Nostr
recipients by search. Verifies NIP-F4 podcast authors against their kind-10064
counter-claims.
Adds BOLT12 zaps: self-verifying kind-9736 events that prove a real BOLT12
Lightning payment. They carry a settlement proof instead of relying on an
LNURL receipt. They fold into the same zap total and reactions row as Lightning
zaps, with anonymous and receiptless (pay-only) variants. Only cryptographically
verified proofs count toward the total.
Publishes and edits your own BOLT12 offer list (kind 10058) from an in-app
editor. The list is cached, kept live, and restored across restarts.
Pays a recipient’s published offer. Hand it to an external wallet as a bitcoin:?lno= (BIP21) intent, or pay in-app over a NWC wallet that supports
it.
Sends zaps over NWC, using the new pay/receive methods
(nostr-wallet-connect/nwc#2). Prefers BOLT12 over Lightning when the recipient
offers it and the wallet supports it, and falls back to a Lightning zap
otherwise.
Verifies payer proofs cryptographically: payment-hash preimage, invoice and
proof signatures, and BOLT12 merkle reconstruction of selectively disclosed
fields. Dims and does not count a proof that can’t be bound to the offer.
Adds a Cashu wallet setup wizard: find-or-create with cross-relay discovery,
mint suggestions, and a CashuMints screen; the wallet auto-publishes on mint
add/remove.
Claims P2PK-locked Cashu tokens (NUT-11). Matches the lock against your wallet
or identity key, and redeems all-or-nothing. Gives a clear error when a token
is locked to a key this wallet can’t sign for.
Adds a setting to hide the on-chain (Bitcoin) wallet, including from zap
buttons.
Prefers NIP-44 encryption for NWC when the wallet advertises it. Adds a NWC-07
deep-link pairing helper. Posts a tray notification for incoming non-zap
Lightning payments.
Adds a resource-usage ledger: on-device battery and data accounting across
relay connections, media, HTTP, proof-of-work, Tor, calls, decrypts, and
remote signs, with per-screen foreground time and reconnect-churn tracking.
Optional NIP-17 reports mail the summary to yourself.
Presents it on a usage screen with stat tiles, a trend chart, proportion bars,
cellular-first bars, a Tor card, actionable insights, and a live memory card.
Adds a master switch for the always-on background notification service with
per-account participation, a cost card that links to notification settings,
and a distinct status-bar icon.
Scales LocalCache pruning to the OS memory-pressure level, and trims feed
lists, rich-text/robohash/relay-info caches, the image cache, and the player
warm pool under pressure.
Adds theme customization: pick an accent color (with a swatch picker), font,
and font size. The accent now drives Material 3 containers, buttons, FABs,
switches, unread dots, selected-reaction highlights, verified NIP-05 / image
marks, and the Following badge.
Redesigns UI Preferences into grouped in-screen options with live font
previews, and adds a settings search filter in the app bar.
Adds a Blossom media file manager: browse and manage stored blobs with per-file
controls, mirror and /media toggles, an app-level “Sync all” with progress,
and BUD-07 confirm-then-pay mirroring for paid servers.
Extends the Blossom manager with a gallery grid (video thumbnails and a
full-screen zoomable viewer) and a per-file detail sheet. Adds an importer that
copies blobs from other Blossom servers into yours. Falls back to a verified
download-and-reupload when a target has no /mirror.
Redesigns the Media Servers screen as a single auto-saving canvas with a
reorderable priority list and cached health probes.
Redesigns the bottom-bar setup with a live preview, drag-to-reorder, and real
favicons; the default bar becomes Home, Messages, Wallet, Browser,
Notifications.
Adapts the app shell to large screens: tier-scaled navigation transitions, a
reading-column width cap on wide panes, and a two-pane Messages layout.
Nicknames people with NIP-85 contact cards (kind 30382) signed by your account
key. The nickname shows above their real display name on the profile and
supports custom emoji.
Adds fitness support: renders POWR strength workouts (kind 1301) and exercise
templates (kind 33401) as cards, and merges close-by Health Connect sessions of
the same type.
Renders Birdstar bird detections (kind 2473) with common-name titles and
Wikidata links, surfaces Birdex life lists on home and profile, and renders PS1
memory-card saves (kind 38192) with an animated BIOS icon.
Adds a compose signature pre-filled in text-based post screens, and an optional
subject/title field in the short-note composer.
Renders NIP-30 custom-emoji reactions as an avatar badge, a lone zap/nutzap as
a large activity card, and NIP-84 highlights from web highlighter clients.
Supports NIP-51 mute-list hashtag entries and public-chat reply notifications.
Modernizes the Privacy, Profile UI, Home Tabs, and Calendar Reminder settings
screens into grouped in-screen options.
Adds “Share as QR” for a note, with a choice of note or naddr payload and an
image thumbnail for image-only notes.
Resolves NIP-05 identifiers (including Namecoin .bit) in the @-mention
popover, wiring them to nostr: mentions.
Speeds up napplet/nSite opens by overlapping WebView init, prefetching blobs in
parallel, and fast-serving content-addressed blobs from cache.
Substantially faster GrapeRank crawls (background IO, mass pre-connect with
cached DNS, batched contact reads, parallel outbox fetches, early dead-relay
pruning) and faster scoring via Gauss-Seidel sweeps over a compact integer
graph.
Speeds up NIP-77 reconcile with direct-built wire frames (~2.5x), O(1) range
fingerprints, a live negentropy index, and an allocation-free idle watchdog.
Prefetches media and pre-parses note text ahead of the viewport, adds a k-way
merge for the home feed, and pins indexes for multi-author queries.
Adopts a caching event decoder across Android/Desktop/CLI, batches Schnorr
verification off the receive path, and keeps light/dark resolution O(1) after
an accent change.
Parallelizes Blossom “Sync all”, prefetches a joined group’s history, and mines
proof-of-work on half the device’s cores.
Orders NIP-50 relay search by bm25 relevance and scales search and tag-watcher
queries with corpus size, picking the SQLite filesystem driver by cost and
materializing indexes at runtime.
Removes live-path allocations in LiveEventStore and FilterIndex (and on the
frame/search paths), and snapshots FilterIndex with a persistent map.
Normalizes accent theming: contrast-picks onPrimary so filled buttons/FABs stop
washing out, bases light/dark on background luminance, and fixes accent
regressions.
Keeps live HLS streams playing and caches only proven on-demand HLS; shows a
browser-fallback overlay when a decoder stalls and pauses looping videos after
5 plays.
Adds an HTTP/2 keepalive ping to stop stale-connection image stalls.
Hardens the relay client: enforces blocked relays on every REQ/COUNT/publish,
backs off from REQs relays repeatedly refuse, drops relays that fail hard
during crawls, caches each relay’s advertised LIMITS, and fixes reconnect
backoff on network/transport changes.
Shows and edits Marmot (MLS) group icons in the feed and in group metadata,
interoperable with other Marmot clients.
Opens zaps and reactions in their own thread view, turns Notify chips into bell
mute-toggles that list every thread member, and replies with kind 1111 to
Amethyst’s own kind-1 thread roots.
Adds search, a local filter, and a top-nav feed filter to the App
Recommendations screen, and shows a website’s favicon and domain across every
browser-connected app view.
Fixes nutzap relay routing to receive/advertise on inbox/DM (kind 10019)
relays instead of outbox.
Fixes Concord invite handling (revocation, keyless CORD-05, clearer failure
copy, no hang on bad links, skip re-join) and channel rows stuck on “No
messages yet”.
Persists the Concord community list and loads pinned communities from their own
relays so cold boot no longer refetches, shows channels on Messages as soon as
the control plane folds, warms channel previews so the list fills without opening
each channel, and rank-gates the Ban/Remove affordances (CORD-04).
Sizes the video player box so live streams stop rendering black bars, and
enforces the decoder budget when acquiring players.
Stops stamping our client tag on someone else’s event template so external
signers sign it unchanged.
Keeps calendar RSVP buttons on a single line, drops dead top padding on Home
when there are no live bubbles, and modernizes the Zap the Devs donation card.
Rejects NIP-29 group state not signed by the relay, opens group posts in the
group chat, and fixes subgroup edit safety and pinned-message jump.
Makes tapping a message timestamp open delivery info instead of toggling the
time format, and right-aligns your own messages.
Recovers a media file’s type from its extension when the imeta MIME is
malformed, and moves several disk reads (boot receiver, signer policy) off the
main thread.
Serializes account construction so concurrent loaders can’t build duplicate
accounts.
Routes Onion-Location through the Android app’s HTTP clients and maps Tor/Arti
errors to accurate SOCKS reply codes.
Extracts the rich-text renderer and many event cards (calendar/RSVP, podcast
atoms/splits, relay discovery, code snippet, ecash mint, activity, Git
diff/status, and more) into shared commons so Desktop and Android render
identically.
Sends pictures in minichat thread replies (encrypted in Concord, plaintext in
public chats). Resolves @-mentions in the minichat composer and tray
quick-replies. Adds p tags for people cited in kind 9/11/1111 and Buzz stream
messages, so mentions notify and resolve.
Stops the inline audio player from painting over the note below it. Marks
every room type read from the Messages “mark as read” action.
Fixes numeric HTML entities in link-preview meta tags. Routes kind-39005 by tag
shape, so Buzz thread summaries no longer parse as NIP-29 pin lists.
Shortens over-long translated strings across 23 locales and fixes duplicate
and CDATA translation issues.
Redesigns notifications with a reworked inbox and native OS toast
notifications.
Adds NIP-42 relay AUTH with an inline Once / Always / Never approval banner and
persisted grants.
Makes NIP-17 private DMs reliable: resolves recipient inbox relays, fetches DM
relay lists and account/Blossom config from outbox relays, and stops falling
back to connected relays.
Adds Web-of-Trust score badges, Follow Packs (NIP-51) discovery with one-tap
follow, note scheduling, opt-in NIP-37 draft sync, and a hashtag-spam filter.
Adds a Privacy Lock: gate the Messages and Wallet columns behind a password,
with an auto-lock timeout. It is a screen gate, not encryption at rest —
messages continue to sync while it is locked.
Renders rich text through the shared core (removes the desktop-only fork) and
ships as a Flatpak bundle.
Adds moderation & safety: mute/block and NIP-56 report actions in the note menu
with feed, thread, and profile enforcement (previously a silent no-op), NIP-36
content-warning blur with tap-to-reveal, a sensitive-content toggle, and
management screens — with snackbar feedback and zero-relay send warnings.
Adds NIP-88 polls (render, vote, create) with a “Polls” search facet, and
unifies the note ⋮ overflow and right-click menus.
Fixes a desktop-cache race that could wipe the follow list, and makes sidebar
navigation replace the detail overlay instead of hiding behind it.
Adds query verbs: amy fetch (one-shot with code-mode outbox resolution), subscribe (live NDJSON), count (NIP-45), and outbox USER (NIP-65).
Adds amy sync — NIP-77 negentropy reconcile with deletion propagation — and amy event / amy publish for raw and pre-signed events.
Adds amy encrypt/decrypt (NIP-44/04) and amy gift wrap/unwrap (NIP-59).
Adds amy blossom (upload/download/list/delete/check/mirror, NIP-B7) with a
live interop smoke test.
Adds amy git (NIP-34), amy podcast and amy podcast20 (Podcasting 2.0 with
V4V splits).
Rounds out amy git to full NIP-34 parity: browse/cat/log over
smart-HTTP, init from a local checkout, label (NIP-32), apply a patch to
the working tree, and grasp list/set (GRASP server list, kind 10317).
Adds amy buzz for block/buzz workspaces (channels, DMs, invite-link
redemption), verified against a live Buzz relay.
Turns amy into the Buzz workflow/agent runner. buzz agent serve/up/ doctor run gated or parallel-backlog agents in isolated git worktrees that
open PRs. buzz workflow trigger/run/approve/deny drive the human
approval gate.
Adds amy bolt12 (NIP-B1): decode offers and payer proofs, verify a zap,
get/set a kind-10058 offer list, and a two-step intent → zap send.
Adds the amy cashu wallet (NIP-60/61): wallet lifecycle, balance, mint,
receive/send (LN / token / nutzap), and maintenance.
Adds amy admin (NIP-86 relay moderation) and amy serve (run a relay by
embedding geode).
Adds NIP-46 remote signing: amy bunker server, amy login bunker://…, and amy login --nostrconnect, gated with --perms and interactive approval.
Adds the amy graperank suite (crawl/score/publish/followers/rank/…),
account-less crawl/score, and NIP-85 card publishing.
Adds NIP-13 proof of work (amy pow, --pow on posts), amy kind, amy nip, amy namecoin, amy status, and amy logoff.
Expands amy nsite/napplet with publish, serve, and list.
Switches the default event store to SQLite and hardens the output contract:
single-line --json, exit codes 0/1/2/124, publish results carry each relay’s
rejection reason, and read-only verbs run without an account.
Adds NIP-77 negentropy sync (pipelined worker pool, multi-connection fan-out,
bounded-memory streaming, LiveNegentropyIndex) and NIP-09/62 deletion
propagation.
Adds NIP-13 proof-of-work publishing: a cooperative-cancellation miner and a PoWNostrSigner decorator that composes with any signer, plus NIP-59
gift-wrap mining on the outer wrap only.
Adds NIP-66 RelayReachabilityStore — a durable, shareable dead-relay cache
backed by kind:30166 events.
Adds the Concord/CORD protocol foundation (key derivation, envelope layer,
authority resolver, roles/moderation, CORD-05/06/07) and the NIP-5D/5A
trust-boundary core (capability model, permission ledger, broker, wire
protocol).
Implements Marmot (MLS-over-Nostr) group icons byte-for-byte with the
mdk/whitenoise scheme, and fixes SecretTree ratchet preservation across
restore.
Adds an OutboxDispatcher to fetch profile/contact events via each author’s
outbox relays, and richer NIP-89 app-handler parsing.
Adds the Buzz protocol surface (~78 event kinds spanning NIP-OA owner
attestation, NIP-AM agent turn metrics, personas/teams/managed agents, streams,
DMs, forums, presence, and moderation), verified against vectors generated by
Buzz’s own Rust reference.
Adds the BOLT12 zaps protocol layer (NIP-B1): kind-9736 zaps, kind-9737 zap
intents, kind-10058 offer lists, full spec validation, and a payer-proof
verifier with BOLT12 merkle reconstruction. NWC gains pay/receive methods.
Widens NIP-50 search indexing to more event kinds and tag-borne text. Indexes
only the public petname and summary on contact cards (kind 30382), never the
encrypted fields.
Adds relay-to-relay mirroring with strfry-router parity: a two-phase model
(NIP-77 negentropy sync catch-up plus a live REQ tail), down / up / both
directions, per-upstream mirror filters, and relay-to-relay trust.
Keeps mirrors alive across upstream restarts with a retry pump and ping
keepalive, and advances the since-watermark correctly on reconnect.
Adds import / export NDJSON verbs and an optional no-full-text-search mode
(--no-search) for lighter deployments.
Adds [database] tuning knobs with periodic PRAGMA optimize, and validates
config knobs and mirror filters at boot.
Runs embedded in the CLI via amy serve.
Serves full-set negentropy NEG-OPENs from a live index and streams mirror
catch-up IDs instead of materializing them.
Adds relayBench, a head-to-head benchmark harness (geode vs strfry vs any
relay) measuring ingest, query, and NIP-77 sync over a shared corpus.
Enables a combined tag+kind+pubkey index, a cost-based filesystem-driver pick,
and runtime index materialization, with new tag∩author and driver-selection
relayBench shapes.
Ships a release pipeline: a GHCR Docker image, .deb/.rpm packages with a
bundled JRE and systemd unit, a portable jlink’d tarball, and a Homebrew
formula. Adds --version/--help and a boot smoke test in CI.
Lets operators pick any Quartz IEventStore backend via [database].backend:
SQLite (default), filesystem, or a custom store loaded by class name.
Rebuilds the Tor/Arti native library for the SOCKS reply-code fix, ships a
Homebrew formula for amy, and seeds the Gradle distribution from a verified
mirror in the web sandbox.
Adds NIP-29 group-chat test coverage across every assembler, filter shape, and
relay integration.
Targets JVM 17 for Quartz, upgrades AGP, and replaces the abandoned
android-test-report action with mikepenz/action-junit-report.
Adds a coding standard banning raw invisible/bidirectional Unicode in source
(Trojan-Source, CVE-2021-42574) and replaces existing occurrences with \u
escapes.
After 18 days in the NICU we finally got to bring baby girl home today. After a truly harrowing journey these past months, our family is finally all together at home.
wanted to travel 🧳 to county #17 to support the grassroots adoption but my wallet said, “focus on yourself and your village, King 👑”
Sats Earned: 155k
Zaps Received: 2
Hofer99
Aug 13, 2026 21:17
Flat earthers why does the sun curve accross earth like that? Or are eclipses fake too?
Tried tagging ceo of flat earth Benila Wehrman but amethyst wouldmt let me. Maybe he blocked me. He hates easy questions.
Divine Mobile is a decentralized short-form mobile video app that revives Vine’s 6-second looping format with human-made content only. This release adds Light Mode, in-app Nostr badge creation and management, improved stop-motion editing with crop/rotate/flip tools, better draft and clip library controls, synchronized captions, smarter feed recommendations based on watched content, account and profile management improvements, cross-device sound saving, improved accessibility and reduced-motion support, plus fixes and improvements to uploads, deleted videos, bookmarks, notifications, localization, privacy, and security. This was the latest release, and there was also a pre-release (1.0.22) last week.
§2. Amethyst - v1.14.0 (New Share Intents, Faster Start)
Amethyst is a full-featured Nostr client for Android, with support for social feeds, chats, channels, media, zaps, relays, and many NIPs. This release significantly expands its functionality with NIP-84 highlights, new media feed types, improved NIP-29 community support, better relay authentication and monitoring, discoverable key backups, Trusted Lists, and faster startup performance. It also includes extensive reliability, security, and performance improvements across messaging, relays, media handling, wallets, and account management.
Earthly is a Nostr-based collaborative map editor designed for turning local, community-sourced knowledge into shared maps. Rather than being just a conventional mapping tool, it uses Nostr to coordinate and publish map-related information in a decentralized way, allowing users to contribute and discover geographic data without relying entirely on a centralized mapping platform. The v0.1.5 release adds Discover functionality and support for large NIP-46 signing, making it easier to discover content and interact with remote signers for Nostr authentication.
Amber is a Nostr event signer for Android that securely manages Nostr keys and allows other apps to request event signing without exposing private keys. This release improves performance and reliability by speeding up the Applications screen, restoring complete account lists when switching accounts, fixing a crash in activity history, and improving relay-status notifications during bursts of network activity.
Mostro is a production-ready, censorship-resistant, non-custodial peer-to-peer exchange built on Nostr and the Lightning Network, enabling users to trade without giving custody of their funds to a centralized exchange. This makes NIP-44 the default transport, improves orderbook and payout reliability, prevents duplicate buyer payouts, and fixes issues around maker bonds, timeout handling, and settled orders.
Jumble is a user-friendly Nostr client for exploring relay feeds, interacting with Nostr content, and communicating through features such as DMs and reactions. This release adds customizable notification tabs and filters, desktop Google sign-in, and text copying, while improving DM attachments, Blossom uploads, link previews, image downloads, embedded-content security, and startup reliability; it also fixes disappearing desktop sessions and preferences, missed relay interactions, touch-menu issues, and mention deletion bugs.
YakiHonne Mobile is a decentralized Nostr-based social mobile platform for publishing and discovering content, with a focus on censorship resistance, privacy, and long-form writing. This adds AI-powered writing tools including Ask AI, Second Reader, and Energy Mapper, along with creator subscriptions, in-app plans, encrypted key backup and recovery, Google sign-in, gift-code redemption, and a new Fluid visual mode; it also redesigns navigation and improves search, discovery, profiles, note statistics, performance, and onboarding.
YakiHonne is a Nostr client focused on social networking and long-form publishing, allowing users to create, discover, and monetize content on Nostr. This release delivers a major redesign with a new interface, premium plans payable by card or Lightning, a revamped Yaki Points rewards system, a rebuilt article editor with Nostr embeds and PDF-to-Markdown import, AI writing and Second Reader tools, Google login and key recovery, improved publishing and mobile experiences, content statistics, faster performance, and new language and translation options.
Nymchat is an ephemeral Nostr chat client that combines geohash-based and Bluetooth mesh communication with Bitchat bridging for pseudonymous, temporary messaging. This release adds a WYSIWYG text editor for easier message composition and introduces image and video previews, making multimedia communication more convenient. This was the latest release and there were also a lot more releases last week.
Mostro Mobile Client is a secure mobile app for trading Bitcoin peer-to-peer through the non-custodial Mostro platform over Nostr and Lightning. This version adds taker reputation visibility, migrates peer-to-peer chats to the newer kind-14 chat envelope with improved security, adds clearer order-book filter indicators and new EUR payment methods, and introduces a Mortsom automation contract, while fixing chat persistence, subscription backlogs, authentication, reputation handling, and several UI and order-state issues.
Nostrord is an NIP-29 Nostr client focused on group-based communication, forums, and direct messaging. This release adds synced group muting, improved NIP-46 login, NIP-4e encrypted DM key management and device pairing, chat-history backup, DM attachments/reactions/replies, better group and relay handling, forum-style threads, and improved notifications, while fixing several connection, signing, and rendering issues.
NoorNote is a Nostr client for interacting with the decentralized social protocol, with support for profiles, statuses, notes, and classified listings. This release adds NIP-38 user statuses to profiles and NIP-99 classified listings throughout the app, improves the visibility of private petname notes with clearer warning indicators, and fixes sideways scrolling for long draft text so the delete button remains accessible. This was the latest of the week, and there were also two more releases (v1.3.5 & v1.3.4) last week.
Sidecar is a browser-sidebar Nostr keystore and signer that securely manages Nostr identities, keys, wallets, relays, and site permissions while providing tools for signing, backups, account management, and privacy. Release v1.9.1 adds printable and scannable key backups, encrypted key recovery, an account overview, per-account relay settings, “Forget all sites,” improved payment handling, and a NIP-65 relay auditor, while strengthening wallet recovery, WebLN permission prompts, global name search privacy, and encrypted local drafts and payment notes.
Workstr Web is a static, local-first Nostr workout tracker PWA for recording and managing fitness sessions directly in the browser. Release v1.3.0 adds a monthly workout calendar with training statistics and accessibility improvements, introduces a Repeat Workout feature that recreates completed sessions while preserving their original structure and recorded weights, and reorganizes workout history by day with calendar-based filtering. It also fixes training streak calculations and ensures workout history and statistics correctly use the device’s local date. Although this was the latest, there were also the releases of v1.2.0 & v1.1.0 last week.
Flotilla is a Discord-like Nostr client built around the concept of “relays as groups,” providing group chats, threads, voice chat, pinned messages, and content sharing in a decentralized environment. This release adds long-form articles for content libraries and pinned resources, improves quote handling and comments, adds thread creation from chat messages, and includes fixes and improvements for voice chat, notifications, storage, synchronization, video tiling, themes, and native sharing.
Flotilla 1.9.1 is out — this release is the first release in which I do not resent the clankers for helping me:
re-write welshman’s app framework
migrate flotilla to the new version
fix many arcane and subtle bugs I would never have found
synchronize implementations across flotilla, zooid, caravel, and welshman
keep my documentation and skills up to date
The main highlight this time is the addition of long-form articles. I added this because they’re really useful as a basis for a content library and pinned messages, which were added last release.
Also, it’s worth mentioning that Welshman 0.9.0 (and 0.9.1) is out as well. This includes a complete re-write of the app framework to prevent mixing user data in the case of multiple logins. I also added @welshman/domain, which includes a very nice framework (inspired by applesauce’s factories) for parsing, validating, and writing nostr events. For example:
The welshman/app module is deeply integrated with the domain module, giving you nice stuff like this:
import {FollowList} from "@welshman/domain" import {Domain} from "@welshman/app"
```// Load the user's follow list```
```const reader = await app.use(FollowLists).forceLoad(user.pubkey)```
```
// Modify the user's follow list```
�EMPHWS2�
// Publish the updated event to relay selections defined by the writer class```
```const command = await app.use(Domain).command(writer)
await command.publish()```
You can read more at https://welshman.coracle.social/ or point your clanker at my welshman skills: https://gitea.coracle.social/coracle/welshman/src/branch/master/skills
Other changes:
* Re-work how claims work under the hood
* Fix storage and synchronization bugs
* Update welshman library to 0.9.0
* And long-form articles
* Fix quote loading, rendering, and comments
* Add "create thread" from chat message
* Fix voice chat bugs
* Fix notification bugs
* Improve video tiling and chrome
* Add ability to send logs to developer
* Add theme selector
* Add native sharing registration
Nostr Java is a Java SDK for the Nostr protocol that provides tools for creating, signing, encrypting, and publishing Nostr events to relays. This release fixes relay subscription routing so EVENT, EOSE, and CLOSED messages are delivered to the correct listeners, removes NIP-44’s dependency on JCE provider registration by using BouncyCastle’s lightweight ChaCha20-Poly1305 implementation, and adds NIP-44 v2 test-vector verification to prevent encryption regressions.
RSSNOTES is a Nostr relay and RSS-to-Nostr bridge that turns RSS feeds into Nostr profiles and notes, making external content available within the Nostr ecosystem. This release adds collapsible instructions, Nostr profile editing, and an import detail modal for a clearer and more manageable feed-import experience. This was the biggest release of the week, and the latest one was v0.1.4.
Buzz is a Nostr-based collaborative workspace where humans and AI agents build together on a relay you control, combining messaging, project workspaces, workflows, repository-aware collaboration, agent management, and shared tools. This release improves Projects navigation and collaboration, adds a workflow editor and in-thread workflow replies, enhances agent discovery and handling, improves notifications, relay reconnection, channel sorting, message links, and mobile interactions, and includes numerous performance, reliability, and UI fixes across desktop, mobile, and shared functionality. This was the latest release of the week and there was also another one (v0.5.17) last week.
Contributed by: Salman Mohammed, Wes, klopez4212, Taylor Ho, Will Pfleger, Tyler, Taksh Kothari, morgmart, thomaspblock, Luke Tornquist, Logan Johnson, Jude Edwards, Evan Chen, Matt Kursmark, Diem Nguyen, Matt Krueger, Matt Toohey
Iris Drive is a decentralized file-sync platform that uses htree for local, content-addressed storage and Nostr for identity, enabling peer-aware file synchronization across desktop and mobile devices without relying on traditional DNS, SSL, or CDN infrastructure.
Lightning.Pub is a Nostr-native Lightning node that lets users connect and share their Lightning nodes through Nostr identities with compatible applications. This release is a reliability-focused patch that fixes outgoing invoice payments getting stuck when LND does not provide a payment index, improving payment reconciliation, reducing premature refunds, and handling unknown or uninitiated payments more cleanly, with no API, configuration, or migration changes. This was the latest, and there was also the release of v0.0.37 last week.
Nostr VPN is a Tailscale-style private mesh VPN built around a FIPS-backed data plane. Release v4.1.8 improves cross-platform reliability by making paid-exit and peer discovery more resilient through public WebSocket bootstrap peers, and restores authenticated private-mesh sessions automatically after complete network path loss without requiring an app or daemon restart.
Napstr is a privacy-focused music-sharing platform that uses Nostr for decentralized, searchable music discovery and Tor onion services for private, temporary audio transfers, without relying on a central tracker or file server.
Nostr is built by plebs, for the plebs. If you found this Nostr recap helpful, consider supporting me, Nomishka, with a zap.
I’m committed to supporting Nostr, and I split a part of the zaps I receive for this note with the plebs mentioned in this recap for all their great effort. Thank you so much for being part of this journey. Let me know your thoughts about this Ninetieth Nostr Recap & share your tips and suggestions for the next weekly #NostrRecap and let’s keep #GrowNostr together.
Write a comment