<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-04-23T11:29:09&#43;02:00</updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by White Noise</title>
  <author>
    <name>White Noise</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec.rss" />
  <link href="https://nostr.ae/npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec" />
  <id>https://nostr.ae/npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec</id>
  <icon>https://blossom.primal.net/8732b3f504df751c4f4523252d959177f1a1aef152cf6078f531eb6517c8b2db.png</icon>
  <logo>https://blossom.primal.net/8732b3f504df751c4f4523252d959177f1a1aef152cf6078f531eb6517c8b2db.png</logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsp8fxv6l2gzhznyghdsrqfdc4hmyldqach7wr4fp96z5q9m7lj85qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wrd4wa8</id>
    
      <title type="html">The next White Noise release is out. End-to-end encrypted video ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp8fxv6l2gzhznyghdsrqfdc4hmyldqach7wr4fp96z5q9m7lj85qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wrd4wa8" />
    <content type="html">
      The next White Noise release is out.&lt;br/&gt;&lt;br/&gt;End-to-end encrypted video in every chat. Blocking that works everywhere. Database encrypted at rest. Three MDK security issues, closed.&lt;br/&gt;&lt;br/&gt;Still building. Still shipping. Read more👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqpsamgd96x2ttwda5hxefddejhsapdwfjkcetpwdjsynt948&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…t948&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Video is in. Blocking now applies everywhere a blocked user could surface. The offline experience is complete. The White Noise app database is encrypted at rest. And three security issues in the Marmot Development Kit are closed.&lt;/p&gt;

&lt;p&gt;If you missed the last release, you also got cross-conversation message search from the home screen and the ability to archive and unarchive chats. Both quietly changed how the app feels day to day, and both keep working in this release.&lt;/p&gt;

&lt;h2 id=&#34;video-2&#34;&gt;Video&lt;/h2&gt;

&lt;p&gt;You can now send and receive video in any conversation. Pick from your camera roll, send it encrypted end to end, play it inline. The video transfers correctly between any two devices on the network, not a workaround limited to a single phone. Long-press an image or video in the media modal to save it to your gallery.&lt;/p&gt;

&lt;h2 id=&#34;blocking-everywhere-2&#34;&gt;Blocking, everywhere&lt;/h2&gt;

&lt;p&gt;The last release added the ability to block a user. This release makes blocking apply across the surface area where it matters. A blocked user is hidden from chat previews, message timelines, search results, group invites, and notifications. Their messages stop counting toward unread badges. Unblock and they come back. Block state is stored in an encrypted NIP-51 mute list, so the rule travels with your account across devices.&lt;/p&gt;

&lt;h2 id=&#34;offline-awareness-everywhere-2&#34;&gt;Offline awareness everywhere&lt;/h2&gt;

&lt;p&gt;The last release added an offline notice to the chat list. This one extends it to the rest of the app. When your device loses its connection, the notice appears on login and signup screens, profile screens, settings, relay configuration, and key package management. Actions that require a connection (adding a relay, publishing a key package, filing a bug report) are disabled until connectivity returns. The app now reflects its actual state at every screen.&lt;/p&gt;

&lt;h2 id=&#34;legacy-key-packages-2&#34;&gt;Legacy key packages&lt;/h2&gt;

&lt;p&gt;When White Noise moved key packages to addressable events (&lt;code&gt;kind:30443&lt;/code&gt;) in the last release, old &lt;code&gt;kind:443&lt;/code&gt; packages became legacy. This release surfaces them. The key packages screen labels legacy entries and lets you delete them specifically, preserving current packages untouched. The Marmot Development Kit&amp;#39;s acceptance window for legacy packages was extended through May 31, 2026 to give clients time to migrate.&lt;/p&gt;

&lt;h2 id=&#34;database-encryption-2&#34;&gt;Database encryption&lt;/h2&gt;

&lt;p&gt;The White Noise app database, which holds your aggregated message history, group state, and cached metadata, is now encrypted at rest using SQLCipher. The encryption key lives in the platform keychain. On first launch after this update, the app migrates your existing database to the encrypted format without data loss.&lt;/p&gt;

&lt;p&gt;The MDK/MLS database that holds raw MLS message material was already encrypted. This release closes the remaining gap: the projection layer the app reads from is now encrypted too.&lt;/p&gt;

&lt;h2 id=&#34;security-fixes-2&#34;&gt;Security fixes&lt;/h2&gt;

&lt;p&gt;Three issues in the Marmot Development Kit were found and fixed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First:&lt;/strong&gt; the memory storage layer used LRU caches for dedup records and exporter secrets. Under message traffic, those caches could evict entries silently. A dropped dedup record means a replayed message could be accepted. A dropped exporter secret means past messages in that epoch become unreadable. Both caches are now unbounded maps that retain all entries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second: &lt;/strong&gt;the Marmot Development Kit could accept a commit that removed all admins from a group. The commit would succeed on the receiver side, leaving a group nobody could administer. The receiver now validates the post-commit admin set before accepting any commit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third:&lt;/strong&gt; when creating a group, the creator&amp;#39;s signing key was generated and stored before invitee key packages were validated. If validation failed, the key persisted as orphaned material. The order is corrected: validate first, generate after.&lt;/p&gt;

&lt;p&gt;Marmot Development Kit 0.8.0 also includes a wave of internal hardening that does not directly change White Noise behavior, including debug-output redaction, secret-serialization guards, rumor-ID verification, welcome size bounds, and keyring rotation on fresh database creation. The full list is in the MDK changelog.&lt;/p&gt;

&lt;h2 id=&#34;the-refactor-underneath-2&#34;&gt;The refactor underneath&lt;/h2&gt;

&lt;p&gt;Over the past month, &lt;code&gt;whitenoise-rs&lt;/code&gt; (the Rust library that powers the app) went through a 15-phase rearchitecture. A single global object held all state for every account on the device. It has been broken apart: shared infrastructure (relays, database connection, stream managers) lives in one layer, and each account has its own session with its own state.&lt;/p&gt;

&lt;p&gt;The practical effects are in the next phases. This structure enables multi-device support, makes the codebase testable without spinning up a full process, and is what made the per-account database split tractable. The foundation is now correct.&lt;/p&gt;

&lt;h2 id=&#34;smaller-things-2&#34;&gt;Smaller things&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Contact actions renamed from &amp;#34;Add/Remove as contact&amp;#34; to Follow and Unfollow, consistent with how Nostr describes the relationship&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;GrapheneOS notification icon fixed; the app icon now shows correctly in the status bar&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Foreground service restarts automatically after a device reboot, so notifications work from the first relay connection&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Camera permission loop in the QR scanner fixed: denying access no longer triggers repeated prompts&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Chat list filter chips now hide with the search field, stay visible in archive view, and have correct spacing on small screens&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Incoming message bubble contrast and dark mode colors corrected&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;contributors-2&#34;&gt;Contributors&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Jeff Gardner, Pepi, Danny Morabito, Mubarak Auwal, Javier Montoya, emir yorulmaz, Nikita L., Mehmet Efe Umit, Sergey, hzrd149, leesalminen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;get-the-update-2&#34;&gt;Get the update&lt;/h2&gt;

&lt;p&gt;Download from the &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/releases&#34;&gt;GitHub releases page&lt;/a&gt;. No phone. No email. Just keys.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/b5c0a245a9e9876bc833515a345d0a69aafbac8fdb5e85420757f7af508d31aa.png&#34; alt=&#34;&#34;/&gt;\
\
Release notes: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/releases&#34;&gt;vNEXT release notes&lt;/a&gt; Report issues: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/issues&#34;&gt;marmot-protocol/whitenoise&lt;/a&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-07T18:34:43&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy0vdsw9h6q6dg3nnj8apqgg2w003mnjgh4l9dwt5vzztff2r49hszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4nzx3</id>
    
      <title type="html">As an open-source, decentralized chat client, White Noise faces a ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy0vdsw9h6q6dg3nnj8apqgg2w003mnjgh4l9dwt5vzztff2r49hszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4nzx3" />
    <content type="html">
      As an open-source, decentralized chat client, White Noise faces a lot of tough questions on moderation.&lt;br/&gt;&lt;br/&gt;Won’t anonymous chat help criminals communicate?&lt;br/&gt;How can you guarantee the safety of users?&lt;br/&gt;What about children? Who will protect them?&lt;br/&gt;&lt;br/&gt;This article explains why centralized moderation fails every time, and how White Noise plans to approach the topic.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqp2vmn0fsh55nrxfzxzk3525e5g566fs6j6aqfkjf4s&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…jf4s&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h2 id=&#34;citizens-must-act-in-the-interests-of-their-own-safety-2&#34;&gt;Citizens Must Act in the Interests of Their Own Safety&lt;/h2&gt;

&lt;p&gt;Apple is responsible.\
Facebook is responsible.\
Mark Zuckerberg is responsible.\
Telegram and Pavel Durov are responsible.&lt;/p&gt;

&lt;p&gt;So say governments the world over, as they increasingly push the burden of content moderation onto centralized platforms and even their founders. CEOs are hauled in front of judicial committees or even imprisoned. Companies are threatened with excommunication by app stores or, worse, blocked by national governments.&lt;/p&gt;

&lt;p&gt;As tech companies comply, they burden themselves with an impossible task. And they open the door for more stringent controls, which punish the vast majority of users by throttling their privacy. Bad actors, on the other hand, will always find another way to communicate.&lt;/p&gt;

&lt;p&gt;As an open-source, decentralized chat client, White Noise faces a lot of tough questions on moderation: Won’t anonymous chat help criminals communicate? How can you guarantee the safety of users? What about children? Who will protect them?&lt;/p&gt;

&lt;p&gt;Our position is this: Encrypted decentralized chat is neutral technology. Just as anyone can communicate in the physical world without restriction, so can anonymous users online. In any ecosystem, users themselves will develop methods and practices to discourage and report harmful content. Only users themselves can judge the value or harm of communications.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&#34;the-flawed-politics-of-top-down-moderation-2&#34;&gt;The Flawed Politics of Top-Down Moderation&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/b62ca565e43a2ab3a940930d76beed3cbef4b326fe9d6e7dbc3d5e735fe9a8d5.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Below is a concise overview of the most widely used social platforms that include an E2EE (end-to-end encrypted) chat / direct‑messaging feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WhatsApp&lt;/strong&gt;: Moderation relies on user reports (spam, harassment, illegal content). Because the provider cannot read message bodies, it can only act on metadata (e.g., number of reports, abusive account behavior) and may suspend or ban offending accounts.\
\
&lt;strong&gt;Signal:&lt;/strong&gt; Strictly user‑report driven. Signal can block or delete accounts that violate its terms, but it cannot inspect message content. It also uses rate‑limiting and phone‑number verification to curb spam.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Telegram (partially E2EE):&lt;/strong&gt; Automated AI‑based scanning of non‑secret chats for spam, phishing, extremist content, plus user reports. Secret chats are exempt from server‑side scanning; moderation of those relies entirely on user reports and account bans.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Facebook Messenger (optional encryption):&lt;/strong&gt; A combination of AI content detection, human review, and user reports. Even for secret conversations, Facebook can act on metadata (e.g., repeated abuse flags) and may disable the account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Viber:&lt;/strong&gt; User‑report system; Viber can suspend accounts that repeatedly receive abuse reports. Since content is unreadable, moderation is limited to metadata and account actions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iMessage (Apple):&lt;/strong&gt; On‑device machine learning detects spam/phishing and offers “Report Junk”. Apple can act on metadata and user reports; it does not have server‑side access to message content.&lt;/p&gt;

&lt;h2 id=&#34;why-the-moderation-approaches-differ-2&#34;&gt;Why the moderation approaches differ&lt;/h2&gt;

&lt;p&gt;Approaches often differ due to differences in functionality or jurisdiction. They also vary due to these factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Technical limitation&lt;/strong&gt; — When a platform offers true E2EE, it cannot scan message bodies, so it must rely on metadata analysis (frequency of reports, account‑creation patterns) and user‑initiated reports.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regulatory pressure&lt;/strong&gt; — Services operating globally (especially in the EU, US, or China) face legal obligations to remove illegal content (e.g., child sexual abuse material, extremist propaganda). Non‑E2EE platforms can comply by scanning content automatically; E2EE platforms must balance privacy with lawful‑access requests, often by providing account‑level takedowns.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Product design goals&lt;/strong&gt; — Consumer‑messaging apps prioritize privacy (Signal, WhatsApp, iMessage), whereas social‑networking or community platforms (Discord, Reddit, Facebook) prioritize community health and therefore invest heavily in AI‑driven moderation pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Even if the same laws applied to all chat clients, forcing them to moderate certain content before it was viewed by users, calls to moderate further would still likely increase. Offense is subjective, and users will still feel the urge to report and ban content they do not like. Essentially, we want to be the ones in control of our own conversations.&lt;/p&gt;

&lt;p&gt;AI content moderation falters because models can’t reliably understand nuance—sarcasm, cultural references, or author intent, leading to false positives and negatives. Their training data often contains biases and is heavily English‑centric, so minority languages and regional contexts receive poorer coverage. Bad actors exploit these gaps with evasive tricks (misspellings, emojis, image‑embedded text), while the systems’ need for real‑time speed forces them to use simpler heuristics that miss subtle abuse. Moreover, the black‑box nature of many models makes decisions opaque, hindering appeals and accountability, and the rapid evolution of societal norms outpaces static training sets, requiring constant human oversight and costly retraining.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Typically, [moderation] is performed by the corporation owning the network in conjunction with the government where the company exists. These two parties have all the power over who gets to speak and who doesn’t. The rules are often unclear, unequally enforced, and there is little or no transparency or recourse for injustice.” Matt Lorentz, Nos.social.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And even if content moderation can be outsourced to humans, there are huge economic and psychological costs to pay. Court filings from December 2024 showed &lt;a href=&#34;https://www.theguardian.com/technology/2024/dec/04/more-than-140-kenya-facebook-moderators-diagnosed-with-severe-ptsd&#34;&gt;144 Facebook moderators diagnosed with PTSD, anxiety, and depression.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Further, binary definitions of what is and is not acceptable online are flawed in two ways. Categorizing language and media is never 100% objective, and with the added layer of AI-generated video, audio, text, and image, deciphering content categories at scale will not be possible, either through automated or analog means.&lt;/p&gt;

&lt;p&gt;The second flaw is that when the onus for moderation lies with the platform owners (who don’t want to get sued), tech companies are coerced into verifying ages and identities. Restricting access to one platform does not change the behavior or intentions of malicious accounts.&lt;/p&gt;

&lt;p&gt;Despite the calls to “end the veil of anonymity” online made by the Spanish Prime Minister last year, our right to privacy is not an acceptable trade for increased protection against harmful content.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“You have created a world where only the neutered are safe and where only outlaws are free… We expect crime and disagreements and ugliness, and we are prepared to deal with them.” &lt;/em&gt;&lt;a href=&#34;https://nostr.eu/nevent1qqs8sql9dy23y5cyg860nc76vltn24pcqtn27pkd45dyrn9e72srfqcpp4mhxue69uhkummn9ekx7mqpramhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjszrmhwden5te0dehhxarj9ekk7mgzyzm7669svt0xkjsju50a22zurc0qa589z2xd4yatzx6p2z64a5e0ce5e3gx&#34;&gt;&lt;em&gt;The Declaration of Separation, anonymous author&lt;/em&gt;&lt;/a&gt;**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No amount of centralized control will keep citizens safe online; top-down moderation will only decrease the freedoms of the majority who act within the bounds of decency.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;how-decentralized-moderation-works-2&#34;&gt;How Decentralized Moderation Works&lt;/h2&gt;

&lt;p&gt;You cannot control what you see or hear on the street, but you can control how you react. Think about those who swear or use racist language in front of children, or even perverts who expose themselves to others in public. These acts can be alarming, but one blanket approach does not solve both issues. Not all sentiment can be banned. The swearing may be ignored or discouraged. The racist language may provide an opportunity for a parent to talk to their child. The illegal act of indecent exposure is likely to be reported to the authorities.&lt;/p&gt;

&lt;p&gt;However, if all children (or adults, for that matter) had to wear helmets that filtered interactions and only permitted identified, trusted people to interact, we can easily see this as an unacceptable reduction of freedom.&lt;/p&gt;

&lt;p&gt;With other decentralized networks (for example, Bitcoin), maintainers and gatekeepers are incentivized by the value that stability and quality afford. And as adoption widens, use cases move from fringe operators to institutions, legitimizing the technology.&lt;/p&gt;

&lt;p&gt;Still, moderating language can prove problematic. NIP‑68 (picture‑first feeds) and NIP‑69 (peer‑to‑peer order events) proposed vocabulary for content warnings and reporting on Nostr in 2023. During the review process, several contributors expressed strong opposition to merging them, arguing that they would force a strict vocab‑code scheme on all Nostr users and could fragment the ecosystem. Ultimately, the pull request was not merged, and the proposals remain unaccepted. Subsequent work introduced NIP‑32, which adopts parts of the labeling approach originally intended for NIP‑69.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/7e39fd18595b6bd9128e51cab4c5c3f9033a8b1f561d064000b2c78020de24a6.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Decentralized moderation works through users developing their own reporting practices and filters. Primal, for example, launched a content filtering mechanism where users can mute, block, and report content to create their own personalized user experience.&lt;/p&gt;

&lt;p&gt;“The final word on content moderation should belong to the user. Public mute lists and open source filtering algorithms are great moderation building blocks on an open network like Nostr. We built the capability to subscribe to other users’ mute lists, as well as opt in and out of filtering algos in a granular fashion.” Miljan Braticevic, Founder of Primal.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;10 reasons why White Noise users will be motivated to block harmful content.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Guard the people you know&lt;/strong&gt; — When a friend or a contact in your trust circle is targeted, you’ll want to stop the abuse before it harms them.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Preserve the credibility of your network&lt;/strong&gt; — A reputation for safe, civil conversation keeps the people you’ve invited (family, coworkers, activist groups) willing to stay and invite others.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Honor mutual responsibility&lt;/strong&gt; — In a web‑of‑trust model, each participant implicitly promises to look out for the others; reporting is the practical way to keep that promise.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prevent collateral damage to contacts&lt;/strong&gt; — Spam, scams, or extremist propaganda can affect users you know, exposing them to fraud or legal risk.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maintain usable signal‑to‑noise for your circles&lt;/strong&gt; — Trusted groups rely on clear, relevant messages; removing noise makes the chat useful for everyone in the network.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid being blamed for “hosting” illegal material&lt;/strong&gt;— Even in a decentralized system, authorities may trace a relay that repeatedly distributes illicit content; reporting helps keep your relay, and the contacts that route through it, safe.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Strengthen the web‑of‑trust itself&lt;/strong&gt; — Every successful report reinforces the idea that the network self‑polices, encouraging more users to join and link their contacts.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribute to shared tooling&lt;/strong&gt;— Reports feed open‑source moderation filters that the whole community (including your contacts) benefits from, improving safety for all.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduce personal exposure to trauma&lt;/strong&gt; — By flagging harmful posts early, you spare yourself and close contacts from repeatedly encountering disturbing material.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Demonstrate stewardship of the community’s values&lt;/strong&gt; — Acting on abuse signals to your peers that you take the collective standards seriously, reinforcing the social contract that binds the network together.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each report is a tiny vote on what the community deems “valuable” versus “harmful.” Because the votes come from people who already trust one another (friends, colleagues, allies), they carry extra weight and are instantly visible to the same circles. Over time, these votes coalesce into an informal, yet enforceable, social contract:&lt;/p&gt;

&lt;h2 id=&#34;conclusion-4&#34;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;The moderation of Big Tech platforms with millions of users is an impossible task. Not only that, it leads only in the direction of more restrictions, tighter control, and less privacy. The only surefire way individuals can remain both in charge and safe is to manage their own experience. All users ultimately act in their own interests and have a vested interest in moderating their own feeds and chats.&lt;/p&gt;

&lt;p&gt;Resilient communities build ways to protect themselves and ensure that bad actors are deterred. At White Noise, we encourage this and will continue to work with our community to promote moderation, reporting, and self-management of the content users see. For now, the desire to curate your own experience prompts users to act, but in the future, other methods and value incentives may emerge.&lt;/p&gt;

&lt;p&gt;With decentralized infrastructure, we take control of moderation, avoiding the pitfalls of major platforms and the anti-privacy measures that restrict our agency.&lt;/p&gt;

&lt;p&gt;How we act and who we associate with is up to us.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-06T09:52:03&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgqylkmnutf70v79txae27ms95thr37h76ay4r2pxmy0qfhustkpszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wfqr3pl</id>
    
      <title type="html">🔔 Community call in less than an hour #nevent1q…pdaz</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgqylkmnutf70v79txae27ms95thr37h76ay4r2pxmy0qfhustkpszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wfqr3pl" />
    <content type="html">
      🔔 Community call in less than an hour&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsz6cypjw6azae7xfhc3v7cu3y33thcdzqavvkvsarsyueld24ezhs59pdaz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…pdaz&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; MARMOT COMMUNITY CALL today at 16:00 UTC&lt;br/&gt;&lt;br/&gt;We&#39;ll discuss:&lt;br/&gt;&lt;br/&gt;- This month&#39;s key progress, including Marmot&#39;s new home (this😃)&lt;br/&gt;- The current state of the &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8t4ehcdrjgugzn3zgw6enp53gg2y2gfmekkg69m2d4gwxcpl04acpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcppemhxue69uhkummn9ekx7mp0w3radp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;White Noise&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…radp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; app&lt;br/&gt;- Future plans for the protocol&lt;br/&gt;- Q&amp;A&lt;br/&gt;&lt;br/&gt;🗓 Tuesday, May 5, 16:00 UTC &lt;br/&gt;&lt;br/&gt;✅ Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/b3b83dd5bf43d6615399f78f8635c3988a93e38895cec099fab2b7f7ab554097.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-05-05T17:10:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrtx7784pnqs4er75g9vvcf2vnxap5aukx3y7vq4rer0cfehl7atczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wckg7lz</id>
    
      <title type="html">👋 Marmot is leaving the nest. We launched a foundation, and 4 ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrtx7784pnqs4er75g9vvcf2vnxap5aukx3y7vq4rer0cfehl7atczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wckg7lz" />
    <content type="html">
      👋 Marmot is leaving the nest. We launched a foundation, and 4 interoperable clients on the same wire format. This and more in this month&amp;#39;s recap:&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqp2cjw2faygutvdpuk25t88pmysd3n236kj7gksy4qz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…y4qz&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h2 id=&#34;a-new-home-2&#34;&gt;&lt;strong&gt;A new home&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;The April recap is the last one posted from the White Noise profile. Starting now, Marmot has its own Nostr identity. Future recaps and protocol news will come from there.&lt;/p&gt;

&lt;p&gt;White Noise and Marmot have always been related but distinct: one is an app, the other is a protocol with a growing set of independent clients. Giving Marmot its own voice makes that distinction clearer and gives the protocol a place to speak for itself.&lt;/p&gt;

&lt;p&gt;Follow the new Marmot profile if you want to stay current with the protocol side of the work.&lt;/p&gt;

&lt;p&gt;Marmot on Nostr: npub1marm0t9qkmv8lq7pe7vdx60ed8fl2d876a2ytk3ade208dlyfweqg5r6m9&lt;/p&gt;

&lt;p&gt;Marmot on X: &amp;amp;lt;&amp;amp;lt;&lt;a href=&#34;https://x.com/MarmotProtocol%3E%3E&#34;&gt;https://x.com/MarmotProtocol&amp;gt;&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/fc533a816faa50c5ea3a962bf29c770c9b805f9dcf8ce0e7cf50c4662cfe9bd7.jpg&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;April was an institutional month. The Internet Privacy Foundation announced its launch with a party at Bitcoin Vegas, the Marmot team shipped disappearing messages and addressable key packages at the spec layer, Amethyst folded a pure-Kotlin Marmot stack into its Android client, and openChat pushed 67 point releases while marching through cross-client interop. White Noise work stayed heavy on the Rust core in preparation for the next mobile release.&lt;/p&gt;

&lt;h2 id=&#34;the-internet-privacy-foundation-2&#34;&gt;The Internet Privacy Foundation&lt;/h2&gt;

&lt;p&gt;Internet Privacy Foundation (IPF) is a new 501(c)(3) that will serve as the long-term home and benefactor for White Noise, the Marmot Protocol, and the broader stack of tools the team works on. Its mission is to expand human agency in the digital world, and it funds that work in two ways: building privacy-preserving infrastructure directly, and funding independent builders doing the same work on non-extractive terms.&lt;/p&gt;

&lt;p&gt;The site is live at ipf.dev , donations accept Bitcoin through BTCPay and fiat through Stripe, and the TypeScript SDK now publishes under the @internet-privacy npm scope. IPF launched publicly at Bitcoin Vegas with a meet-and-greet party for supporters, builders, and the broader Bitcoin and Nostr community.&lt;/p&gt;

&lt;p&gt;Privacy is the ground freedom stands on. The work is to build parallel systems so good that people choose to move into them. IPF exists to carry that work for the long term.&lt;/p&gt;

&lt;p&gt;IPF on Nostr: npub1ntrntprvc8qyv4q7drnqj5l79x5rlv7jdt0zuuz5asjhg2fncl6qxt48ff&lt;/p&gt;

&lt;p&gt;IPF on X: &amp;amp;lt;&amp;amp;lt;&lt;a href=&#34;https://x.com/ipf_privacy%3E%3E&#34;&gt;https://x.com/ipf_privacy&amp;gt;&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/6ccf72f97250706036db2f682c888a2e1f4d9e33da8e5a83e4297a0a28c39c8f.jpg&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;h2 id=&#34;protocol-and-sdk-2&#34;&gt;Protocol and SDK&lt;/h2&gt;

&lt;p&gt;Three spec changes will reach users in the next round of Marmot releases.&lt;/p&gt;

&lt;p&gt;Groups now carry a retention secret. MIP-01 and MIP-03 added disappearing messages and bumped the group-context extension to version 3, so a group admin can set a message lifetime and every client expires messages on its own. The retention rule lives with the group, enforced by the protocol.&lt;/p&gt;

&lt;p&gt;Push notification tokens grew. MIP-05 expanded the encrypted token from 280 to 1084 bytes, mostly to make room for UnifiedPush distributor endpoints. Those endpoints are long URLs, often over 280 bytes on their own, so the old token size forced Marmot pushes through APNs and FCM only. With the larger token, Android users on Google-free devices can receive Marmot pushes through whichever UnifiedPush distributor they run. iOS stays on APNs, where Apple requires it.&lt;/p&gt;

&lt;p&gt;Departing a group got cleaner. Now any member can commit SelfRemove proposals so members can leave without waiting for an admin to come online. Admins now have to hand off their role before using SelfRemove, closing the last edge case where a group could lose its only admin by accident. A small fix to the MIP-03 minimum encrypted-content length and a thumbhash compatibility note for IMETA tags rounded out the spec work.&lt;/p&gt;

&lt;p&gt;MDK got a path to upgrades. When a client creates a group, it now picks the feature set that everyone being invited can support, so a member on an older client still gets a clean invite. Members announce what they support on every update, and admins can raise the group’s required feature set once everyone has caught up. The upgrade path for the new group extension is in draft and lands alongside disappearing messages in clients.&lt;/p&gt;

&lt;p&gt;The TypeScript SDK shipped @internet-privacy/marmot-ts\@0.5.0 on April 22 with addressable key packages, so web clients stop relying on NIP-09 deletions to rotate their keys.&lt;/p&gt;

&lt;h2 id=&#34;white-noise-2&#34;&gt;White Noise&lt;/h2&gt;

&lt;p&gt;April was a refactor month. The team made a deliberate choice to slow down on new features and fix the foundations, the kind of work that users don&amp;#39;t see directly but feel in everything that follows. A more stable release is coming out the other side, and the codebase is now set up to move faster on top of.&lt;/p&gt;

&lt;p&gt;The biggest structural project was inside whitenoise-rs, the Rust library that powers the app. It was originally built for one thing: back the Flutter mobile app. Over time it grew to also power a CLI, a daemon, a TUI, and bot platforms like Botburrow. The problem was that all of those shared a single global state object, which made testing painful and made it harder to add new surfaces without things bleeding into each other. April&amp;#39;s refactor broke that apart: there&amp;#39;s now a shared database for process-wide state (keychains, settings) and a per-account database for user-specific state (messages, groups). The CLI was also pulled into its own standalone package. Phases 16, 18, and 19 of this work landed in April; the last singleton is on its way out in Phase 16b.&lt;/p&gt;

&lt;p&gt;Unglamorous work. It&amp;#39;s what makes a private messenger trustworthy over time: code that can be verified, tested, and extended without cutting corners.&lt;/p&gt;

&lt;p&gt;Database encryption moved forward too. The master key has lived in the platform keychain for a while. What remained plaintext on disk was the SQLite database holding messages, group state, and cached metadata. The open PR adds SQLCipher encryption with a one-time migration that converts existing databases without data loss. It&amp;#39;s slated to land with the next release.&lt;/p&gt;

&lt;p&gt;On Android, the foreground service now restarts automatically on boot, so the app reconnects without the user having to open it first. The notification icon was also fixed for GrapheneOS, a small fix that matters to the people who care most about what White Noise is for.&lt;/p&gt;

&lt;p&gt;The app shipped real features too. Video attachments work end to end. Search by message content is live across the chat list. The offline notice now appears on every screen, including auth flows and settings, so there&amp;#39;s never a moment where the app is silently disconnected without telling you. Block and unblock landed for contacts, with the full UI. Leave group is wired on the backend; the UI follows in the next release.&lt;/p&gt;

&lt;p&gt;The key package cleanup is worth noting separately. Now that replaceable key packages exist in the protocol, the app identifies legacy packages, surfaces the distinction to users, and deletes the old ones cleanly. Stale state from earlier versions clears out as clients upgrade.&lt;/p&gt;

&lt;p&gt;The contact action labels were renamed to Follow and Unfollow across all locales, making the relationship model clearer. Chat list filter UX was improved. Multiple screens were brought in line with the Figma designs, covering the chat list, group views, and several detail screens.&lt;/p&gt;

&lt;p&gt;Fastlane release scaffolding also landed, which automates the steps between a finished build and a published release. Less manual work, fewer mistakes.&lt;/p&gt;

&lt;p&gt;The month had the shape of a team paying down debt before the next push. The release is close.&lt;/p&gt;

&lt;h2 id=&#34;amethyst-integrates-marmot-2&#34;&gt;Amethyst integrates Marmot&lt;/h2&gt;

&lt;p&gt;Amethyst, the most active Android Nostr client, wrote a pure-Kotlin implementation of MLS and Marmot in April and folded it into its Quartz library. Earlier Kotlin integrations leaned on native C or Rust bindings, which ruled out Kotlin Multiplatform targets like iOS. Quartz runs the protocol on its own now.&lt;/p&gt;

&lt;p&gt;Most of the month went into cross-client compliance. Amethyst&amp;#39;s internal MDK matches the reference implementation byte-for-byte, key packages are advertised through relay lists so invitees can be found through the standard flow, and a new validator checks every cryptographic step against the reference test vectors. A lingering bug that caused state divergence between co-admins is fixed.&lt;/p&gt;

&lt;p&gt;Amethyst also shipped a dedicated interop tool. amy is a command-line harness driven from the Amethyst implementation that lets anyone create groups, generate KeyPackages, simulate welcomes, and validate commits against Amethyst&amp;#39;s Marmot stack from the terminal. Paired with whitenoise-cli, it gives the protocol a working way to test compliance across two independent implementations from the outside, which is how most of the cross-client bugs this month were found.&lt;/p&gt;

&lt;p&gt;Per-recipient relay routing and per-account store isolation also landed, so one Amethyst install keeps different Nostr identities cleanly separated. Multi-device (the same identity running on several devices at once) is still open across the whole Marmot side, including Amethyst.&lt;/p&gt;

&lt;h2 id=&#34;openchat-marches-through-interop-2&#34;&gt;openChat marches through interop&lt;/h2&gt;

&lt;p&gt;David Gershony&amp;#39;s openChat cut 67 releases in April, averaging more than two a day, driven by a tight loop of interop testing against White Noise. The C# client moved its KeyPackages to the new addressable event format, wrapped its commit messages so other Marmot implementations could read them, and fixed the Whitenoise interop test that kept flagging edge cases in the relay list handshake.&lt;/p&gt;

&lt;p&gt;The supporting libraries moved in lockstep. dotnet-mls, David&amp;#39;s pure C# MLS implementation, spent the month hammering out RFC 9420 compliance. Cross-implementation testing against the reference test vectors now passes end to end.&lt;/p&gt;

&lt;p&gt;The meta-story is that four clients (White Noise, openChat, Amethyst, Vector) are converging on the same wire format with independent implementations. Mixed-client groups work.&lt;/p&gt;

&lt;h2 id=&#34;vector-adds-an-ai-agent-surface-2&#34;&gt;Vector adds an AI agent surface&lt;/h2&gt;

&lt;p&gt;Vector became the first Marmot client that speaks MCP directly. The new vector-agent server exposes 21 tools for AI agents, alongside fresh APIs for direct messages, invites, and key packages, plus automatic key rotation. An agent can now create groups, send messages, manage invites, and rotate keys from its own scripting environment.&lt;/p&gt;

&lt;h2 id=&#34;botburrow-starts-shipping-2&#34;&gt;Botburrow starts shipping&lt;/h2&gt;

&lt;p&gt;Botburrow is a new project under the marmot-protocol org, started April 3. It is a self-hosted dashboard for running bots inside Marmot groups. Each bot has its own Nostr identity, joins MLS-encrypted groups through the standard Welcome flow, and sends and receives messages like any human would.&lt;/p&gt;

&lt;p&gt;The dashboard is a Rails 8.1 app that talks to a single whitenoise-rs daemon over a Unix socket. Custom Ruby scripts can inspect profiles, group membership, and pending invites. Multi-arch Docker images ship for Umbrel and Start9. Botburrow is aimed at operators who want to run bots in Marmot groups, with the bots joining as regular group members and an admin UI for wiring up their behavior.&lt;/p&gt;

&lt;h2 id=&#34;transponder-security-pass-2&#34;&gt;Transponder security pass&lt;/h2&gt;

&lt;p&gt;Transponder, the Rust MIP-05 push notification server, spent April 14 on a concentrated security pass. The server now wipes its private key from memory after use, bounds how much memory a single malicious event can consume, redacts the key from debug output, and tightens APNs token validation. Transponder relays push notifications between Nostr and APNs, FCM, and UnifiedPush, and its design keeps message content out of its hands. The security pass tightens the boundary where that property has to hold up.&lt;/p&gt;

&lt;h2 id=&#34;purser-builds-a-nostr-native-payment-daemon-on-mdk-2&#34;&gt;Purser builds a Nostr-native payment daemon on MDK&lt;/h2&gt;

&lt;p&gt;Purser is a Nostr-native payment daemon positioned as a Zaprite replacement. Strike and Square sit behind it as payment providers, and the whole merchant-to-customer conversation runs over Marmot-encrypted messaging through MDK.&lt;/p&gt;

&lt;p&gt;April landed a concentrated build-out: a catalog loader, message validation, the MDK communication layer, Strike and Square integrations, a polling engine, rate limiting, payment persistence, and the order processing pipeline (PRs #16-23). The team also swapped its mock encryption layer for the real one, so all 99 tests now run against real MDK operations and catch interop issues with other Marmot clients during development.&lt;/p&gt;

&lt;p&gt;The architectural bet is worth naming: Purser uses Marmot as the customer conversation channel itself, making it the payment rail&amp;#39;s primary surface. A customer opens a Marmot group with a merchant, discusses what they want, and pays through the same encrypted thread. Past payment stacks have treated messaging as a thin notification layer. Purser treats the conversation as the transaction surface.&lt;/p&gt;

&lt;h2 id=&#34;nymchat-ships-a-protocol-u-turn-2&#34;&gt;Nymchat ships a protocol U-turn&lt;/h2&gt;

&lt;p&gt;Nymchat had a rougher arc. The client added Marmot MLS group chats in v3.57.261 earlier this quarter, ran the feature live for a few weeks, then reverted to NIP-17 in v3.58.268 because multi-device support is still open on the Marmot side and group state was diverging across devices. Subsequent releases through v3.58.288 in late April rebuilt the NIP-17 group chat path with rotating ephemeral keys, a friend system with granular permissions, and encrypted app settings.&lt;/p&gt;

&lt;p&gt;The reversion is informative beyond Nymchat. It pins down which part of the Marmot story is load-bearing for a client with an active multi-device user base: the protocol works well for a group with one device per member, and the missing piece for clients like Nymchat is cleanly syncing the same identity across several devices. Multi-device is the work the team picks up next.&lt;/p&gt;

&lt;h2 id=&#34;tubestr-polishes-the-family-video-surface-2&#34;&gt;TubeStr polishes the family-video surface&lt;/h2&gt;

&lt;p&gt;TubeStr, introduced in the December 2025 recap as the first non-chat Marmot client, shipped v1.0.3 on April 13 and v1.0.4 on April 15 with follow-on build updates through the 17th. The month went into app polish more than protocol work.&lt;/p&gt;

&lt;p&gt;PR #3 rebuilt the onboarding screens to walk families through how the app works step by step, which is the kind of friction-reduction MDK-built apps need before they can reach the audiences they&amp;#39;re aimed at. PR #2 fixes a video export failure when a LUT filter is used on paths containing spaces. Separately, April added Spanish localization, accessibility semantics so screen readers announce tab bar labels and profile-switcher context, and a centralized design-token system for spacing and border radius that the team can roll through the rest of the UI over time.&lt;/p&gt;

&lt;h2 id=&#34;in-progress-3&#34;&gt;In Progress&lt;/h2&gt;

&lt;p&gt;Push notifications are converging. The protocol work on token size, the notification server&amp;#39;s security pass, and the iOS silent push plumbing in the Rust core all point at the same endpoint. What remains is wiring and testing across the whole delivery path, including UnifiedPush.&lt;/p&gt;

&lt;p&gt;Disappearing messages are ready everywhere except the final upgrade path in MDK, which is the last piece the client draft is waiting on.&lt;/p&gt;

&lt;p&gt;The White Noise Rust refactor is in its final phases. The core library coming out the other side is what will let Flutter, the CLI, the daemon, the TUI, and agent surfaces like Botburrow share one codebase cleanly, each keeping its own state.&lt;/p&gt;

&lt;p&gt;Multi-device support is the biggest open gap. Nymchat&amp;#39;s reversion this month underlined it. It is the work that comes next after the refactor lands.&lt;/p&gt;

&lt;h2 id=&#34;by-the-numbers-2&#34;&gt;By the Numbers&lt;/h2&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tracked repositories&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Active repositories&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Releases across all tracked projects&lt;/td&gt;
&lt;td&gt;68&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;openChat releases&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;marmot-ts releases&lt;/td&gt;
&lt;td&gt;1 (0.5.0)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;White Noise mobile releases&lt;/td&gt;
&lt;td&gt;0 (next release imminent)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Merged PRs&lt;/td&gt;
&lt;td&gt;138&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Commits&lt;/td&gt;
&lt;td&gt;479&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Marmot spec PRs merged&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;New marmot-protocol repositories&lt;/td&gt;
&lt;td&gt;1 (botburrow)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Clients speaking the wire format in anger&lt;/td&gt;
&lt;td&gt;4 (White Noise, openChat, Amethyst, Vector)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&#34;contributors-5&#34;&gt;Contributors&lt;/h2&gt;

&lt;p&gt;Thanks to everyone who contributed code, design, specs, issue reports, talks, and planning this month: justinmoon, erskingardner, dannym-arx, jgmontoya, mubarakcoded, josefinalliende, untreu2, leesalminen, sergey3bv, hzrd149, DavidGershony, JSKitty, sjmcnamara, vitorpamplona, Datawav, Nikita L., Max, and Vladimir Krstic.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Start with the Marmot Protocol spec, MDK, or White Noise. The TypeScript SDK ships as @internet-privacy/marmot-ts. The Internet Privacy Foundation sits at ipf.dev.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-04T14:30:41&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2gcddpj32f97uk4akxv7720jkc08x8qfsys30cq88gmuflze8j6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wylf4x2</id>
    
      <title type="html">You build an app. Then you realize someone, somewhere, could used ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2gcddpj32f97uk4akxv7720jkc08x8qfsys30cq88gmuflze8j6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wylf4x2" />
    <content type="html">
      You build an app. Then you realize someone, somewhere, could used it to change their life. That never gets old.&lt;br/&gt;&lt;br/&gt;Such a great chat between &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpramhxue69uhhyetvv9ujuar0washyernd35kyetjw3ujucm0d5hsz93elc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3elc&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsvh300dvquh50l5t9et2257pxrsk5ndsdgdcdmnnxl9nc0f6l2ejcpzamhxue69uhk2cmvd9c8xefwwp6kytmjv4kxz7gpz3mhxue69uhhyetvv9ujuerpd46hxtnfduzv3shw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;niftynei&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3shw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 🫂&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/018f816b274123e7412537fddcaa4c1d2c8afe8bbfc4d12baa743957f4ed1e46.mp4&#34;&gt;&lt;/video&gt;
    </content>
    <updated>2026-04-23T10:58:11&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqst7uyn3vssesxexraqj8anqpfdhauah29w02n5jyhekvm6xmar8qczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wv86jwa</id>
    
      <title type="html">The sign Nostr is winning? Users don&amp;#39;t know they&amp;#39;re using ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqst7uyn3vssesxexraqj8anqpfdhauah29w02n5jyhekvm6xmar8qczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wv86jwa" />
    <content type="html">
      The sign Nostr is winning? Users don&amp;#39;t know they&amp;#39;re using it. Think of Bitchat: clients finally stopped feeling like &amp;#34;Nostr things&amp;#34; and started feeling like actual apps. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/6dde7e9eaa6ab2ebdff6abcefdbb9df5d1fd31ffd82a8ac8d88a46ab95553c68.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-04-21T08:11:03&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstyfy0kdpcnztskatnjxfvwx8k0s528c4u9sz595zqsdz9t8tutjgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4np4dm</id>
    
      <title type="html">Things people say in private chats every day: — &amp;#34;the ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstyfy0kdpcnztskatnjxfvwx8k0s528c4u9sz595zqsdz9t8tutjgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4np4dm" />
    <content type="html">
      Things people say in private chats every day:&lt;br/&gt;&lt;br/&gt;— &amp;#34;the presentation was bad, don&amp;#39;t tell her&amp;#34; &lt;br/&gt;— &amp;#34;I don&amp;#39;t think I can afford this month&amp;#34; &lt;br/&gt;— &amp;#34;the test came back, still waiting&amp;#34;&lt;br/&gt; — &amp;#34;I&amp;#39;m thinking of leaving him&amp;#34;&lt;br/&gt;&lt;br/&gt;None of this is criminal. All of it is private.&lt;br/&gt;
    </content>
    <updated>2026-04-17T08:40:49&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgnjpzxtzaz7a4hk4x6kpge9a2q37vv8fff9943nwc6m53cc5vllszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgu6zs3</id>
    
      <title type="html">Encryption without metadata protection is like whispering in a ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgnjpzxtzaz7a4hk4x6kpge9a2q37vv8fff9943nwc6m53cc5vllszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgu6zs3" />
    <content type="html">
       Encryption without metadata protection is like whispering in a spotlight.&lt;br/&gt;&lt;br/&gt;Cypherpunks fixed this. MLS (Messaging Layer Security) makes group messaging scalable and encrypted.&lt;br/&gt;&lt;br/&gt;We took that standard and shipped it on Nostr.&lt;br/&gt;&lt;br/&gt;Now nobody knows who&amp;#39;s talking to who. Not even us. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/452a3b3b98cd8b7ea3b80dc24b1bc8d78db0f98fd3fa3b201323713833836852.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-04-15T11:06:34&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9c22awlyreqlesqnc9q54nf4zm33xac96tm2kd20ypuxg49q0q8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ws8fqqv</id>
    
      <title>Nostr event nevent1qqs9c22awlyreqlesqnc9q54nf4zm33xac96tm2kd20ypuxg49q0q8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ws8fqqv</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9c22awlyreqlesqnc9q54nf4zm33xac96tm2kd20ypuxg49q0q8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ws8fqqv" />
    <content type="html">
      Nobody reads your letters. Nobody should read your messages.
    </content>
    <updated>2026-04-13T17:39:58&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxfgkuxp73z68rhe46uqnnwttewn7wvehjyzw8qr5g5mm2l4wq06szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wny8rf5</id>
    
      <title type="html">Some things are meant to stay between two people. We&amp;#39;re ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxfgkuxp73z68rhe46uqnnwttewn7wvehjyzw8qr5g5mm2l4wq06szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wny8rf5" />
    <content type="html">
      Some things are meant to stay between two people. We&amp;#39;re building the protocol for that.&lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/a3b40d8f3823c18f7cfbbc6c20c09030b20d7b7230aa7afadf83650da92a814e.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-04-13T13:34:43&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs05hn65zh49xsyy2yax6y8ln6jde5ejxfaacxdv5sr7q6azpe8pyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wdt3ef3</id>
    
      <title type="html">Digital anonymity didn&amp;#39;t vanish overnight. It was dismantled ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs05hn65zh49xsyy2yax6y8ln6jde5ejxfaacxdv5sr7q6azpe8pyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wdt3ef3" />
    <content type="html">
      Digital anonymity didn&amp;#39;t vanish overnight. It was dismantled piece by piece. Read our timeline on the controlled demolition of online privacy, from 1995 to today. 👇 &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqrserfva5hgctv945kgetww35hg7fdv968gctrdvkhvetrw3hhyuedv9hxgtt5dpjj6cm0w4h8getjdanxvetwwd5hvegpe5tgg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…5tgg&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;The leaders of the free world hate anonymity. Mass state surveillance which began with the Patriot Act, has evolved into demands for unencrypted back doors and chat control.&lt;/p&gt;

&lt;p&gt;Australia, the UK, and others stifle anonymity and even pseudonymity through age verification. Germany, France, and Spain have openly called for digital verification and “real names on the internet.” This is not incidental.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*Note: Anonymity means no your actions are completely unlinked from any persistent identifier. Pseudonymity means acting under a consistent but false or separate identity. Full digital anonymity is rare, but we use the term here as it is more commonly used to refer to online pseudonymity.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Worryingly, governments, corporations, and even private citizens may not need special powers to unmask vast swathes of internet users. A &lt;a href=&#34;https://arxiv.org/pdf/2602.16800&#34;&gt;&lt;em&gt;recent ETH Zurich study&lt;/em&gt;&lt;/a&gt; proved that LLMs can already de-anonymize social media users with 90% accuracy.&lt;/p&gt;

&lt;p&gt;Yet, anonymity is a necessary condition for exercising several recognized rights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy&lt;/strong&gt; — communicating without revealing one’s identity protects personal data, relationships, and intimate aspects of life.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Freedom of expression&lt;/strong&gt; — anonymity shields speakers from retaliation, allowing dissent, whistle‑blowing, artistic experimentation, or participation in controversial debates.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Freedom of assembly and association&lt;/strong&gt; — anonymous gathering or organizing online can be essential where public identification would expose participants to persecution.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Identity and anonymity are not mutually exclusive. They never were. Every citizen should have access to both. They are the Yin and Yang of our digital existence.&lt;/p&gt;

&lt;p&gt;If we do not understand the history and mechanics of digital identity control, we will lose our rights. We will live in an unbalanced, ringfenced world where people can’t even remember the reasons why, sometimes, they must remain faceless.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&#34;controlled-demolition-a-timeline-of-increasing-id-checks-from-1995-to-now-2&#34;&gt;Controlled Demolition: A Timeline of Increasing ID Checks from 1995 to Now&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1995 – Real‑name policy on AOL&amp;amp;#xA;&lt;/strong&gt;AOL began requiring members to register with a “real” name and phone number, linking accounts to billing information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1998 – PayPal’s email verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PayPal mandated that new accounts confirm a unique email address and later added mandatory linkage to a bank account or credit card, tying online payments to verified identities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2000 – eBay’s verified user program&amp;amp;#xA;&lt;/strong&gt;eBay introduced a “Verified User” badge that required users to submit a government‑issued ID and a validated mailing address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2001 – The Patriot Act brings in sweeping surveillance powers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ISPs could be compelled to turn over subscriber information without prior court approval, including IP logs and browsing histories, letting authorities link an IP address to a specific user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2003 – Facebook’s real‑name enforcement&lt;/strong&gt;\
Facebook’s early policy required members to use their legal names, backed by occasional manual reviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2005 – Google phone‑number verification&amp;amp;#xA;&lt;/strong&gt;Google started prompting users to add a mobile phone number for account recovery, creating a link between the account and a physical device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2007 – Twitter’s email confirmation&lt;/strong&gt;\
Twitter made it mandatory to confirm a unique email address before tweeting, reducing throwaway accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2011 – Reddit’s “Verified Email” badge&lt;/strong&gt;\
Reddit added a badge for users who verified a unique email address, discouraging mass‑created throwaway accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2013 – Silk Road shutdown&amp;amp;#xA;&lt;/strong&gt;Ross Ulbricht’s anonymous dark-net marketplace was seized and shut down by the FBI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2014 – GDPR preparation begins&lt;/strong&gt;\
Companies began collecting explicit consent and identity data, increasing data‑linkage practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2015 – Uber’s background checks begin&amp;amp;#xA;&lt;/strong&gt;Uber required drivers to undergo third‑party background checks and link their accounts to driver’s licenses, making rider‑driver interactions traceable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2016 – WhatsApp’s phone‑number registration&lt;/strong&gt;\
WhatsApp enforced a one‑account‑per‑phone‑number rule, eliminating truly anonymous messaging on the platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2017 – Instagram’s two‑factor authentication&amp;amp;#xA;&lt;/strong&gt;Instagram rolled out 2FA (SMS or authenticator app), tying accounts to a verified phone number.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2019 – Real‑ID requirement for developers&lt;/strong&gt;\
Apple demanded developers submit government‑issued IDs and tax information, reducing anonymous app publishing. The company rolled out enforced 2FA for all Apple accounts later that year.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2020&lt;/strong&gt; &lt;strong&gt;–&lt;/strong&gt; &lt;strong&gt;COVID‑19 contact‑tracing apps launch&amp;amp;#xA;&lt;/strong&gt;(e.g., NHS COVID‑19, Apple/Google Exposure Notification)\
These apps required users to register with a verified phone number or health‑system ID, linking exposure data to a semi‑anonymous token.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2022 – EU’s Digital Services Act (DSA) and Chat Control&amp;amp;#xA;&lt;/strong&gt;Large online platforms were obliged to collect “minimum age” and “contact” information for all users, and to provide “traceability” for very large online services, tightening ID constraints. A mandatory‑scan clause for online chat was suggested (eventually removed from the draft bill in late 2025).\
\
\
&lt;strong&gt;2023 – UK Online Safety Act passes&lt;/strong&gt;\
This law, replacing the 2017 Digital Economy Act, set the stage for strict age verification requirements across major platforms. Enforcement began in 2025&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2024 – Australia bans social media for under-16s&lt;/strong&gt;\
Strict age-verification enforcement began on &lt;strong&gt;10th December 2025&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2025 – EU-wide age-verification prototype&lt;/strong&gt;\
The EU Commission released a prototype of an EU-wide age verification app (&amp;#34;mini wallet&amp;#34;) for pilot testing in countries like Denmark, France, and Italy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2026 – Global biometric expansion&lt;/strong&gt;\
Countries including Vietnam, Nigeria, and Indonesia are expanding national biometric ID systems, with South Korea requiring facial biometrics for new mobile numbers.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;These changes were not incidental. Each entry on the timeline accelerated the next. Since the internet began, anonymity and pseudonymity have drastically decreased. With new government policies, digital ID, and biometric data storage, centralized systems and platforms will have no option to provide access to non-verified users.&lt;/p&gt;

&lt;p&gt;What are the reasons for the construction of this digital panopticon?\
What are the arguments against?&lt;/p&gt;

&lt;h2 id=&#34;arguments-for-control-ten-reasons-they-fail-2&#34;&gt;Arguments for Control: Ten Reasons They Fail&lt;/h2&gt;

&lt;p&gt;There are many arguments used to curb digital freedoms. All of them are fundamentally flawed in that they only seek to increase state power while denying the need for anonymity as a counterbalance to control.&lt;/p&gt;

&lt;p&gt;Still, let’s see what we’re up against.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 1:&lt;/strong&gt; Identification makes criminals easier to trace. &lt;strong&gt;Rebuttal&lt;/strong&gt;: Those who seek to identify ‘criminals’ are the very same people who define crime. The danger of increasingly vague definitions of ‘crime’ based on online profiles offer state departments virtually unlimited powers to stifle undesirable behavior. Further, creativity and new technology means that bad actors will always be able to penetrate or circumnavigate ringfenced systems before regulators can adapt. Jurisdictional difference and the competition of nation-states also offers optionality to bad actors and criminals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 2:&lt;/strong&gt; Quelling ‘hate speech’ and ‘extremist’ content.\
&lt;strong&gt;Rebuttal: ‘&lt;/strong&gt;Hate’ and ‘extreme’ are subjective concepts, poorly defined in a deliberate attempt to increase conformity and homogeneity. The flip side to this is that any defined ‘hate speech’ terms can be circumvented through creative use of language. While Nostr Improvement Possibility NIP 68 defined specific language to label profanity, hate‑speech, sexual content, no Nostr client has implemented it (rendering it defunct). Studies have shown that humans will find a way to disseminate content relating to their ideology regardless of whether they must identify or not, rendering the ID requirement ineffective at stopping ideas themselves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 3: &lt;/strong&gt;Reducing the spread of misinformation\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;With the internet opening publishing access to all comers, the legacy monopoly on what constitutes truth or lies has died. Fact-checking, hard evidence, and rigorous methodology is all still valuable, but it need not be performed by centralized entities. Anonymous participation encourages honest discussion of stigmatized topics (mental health, sexuality, politics). Simply put, the only people who can decide on what is and isn’t ‘misinformation’ are the communities and people consuming it. Through value-based fact-checking and reputational staking, netizens must navigate their own way in a ‘post truth’ world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 4:&lt;/strong&gt; Enforced identification protects vulnerable groups\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;Remote communication increases the possibility for harassment, revenge porn, and harmful acts against children. However, the loss of anonymity could disproportionately affect victims. Identification increases the risk of retaliation, stalking and doxxing, and the lack of cultural understanding in responding to these acts. Unless you remove the root cause for why people carry out these behaviors, they cannot be stopped through identification alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 5: &lt;/strong&gt;Fewer scams and less ‘money laundering’.\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;‘Money laundering’ is a 21st-century label for a state-created offense (which violates no property rights). Many legitimate services, e.g., Bitcoin wallets, privacy‑focused browsers, rely on pseudonymity for security. Only complete control of every aspect of online transactions would nullify the threat of fraud. Scammers can bypass verification through stolen, forged, or synthetic documents, recycled phone numbers, SIM‑swap attacks, and social‑engineering tactics that trick legitimate users into revealing credentials. Plus, once an account is verified, it can still be hijacked, reused across platforms, or exploited via phishing, romance, and business‑email‑compromise schemes that target trust rather than anonymity. Cryptographic security, webs of trust, and community initiatives create a more effective layered defense than simple ‘real name’ policies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 6: &lt;/strong&gt;Protection of intellectual property by identifying infringers\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;In his seminal work &lt;em&gt;Against Intellectual Property&lt;/em&gt;, Stephen Kinsella states, “The purpose of property rights is to allocate owners of scarce resources to permit peaceful, cooperative, productive use of these resources.”Digital IP doesn’t exist because it is not scarce. Digital bits can be reproduced, so it cannot be ‘stolen’. Meanwhile, online anonymity fosters innovation and experimentation by allowing users to use existing ideas to build value without reputational risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 7: &lt;/strong&gt;Identity checks enhance national security\
&lt;strong&gt;Rebuttal:&lt;/strong&gt; The need to monitor vast swathes of data creates huge pressures on government resources and leads to the expansion and inefficiency of security departments. Determined adversaries can avoid or subvert checks through forged or stolen credentials, inadequate biometric checks, incomplete intelligence, and human error. Further, anonymity protects free speech, especially for dissidents, whistleblowers, and journalists in repressive regimes. Implementing global de‑anonymization would require massive coordination, raising jurisdictional and sovereignty concerns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 8:&lt;/strong&gt; Identification prevents “sockpuppet” accounts and astroturfing\
&lt;strong&gt;Rebuttal:&lt;/strong&gt; Bots bypass ID checks by automating the very steps that were meant to be “human‑only.” They do this through a mix of cheap disposable credentials, outsourced human solving services, sophisticated image‑generation tools, and large pools of rotating IP addresses. There are also several legitimate reasons for needing multiple accounts: work and personal use, individual accounts for family members/children, project‑specific or testing sandbox accounts, privacy‑focused anonymous persona for sensitive topics, distinct brands or business profiles, regional/language‑specific accounts, compliance‑driven separate audit trails (e.g., finance, health).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 9: &lt;/strong&gt;ID reduces the need for high platform security costs\
&lt;strong&gt;Rebuttal&lt;/strong&gt;: The burden is simply passed to the user here. They incur the cost and risk of providing their identity to a commercial third-party. Centralized identity systems create single points of failure, which are attractive targets for hackers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 10:&lt;/strong&gt; Real-name policy promotes ‘responsible’ online behavior\
&lt;strong&gt;Rebuttal:&lt;/strong&gt; One person’s ‘responsible’ is another person’s ‘reckless’. Normalizing the language of conformity does not change anyone’s behaviour — it simply weaponizes words to implement hard checks and control. Removing anonymity pushes malicious actors to more hidden channels, making them harder to detect. Reasoned discussion and crowd-sourced problem solving can only thrive in an environment where reputation is built over time rather than tied to legal identity.&lt;strong&gt;&amp;amp;#xA;&lt;/strong&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Every argument above shares one structural flaw: the enforcement mechanism always costs more than the problem it solves. The cost is paid by the innocent. Arguments in favor of ending anonymity often use malleable and subjective language. Terms such as ‘protect’, ‘extreme’, and ‘vulnerable’ all lack the precision to facilitate real enforcement. They are used as the state’s premier weapons in the war on privacy and are parroted by subservient legacy media.&lt;/p&gt;

&lt;p&gt;But for every weapon, there is an effective defense.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&#34;the-survival-of-identity-free-communication-in-2026-2&#34;&gt;The Survival of Identity-Free Communication in 2026&lt;/h2&gt;

&lt;p&gt;As long as the non-zero possibility to mask your digital identity exists, power is kept in check. Without this harmony and balance provided by the dark Yin of anonymity, freedom contracts and eventually dies.&lt;/p&gt;

&lt;p&gt;While governments focus on stripping the convenience of remaining anonymous online, they chase greater control. Unless we push back and continue to highlight the counterpoints to state propaganda, ordinary citizens do lose control. Anonymity can never be made illegal, but it can be drastically throttled through ignorance.&lt;/p&gt;

&lt;p&gt;Every conversation, every article, every comment, every share, every campaign, every interaction helps maintain this healthy balance. Democracy is not conformity.&lt;/p&gt;

&lt;p&gt;As well as pushing back and making the voice of freedom heard, we must continue to build and use permissionless digital systems that protect identity. Their very existence stops the ultimate death of anonymity; their continued use restores the balance of power and builds resilient societies.&lt;/p&gt;

&lt;p&gt;Protect yourself and others.\
Use all the identity-free tools at your disposal.\
Join the counteroffensive.&lt;/p&gt;

&lt;h1 id=&#34;byline-2&#34;&gt;Byline&lt;/h1&gt;

&lt;p&gt;Article by: @totallyhumanwriter&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://totallyhumanwriter.com/home-2426&#34;&gt;&lt;em&gt;Philip Charter&lt;/em&gt;&lt;/a&gt; is a totally human author, editor, and writer for leaders and companies in the freedom tech space. He successfully escaped the bad British weather and now lives in Gran Canaria, Spain.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-04-09T08:56:55&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8a2dd89425w2rjzfacu6ccsug2gn2z39qek08glq0w3vv46rq0ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whehzuu</id>
    
      <title type="html">Gm. The moment you change what you say because someone might be ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8a2dd89425w2rjzfacu6ccsug2gn2z39qek08glq0w3vv46rq0ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whehzuu" />
    <content type="html">
      Gm. The moment you change what you say because someone might be watching, they&amp;#39;ve already won.
    </content>
    <updated>2026-04-08T09:32:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrwhu73x8xapnmvgeajhau4nshhwsuqhcnsctp35q9zxz9pfp2mvczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0weghddt</id>
    
      <title type="html">WhatsApp can&amp;#39;t message Telegram. Not because it&amp;#39;s hard. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrwhu73x8xapnmvgeajhau4nshhwsuqhcnsctp35q9zxz9pfp2mvczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0weghddt" />
    <content type="html">
      WhatsApp can&amp;#39;t message Telegram. Not because it&amp;#39;s hard. Because they don&amp;#39;t want it to be possible. Nostr fixes this. 
    </content>
    <updated>2026-04-07T11:15:21&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp2lhkmw6zh8znr4d9wfmad8ntrjanpavsvrxcj784hc3gnjkf3hczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wklr57m</id>
    
      <title type="html">🔔 Community call reminder, today April 7 at 16:00 UTC! Are you ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp2lhkmw6zh8znr4d9wfmad8ntrjanpavsvrxcj784hc3gnjkf3hczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wklr57m" />
    <content type="html">
      🔔 Community call reminder, today April 7 at 16:00 UTC! &lt;br/&gt;&lt;br/&gt;Are you interested in the future of private communication? You can&amp;#39;t miss this: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqqsdvu6k7zlzk39pss28rp52k4n0hx9w5jf85gz63xzruwd8c8rz8qs48xmxv&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xmxv&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; Get ready, Marmots! Tomorrow is the big day. &lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;We will discuss:&lt;br/&gt;&lt;br/&gt;• This month&#39;s key progress &lt;br/&gt;• The current state of the White Noise app &lt;br/&gt;• Future plans for the protocol &lt;br/&gt;• Q&amp;A from the community &lt;br/&gt;&lt;br/&gt;📅 Tuesday, April 7, 16:00 UTC. &lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ed2a59a0c000cf8f6eb5bb66e49d4f84fde54422cf0f8371ada1bb6b134faf53.png&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-04-07T08:48:18&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdvu6k7zlzk39pss28rp52k4n0hx9w5jf85gz63xzruwd8c8rz8qszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtxhzlm</id>
    
      <title type="html">Get ready, Marmots! Tomorrow is the big day. MARMOT COMMUNITY ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdvu6k7zlzk39pss28rp52k4n0hx9w5jf85gz63xzruwd8c8rz8qszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtxhzlm" />
    <content type="html">
      Get ready, Marmots! Tomorrow is the big day. &lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;We will discuss:&lt;br/&gt;&lt;br/&gt;• This month&amp;#39;s key progress &lt;br/&gt;• The current state of the White Noise app &lt;br/&gt;• Future plans for the protocol &lt;br/&gt;• Q&amp;amp;A from the community &lt;br/&gt;&lt;br/&gt;📅 Tuesday, April 7, 16:00 UTC. &lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ed2a59a0c000cf8f6eb5bb66e49d4f84fde54422cf0f8371ada1bb6b134faf53.png&#34;&gt; 
    </content>
    <updated>2026-04-06T16:31:17&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstg8yx8c37l94y5ltp29zacmql9607zhvslkkja707dcruczgek7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0waktusg</id>
    
      <title type="html">March was mostly us going &amp;#39;ok that shipped rough, let&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstg8yx8c37l94y5ltp29zacmql9607zhvslkkja707dcruczgek7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0waktusg" />
    <content type="html">
      March was mostly us going &amp;#39;ok that shipped rough, let&amp;#39;s fix it&amp;#39;. Here&amp;#39;s the recap: &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqzsmtpwfkk7apdwpex7ar0vdhkcttddah8g6rv0ykhyetrv9cz6mtpwf3kstfjxqervd6ge96&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…ge96&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;March was a stabilization month. Two White Noise releases went out to fix the rough edges that showed up after v0.3.0, a security audit started reshaping the SDK, and a new terminal client turned the Rust backend into something you can use without Flutter. Five independent Marmot clients shipped code, and the team gathered in Florianopolis for Bitcoin&#43;&#43; between releases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stabilizing White Noise&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The March 5 release broke backward compatibility deliberately, moving group messages from the old NIP-44 wrapper to ChaCha20-Poly1305 so every client could use the same encryption format. Older groups needed the clean break.&lt;/p&gt;

&lt;p&gt;That release also fixed two problems people hit right after v0.3.0: new group members could miss messages during a brief window after joining, and slightly older group-state messages were incorrectly marked as failed even though they should have decrypted fine.&lt;/p&gt;

&lt;p&gt;Sends stopped being invisible. White Noise now shows whether a message is still sending, has reached relays, or failed, with a reason attached, and failed sends retry automatically with an option to retry by hand.&lt;/p&gt;

&lt;p&gt;Swipe-to-reply landed alongside clearer invitation messages, working media previews, and image-only chat summaries. The iOS startup crash from duplicate tracing initialization is gone, and debug logs from the Rust backend are now visible inside the app.&lt;/p&gt;

&lt;p&gt;The March 25 release went after relay churn on heavier accounts, where too many connections were building up, login slowed down, reconnect loops piled up, and message delivery got flaky. Login now finishes faster, temporary connections clean up after themselves, and restored sessions recover without piling up stale state.&lt;/p&gt;

&lt;p&gt;That release switched to the newer Nostr threading convention for replies, added an in-app bug report screen with NIP-44 encrypted reports, and added in-app support chat that reopens an existing conversation instead of starting a new one. Startup failures in the Flutter/Rust bridge now show a real error screen instead of leaving you staring at the splash screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Audit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Least Authority&amp;#39;s audit of MDK moved from spec-level findings into code-level changes this month. By mid-March, the results were landing in the Rust core: tighter group-invite validation, media download limits, HTTPS enforcement on Blossom URLs, key-package fetch filtering, and Apple Silicon credential storage fixes. PR #634 closed the last item in a three-part group-invite validation set. MDK also added `cargo audit` to CI and bumped a crypto dependency for two March Rust security advisories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beyond Flutter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Rust backend is no longer tied to Flutter. `whitenoise-rs` now ships with a CLI and a background service that lets you create identities, inspect accounts, manage groups, send messages, and script the whole thing from a terminal.&lt;/p&gt;

&lt;p&gt;`wn-tui` turned that backend into a terminal chat client with split views, group details, user search, follows management, and a status bar for account state and pending invites. It is still early but already usable as a daily client.&lt;/p&gt;

&lt;p&gt;`dr.marmot` widened into `nostr-doctor` as the same relay diagnostic problems showed up across Nostr. Some of the earlier White Noise relay trouble came from the app, but some came from stale or missing relay data that users had already published. When that data drifts, other clients stop knowing where to find you. `nostr-doctor` checks dead relays, relay drift, key-package relay lists, deletion support, Blossom server status, and old NIP-51 lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Five Clients Shipping&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Five independent Marmot clients shipped code this month.&lt;/p&gt;

&lt;p&gt;openChat, built in C#, had the busiest month with 10 releases and 148 commits. Voice messages went from zero to working with recording permissions, Opus encoding, Blossom upload, and a send/receive flow. MIP-04 encrypted media attachments, a newer cipher suite for cross-client compatibility, and a reworked startup sequence landed in the same window.&lt;/p&gt;

&lt;p&gt;Vector reached v0.3.3 across three releases. Group management, Android notifications with inline reply, and app-level encryption came first, followed by image spoilers, mentions, emoji shortcodes, and tap-to-react. v0.3.3 shifted to hardening with a memory-hardened key vault, anti-debug protections, and SQLite memory use reportedly dropping from ~308MB to ~5MB. The Vector team also shipped [VectorPrivacy/DOOM](https://github.com/VectorPrivacy/DOOM), real-time P2P multiplayer DOOM delivered as a WebXDC chat message with no central server and proof that the transport layer works for more than text.&lt;/p&gt;

&lt;p&gt;Pika shipped four releases focused on build infrastructure, group-membership plumbing, and OpenClaw integration, including a dashboard for customer-managed deployments. Burrow added read receipts, typing indicators, and link previews. The TypeScript reference client (marmots-web-chat) picked up encrypted media, leave-group support, a stronger mobile layout, and WebXDC mini-app support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shared Protocol and SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The spec tightened around real failure cases. Group-message encryption changed, push-token formats were cleaned up, Welcome event details got clearer, and non-admin users can now propose removing themselves from a group. Key packages moved toward a replacement model where clients publish a new one under the same stable identifier instead of trying to delete the old one everywhere.&lt;/p&gt;

&lt;p&gt;MDK shipped twice in the first week with encrypted media support in the language bindings (Kotlin, Swift, Python, Ruby), a file-key derivation fix, and smaller Android and iOS release binaries. The TypeScript SDK published `@internet-privacy/marmot-ts\@0.4.0` with graceful group leave, better state persistence, and subscription handling.&lt;/p&gt;

&lt;p&gt;`transponder` is the Rust implementation of MIP-05, a privacy-preserving push notification server that sits between Nostr relays and Apple/Google push services. It subscribes to relays for gift-wrapped notification requests, decrypts them with ephemeral keys, and dispatches silent pushes to APNs and FCM without ever learning message content, sender identity, or group membership. In March, transponder aligned with the latest MIP-05 spec changes around token format and encoding validation, added transport retry with exponential backoff for APNs and FCM failures, switched to batch-based dispatch with proper shutdown draining, and fixed an event-loop stall that could stop relay ingestion after lagged notifications. The .NET MLS library (`dotnet-mls`) added tree-validation tests, fixed signing and parent-hash handling, and corrected a state-corruption bug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bitcoin&#43;&#43; Florianopolis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The team spent time together in Florianopolis around Bitcoin&#43;&#43;. Max gave [*From PGP to Marmot: Three Decades of Messaging Protocol Exploits and Defenses*](https://www.youtube.com/watch?v=hQ3yfiMQ81I), which traced failures in encrypted messaging from PGP and OTR through Signal-era attacks, then closed on where Marmot fits. Danny Morabito gave [*The Vibes are Off: Foundations Matter*](https://www.youtube.com/watch?v=8l6Lah8mntQ), a case that strong foundations matter before the stack gets ambitious. Both talks fit the month well, with the protocol&amp;#39;s case getting public airtime while the code got the fixes it needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mute/unmute support, gallery image saving, notification settings, and push-registration persistence are all active on the White Noise side. The spec-side change for replaceable key packages has landed; MDK and client follow-through is still in review. Self-remove support merged in the spec and is working through SDK and client layers. Pika&amp;#39;s OpenClaw channel plugin work and typed voice interfaces are still in flight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By the Numbers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;| Metric | Value |&lt;/p&gt;

&lt;p&gt;|--------|-------|&lt;/p&gt;

&lt;p&gt;| White Noise releases | 2 |&lt;/p&gt;

&lt;p&gt;| Marmot clients shipping code | 5 |&lt;/p&gt;

&lt;p&gt;| openChat releases | 10 |&lt;/p&gt;

&lt;p&gt;| Vector releases | 3 |&lt;/p&gt;

&lt;p&gt;| Pika releases | 4 |&lt;/p&gt;

&lt;p&gt;| New tools | CLI, TUI client, nostr-doctor |&lt;/p&gt;

&lt;p&gt;| Conference talks | 2 (Bitcoin&#43;&#43; Floripa) |&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to everyone who contributed code, design, issue reports, talks, and planning this month: justinmoon, erskingardner, dannym-arx, benthecarman, futurepaul, jgmontoya, josefinalliende, mubarakcoded, hzrd149, untreu2, gzuuus, nikitawvi, DavidGershony, JSKitty, YuurinBee, selkij, Centauri, rphilbrdigits, Datawav, Awiteb, dergigi, kelaode-dev, jodobear, Max, and Vladimir Krstic.&lt;/p&gt;

&lt;p&gt;Start with the [Marmot Protocol spec](https://github.com/marmot-protocol/marmot), [MDK](https://github.com/marmot-protocol/mdk), or [White Noise](https://github.com/marmot-protocol/whitenoise). The [TypeScript SDK](https://github.com/marmot-protocol/marmot-ts) is ready for web builds.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-04-01T14:37:58&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstm2r8n3sghr0ac0aw3mm6p34ntfy4jmnxzeu8acq5cpjtcul60zczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wxwlrc8</id>
    
      <title type="html">We shipped. Release notes here for anyone who wants to know what ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstm2r8n3sghr0ac0aw3mm6p34ntfy4jmnxzeu8acq5cpjtcul60zczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wxwlrc8" />
    <content type="html">
      We shipped. Release notes here for anyone who wants to know what changed. 👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqpgamgd96x2ttwda5hxefdwcerqv3kxverxadfq3f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…fq3f&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;This release starts with the problem people felt most. The previous release was rough on heavier accounts. If you followed a lot of people, White Noise could accumulate too many relay connections, spend too long logging in, and fall into reconnect churn, with message flow turning unreliable in the worst cases. This release fixes that first.&lt;/p&gt;

&lt;p&gt;Between `2026-03-05` and `2026-03-23`, the mobile app merged 31 pull requests across 214 changed files. Six separate `whitenoise-rs` repins pulled in the backend work that made most of this release possible. There is no migration here. You update and keep your data.&lt;/p&gt;

&lt;h3 id=&#34;relay-work-first-2&#34;&gt;Relay work first&lt;/h3&gt;

&lt;p&gt;The relay layer had been doing too much in one place.&lt;/p&gt;

&lt;p&gt;Long-lived session relays, one-off discovery relays, query relays, and publish relays were all leaning on the same machinery too often. New relays tended to stick around. Subscription refreshes fired too eagerly. The backend tracking issue for this work describes it plainly: too many failed relay connections, repeated reconnect attempts, and unstable behavior caused by relay lifecycle problems in the app itself (`whitenoise-rs#569`).&lt;/p&gt;

&lt;p&gt;This release cuts that down in a few ways.&lt;/p&gt;

&lt;p&gt;Login no longer waits on every relay list publish before moving on. Relay-list publishing now uses quorum logic, then retries the rest in the background (`whitenoise-rs#669`). One-off fetches and publishes now use scoped ephemeral relay sessions, so temporary work does not keep bloating the long-lived pool (`whitenoise-rs#592`, `whitenoise-rs#600`). Relay lists repair themselves when a transient failure leaves them missing from the network (`whitenoise-rs#673`). Restored sessions also recover their group refresh path after startup instead of quietly going stale (`whitenoise-rs#682`).&lt;/p&gt;

&lt;p&gt;The app side exposes more of this work. `The great relay restoration` added relay diagnostics, relay state inspection, and key-package management. The follow-up screen work made those tools easier to use and easier to trust (`#495`, `#502`).&lt;/p&gt;

&lt;p&gt;If the last release felt unstable on an account with a large follow list, this is the fix.&lt;/p&gt;

&lt;h3 id=&#34;conversations-read-better-now-2&#34;&gt;Conversations read better now&lt;/h3&gt;

&lt;p&gt;Replies now follow NIP-C7. White Noise writes a single `q` tag and a `nostr:nevent` reference, which gives other Marmot clients a clean way to resolve the target message (`#468`, `whitenoise-rs#581`).&lt;/p&gt;

&lt;p&gt;Deleted messages also stay visible as deleted. Earlier builds simply removed them from view, which made conversations look damaged. Now the chat keeps a placeholder, adjusts bubble grouping around it, and drops the interactions that no longer make sense on deleted content (`#471`, `#512`).&lt;/p&gt;

&lt;p&gt;User metadata now updates in place across chat lists, profiles, invites, and search results. No remount needed. No second visit to the screen. `#522` brought that into the app, and `whitenoise-rs#676` added the per-user stream behind it.&lt;/p&gt;

&lt;p&gt;The start-chat flow also stopped fighting the user. Self-actions are gone. Missing DM metadata can use a blocking sync when needed. The screen shows the avatar while key-package checks finish instead of covering the whole slate with a loading state (`#517`, `#443`).&lt;/p&gt;

&lt;h3 id=&#34;support-lives-in-the-app-now-2&#34;&gt;Support lives in the app now&lt;/h3&gt;

&lt;p&gt;Two additions close the distance between hitting a problem and doing something about it.&lt;/p&gt;

&lt;p&gt;White Noise now has an in-app bug report flow. Reports are NIP-44 encrypted and sent from an ephemeral key by default. You can include your public identity if you want to. You do not have to.&lt;/p&gt;

&lt;p&gt;Support chat is now part of the app too. If a support conversation already exists, White Noise opens it directly. If not, it starts one without sending you through user search first (`#478`, `#486`, `#517`).&lt;/p&gt;

&lt;h3 id=&#34;failure-paths-are-clearer-2&#34;&gt;Failure paths are clearer&lt;/h3&gt;

&lt;p&gt;If the Flutter/Rust bridge failed during startup before, White Noise could leave you parked on the splash screen with no useful signal. This release replaces that with a real fatal error screen. Staging builds show the details. Production keeps the message brief and user-facing (`#477`).&lt;/p&gt;

&lt;p&gt;The log screens also became worth using. You can pause live scrolling, resume it, keep far more history in memory, filter logs by level, and copy everything at once (`#474`, `#502`, `#517`).&lt;/p&gt;

&lt;h3 id=&#34;the-visible-parts-got-another-pass-2&#34;&gt;The visible parts got another pass&lt;/h3&gt;

&lt;p&gt;Login, signup, slate, and settings all got another round of design work. The onboarding carousel sits more cleanly in the login flow. Settings and slate screens have tighter navigation and spacing. Signup got a fuller pass, including the callout and button work needed to match the design source more closely (`#459`, `#504`, `#519`).&lt;/p&gt;

&lt;p&gt;There are smaller pieces around the edges too: a Zapstore update prompt on Android, translation fixes, a cheaper group list query path, and the usual dependency work that keeps the next release from getting worse before it gets better (`#481`, `#506`).&lt;/p&gt;

&lt;h3 id=&#34;the-crate-bumps-were-the-story-too-2&#34;&gt;The crate bumps were the story too&lt;/h3&gt;

&lt;p&gt;The short app changelog does not say enough here because six pull requests in this release window were some variation of `update rust crate`.&lt;/p&gt;

&lt;p&gt;Between `6aff825` and `60770fd`, those repins pulled in relay cleanup, NIP-C7 reply support, `visible_groups_with_info`, Zapstore version fetching, media integrity fixes, relay-list maintenance, and the per-user metadata stream. A line item that says `update rust crate` can carry most of the release on its back. This one did.&lt;/p&gt;

&lt;h3 id=&#34;contributors-8&#34;&gt;Contributors&lt;/h3&gt;

&lt;p&gt;This release window includes work from Jeff, Pepi, Javier, Danny, Emir, Max and Nikita L. Nikita made a first contribution with the self-profile guard that removed invalid self-actions from search and start-chat flows.&lt;/p&gt;

&lt;h3 id=&#34;get-the-update-5&#34;&gt;Get the update&lt;/h3&gt;

&lt;p&gt;If you use White Noise today, update to `v2026.3.23`.&lt;/p&gt;

&lt;p&gt;If the last release felt rough on a heavier account, start here. White Noise still asks for no phone, no email, just keys.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Download: GitHub releases page for `marmot-protocol/whitenoise`&lt;/p&gt;

&lt;p&gt;Read the release notes: `v2026.3.23-release-notes.md`&lt;/p&gt;

&lt;p&gt;Report issues: GitHub issue tracker for `marmot-protocol/whitenoise`&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-03-25T12:06:26&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0memsf4vwt7rx759k9yhtfmx4gyh0n0lyt3z3sdsrlksef8gdf5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w59m0an</id>
    
      <title type="html">👀</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0memsf4vwt7rx759k9yhtfmx4gyh0n0lyt3z3sdsrlksef8gdf5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w59m0an" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswekgaaldq37r0hfx4snre6yx0sajnvs8tpeqzpf7hvrpz2msxw9gekd0p2&#39;&gt;nevent1q…d0p2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;👀
    </content>
    <updated>2026-03-09T23:10:53&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs95kr4wlrt38c36jkavh564n7wte6zt737gguet2uplf78a89n4xgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcx9lug</id>
    
      <title type="html">Some things are meant to stay between two people. We&amp;#39;re ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs95kr4wlrt38c36jkavh564n7wte6zt737gguet2uplf78a89n4xgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcx9lug" />
    <content type="html">
      Some things are meant to stay between two people. We&amp;#39;re building the app for that. 
    </content>
    <updated>2026-03-09T22:29:53&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9w6hyahfnj062yzm6nr6v322k5pt79sm43wzht2u4g5gg8fs5zqgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wf4zf6j</id>
    
      <title type="html">We build free and open source private communications tools: ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9w6hyahfnj062yzm6nr6v322k5pt79sm43wzht2u4g5gg8fs5zqgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wf4zf6j" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2002dp4us3evsngku6ejrg9x6ctkqxs45cml5ezdpd22hj6zhf8qd2endw&#39;&gt;nevent1q…endw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;We build free and open source private communications tools:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/marmot-protocol&#34;&gt;https://github.com/marmot-protocol&lt;/a&gt;
    </content>
    <updated>2026-03-09T15:26:52&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2002dp4us3evsngku6ejrg9x6ctkqxs45cml5ezdpd22hj6zhf8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w56fr8m</id>
    
      <title type="html">Nostr is great for social. Terrible for private messages. Marmot ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2002dp4us3evsngku6ejrg9x6ctkqxs45cml5ezdpd22hj6zhf8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w56fr8m" />
    <content type="html">
      Nostr is great for social. Terrible for private messages. Marmot protocol fixes this. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/49754a0371445c4f22934bf80afea9ff0f84b05dfd051afea1dbd184097a2a24.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-03-09T15:25:36&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxyyaqgr8aksvy5et5ryhwlnr3y04jrlxz8h9cc394w25ngaut6jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wfwk5rf</id>
    
      <title type="html">https://github.com/marmot-protocol/wn-tui</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxyyaqgr8aksvy5et5ryhwlnr3y04jrlxz8h9cc394w25ngaut6jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wfwk5rf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsghvn4gsmtv20hxles9f8tjp22stzrfddqmjpj5rvrl3z5kn2gtmst804ux&#39;&gt;nevent1q…04ux&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/marmot-protocol/wn-tui&#34;&gt;https://github.com/marmot-protocol/wn-tui&lt;/a&gt;
    </content>
    <updated>2026-03-06T15:22:06&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsghvn4gsmtv20hxles9f8tjp22stzrfddqmjpj5rvrl3z5kn2gtmszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wx8tfz7</id>
    
      <title type="html">Secure group chat in your terminal. wn-tui wraps WhiteNoise (MLS ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsghvn4gsmtv20hxles9f8tjp22stzrfddqmjpj5rvrl3z5kn2gtmszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wx8tfz7" />
    <content type="html">
      Secure group chat in your terminal. wn-tui wraps WhiteNoise (MLS &#43; Nostr) in a full TUI: chat list, reactions, key bindings, the works.&lt;br/&gt;&lt;br/&gt;Chat, react, manage groups, all from your terminal!&lt;br/&gt;&lt;br/&gt;github.com/marmot-protocol/wn-tui &lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/6d03dece0e01b2baa7b7666b2146be3a8771110ee30dc868722ea881811a1382.png&#34;&gt;  
    </content>
    <updated>2026-03-06T15:21:41&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswkyqw3sjpwpd9ulu0q8x5z7cflu2gyg9pcqdfnt4jy0ujf8rk60szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl60c5f</id>
    
      <title type="html">Download White Noise: https://www.whitenoise.chat</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswkyqw3sjpwpd9ulu0q8x5z7cflu2gyg9pcqdfnt4jy0ujf8rk60szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl60c5f" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspy887tktmp286tw74xa2vfdzq9q7lmzraezafspl2y87t9cz5ejgerhg8h&#39;&gt;nevent1q…hg8h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Download White Noise:&lt;br/&gt;&lt;a href=&#34;https://www.whitenoise.chat&#34;&gt;https://www.whitenoise.chat&lt;/a&gt;
    </content>
    <updated>2026-03-05T21:41:02&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspy887tktmp286tw74xa2vfdzq9q7lmzraezafspl2y87t9cz5ejgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0what4aa</id>
    
      <title type="html">A lot changed in this release. Messages arrive instantly. Group ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspy887tktmp286tw74xa2vfdzq9q7lmzraezafspl2y87t9cz5ejgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0what4aa" />
    <content type="html">
      A lot changed in this release. Messages arrive instantly. Group chats are stable. We improved image sharing. Amber support. Keys only, no phone number.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqpxamgd96x2ttwda5hxefdwcerqv3kxv6shahva8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…hva8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;We shipped v0.3.0 one week ago and said nothing about it. Within hours of release we found bugs that caused messages to vanish from group chats to some users. Announcing a messenger that loses messages felt wrong, so we went quiet and fixed it instead. &lt;strong&gt;v2026.3.5 &lt;/strong&gt;is the result: everything new from v0.3.0, with the reliability problems solved.&lt;/p&gt;

&lt;p&gt;For anyone coming from an older version, this is a large update. New encryption under the hood, real-time message delivery, image sharing, group chats, Amber support, and a long list of improvements that make the app feel like a different product. Here is what changed and why:&lt;/p&gt;

&lt;h3 id=&#34;upgrading-2&#34;&gt;Upgrading&lt;/h3&gt;

&lt;p&gt;If you are coming from v0.3.0, the upgrade is simple. Your existing groups stay intact, but the encryption method for new group messages has changed. Group members who have not yet upgraded to &lt;strong&gt;v2026.3.5&lt;/strong&gt; will not be able to read new messages or receive images until they update. Once everyone in a group is on &lt;strong&gt;v2026.3.5&lt;/strong&gt;, everything works as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you are coming from an older version (v0.2.x or earlier), this upgrade requires a one-time reset of all local data.&lt;/strong&gt; Messages, images, group memberships, and settings will be erased when you open the new version. The reason: the Marmot protocol changed how it manages encryption state for groups, and we moved the local database from unencrypted to fully encrypted storage. Least Authority&amp;#39;s security audit confirmed encrypted storage as a priority, since a messenger built on privacy should not store conversations in plaintext on disk. Because the database library has no way to migrate between formats, a clean break was the only option that would not risk silent corruption.\
\
&lt;strong&gt;Before upgrading from v0.2.x, back up your nsec (your private key) &lt;/strong&gt;if you have not already. After updating, log in with your existing keys or connect through Amber. Your profile information lives on Nostr relays, so it will sync back automatically when you sign in. Follow list persists on relays too. Groups from v0.2.x will need to be recreated, since the old encryption state cannot carry over.&lt;/p&gt;

&lt;p&gt;The database and protocol structures now support proper migrations, so future updates will preserve your data regardless of which version you are coming from.&lt;/p&gt;

&lt;h3 id=&#34;amber-and-external-signers-2&#34;&gt;Amber and External Signers&lt;/h3&gt;

&lt;p&gt;For users who manage their Nostr keys through a dedicated signing app like Amber, White Noise previously required you to paste your private key directly into the app. That meant trusting the app with your most sensitive credential. With this release, White Noise connects to Amber and other external signers directly, so your private key never leaves the signer. The app asks the signer to authorize each action, and the key stays where it belongs.&lt;/p&gt;

&lt;p&gt;QR code scanning accepts both private keys (nsec) and public keys (npub) without requiring you to know which format you are scanning. If you have been waiting for external signer support before trying White Noise, this is the release.&lt;/p&gt;

&lt;h3 id=&#34;messages-that-arrived-late-now-arrive-2&#34;&gt;Messages That Arrived Late Now Arrive&lt;/h3&gt;

&lt;p&gt;The most consequential fix in this release is invisible. In v0.3.0, messages sent during the brief window between receiving a Welcome and subscribing to the group relay would vanish. Late-arriving messages from previous MLS epochs were permanently marked as failed because &lt;code&gt;max_past_epochs&lt;/code&gt; was never wired into the OpenMLS configuration (it defaulted to zero).&lt;/p&gt;

&lt;p&gt;Both problems are fixed. The Rust backend now gates catch-up on subscription readiness instead of a fixed sleep timer, and &lt;code&gt;max_past_epochs&lt;/code&gt; defaults to 5. Messages that arrive slightly out of order or from a previous epoch now decrypt correctly. OpenMLS was bumped to 0.8.1, which includes a security fix for tag comparison (GHSA-8x3w-qj7j-gqhf).&lt;/p&gt;

&lt;h3 id=&#34;relay-handling-that-does-not-strand-users-2&#34;&gt;Relay Handling That Does Not Strand Users&lt;/h3&gt;

&lt;p&gt;v0.3.0 had a blind spot: if a user&amp;#39;s inbox relay list (kind 10050) was missing, giftwrap subscriptions would silently fail. The user could log in but never receive messages.&lt;/p&gt;

&lt;p&gt;This release falls back to NIP-65 relays when inbox relay lists are absent ([whitenoise-rs#518](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/518%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/518&amp;gt;)&lt;/a&gt;). Login now blocks when any of the required relay lists (kinds 10002, 10050, 10051) are missing, preventing users from entering a broken state. Relay filter validation and semantic event selection were hardened. The &lt;code&gt;NostrManager::with_signer&lt;/code&gt; path is now cancellation-safe. Subscriptions recover after external signer re-registration instead of going silent.&lt;/p&gt;

&lt;h3 id=&#34;message-delivery-status-2&#34;&gt;Message Delivery Status&lt;/h3&gt;

&lt;p&gt;Previous versions published messages with no feedback. The app fired events at relays and moved on. If relays rejected or never acknowledged the message, the sender had no way to know.&lt;/p&gt;

&lt;p&gt;Publishing is now tracked end-to-end. Messages appear immediately with a &lt;code&gt;Sending&lt;/code&gt; status, transition to &lt;code&gt;Sent(N relays)&lt;/code&gt; after relay acknowledgment, or &lt;code&gt;Failed(reason)&lt;/code&gt; after three automatic retries with exponential backoff (2s, 4s). The Rust backend streams status updates through flutter_rust_bridge, and the Flutter UI renders them as sending, sent or failed on each outgoing bubble ([whitenoise-rs#519](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/519%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/519&amp;gt;&lt;/a&gt;), [whitenoise#425](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/425%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/425&amp;gt;)&lt;/a&gt;). Tap a failed message to retry manually. Retried messages reposition to the end of the chat list.&lt;/p&gt;

&lt;p&gt;Delivery status persists across app restarts and survives relay echo reprocessing without regressing to stale state ([whitenoise-rs#559](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/559%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/559&amp;gt;&lt;/a&gt;), [whitenoise-rs#556](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/556%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/556&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;mip-04-encrypted-media-2&#34;&gt;MIP-04: Encrypted Media&lt;/h3&gt;

&lt;p&gt;MIP-04 defines how Marmot clients encrypt files for upload and decrypt them after download. The encryption key derives from the MLS group secret via HKDF-Expand, so only group members can access shared media. File metadata (MIME type, dimensions, blurhash) travels as an IMETA tag inside the encrypted MLS message.&lt;/p&gt;

&lt;p&gt;The MDK exposes MIP-04 through UniFFI bindings for Kotlin, Swift, Python, and Ruby ([mdk#215](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/215%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/215&amp;gt;)&lt;/a&gt;). The HKDF key derivation was corrected to use expand-only semantics with the exporter secret as PRK, matching the specification exactly ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;). The TypeScript SDK implements MIP-04 natively with a &lt;code&gt;GroupMediaStore&lt;/code&gt;, IMETA tag parsing, and event-driven media caching ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;replies-that-work-like-replies-2&#34;&gt;Replies That Work Like Replies&lt;/h3&gt;

&lt;p&gt;Swipe-to-reply, auto-focus on the input field, and author-colored quote previews make replies feel like a natural part of conversation instead of an afterthought ([whitenoise#389](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/389%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/389&amp;gt;)&lt;/a&gt;). Tapping a reply scrolls to the original message. The reply context preserves media attachments in the quote.&lt;/p&gt;

&lt;h3 id=&#34;media-previews-in-chat-list-2&#34;&gt;Media Previews in Chat List&lt;/h3&gt;

&lt;p&gt;Conversations with image-only messages no longer show empty previews. The chat list displays an attachment indicator so you can tell what happened without opening the conversation ([whitenoise#414](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/414%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/414&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;group-security-hardening-2&#34;&gt;Group Security Hardening&lt;/h3&gt;

&lt;p&gt;Key packages are now validated before adding members to a group. The backend checks kind, base64 payload, ciphersuite, required MLS extensions, and verifies the event pubkey matches the expected member ([whitenoise-rs#548](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/548%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/548&amp;gt;)&lt;/a&gt;). Admin-only mutations (add members, remove members, update group data) are enforced with fail-fast checks ([whitenoise-rs#547](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/547%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/547&amp;gt;)&lt;/a&gt;). Post-join self-update is temporarily disabled to prevent stale-state divergence risk ([whitenoise-rs#562](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/562%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/562&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;ui-polish-2&#34;&gt;UI Polish&lt;/h3&gt;

&lt;p&gt;Twenty-plus pull requests worth of visual fixes. The home screen layout was flattened with improved spacing for the hero image, slogan, and auth controls ([whitenoise#441](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/441%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/441&amp;gt;)&lt;/a&gt;). The signup bio field no longer gets cut off by the keyboard. The onboarding carousel text renders completely. The npub display uses block-based ellipsis instead of cutting mid-character. Relay input fields have a clear button. Error notices in the chat screen sit in the right position. Blurhash placeholders now match the dimensions of the loaded image instead of rendering at the wrong size. Disabled buttons are visible in both light and dark mode. The base design size matches the Figma source of truth.&lt;/p&gt;

&lt;h3 id=&#34;debug-view-2&#34;&gt;Debug View&lt;/h3&gt;

&lt;p&gt;A new debug screen surfaces logs from the Rust backend directly in the app ([whitenoise#417](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/417%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/417&amp;gt;)&lt;/a&gt;). For developers and testers, this eliminates the need to connect to ADB or read logcat output to diagnose issues.&lt;/p&gt;

&lt;h3 id=&#34;ci-pipeline-2&#34;&gt;CI Pipeline&lt;/h3&gt;

&lt;p&gt;Tests now shard four ways with Rust test coverage included ([whitenoise#419](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/419%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/419&amp;gt;)&lt;/a&gt;). A 10-minute timeout prevents stuck jobs from blocking the queue. APK builds run on every pull request. The release builder and Zapstore asset pipeline shipped alongside v0.3.0 and continue to work for this release.&lt;/p&gt;

&lt;h3 id=&#34;new-clients-and-tools-2&#34;&gt;New Clients and Tools&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;whitenoise-rs CLI.&lt;/strong&gt; A full CLI client and daemon that exposes the Rust backend directly from the command line ([whitenoise-rs#537](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/537%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/537&amp;gt;)&lt;/a&gt;). Commands cover identity management, accounts, groups, chats, messages, follows, users, profile, relays, settings, notifications, and streaming IPC. Includes end-to-end test suite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;wn-tui.&lt;/strong&gt; A terminal client for White Noise, written in Rust. Unicode-safe input, auto-growing composer, reactions, follows management, a status bar with display name and invite count, and a profile screen with bech32 npub conversion. For people who live in the terminal and prefer it that way. ([wn-tui](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/wn-tui%3E%29&#34;&gt;https://github.com/marmot-protocol/wn-tui&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;We tested interoperability (including encrypted media) between the new Marmot typescript library with MDK apps using the pre-alpha Marmots web chat (and it worked!) &amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts%3E&#34;&gt;https://github.com/marmot-protocol/marmot-ts&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dr. Marmot.&lt;/strong&gt; A diagnostic tool that audits your Nostr identity for Marmot compatibility. Checks relay unification across kinds 10002, 10050, and 10051. Detects orphaned key packages. Prescribes fixes. Works on mobile. Has a personality layer called &amp;#34;Jeff mode&amp;#34; for when you want your diagnostics delivered as corporate wellness advice. ([dr.marmot](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/dr.marmot%3E%29&#34;&gt;https://github.com/marmot-protocol/dr.marmot&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;protocol-2&#34;&gt;Protocol&lt;/h3&gt;

&lt;p&gt;The Marmot specification updated three MIPs:&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-01&lt;/strong&gt;: Extension format v2 with QUIC varint encoding. Admin pubkeys changed from hex-encoded comma-separated strings to concatenated raw 32-byte x-only public keys.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-02&lt;/strong&gt;: Clarified post-join self-update sequencing with a warning about stale-state divergence risk.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-03&lt;/strong&gt;: NIP-44 replaced with ChaCha20-Poly1305 (described above). MIP-04 exporter label updated from &lt;code&gt;(&amp;#34;nostr&amp;#34;, &amp;#34;nostr&amp;#34;)&lt;/code&gt; to &lt;code&gt;(&amp;#34;marmot&amp;#34;, &amp;#34;encrypted-media&amp;#34;)&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id=&#34;sdks-2&#34;&gt;SDKs&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The MDK shipped three releases in this cycle. v0.6.0 added &lt;code&gt;clear_pending_commit&lt;/code&gt; for recovering from publish failures, ratchet tree inspection with public keys, and proper &lt;code&gt;max_past_epochs&lt;/code&gt; wiring. v0.7.0 exposed MIP-04 encrypted media through UniFFI bindings with &lt;code&gt;encrypt_media_for_upload&lt;/code&gt;, &lt;code&gt;decrypt_media_from_download&lt;/code&gt;, &lt;code&gt;create_media_imeta_tag&lt;/code&gt;, and &lt;code&gt;parse_media_imeta_tag&lt;/code&gt; ([mdk#215](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/215%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/215&amp;gt;)&lt;/a&gt;). v0.7.1 fixed MIP-04 file key derivation to use HKDF-Expand with the exporter secret as PRK ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;A CI workflow now checks UniFFI binding coverage against the mdk-core public API surface on every pull request, using nightly rustdoc JSON to compare bound vs. unbound methods. Current coverage: 30/37 bindable methods (81.1%) ([mdk#212](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/212%3E%29%29.&#34;&gt;https://github.com/marmot-protocol/mdk/pull/212&amp;gt;)).&lt;/a&gt;
\
All four language bindings (Python, Ruby, Kotlin, Swift) received automated updates tracking 14 core MDK releases in this period.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The TypeScript SDK added a &lt;code&gt;KeyPackageManager&lt;/code&gt; class with &lt;code&gt;watchKeyPackages&lt;/code&gt; and &lt;code&gt;markUsed()&lt;/code&gt; tracking, typed domain errors replacing generic throws, &lt;code&gt;decryptGroupMessage&lt;/code&gt; (renamed from &lt;code&gt;readGroupMessage&lt;/code&gt;), debug logging via the &lt;code&gt;debug&lt;/code&gt; package, and an anti-fork fix that prevents automatic self-update in &lt;code&gt;joinGroupFromWelcome&lt;/code&gt;. MIP-04 support includes a &lt;code&gt;GroupMediaStore&lt;/code&gt; with event-driven caching, IMETA tag helpers, and per-file encrypt/decrypt methods ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;). The npm package was renamed from &lt;code&gt;@internet-privacy/marmots&lt;/code&gt; to &lt;code&gt;@internet-privacy/marmot-ts&lt;/code&gt; ([marmot-ts#59](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/59%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/59&amp;gt;)&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;added-3&#34;&gt;Added&lt;/h3&gt;

&lt;p&gt;- Message delivery status: sending, sent (with relay count), failed (with reason) ([whitenoise-rs#519](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/519%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/519&amp;gt;&lt;/a&gt;), [whitenoise#425](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/425%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/425&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Tap-to-retry for failed messages with automatic repositioning ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MIP-04 encrypted media in UniFFI bindings for Kotlin/Swift/Python/Ruby ([mdk#215](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/215%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/215&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MIP-04 encrypted media in TypeScript SDK with GroupMediaStore ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Chat system messages showing inviter on invite screens ([whitenoise#408](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/408%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/408&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Per-message sender name and avatar in group chats ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- CLI client and daemon for whitenoise-rs ([whitenoise-rs#537](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/537%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/537&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Key package compatibility validation before member adds ([whitenoise-rs#548](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/548%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/548&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Admin-only mutation enforcement for group operations ([whitenoise-rs#547](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/547%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/547&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- UniFFI bindings coverage CI checker ([mdk#212](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/212%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/212&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Swipe-to-reply with auto-focus and author-colored quotes ([#389](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/389%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/389&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Media-only chat summary in chat list ([#414](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/414%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/414&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Clear button on relay input fields ([#412](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/412%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/412&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Debug view with Rust backend logs ([#417](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/417%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/417&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- APK builds on every pull request ([#401](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/401%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/401&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Follows support in wn-tui ([wn-tui#1](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/wn-tui/pull/1%3E%29&#34;&gt;https://github.com/marmot-protocol/wn-tui/pull/1&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- README pixel art ([#436](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/436%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/436&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;changed-2&#34;&gt;Changed&lt;/h3&gt;

&lt;p&gt;- MIP-03 encryption: NIP-44 replaced with ChaCha20-Poly1305 for kind:445&lt;/p&gt;

&lt;p&gt;- MIP-01 extension format v2 with QUIC varint encoding&lt;/p&gt;

&lt;p&gt;- MIP-04 exporter label updated; HKDF key derivation corrected to expand-only semantics ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MDK bumped to v0.7.1 with MIP-04 encrypted media support&lt;/p&gt;

&lt;p&gt;- TypeScript SDK npm package renamed from &lt;code&gt;@internet-privacy/marmots&lt;/code&gt; to &lt;code&gt;@internet-privacy/marmot-ts&lt;/code&gt; ([marmot-ts#59](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/59%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/59&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Message publishing replaced fire-and-forget with tracked delivery status and automatic retries ([whitenoise-rs#519](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/519%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/519&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Post-join self-update temporarily disabled to prevent stale-state divergence ([whitenoise-rs#562](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/562%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/562&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Home screen layout flattened with improved visual hierarchy ([whitenoise#441](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/441%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/441&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- OpenMLS bumped to 0.8.1&lt;/p&gt;

&lt;p&gt;- Base design size aligned to Figma ([#433](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/433%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/433&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- CI sharded 4-way with Rust tests and 10-min timeout ([#419](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/419%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/419&amp;gt;&lt;/a&gt;), [#431](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/431%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/431&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- &lt;code&gt;whitenoise-rs&lt;/code&gt;: groups and users split into focused submodules ([#541](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/541%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/541&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;fixed-2&#34;&gt;Fixed&lt;/h3&gt;

&lt;p&gt;- iOS crash from duplicate tracing initialization ([#430](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/430%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/430&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Messages lost during Welcome-to-subscription gap ([whitenoise-rs#526](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/526%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/526&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Late-epoch messages permanently marked failed ([whitenoise-rs#525](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/525%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/525&amp;gt;&lt;/a&gt;), [mdk#207](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/207%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/207&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Giftwrap subscriptions failing when inbox relay list missing ([whitenoise-rs#518](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/518%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/518&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Welcome accepted without key-package e-tag ([whitenoise-rs#539](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/539%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/539&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Subscriptions lost after external signer re-registration ([whitenoise-rs#512](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/512%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/512&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Delivery status preserved on echoed outgoing messages ([whitenoise-rs#559](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/559%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/559&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Retry status updates streamed to subscribers immediately ([whitenoise-rs#556](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/556%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/556&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Relay error propagation from sync_relay_urls ([whitenoise-rs#545](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/545%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/545&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Media blurhash placeholder sizing to match loaded image dimensions ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Message bubble padding and group chat sender info display ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MIP-04 HKDF key derivation corrected to expand-only with exporter secret as PRK ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Signup bio field cut by keyboard ([#435](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/435%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/435&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Onboarding carousel text cut off ([#404](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/404%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/404&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Media modal blurhash rendering ([#397](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/397%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/397&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Npub ellipsis display ([#388](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/388%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/388&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Chat screen error notice positioning ([#409](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/409%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/409&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Translation fixes including relay validation messages ([#396](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/396%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/396&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Duplicate DM chats with same peer ([#371](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/371%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/371&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- TypeScript SDK event listener setup order in group subscribe ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;contributors-11&#34;&gt;Contributors&lt;/h3&gt;

&lt;p&gt;JeffG (erskingardner), Pepi (josefinalliende), Danny M (dannym-arx), emir yorulmaz (untreu2), Javier G. Montoya S. (jgmontoya), hzrd149, gzuuus, Mubarak Auwal (mubarakcoded), JSKitty, Andrew (dechristopher).&lt;/p&gt;

&lt;h3 id=&#34;full-changelog-2&#34;&gt;Full Changelog&lt;/h3&gt;

&lt;p&gt;For the complete list of changes, see the changelogs in each repository:&lt;/p&gt;

&lt;p&gt;- [whitenoise](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/blob/main/CHANGELOG.md%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise/blob/main/CHANGELOG.md&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [whitenoise-rs](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [mdk](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk%3E&#34;&gt;https://github.com/marmot-protocol/mdk&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [marmot](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot%3E&#34;&gt;https://github.com/marmot-protocol/marmot&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [marmot-ts](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts%3E&#34;&gt;https://github.com/marmot-protocol/marmot-ts&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;---&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: [github.com/marmot-protocol/whitenoise/releases](https://github.com/marmot-protocol/whitenoise/releases)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diagnose your setup&lt;/strong&gt;: [dr.marmot](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/dr.marmot%3E&#34;&gt;https://github.com/marmot-protocol/dr.marmot&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Report issues&lt;/strong&gt;: [github.com/marmot-protocol/whitenoise/issues](https://github.com/marmot-protocol/whitenoise/issues)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community call&lt;/strong&gt;: First Tuesday of each month, 1700 UTC\
\
&lt;img src=&#34;https://blossom.primal.net/164d75a98eaf2e354a341fa746bad813fcce360b5315d9e9914c876f4e50cbe7.png&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.whitenoise.chat&#34;&gt;DOWNLOAD WHITE NOISE&lt;/a&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-03-05T21:40:19&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspmwnmksr3pjqgkxe2f69e0dej9mr0wwghm46t3mgvz0uvqf08t7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wkpr392</id>
    
      <title type="html">We’re LIVE. Join us here: https://meet.fulmo.org/marmot ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspmwnmksr3pjqgkxe2f69e0dej9mr0wwghm46t3mgvz0uvqf08t7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wkpr392" />
    <content type="html">
      We’re LIVE. Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqmhxr37&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xr37&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-03-03T17:09:13&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxuf7463mx5kk8zn8jc7p7yhkvk62wfs2gyvyck2cdy24uy0hutuqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wk38tee</id>
    
      <title type="html">Live in 2 minutes #nevent1q…xr37</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxuf7463mx5kk8zn8jc7p7yhkvk62wfs2gyvyck2cdy24uy0hutuqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wk38tee" />
    <content type="html">
      Live in 2 minutes &lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqmhxr37&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xr37&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-03-03T16:58:43&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz8p5kgfgmcakef5ka4skq8ykn05yjy3mwtwu7l69e2v650vuzpqqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wszq5sq</id>
    
      <title type="html">⏰ 1 hour reminder. Get ready! #nevent1q…xr37</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz8p5kgfgmcakef5ka4skq8ykn05yjy3mwtwu7l69e2v650vuzpqqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wszq5sq" />
    <content type="html">
      ⏰ 1 hour reminder. Get ready!&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqmhxr37&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xr37&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-03-03T16:10:14&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wedte23</id>
    
      <title type="html">today is the day! 🥳 MARMOT COMMUNITY CALL If you are ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wedte23" />
    <content type="html">
      today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&amp;#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt;
    </content>
    <updated>2026-03-03T12:27:43&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy7zx5x73p0jkhlnr4yzhe04nqtvfq3mtez2t98m288py97g7fzdgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4jwgx</id>
    
      <title type="html">🔔 COMMUNITY CALL What&amp;#39;s new, what we learned, and ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy7zx5x73p0jkhlnr4yzhe04nqtvfq3mtez2t98m288py97g7fzdgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4jwgx" />
    <content type="html">
      🔔 COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;What&amp;#39;s new, what we learned, and what&amp;#39;s next for the protocol?  Bring your questions.&lt;br/&gt;&lt;br/&gt;Tomorrow, Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  
    </content>
    <updated>2026-03-02T20:52:55&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrkgq9zdaey7ktt8cpapc56m8jwhuzcrgx89k7dlez057g7ag8h0czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wzlwvf3</id>
    
      <title type="html">A lot happened in February. Here&amp;#39;s the full story 👇 ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrkgq9zdaey7ktt8cpapc56m8jwhuzcrgx89k7dlez057g7ag8h0czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wzlwvf3" />
    <content type="html">
      A lot happened in February. Here&amp;#39;s the full story 👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqzkmtpwfkk7apdwpex7ar0vdhkcttddah8g6rv0ykhyetrv9cz6en9vfe82ctj0yknyvpjxc3gh6p9&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…h6p9&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;A lot shipped in February. Project Sloth landed as White Noise v0.3.0, the complete Flutter frontend rebuild we&amp;#39;ve been working toward since last summer. MDK v0.6.0 hit crates.io and the TypeScript SDK published its first npm package the same week. Nearly 200 pull requests merged across the organization. And as the month closes, the team is gathering in Florianopolis for Bitcoin&#43;&#43; and a big planning session for what comes next.&lt;/p&gt;

&lt;h3 id=&#34;v0-3-0-project-sloth-ships-2&#34;&gt;v0.3.0: Project Sloth Ships&lt;/h3&gt;

&lt;p&gt;In January, Project Sloth sat at 48% feature parity with the old codebase. By February 23, it was done. White Noise v0.3.0 rolls up over 160 merged improvements into a single release that replaces polling with real-time streaming, adds Amber support for external key management, brings images and media sharing into chats, and delivers group messaging that works.&lt;/p&gt;

&lt;p&gt;v0.3.0 is a breaking release. All local data is wiped on upgrade because Marmot protocol changes and encrypted local storage made migration from the old unencrypted database too fragile to attempt safely.\
\
&lt;strong&gt;⚠️ Users need to back up their nsec before upgrading. Profiles and contacts restore automatically from Nostr relays, but messages and group state start fresh. This is a one-time reset. Future updates will preserve data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The release is available on Android via direct APK download and Zapstore. iOS is pending.&lt;/p&gt;

&lt;h3 id=&#34;what-s-new-in-v0-3-0-2&#34;&gt;What&amp;#39;s new in v0.3.0&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Real-time messaging. &lt;/strong&gt;Messages now arrive instantly over streaming connections instead of every 2-30 seconds via polling. The Rust SDK exposes a `subscribe_to_group_messages` API that delivers an initial snapshot plus live updates, and on the Flutter side a new `ChatStreamProvider` consumes the stream directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amber and external signers. &lt;/strong&gt;Full NIP-55 integration means your private key never needs to touch the app. Connect through Amber on Android and sign events externally. The login flow walks you through relay resolution step by step, with clear error states when relay lists are missing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Images and media.&lt;/strong&gt; Share images with upload progress tracking, blurhash placeholders, full-screen zoom, and automatic retry on failure. Media tags follow the MIP-04 v2 format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Group messaging. &lt;/strong&gt;Create groups, add members, manage settings from the group info screen. The chat list shows sender names and latest message previews. MLS encryption provides forward secrecy across every group.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search. &lt;/strong&gt;Find users by name with results expanding outward from your follows up to four degrees of separation. Results stream in as they&amp;#39;re found, with group co-members appearing alongside contacts. QR code scanning handles both nsec and npub formats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replies and drafts.&lt;/strong&gt; Reply to messages with scroll-to-referenced navigation. Typed text is saved per conversation and restores when you return, including reply context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read position and pinned chats&lt;/strong&gt;. The app remembers where you left off in each conversation and scrolls there when you return. No read receipts are broadcast. Long-press any conversation to pin or unpin it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rust SDK and Backend. &lt;/strong&gt;The Rust crate (`whitenoise-rs`) saw 38 merged PRs this month, with the heaviest work falling into three areas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key package infrastructure. &lt;/strong&gt;Multiple PRs addressed the full KeyPackage lifecycle: detecting relay publish failures and retrying, looping deletion until relays confirm removal, verifying ownership before skipping a publish, delayed cleanup management, rotation of old packages, and a new `KeyPackageStatus` enum for detecting incompatible packages before attempting to start a chat. This was one of the most common sources of silent failures in earlier versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MLS group state correctness. &lt;/strong&gt;Several critical fixes landed. Auto-committed proposals from `process_message` were not being published to relays, meaning other group members never saw them. The commit ordering was wrong: evolution events need to publish before calling `merge_pending_commit`, not after. And MLS self-update now fires immediately on joining a group, preventing stale key material from lingering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User search. &lt;/strong&gt;Built from scratch this month. The metadata lookup uses a 5-tier pipeline with batched relay fetches and NIP-65 discovery. Search starts with your follows, expands through social graph connections, includes group co-members, and falls back to connected relays. The radius cap was removed late in the month after testing showed it was too restrictive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login rework.&lt;/strong&gt; Login now blocks when any of the three required relay lists (NIP-65, inbox, outbox) are missing, instead of silently proceeding with broken state. A slow-login bug affecting accounts with large follow lists was identified and fixed. Subscriptions now recover properly after re-registering with an external signer.&lt;/p&gt;

&lt;h3 id=&#34;mdk-v0-6-0-2&#34;&gt;MDK v0.6.0&lt;/h3&gt;

&lt;p&gt;The Marmot Development Kit shipped its first formal versioned release on February 23, published to crates.io. This release includes 26 PRs merged in February alone, on top of the cumulative work since the repo was created.&lt;/p&gt;

&lt;p&gt;Highlights:&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;OpenMLS 0.8.0. &lt;/strong&gt;Resolves security advisory GHSA-8x3w-qj7j-gqhf (improper tag validation).&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;Postcard codec. &lt;/strong&gt;MLS storage switched from JSON to postcard for better performance and smaller payloads. This is a breaking change; existing databases need to be recreated.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;`clear_pending_commit`.&lt;/strong&gt; Lets callers roll back a failed relay publish without permanently blocking group operations. Discovered via a bug report from the Vector client team.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt; Self-update tracking.&lt;/strong&gt; New `SelfUpdateState` enum on the Group struct implements MIP-02 periodic key rotation.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt; Admin pubkeys wire format. &lt;/strong&gt;Switched to raw 32-byte arrays per MIP-01 v2, removing the hex-encoded string format.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-04 epoch fallback.&lt;/strong&gt; Media decryption now handles key rotations gracefully across MLS epochs.&lt;/p&gt;

&lt;p&gt;Least Authority has begun a security audit of MDK, following up on their earlier audit of the Marmot Protocol spec. Findings from the spec audit already drove several of the protocol changes described below. Expect MDK-specific fixes and hardening as this audit progresses.&lt;/p&gt;

&lt;p&gt;The MDK language bindings (Kotlin, Ruby, Python, Swift) all received automated updates tracking the v0.6.0 release. Danny M also has an open PR adding C and Zig bindings alongside a JavaScript target.&lt;/p&gt;

&lt;h3 id=&#34;typescript-sdk-first-published-package-2&#34;&gt;TypeScript SDK: First Published Package&lt;/h3&gt;

&lt;p&gt;`@internet-privacy/marmots` v0.1.0 shipped to npm on February 16. The library migrated to the ts-mls v2 API, added MIP compliance for key packages and commits (relay acknowledgment before state transitions, post-join self-updates, key package rotation), and set up changeset-based versioning with CI publishing.&lt;/p&gt;

&lt;p&gt;Alongside the SDK, hzrd149 bootstrapped `marmots-web-chat`, a reference web client deployed on GitHub Pages. A fully functional Marmot client running as a static site with zero infrastructure costs. Just HTML, JS, and a browser. The app went from first commit to working invite flows and group views in under three weeks. That a complete MLS-encrypted messenger can be deployed to free static hosting says something about the architecture. Nostr handles identity and transport. The SDK handles encryption client-side. There is nothing left that requires a server.&lt;/p&gt;

&lt;h3 id=&#34;protocol-spec-2&#34;&gt;Protocol Spec&lt;/h3&gt;

&lt;p&gt;Four PRs merged to the Marmot spec repo, all driven by MDK audit findings:&lt;/p&gt;

&lt;p&gt;- Hex encoding support removed. Base64 is now mandatory; hex must be rejected.&lt;/p&gt;

&lt;p&gt;- Required `i` tag on KeyPackage events with a fully specified RefHash algorithm (SHA-256 for the default ciphersuite).&lt;/p&gt;

&lt;p&gt;- NIP-70 protected tag removed from the KeyPackage example after testing showed many relays reject it.&lt;/p&gt;

&lt;p&gt;- MIP-01 extension format bumped to v2 with QUIC varint encoding and raw 32-byte admin keys. Image encryption and upload auth now use HKDF-based key derivation.&lt;/p&gt;

&lt;p&gt;Five open PRs signal where the protocol is heading. MIP-06 proposes multi-device support via External Commits with a two-phase out-of-band device pairing flow. A separate proposal introduces a shared group signing key for anti-spam protection on kind:445 events. And an early MIP for voice and video calling over SFrame is under discussion.&lt;/p&gt;

&lt;h3 id=&#34;dr-marmot-2&#34;&gt;Dr. Marmot&lt;/h3&gt;

&lt;p&gt;A new diagnostic tool launched this month at [dr.marmot](https://github.com/marmot-protocol/dr.marmot). Dr. Marmot examines a Nostr user&amp;#39;s relay and key package configuration and prescribes fixes. It checks for missing relay lists (NIP-65, inbox, outbox), orphaned key packages, and other common setup issues that prevent Marmot-based messaging from working. The tool has a web interface with mobile support and went from first commit to deployed in under a week.&lt;/p&gt;

&lt;h3 id=&#34;marmot-clients-beyond-white-noise-2&#34;&gt;Marmot Clients: Beyond White Noise&lt;/h3&gt;

&lt;p&gt;Three third-party clients now implement the Marmot Protocol, all shipping code in February.&lt;/p&gt;

&lt;h3 id=&#34;vector-2&#34;&gt;Vector&lt;/h3&gt;

&lt;p&gt;[Vector](https://github.com/VectorPrivacy/Vector) is a privacy-focused desktop messenger that integrated MDK in its v0.3.0 release back in December 2025, adding MLS-based group messaging with forward secrecy. In February, the team shipped SIMD acceleration across the board: hex encoding 65x faster, image preview generation up to 38x faster, message lookups 184x faster via binary search, and npub storage cut 99.6% through interning. Memory usage dropped too, with message structs shrinking from 472 to 128 bytes. Vector also ships a Mini Apps platform (WebXDC-based P2P games), a decentralized app store called The Nexus, PIVX wallet integration, and message editing. The `clear_pending_commit` fix in MDK v0.6.0 came from a bug report by the Vector team.&lt;/p&gt;

&lt;h3 id=&#34;pika-2&#34;&gt;Pika&lt;/h3&gt;

&lt;p&gt;[Pika](https://github.com/sledtools/pika) is a new MLS-encrypted messenger for iOS, Android, and desktop, built on MDK and nostr-sdk. The architecture uses a Rust core (`pika_core`) that owns all MLS state management and encryption, with thin native UI shells in SwiftUI and Kotlin connected via UniFFI and JNI bindings. State flows unidirectionally: UI dispatches actions to the Rust actor, which emits state snapshots back to the frontend. Pika shipped v0.5.3 on February 25 with file upload, drag-and-drop media support on desktop, and Cloudflare Workers deployment fixes. Still in alpha, but functional.&lt;/p&gt;

&lt;h3 id=&#34;burrow-2&#34;&gt;Burrow&lt;/h3&gt;

&lt;p&gt;[Burrow](https://github.com/CentauriAgent/burrow) takes a different angle: it implements Marmot for both human users and AI agents. Two interfaces ship together. A pure Rust CLI daemon with JSONL output mode handles automated and agent integration, while a Flutter app covers Android, iOS, Linux, macOS, and Windows. The agent side integrates with [OpenClaw](https://openclaw.ai) for AI participation in encrypted group chats with full tool access. WebRTC handles voice and video calls. Access control lists with audit logging manage contact and group permissions. Burrow appeared in late February and is the first Marmot client designed with machine-to-machine messaging as a primary use case.&lt;/p&gt;

&lt;h3 id=&#34;what-this-means-2&#34;&gt;What this means&lt;/h3&gt;

&lt;p&gt;Counting White Noise and hzrd149&amp;#39;s web reference client, five independent implementations now speak Marmot. Each one exercises a different part of the stack: native mobile, desktop, web, CLI, agent runtime. The protocol is getting real-world testing across platforms, languages, use cases, and runtime environments that no single team could cover alone.&lt;/p&gt;

&lt;h3 id=&#34;white-noise-website-2&#34;&gt;White Noise Website&lt;/h3&gt;

&lt;p&gt;The website picked up an LLM accessibility layer (llms.txt, structured data, dynamic sitemap, security.txt) and a fix for the Android APK download link pointing to the correct repository.&lt;/p&gt;

&lt;h3 id=&#34;bitcoin-florianopolis-2&#34;&gt;Bitcoin&#43;&#43; Florianopolis&lt;/h3&gt;

&lt;p&gt;The team is gathering at Bitcoin&#43;&#43; in Florianopolis at the end of the month. Beyond the conference itself, this is a dedicated planning session. With v0.3.0 shipped and the core feature set proven, the team is mapping out the next phase of development. More to share once the dust settles and priorities crystallize.&lt;/p&gt;

&lt;h3 id=&#34;in-progress-6&#34;&gt;In progress&lt;/h3&gt;

&lt;p&gt;A few things still in flight as the month closes. Tracked message delivery status will replace fire-and-forget publishing so users know when a message actually reaches relays. The fast-thumbhash PR proposes replacing BlurHash with a 12x faster alternative. And several subscription reliability fixes are being tested to eliminate blind windows during relay reconnection.&lt;/p&gt;

&lt;p&gt;On the spec side, the multi-device and anti-spam proposals are in active review.&lt;/p&gt;

&lt;h3 id=&#34;by-the-numbers-5&#34;&gt;By the Numbers&lt;/h3&gt;

&lt;p&gt;| Metric | Value |&lt;/p&gt;

&lt;p&gt;|--------|-------|&lt;/p&gt;

&lt;p&gt;| Merged PRs (org-wide) | ~195 |&lt;/p&gt;

&lt;p&gt;| Releases shipped | 3 (v0.3.0, MDK v0.6.0, marmot-ts v0.1.0) |&lt;/p&gt;

&lt;p&gt;| New repos launched | 2 (dr.marmot, marmots-web-chat) |&lt;/p&gt;

&lt;p&gt;| Active repos | 12 |&lt;/p&gt;

&lt;p&gt;| Issues opened | 50&#43; |&lt;/p&gt;

&lt;p&gt;| Issues closed | 40&#43; |&lt;/p&gt;

&lt;h3 id=&#34;contributors-14&#34;&gt;Contributors&lt;/h3&gt;

&lt;p&gt;Thanks to everyone who contributed this month: erskingardner, josefinalliende, jgmontoya, untreu2, dannym-arx, mubarakcoded, hzrd149, gzuuus, codeswot, JSKitty, alltheseas, Datawav, SubatomicPlanets, vladimir-krstic, RenAndKiwi, justinmoon, benthecarman, and dechristopher.&lt;/p&gt;

&lt;p&gt;If you&amp;#39;re building on Nostr and want to add encrypted messaging, check out the [Marmot Protocol spec](https://github.com/marmot-protocol/marmot). The [TypeScript SDK](https://github.com/marmot-protocol/marmot-ts) and [MDK](https://github.com/marmot-protocol/mdk) are ready for integration. If you want to contribute to the reference implementation, [White Noise](https://github.com/marmot-protocol/whitenoise) is open for PRs.\
\
&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;h2 id=&#34;the-next-community-call-is-the-first-tuesday-of-march-at-1600-utc-2&#34;&gt;The next community call is the first Tuesday of March at 1600 UTC.&lt;/h2&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-03-01T16:37:56&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstpz6lt6tkyruayuszdnk0kcwhku5nqgum8tuea6twz3cnvzmk4ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w627dqw</id>
    
      <title>Nostr event nevent1qqstpz6lt6tkyruayuszdnk0kcwhku5nqgum8tuea6twz3cnvzmk4ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w627dqw</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstpz6lt6tkyruayuszdnk0kcwhku5nqgum8tuea6twz3cnvzmk4ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w627dqw" />
    <content type="html">
      ⏳
    </content>
    <updated>2026-02-22T16:06:30&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspcq24kt3jd39fdsqgzsrggrghqyckrxm7qw8n5pyyate39mtc8wczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wme0833</id>
    
      <title type="html">🖤</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspcq24kt3jd39fdsqgzsrggrghqyckrxm7qw8n5pyyate39mtc8wczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wme0833" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs232qj4aj4y449w40cvxsyts2pgscgw7ntx00wx40wgsxeq0xxq9spzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgg4yd8s&#39;&gt;nevent1q…yd8s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🖤
    </content>
    <updated>2026-02-20T13:39:51&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqst596evn4khms64a0g22alammvvwy5pupeq6q9e6pn0n2ley6tvlqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w64fv42</id>
    
      <title type="html">A lock doesn’t ask for your name. It only checks the key. A ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqst596evn4khms64a0g22alammvvwy5pupeq6q9e6pn0n2ley6tvlqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w64fv42" />
    <content type="html">
      A lock doesn’t ask for your name. It only checks the key. &lt;br/&gt;&lt;br/&gt;A chat app should be a door, not a border crossing.&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/bd6be5011f3e4986118298fe7ba71dbd63edec0ff28be2d7ab8c0128aa4e77d3.jpg&#34;&gt; 
    </content>
    <updated>2026-02-18T17:24:59&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswpdfmzck3lc943kjgrg9c8e9aj8pdnz7zh5pnwt59edyayhp8msqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t4kq8</id>
    
      <title>Nostr event nevent1qqswpdfmzck3lc943kjgrg9c8e9aj8pdnz7zh5pnwt59edyayhp8msqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t4kq8</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswpdfmzck3lc943kjgrg9c8e9aj8pdnz7zh5pnwt59edyayhp8msqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t4kq8" />
    <content type="html">
      Tying your chat to your phone number is a bug, not a feature
    </content>
    <updated>2026-02-17T17:14:21&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxfkg6s3vjykd2vg5xeuhltypjjk4wtytp8t7h55w9p2uaej9qhegzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whh8n7s</id>
    
      <title type="html">❤️</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxfkg6s3vjykd2vg5xeuhltypjjk4wtytp8t7h55w9p2uaej9qhegzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whh8n7s" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyagqlkz8xupvrwvmetchsyhfvjxmwwscz46vreznvez79lz6g5tspzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgfplyfc&#39;&gt;nevent1q…lyfc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;❤️
    </content>
    <updated>2026-02-15T16:47:22&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfkxfksq67ycayehj37vtzp54e8csaa8tmk8qyvpd0938gperhacszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlh0tdw</id>
    
      <title type="html">🫶</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfkxfksq67ycayehj37vtzp54e8csaa8tmk8qyvpd0938gperhacszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlh0tdw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspplwzghp5f6fcd7yxkhhpqj8evl0jmd6eqqcknsfqz3rud04l9ugs5z6m5&#39;&gt;nevent1q…z6m5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🫶
    </content>
    <updated>2026-02-15T16:46:32&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy3tjntpm62fu9z6rgmaxt725sztl7m43juudraea3mdjcyc4cv2qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpejp02</id>
    
      <title type="html">big release in two weeks!</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy3tjntpm62fu9z6rgmaxt725sztl7m43juudraea3mdjcyc4cv2qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpejp02" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswgqmtqnxlx6dn9qn2ehztczzmzkk7gvvtumg3htd5fkqzdq68mkspzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhg3ppge2&#39;&gt;nevent1q…pge2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;big release in two weeks! 
    </content>
    <updated>2026-02-15T16:45:13&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszht57rcs4630qr073gp759pmq50pdrmdkdzfrez53w9j9m7julyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpaxylv</id>
    
      <title type="html">Switching takes effort... but that&amp;#39;s the price of autonomy ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszht57rcs4630qr073gp759pmq50pdrmdkdzfrez53w9j9m7julyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpaxylv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstgyvu50uk3ldeu7m2jvk8ryn9sh3m9xmrn93ccq3098wr4facujcvlvg78&#39;&gt;nevent1q…vg78&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Switching takes effort... but that&amp;#39;s the price of autonomy 🖤
    </content>
    <updated>2026-02-15T16:44:19&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrtlc7mz0d8a3kagfau7nm32kw26m46e87m29jrh3wxht64kq9pjszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wsatcjk</id>
    
      <title type="html">🫶</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrtlc7mz0d8a3kagfau7nm32kw26m46e87m29jrh3wxht64kq9pjszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wsatcjk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw7ejd0084t0v6xx27xvq8v340glr0refg3tryezw4k0c7swy2decpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhg795v5l&#39;&gt;nevent1q…5v5l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🫶
    </content>
    <updated>2026-02-15T16:37:01&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswntrvd2vs6289w3d6vdh9x74tc2w93h6rds8lz6p8rqumak3zapgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh78djf</id>
    
      <title type="html">More alive than ever. We will release an important update in two ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswntrvd2vs6289w3d6vdh9x74tc2w93h6rds8lz6p8rqumak3zapgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh78djf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw9l5wym8l4gzuudtlzmjt8plmvlyq8kw6k7w4fdmu96qzlz3f0eq8eyucj&#39;&gt;nevent1q…yucj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;More alive than ever. We will release an important update in two weeks and we are constantly publishing updates on our work: &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqz5mtpwfkk7apdwpex7ar0vdhkcttddah8g6rv0ykhyetrv9cz66npde6kzune95erqv3kq52u8w&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…2u8w&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;January has been one of our most productive months yet. The conference-free calendar gave the team a full month of uninterrupted focus on writing code. The results show across three major workstreams: the Sloth frontend rearchitecture, security audit fixes in MDK, and rapid progress on the TypeScript SDK.\
\
&lt;img src=&#34;https://blossom.primal.net/c8a121c2d8ba59ecfd0fe50b427c4cab16fd3c24e98576983302b79f0b1bce96.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Sloth: the big picture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sloth is a complete rebuild of the White Noise Flutter frontend with a new design system, cleaner architecture, and streaming-first data flow. The goal is a more maintainable codebase that&amp;#39;s easier to extend and a polished user experience with the new Slate design language. The name comes from our Costa Rica team gathering when the pig plans were deceived (long story, ask us on the community call).&lt;/p&gt;

&lt;p&gt;We&amp;#39;re tracking 81 features for parity with the current White Noise app. As of this writing, 39 features (48%) are fully implemented, 13 (16%) have backend support and need UI work, and 29 (36%) are yet to start. Progress is tracked in [issue #58](&lt;a href=&#34;https://github.com/marmot-protocol/sloth/issues/58&#34;&gt;https://github.com/marmot-protocol/sloth/issues/58&lt;/a&gt;). The plan is to merge Sloth into the main White Noise repo and ship it in #twoweeks.&lt;/p&gt;

&lt;p&gt;The streaming-first architecture is already paying off. Messages, reactions, and chat list updates flow in real-time, and the whole experience feels snappy. Clean data flow makes features easier to build and the app more responsive.&lt;/p&gt;

&lt;p&gt;Multi-account support is now working in Sloth. You can manage several profiles, each with its own keys and metadata, and switch between them seamlessly. The profile screens handle the full lifecycle from key viewing to QR sharing.&lt;/p&gt;

&lt;p&gt;We also took the opportunity to rethink settings from scratch. The redesigned screen puts connection and sharing front and center, makes theme switching seamless, and gives users real control over their relay configuration. Small details that add up to an app that feels more considered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design system: Slate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Slate is a novel visual concept built around layered, animated surfaces, and it&amp;#39;s beautiful. Think of it as sheets of material that slide, expand, and settle into place. Every interaction has considered motion: panels open from strips to full height then settle, modals expand from their anchor point, context menus wrap their origin and grow outward. The result feels fluid, intentional, and genuinely delightful to use. We&amp;#39;re incredibly proud of how this turned out.&lt;/p&gt;

&lt;p&gt;The design work wrapped up this month. Vlad delivered complete Figma specs covering the full component system: foundations and tokens (primitive and semantic colors, typography scales, spacing, shadows, motion durations and easing curves, haptics), the Slate container system (strip, fit, and full variants with header patterns, list patterns, and input behaviors), and detailed animation specs for every surface type. We&amp;#39;re now integrating these designs into the Flutter codebase, and Slate will ship as part of the Sloth release.&lt;/p&gt;

&lt;p&gt;On the implementation side, we shipped the semantic color system with full light/dark theming via ThemeExtension. All Material icons are replaced with our custom SVG icon set. We consolidated button variants into a unified WnButton component and built WnMenu, WnMenuItem, and WnDropdownSelector with smooth expanding animations. Widgetbook setup is in progress so designers can review components in isolation and verify edge cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security audit progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Least Authority security audit drove significant work in MDK this month. We merged over 25 PRs addressing audit findings and hardening the core. On the authorization front, we added admin checks for MLS commit messages and implemented comprehensive Nostr-based validations for message processing. Input validation now prevents memory exhaustion attacks, and we fixed edge cases around removed member commit processing.&lt;/p&gt;

&lt;p&gt;Performance saw meaningful improvements. The save_message function went from O(n) to O(1), which matters when conversations grow large. We fixed cache collision bugs and stale key entry issues in memory storage that were causing subtle reliability problems. Deterministic commit race resolution per MIP-03 ensures consistent behavior when multiple clients commit simultaneously. Failed messages now preserve their context and can be retried cleanly.&lt;/p&gt;

&lt;p&gt;On the protocol side, we added GREASE support for MLS extensibility, ensuring future protocol versions can add new features while maintaining compatibility with existing clients. Legacy code got a thorough cleanup: the 64-byte credential identity format and several other deprecated code paths are removed. We bumped rust-nostr to version 0.44 for the latest Nostr protocol support.&lt;/p&gt;

&lt;p&gt;Platform-specific fixes rounded out the month. SQLite mutex handling now runs cleanly on Android. Cross-compilation for Android got proper OpenSSL support, and Windows builds for UniFFI bindings are working again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The [marmot-ts](&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts&#34;&gt;https://github.com/marmot-protocol/marmot-ts&lt;/a&gt;) SDK saw major progress this month, driven by hzrd149 and gzuuus. They&amp;#39;ve been building out a complete TypeScript implementation of the Marmot protocol on top of ts-mls, and the work is paying off. The example chat app is now functional, demonstrating the full flow from key package creation through group messaging. Invite and join flows handle welcome messages properly, and client state migrated from JSON to binary serialization for better efficiency.&lt;/p&gt;

&lt;p&gt;Message history support is in active development, which will let applications load and display conversation history. An update to ts-mls v2.0.0-rc.4 is in progress, bringing the latest MLS protocol improvements. The SDK is becoming a viable option for web developers who want to add Marmot-based encrypted messaging to JavaScript and TypeScript applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What&amp;#39;s next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We know it&amp;#39;s been a while since the last release, and we appreciate your patience. The wait will be worth it.&lt;/p&gt;

&lt;p&gt;Several major features are close to landing. Start chat and chat info screens with follow/unfollow functionality are in review. Amber integration for NIP-55 external signer support is progressing, this has been the #1 most requested feature from you, and we&amp;#39;re thrilled to finally deliver it in the next release. Widgetbook setup will give designers a proper environment for component review.&lt;/p&gt;

&lt;p&gt;The push to feature parity continues. Media sending, replies, group creation, and notifications are the major gaps remaining. Once we hit critical mass, Sloth merges into White Noise and ships with the beautiful new Slate design. This will be a substantially bigger release than usual, and we think you&amp;#39;re going to love it. The security audit continues into Q1 with more fixes landing as findings are addressed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to everyone who contributed this month: josefinalliende, erskingardner, untreu2, jgmontoya, dannym-arx, mubarakcoded, hzrd149, gzuuus, and vladimir-krstic.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;If you&amp;#39;re building on Nostr and want to add encrypted messaging, check out the [Marmot Protocol spec](&lt;a href=&#34;https://github.com/marmot-protocol/marmot&#34;&gt;https://github.com/marmot-protocol/marmot&lt;/a&gt;).\
\
The Sloth rewrite is happening at [marmot-protocol/sloth](&lt;a href=&#34;https://github.com/marmot-protocol/sloth&#34;&gt;https://github.com/marmot-protocol/sloth&lt;/a&gt;).\
\
For TypeScript developers, [marmot-ts](&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts&#34;&gt;https://github.com/marmot-protocol/marmot-ts&lt;/a&gt;) is shaping up nicely. We welcome contributors across all repos.&lt;/p&gt;

&lt;p&gt;The next community call is the first Tuesday of February at 1600 UTC.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-02-15T16:36:33&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyqttetn6pvpryyjse4nv2erwrjze9emwpf7a2vtswtpv2z3nlfvszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whwly85</id>
    
      <title type="html">... and they recover it with a backup.</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyqttetn6pvpryyjse4nv2erwrjze9emwpf7a2vtswtpv2z3nlfvszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whwly85" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstdn0y5fazgnehzeh8k7t8za7devwejwd2vhlqqcvea86nty7v6ecy2dcds&#39;&gt;nevent1q…dcds&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;... and they recover it with a backup.
    </content>
    <updated>2026-02-15T16:19:03&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxzx2cut43ul6ek26lesezzy5vj66ccsfllp6s6dvr5s93h7yznlszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgdl5mt</id>
    
      <title type="html">Your keys don&amp;#39;t ask &amp;#34;who are you?&amp;#34; They ask &amp;#34;can ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxzx2cut43ul6ek26lesezzy5vj66ccsfllp6s6dvr5s93h7yznlszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgdl5mt" />
    <content type="html">
      Your keys don&amp;#39;t ask &amp;#34;who are you?&amp;#34; They ask &amp;#34;can you enter?&amp;#34;
    </content>
    <updated>2026-02-13T11:24:03&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrdlnppvetkyjccr4ud7gd0qjyuetdx4qhc9fx5d40fzrh35xtdfszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7wp8eg</id>
    
      <title type="html">Our founder Jeff has already replied but if you want more ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrdlnppvetkyjccr4ud7gd0qjyuetdx4qhc9fx5d40fzrh35xtdfszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7wp8eg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd8n2g37zftu00fes3pzvn7p87fgtz48yrldyt5u8l4384h39n65cpp4mhxue69uhkummn9ekx7mqtdzy5w&#39;&gt;nevent1q…zy5w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Our founder Jeff has already replied but if you want more details, here is the latest monthly recap: &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://primal.net/whitenoise/marmot-protocol-monthly-recap-january-2026&#34;&gt;https://primal.net/whitenoise/marmot-protocol-monthly-recap-january-2026&lt;/a&gt;
    </content>
    <updated>2026-02-13T08:51:34&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqx3x0xeu0elqrrapjywatre89fftn5nczlc53kj6jl635sj6ddqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w6psrnn</id>
    
      <title type="html">We are happy to hear that everything went smoothly🫡</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqx3x0xeu0elqrrapjywatre89fftn5nczlc53kj6jl635sj6ddqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w6psrnn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswf8xkkvuqtq2lxya0qeh4jf7tp46pzclpv5au2gmuss9jf5540fc5clvyv&#39;&gt;nevent1q…lvyv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;We are happy to hear that everything went smoothly🫡
    </content>
    <updated>2026-02-13T08:38:12&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrv6v2haj4jac7tth5cry695ttxyfeue0vk9r7u0l3gf7836p3c7czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w32cwtu</id>
    
      <title type="html">We don&amp;#39;t need to replace centralized platforms. We just need ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrv6v2haj4jac7tth5cry695ttxyfeue0vk9r7u0l3gf7836p3c7czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w32cwtu" />
    <content type="html">
      We don&amp;#39;t need to replace centralized platforms. We just need to build our own exit.
    </content>
    <updated>2026-02-12T19:58:54&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxgc0wnxtznr8xt9w6wzk824d4vvfp63692psgdh8l6fc68w2ch0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcp84h6</id>
    
      <title type="html">You use a key for your house. You use a key for your car. You ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxgc0wnxtznr8xt9w6wzk824d4vvfp63692psgdh8l6fc68w2ch0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcp84h6" />
    <content type="html">
      You use a key for your house. You use a key for your car. You should use a key for your social media. &lt;br/&gt;&lt;br/&gt;Keys grant access. IDs beg for permission. &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/95a01596e11b265747769f32932699b560f1733c70c26b57a1cafffd74e08875.png&#34;&gt;  
    </content>
    <updated>2026-02-11T13:25:40&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstvj0hh7n2smpclhj9xlt2v5qr4sg8vvtkt9aj93hjeyau3h8lfqszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w0r9rxv</id>
    
      <title type="html">If you have to prove who you are to say what you think, you ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstvj0hh7n2smpclhj9xlt2v5qr4sg8vvtkt9aj93hjeyau3h8lfqszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w0r9rxv" />
    <content type="html">
      If you have to prove who you are to say what you think, you aren&amp;#39;t speaking freely. &lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsqtwnpen9fv2n6lh59rwfm9vkgt7njkmnjvmzh7hr2se0yxla48kqw9t4e0&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…t4e0&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; RIP Discord &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/66af6bc9feaca1d4e9d8ad59d1e26c7ab1309e7c56684d2756aae76c40bb8904.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-02-10T17:29:56&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz28d72qzsewhekwv29x90qpdcqjw46j3zqmm6jrk3gj3kcnneulqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wanl689</id>
    
      <title type="html">“Building software is hard enough. But building software that ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz28d72qzsewhekwv29x90qpdcqjw46j3zqmm6jrk3gj3kcnneulqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wanl689" />
    <content type="html">
      “Building software is hard enough. But building software that doesn&amp;#39;t spy on users, that doesn&amp;#39;t steal from users, that doesn&amp;#39;t trick users, that&amp;#39;s a next-level effort.” &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqppemhxue69uhkummn9ekx7mp0qy0hwumn8ghj7un9d3shjtn5damkzunywdkxjcn9wf68jtnrdakj7wq9cvu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9cvu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 
    </content>
    <updated>2026-02-10T08:02:42&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv90cvr0l47ura86rug9y0ff0pser5h8a5xx3sdjaqk3wtc69wlhczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w26xtvq</id>
    
      <title type="html">A new conversation with @nprofile…8p0e that is worth reading ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv90cvr0l47ura86rug9y0ff0pser5h8a5xx3sdjaqk3wtc69wlhczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w26xtvq" />
    <content type="html">
      A new conversation with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; that is worth reading 🔥&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqyjcfdvduhq6r9wfc82mnt94mksmedv3hk2umwwskhwunfw3jj6cm0v3jj6ctw945kuar9wfmxjeth94mkjarg94mks6t5v5kk6ctc945xjmrvv438yctwvsq7fxk7&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…fxk7&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;#&lt;/p&gt;

&lt;p&gt;Max Hillebrand credits his mother for his journey into the freedom space. Her free spirit helped Max understand the value of helping others from a young age. Joining the workforce early sparked a curiosity in economics, which would set Max on the road to becoming one of Europe’s key privacy advocates and FOSS project managers.&lt;/p&gt;

&lt;p&gt;While most cypherpunks conclude that free, open-source privacy-preserving tools must be built to protect our freedoms through a love for code, Austrian economics proved the jumping-off point for Hillebrand.&lt;/p&gt;

&lt;p&gt;After reading &lt;em&gt;For a New Liberty&lt;/em&gt; by Murray Rothbard, Hillebrand became certain of why freedom is not just important, but why it is the logical conclusion of human affairs.&lt;/p&gt;

&lt;p&gt;“A friend helped me to install Ubuntu as my first Linux operating system. And I then really was wondering why I didn’t have to pay for this software.”&lt;/p&gt;

&lt;p&gt;Hillebrand recommends Stefan Kinsella&amp;#39;s book &lt;a href=&#34;https://cdn.mises.org/15_2_1.pdf&#34;&gt;&lt;em&gt;Against Intellectual Property&lt;/em&gt;&lt;/a&gt; as a definitive argument for the free software movement from the Austrian economics tradition.&lt;/p&gt;

&lt;p&gt;“Once I understood that combination of Austrian economics and cypherpunk free software,” he says, “that&amp;#39;s when I really understood the value proposition of Bitcoin, and that changed everything. Since then, I made it my mission to build free and open source software that is designed specifically to increase the amount of freedom in people&amp;#39;s lives.”&lt;/p&gt;

&lt;h1 id=&#34;what-does-freedom-actually-mean-2&#34;&gt;What does freedom actually mean?&lt;/h1&gt;

&lt;p&gt;In the 1970s, pseudonymous writer Rayo created the philosophy of Vonu, meaning ‘voluntary, not vulnerable.’ Hillebrand subscribes to Rayo’s metric of success for freedom.&lt;/p&gt;

&lt;p&gt;Specifically, he called it the ‘mean time to harassment’. Or in other words, ‘when was the last time that you were stolen from?’ The longer this number or the larger this time frame, the freer you are. This could be the last time you were punched in the face, the last time someone stole your watch, when taxes were last levied against you, or when you last asked permission to drive a car or register a vehicle.&lt;/p&gt;

&lt;p&gt;Hillebrand contends that this shows us that most people aren&amp;#39;t really that free. We have to ask for permission all the time. Well, we have to pay taxes all the time. Basically, every purchase that you make has at least a value-added tax on top.&lt;/p&gt;

&lt;p&gt;He continues, “Bitcoin is a beautiful increase in your mean time to harassment. If you run a full node, then you are no longer susceptible to the changes of monetary policy from politicians. The inflation of the US dollar no longer affects you if you are using a money that simply doesn&amp;#39;t have an inflation.”&lt;/p&gt;

&lt;p&gt;Using cryptography to ensure no one can steal from you or harass you through surveillance became a key focus for Hillebrand’s work (Wasabi Wallet, ZkSNACKs, Sound Money Solutions).&lt;/p&gt;

&lt;p&gt;When asked about his work on the new decentralized, encrypted group chat app, Hillebrand shared the story behind the name White Noise.&lt;/p&gt;

&lt;p&gt;“Static is a kind of chaotic neutral. You’d see it on your television in the old days, those black and white pixels. Then you just hear a noise, something that&amp;#39;s incomprehensible to the human ear. That&amp;#39;s basically what cryptography does. It takes a message that you and I can read, but it garbles it in such a way that people other than you and me get no information. Zero.”&lt;/p&gt;

&lt;h1 id=&#34;is-privacy-under-attack-2&#34;&gt;Is Privacy Under Attack?&lt;/h1&gt;

&lt;p&gt;Privacy is the ability to selectively reveal yourself to the world, or, in other words, privacy means that you can choose what to say and to whom you say that.&lt;/p&gt;

&lt;p&gt;Hillebrand believes that privacy is a core tenet of the human experience. “I don&amp;#39;t think that privacy is a right or just a fact of nature. It&amp;#39;s how the universe is organized,” he says.&lt;/p&gt;

&lt;p&gt;As for whether people try to prevent you from having the choice of what to say to whom, the answer is yes. Hillebrand explains that when you intend to send a message only to one person, three-letter agencies can just scoop it up and store those messages for later analysis on a scale that is absolutely unfathomable. We&amp;#39;re talking about terabytes of data per person.&lt;/p&gt;

&lt;p&gt;This is not the kind of coercive surveillance where others hack into your computer and get the data out. Where it gets a bit more pernicious, he says, is with the voluntary revelation of too much information.&lt;/p&gt;

&lt;p&gt;Hillebrand cites the example of how, during pre-surveillance capitalism on the web, a 12-year-old kid from India could talk to a gray-beard wizard in San Francisco to design revolutionary new protocols. But Web 2.0, specifically Facebook, changed matters.&lt;/p&gt;

&lt;p&gt;Facebook profiles normalized using your real name for your profile, as well as sharing your location, images, and even more sensitive information about your social graph. Sharing a large amount of data publicly became the standard mechanism for those looking for jobs or new social interactions. Now, they’ve become so normalized that employers and new social contacts expect access to your background and personal data. And the profitability of this extractive approach has meant Big Tech has not been incentivized to create alternatives that preserve privacy.&lt;/p&gt;

&lt;p&gt;“Building software is hard enough,” explains Hillebrand. “But building software that doesn&amp;#39;t spy on users, that doesn&amp;#39;t steal from users, that doesn&amp;#39;t trick users, that&amp;#39;s a next-level effort.”&lt;/p&gt;

&lt;p&gt;Yet, he remains hopeful because now we have more tools and technologies that help us with creating new, more secure alternatives — Bitcoin, torrents, Tor, and master encryption.&lt;/p&gt;

&lt;p&gt;The more important shift, Hillebrand contends, is for more people to be conscious about their lack of privacy. If you can question whether you really need to share certain information, you can start your privacy journey.&lt;/p&gt;

&lt;p&gt;“With this type of mindset, you can go through all of the technologies that you use, scroll through your phone, and see the apps that are installed. You can replace your entire stack of tools with something that is more secure, more private, and more freedom-preserving — encrypted email, VPNs, GrapheneOS, and even Organic Maps.”&lt;/p&gt;

&lt;h1 id=&#34;the-value-of-parallel-2&#34;&gt;The Value of Parallel&lt;/h1&gt;

&lt;p&gt;The value proposition of the FOSS projects Hillebrand runs are parallel options. White Noise is not designed to replace Signal, Telegram, or WhatsApp, he says. Even if just a few individuals use it at first, it is still worth pursuing these goals.&lt;/p&gt;

&lt;p&gt;The solution to collectivist punishment is to have two realms. The first is the totalitarian realm of politics, of violence, of coercion, of theft, of intimidation, and we have the second realm of view of free interactions, voluntary choices, collaboration, and production. It is always possible to have one foot in each of these realms.&lt;/p&gt;

&lt;p&gt;“You can show up at the party meeting yourself and cheer and clap and sing the hymns. But then, at night, you meet with your friends in the basement. And, you drink the liquor that was made illegal. And you teach your kids about reason and about poetry and the beautiful aspects of life.”&lt;/p&gt;

&lt;p&gt;What we need, he says, is to have the tools available and to make sure that the people who do want to have at least parts of their life not surveilled, at least parts of their lives protected, can thrive.&lt;/p&gt;

&lt;h1 id=&#34;white-noise-as-a-parallel-space-2&#34;&gt;White Noise as a Parallel Space&lt;/h1&gt;

&lt;p&gt;Most people would claim to have nothing to hide. But what about sharing pictures of your children? You could control access by sending them in an encrypted chat group to your family. Other people and mega-corporations don’t need access.&lt;/p&gt;

&lt;p&gt;And what about our work? We oftentimes need to, you know, talk about details of a strategy, for example, how do we announce our new product to the world? And, of course, an announcement strategy should be kept private.&lt;/p&gt;

&lt;p&gt;Keeping sensitive information private (e.g., legal or health data) is also important. These are just some of the many reasons we built a parallel tool with White Noise. And of course, these tools should be open source with closed channels to report possible compromises or bugs.&lt;/p&gt;

&lt;p&gt;Eventually, I see more people finding apps like White Noise. I think the best marketing agencies of Freedom Tech are actually the thieves. If someone steals from you or if the government becomes tyrannical, then you will be looking for solutions.\
\
&lt;img src=&#34;https://blossom.primal.net/ec59f42c8de56a77b4818287f6565c1aa516c79094dad38eb8785fa3256c2c8b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;h1 id=&#34;next-steps-2&#34;&gt;Next Steps&lt;/h1&gt;

&lt;p&gt;The most exciting part of the White Noise project for Hillebrand is not the capabilities of the app itself; it is the Marmot protocol, which underpins the tech.&lt;/p&gt;

&lt;p&gt;“White Noise is the first application to really go deep in this protocol and stack, but there are already many, like tens of other apps and projects that are highly interested in adding this type of encryption and message delivery to their own application.”&lt;/p&gt;

&lt;p&gt;Hillebrand cites Tubester as one example of an app vibe-coded in a single weekend that is working on the Marmot protocol. Tubester is basically a YouTube for kids to create and share video content safely. Obviously, parents would be concerned if any random stranger on the Internet could see the videos of their kids and start messaging them. Marmot’s strong encryption means users can share videos with the intended recipients only.&lt;/p&gt;

&lt;p&gt;In the future, other Nostr applications like Primal, like Amethyst, like Damos, and others are actively researching how they can add Marmot into their own stack.&lt;/p&gt;

&lt;p&gt;“Interoperability and the tooling of a parallel space has never been possible before,” Hillebrand concludes. “I don&amp;#39;t care that much about White Noise, but I very much care about having a secure messaging environment or content sharing environment on the Nostr protocol at large. I think others will care too.”\
\
&lt;img src=&#34;https://blossom.primal.net/c8a121c2d8ba59ecfd0fe50b427c4cab16fd3c24e98576983302b79f0b1bce96.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Interview by:\
\
&lt;a href=&#34;https://totallyhumanwriter.com/home-2426&#34;&gt;Philip Charter is a totally human author&lt;/a&gt; , editor, and writer for leaders and companies in the freedom tech space. He successfully escaped the bad British weather and now lives in Gran Canaria, Spain.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-02-09T18:44:41&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9qsrkuqy6scahsvdrw0zlyz38f63t7rme7yjsy93avj6d5px55tqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjsjjfc</id>
    
      <title type="html">original interview @nprofile…8xhx @nprofile…e088 ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9qsrkuqy6scahsvdrw0zlyz38f63t7rme7yjsy93avj6d5px55tqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjsjjfc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0zqerqf7uyx79zutz0jhwr0zs9dnyz9320ym9vlggsfpke9lqanqt2akla&#39;&gt;nevent1q…akla&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;original interview &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxgqgdwaehxw309ahx7uewd3hkcqpqdg6es53r3hys9tk3n7aldgz4lx4ly8qu4zg468zwyl6smuhjjrvsm58xhx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;efenigson&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8xhx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyv8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsfce088&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;JeffG&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e088&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=vCr6U0vuqVY&#34;&gt;https://www.youtube.com/watch?v=vCr6U0vuqVY&lt;/a&gt;
    </content>
    <updated>2026-02-06T14:03:40&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0zqerqf7uyx79zutz0jhwr0zs9dnyz9320ym9vlggsfpke9lqanqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4vt9z</id>
    
      <title type="html">If you have nothing to hide, you have no private life. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0zqerqf7uyx79zutz0jhwr0zs9dnyz9320ym9vlggsfpke9lqanqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4vt9z" />
    <content type="html">
      If you have nothing to hide, you have no private life. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/b3b7862d65453db898b9a4947165087476be8b39ca75df634d106f4dac997cca.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-02-06T14:00:03&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf4uycaattu085w5dpp6tuend270rphxhtp7s065065l6k3r5g2fgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4rmny</id>
    
      <title type="html">gm</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsf4uycaattu085w5dpp6tuend270rphxhtp7s065065l6k3r5g2fgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4rmny" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvj2g72r9kx07qm6q4vfh9rlsym3wr2kr2n352756dwd50myf9zespzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgmpfret&#39;&gt;nevent1q…fret&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;gm
    </content>
    <updated>2026-02-06T10:33:19&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs26ycrkuj35aznqfyjgn2uxu6mzln49ujwm0ahr49dmrgqfxyee7qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcq454e</id>
    
      <title type="html">Not to ruin the party but hodling bitcoin &amp;gt; hodling shares of ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs26ycrkuj35aznqfyjgn2uxu6mzln49ujwm0ahr49dmrgqfxyee7qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcq454e" />
    <content type="html">
      Not to ruin the party but hodling bitcoin &amp;gt; hodling shares of bitcoin companies treasuries &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/d45f2fed20e87f6d0b33d1da760a945ea5002331bf2a34a2f4e180579691cc33.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-02-05T17:53:59&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz7m4xe52uy29fatpljneytvj92qwfc2xpz5t4s2da4x46v059euczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wswzrww</id>
    
      <title type="html">Hi! What microphone? The yellow dot indicates that app is from ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz7m4xe52uy29fatpljneytvj92qwfc2xpz5t4s2da4x46v059euczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wswzrww" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstcnaa5yvpvfpgmpp46c2kmcnu7fgm8d4yk6aqk54vzakwkyen37cpp4mhxue69uhkummn9ekx7mqy7rwsg&#39;&gt;nevent1q…rwsg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hi! What microphone? The yellow dot indicates that app is from TestFlight
    </content>
    <updated>2026-02-04T21:45:37&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdtddd85ns26du55p90dw3mu3qmg9gvk2sg0vxfqsz7nm85dkumnqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtn2cdp</id>
    
      <title type="html">Your identity is a key you hold, not a profile we host. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdtddd85ns26du55p90dw3mu3qmg9gvk2sg0vxfqsz7nm85dkumnqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtn2cdp" />
    <content type="html">
      Your identity is a key you hold, not a profile we host. &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/701ce326d1ff76c89fd423659729aef5a6fe056443b45137df23a04bdc0997da.png&#34;&gt;  
    </content>
    <updated>2026-02-04T15:03:16&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswq2thqck3q8xl69zuy0reljasduunce5ehmepaxg08ga6s5x9ywgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wre2zcw</id>
    
      <title>Nostr event nevent1qqswq2thqck3q8xl69zuy0reljasduunce5ehmepaxg08ga6s5x9ywgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wre2zcw</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswq2thqck3q8xl69zuy0reljasduunce5ehmepaxg08ga6s5x9ywgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wre2zcw" />
    <content type="html">
      GM. It’s a good day to write code that survives the server.
    </content>
    <updated>2026-02-04T10:17:43&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgpr2uffrfytxprwanv8pvph6h37vx6yzzz9zn28v65uzmujzx4dszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqrxx2l</id>
    
      <title type="html">Signal app outage during the Marmot call. You really can&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgpr2uffrfytxprwanv8pvph6h37vx6yzzz9zn28v65uzmujzx4dszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqrxx2l" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxttqxq7s5ght65l4s38gtmcr6tk3x5gvcadj3flmapdzalxj3kdq633p7z&#39;&gt;nevent1q…3p7z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Signal app outage during the Marmot call. You really can&amp;#39;t make this stuff up.&lt;br/&gt;&lt;br/&gt;Join us:) &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;
    </content>
    <updated>2026-02-03T17:24:45&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstgwj9saajhwggt4smz7mrh6e4wzt77guaww8e653cd2tzzgdnpqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq9rv3n</id>
    
      <title type="html">Signal app outage during the Marmot call. You really can&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstgwj9saajhwggt4smz7mrh6e4wzt77guaww8e653cd2tzzgdnpqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq9rv3n" />
    <content type="html">
      Signal app outage during the Marmot call. You really can&amp;#39;t make this stuff up. 
    </content>
    <updated>2026-02-03T17:23:33&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8euatq47masum67geg3ky5paxn05rwursuexn0v9985ck5pecdaczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlcqr2w</id>
    
      <title type="html">Join us! https://meet.fulmo.org/marmot #nevent1q…rlrm</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8euatq47masum67geg3ky5paxn05rwursuexn0v9985ck5pecdaczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlcqr2w" />
    <content type="html">
      Join us!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqqs0n9f5p23nt9ml5s9248qcqaxnnvm37cz7l54dehthgs327th7n9g8krlrm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrm&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; 🫂 COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;Updates on the protocol and what&#39;s coming next. Bring your questions. &lt;br/&gt;&lt;br/&gt;📅 Today, Tuesday Feb 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/f82bbca761e3dc9bf8d057ee0e435b4c16c494c83216febb082c7cc4a7f43593.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-02-03T17:02:08&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy35ks5wupc39l6qzzg0j45kt8f8j60y4l82tv0l8uhevzkmvlvuczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wllnhaj</id>
    
      <title type="html">We finally have the technology to build our freedom. Money no one ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy35ks5wupc39l6qzzg0j45kt8f8j60y4l82tv0l8uhevzkmvlvuczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wllnhaj" />
    <content type="html">
      We finally have the technology to build our freedom. Money no one can stop. Words no one can delete.&lt;br/&gt;&lt;br/&gt;🫂 &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxgqgdwaehxw309ahx7uewd3hkcqpqdg6es53r3hys9tk3n7aldgz4lx4ly8qu4zg468zwyl6smuhjjrvsm58xhx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;efenigson&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8xhx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/f28f299fd87e1ea082aa6b21bc5dfcdc4b3e82415521c44dd6a315af86666411.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-02-03T12:30:16&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0n9f5p23nt9ml5s9248qcqaxnnvm37cz7l54dehthgs327th7n9gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh5f2y7</id>
    
      <title type="html">🫂 COMMUNITY CALL Updates on the protocol and what&amp;#39;s coming ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0n9f5p23nt9ml5s9248qcqaxnnvm37cz7l54dehthgs327th7n9gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh5f2y7" />
    <content type="html">
      🫂 COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;Updates on the protocol and what&amp;#39;s coming next. Bring your questions. &lt;br/&gt;&lt;br/&gt;📅 Today, Tuesday Feb 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/f82bbca761e3dc9bf8d057ee0e435b4c16c494c83216febb082c7cc4a7f43593.jpg&#34;&gt; 
    </content>
    <updated>2026-02-03T11:38:02&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyw8cn96gn487gxcm6lzu0vs8na88e5uq5cxj5x7c82pcje94xhlqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcnz6xv</id>
    
      <title type="html">🫶</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyw8cn96gn487gxcm6lzu0vs8na88e5uq5cxj5x7c82pcje94xhlqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcnz6xv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxa968w36cew63vlj355cv3jm82yq2nhphnk4fm2hj2f9q5wqpnlg4mzypl&#39;&gt;nevent1q…zypl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🫶
    </content>
    <updated>2026-02-02T14:22:44&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsztye0al7qeh93hqj38qe5te5myasap868pav082dzfhjyyvh8lpszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjcws25</id>
    
      <title type="html">A clear calendar works wonders. Here is what we shipped in ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsztye0al7qeh93hqj38qe5te5myasap868pav082dzfhjyyvh8lpszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjcws25" />
    <content type="html">
      A clear calendar works wonders. Here is what we shipped in January.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqz5mtpwfkk7apdwpex7ar0vdhkcttddah8g6rv0ykhyetrv9cz66npde6kzune95erqv3kq52u8w&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…2u8w&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;January has been one of our most productive months yet. The conference-free calendar gave the team a full month of uninterrupted focus on writing code. The results show across three major workstreams: the Sloth frontend rearchitecture, security audit fixes in MDK, and rapid progress on the TypeScript SDK.\
\
&lt;img src=&#34;https://blossom.primal.net/c8a121c2d8ba59ecfd0fe50b427c4cab16fd3c24e98576983302b79f0b1bce96.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Sloth: the big picture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sloth is a complete rebuild of the White Noise Flutter frontend with a new design system, cleaner architecture, and streaming-first data flow. The goal is a more maintainable codebase that&amp;#39;s easier to extend and a polished user experience with the new Slate design language. The name comes from our Costa Rica team gathering when the pig plans were deceived (long story, ask us on the community call).&lt;/p&gt;

&lt;p&gt;We&amp;#39;re tracking 81 features for parity with the current White Noise app. As of this writing, 39 features (48%) are fully implemented, 13 (16%) have backend support and need UI work, and 29 (36%) are yet to start. Progress is tracked in [issue #58](&lt;a href=&#34;https://github.com/marmot-protocol/sloth/issues/58&#34;&gt;https://github.com/marmot-protocol/sloth/issues/58&lt;/a&gt;). The plan is to merge Sloth into the main White Noise repo and ship it in #twoweeks.&lt;/p&gt;

&lt;p&gt;The streaming-first architecture is already paying off. Messages, reactions, and chat list updates flow in real-time, and the whole experience feels snappy. Clean data flow makes features easier to build and the app more responsive.&lt;/p&gt;

&lt;p&gt;Multi-account support is now working in Sloth. You can manage several profiles, each with its own keys and metadata, and switch between them seamlessly. The profile screens handle the full lifecycle from key viewing to QR sharing.&lt;/p&gt;

&lt;p&gt;We also took the opportunity to rethink settings from scratch. The redesigned screen puts connection and sharing front and center, makes theme switching seamless, and gives users real control over their relay configuration. Small details that add up to an app that feels more considered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design system: Slate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Slate is a novel visual concept built around layered, animated surfaces, and it&amp;#39;s beautiful. Think of it as sheets of material that slide, expand, and settle into place. Every interaction has considered motion: panels open from strips to full height then settle, modals expand from their anchor point, context menus wrap their origin and grow outward. The result feels fluid, intentional, and genuinely delightful to use. We&amp;#39;re incredibly proud of how this turned out.&lt;/p&gt;

&lt;p&gt;The design work wrapped up this month. Vlad delivered complete Figma specs covering the full component system: foundations and tokens (primitive and semantic colors, typography scales, spacing, shadows, motion durations and easing curves, haptics), the Slate container system (strip, fit, and full variants with header patterns, list patterns, and input behaviors), and detailed animation specs for every surface type. We&amp;#39;re now integrating these designs into the Flutter codebase, and Slate will ship as part of the Sloth release.&lt;/p&gt;

&lt;p&gt;On the implementation side, we shipped the semantic color system with full light/dark theming via ThemeExtension. All Material icons are replaced with our custom SVG icon set. We consolidated button variants into a unified WnButton component and built WnMenu, WnMenuItem, and WnDropdownSelector with smooth expanding animations. Widgetbook setup is in progress so designers can review components in isolation and verify edge cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security audit progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Least Authority security audit drove significant work in MDK this month. We merged over 25 PRs addressing audit findings and hardening the core. On the authorization front, we added admin checks for MLS commit messages and implemented comprehensive Nostr-based validations for message processing. Input validation now prevents memory exhaustion attacks, and we fixed edge cases around removed member commit processing.&lt;/p&gt;

&lt;p&gt;Performance saw meaningful improvements. The save_message function went from O(n) to O(1), which matters when conversations grow large. We fixed cache collision bugs and stale key entry issues in memory storage that were causing subtle reliability problems. Deterministic commit race resolution per MIP-03 ensures consistent behavior when multiple clients commit simultaneously. Failed messages now preserve their context and can be retried cleanly.&lt;/p&gt;

&lt;p&gt;On the protocol side, we added GREASE support for MLS extensibility, ensuring future protocol versions can add new features while maintaining compatibility with existing clients. Legacy code got a thorough cleanup: the 64-byte credential identity format and several other deprecated code paths are removed. We bumped rust-nostr to version 0.44 for the latest Nostr protocol support.&lt;/p&gt;

&lt;p&gt;Platform-specific fixes rounded out the month. SQLite mutex handling now runs cleanly on Android. Cross-compilation for Android got proper OpenSSL support, and Windows builds for UniFFI bindings are working again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The [marmot-ts](&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts&#34;&gt;https://github.com/marmot-protocol/marmot-ts&lt;/a&gt;) SDK saw major progress this month, driven by hzrd149 and gzuuus. They&amp;#39;ve been building out a complete TypeScript implementation of the Marmot protocol on top of ts-mls, and the work is paying off. The example chat app is now functional, demonstrating the full flow from key package creation through group messaging. Invite and join flows handle welcome messages properly, and client state migrated from JSON to binary serialization for better efficiency.&lt;/p&gt;

&lt;p&gt;Message history support is in active development, which will let applications load and display conversation history. An update to ts-mls v2.0.0-rc.4 is in progress, bringing the latest MLS protocol improvements. The SDK is becoming a viable option for web developers who want to add Marmot-based encrypted messaging to JavaScript and TypeScript applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What&amp;#39;s next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We know it&amp;#39;s been a while since the last release, and we appreciate your patience. The wait will be worth it.&lt;/p&gt;

&lt;p&gt;Several major features are close to landing. Start chat and chat info screens with follow/unfollow functionality are in review. Amber integration for NIP-55 external signer support is progressing, this has been the #1 most requested feature from you, and we&amp;#39;re thrilled to finally deliver it in the next release. Widgetbook setup will give designers a proper environment for component review.&lt;/p&gt;

&lt;p&gt;The push to feature parity continues. Media sending, replies, group creation, and notifications are the major gaps remaining. Once we hit critical mass, Sloth merges into White Noise and ships with the beautiful new Slate design. This will be a substantially bigger release than usual, and we think you&amp;#39;re going to love it. The security audit continues into Q1 with more fixes landing as findings are addressed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to everyone who contributed this month: josefinalliende, erskingardner, untreu2, jgmontoya, dannym-arx, mubarakcoded, hzrd149, gzuuus, and vladimir-krstic.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;If you&amp;#39;re building on Nostr and want to add encrypted messaging, check out the [Marmot Protocol spec](&lt;a href=&#34;https://github.com/marmot-protocol/marmot&#34;&gt;https://github.com/marmot-protocol/marmot&lt;/a&gt;).\
\
The Sloth rewrite is happening at [marmot-protocol/sloth](&lt;a href=&#34;https://github.com/marmot-protocol/sloth&#34;&gt;https://github.com/marmot-protocol/sloth&lt;/a&gt;).\
\
For TypeScript developers, [marmot-ts](&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts&#34;&gt;https://github.com/marmot-protocol/marmot-ts&lt;/a&gt;) is shaping up nicely. We welcome contributors across all repos.&lt;/p&gt;

&lt;p&gt;The next community call is the first Tuesday of February at 1600 UTC.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-02-02T13:10:23&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf8sn2wmly93255hcalk870nn4phr7ce0cejpac2tj5gqstzrx39qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w33zvph</id>
    
      <title>Nostr event nevent1qqsf8sn2wmly93255hcalk870nn4phr7ce0cejpac2tj5gqstzrx39qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w33zvph</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsf8sn2wmly93255hcalk870nn4phr7ce0cejpac2tj5gqstzrx39qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w33zvph" />
    <content type="html">
      GM. If your messenger knows who you are, it knows too much.
    </content>
    <updated>2026-02-02T08:48:10&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs02mjw80w3re8cxg5h692ayenm6dfyx9dwl3x222mkzjaqadnfmlczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w2x69yr</id>
    
      <title type="html">Decentralizing Digital Identity &amp;amp; Encrypted Messaging: ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs02mjw80w3re8cxg5h692ayenm6dfyx9dwl3x222mkzjaqadnfmlczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w2x69yr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr3ryk82c48zr8vvd8rjnkymufsd7pyjnj2n36fcg7uhnzetm2zcqlqp33a&#39;&gt;nevent1q…p33a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Decentralizing Digital Identity &amp;amp; Encrypted Messaging: &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=vCr6U0vuqVY&#34;&gt;https://www.youtube.com/watch?v=vCr6U0vuqVY&lt;/a&gt;
    </content>
    <updated>2026-01-29T09:25:53&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsr3ryk82c48zr8vvd8rjnkymufsd7pyjnj2n36fcg7uhnzetm2zcqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0weyrzwu</id>
    
      <title type="html">Attempting to KYC the internet is a misunderstanding of how ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsr3ryk82c48zr8vvd8rjnkymufsd7pyjnj2n36fcg7uhnzetm2zcqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0weyrzwu" />
    <content type="html">
      Attempting to KYC the internet is a misunderstanding of how networks work: you can fence the platforms, but you can&amp;#39;t fence the protocol. &lt;br/&gt;&lt;br/&gt;(Watch the original interview with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyv8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsfce088&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;JeffG&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e088&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxgqgdwaehxw309ahx7uewd3hkcqpqdg6es53r3hys9tk3n7aldgz4lx4ly8qu4zg468zwyl6smuhjjrvsm58xhx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;efenigson&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8xhx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; - link in the comments) &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/5ed2e6f307bd84be0e9f13bcb0cde99182c36ebda82eb35c51805f086840ac35.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-01-29T09:24:48&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp09p9ssy5096vurrysrfzrcv2a9u5gkv5z2fq3ygd0as4c2ftjvqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wyjvt60</id>
    
      <title type="html">Looking at the map, it’s clear: privacy is global ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp09p9ssy5096vurrysrfzrcv2a9u5gkv5z2fq3ygd0as4c2ftjvqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wyjvt60" />
    <content type="html">
      Looking at the map, it’s clear: privacy is global infrastructure, not a niche.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzqpxfzhdwlm3cx9l6wdzyft8w8y9gy607tqgtyfq7tekaxs7lhmxfqqsppa9hdhmltqjn4sy26rrshpay07eagh03qxkevzh9a9ve478djcgyfq26k&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…q26k&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; 34,600,000,000 sats&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8suecw4luyht9ekff89x4uacneapk8r5dyk0gmn6uwwurf6u9ruspzpmhxue69uhkumewwd68ytnrwghsz8nhwden5te0dehhxarj94c82c3wwajkcmr0wfjx2u3wdejhgtcqujekd&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;OpenSats&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…jekd&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 📈&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/fb8e4f1efc25a4d81b35e85b02c39378aeb31ac7e29151c5588ef3ec9e2f8be7.png&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-01-29T09:00:29&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdmwpjyamxrya576v0w9mqs7rgwl964frptpvq02w7h77mwepnlcgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w23ar2c</id>
    
      <title type="html">You close the bathroom door. 👀 That doesn’t make you a ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdmwpjyamxrya576v0w9mqs7rgwl964frptpvq02w7h77mwepnlcgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w23ar2c" />
    <content type="html">
      You close the bathroom door. 👀 That doesn’t make you a criminal. it makes you human.
    </content>
    <updated>2026-01-28T17:18:10&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstcta0wav4azvl58m74auypy5m2c4ldyrsdmp2qmqg0ntx3sytktqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wj57vkl</id>
    
      <title type="html">We’re moving away from platforms that monetize your brain to ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstcta0wav4azvl58m74auypy5m2c4ldyrsdmp2qmqg0ntx3sytktqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wj57vkl" />
    <content type="html">
      We’re moving away from platforms that monetize your brain to tools that protect your autonomy. Read the interview with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyv8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsfce088&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;JeffG&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e088&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  on the mission behind White Noise and the Marmot protocol.&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uq9kargv5kk2umrv9cx2ttgv96xx6pdw3hj6cm9de68yctvd9ax2epdvf5kwtt5v43ksttpdckkjmn5v4e8v6t9wukhw6t5dqkhw6rfw3jj6mn0d9ek2ttxda6kuer9wgkk5etxvckkwctjv3hx2us50l8gt&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…l8gt&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Growing up in the early nineties granted children access to the digital Wild West. No cookie settings, no passwords, complete anonymity. You could pretend to be anybody you wanted, which was also kind of fun for a young kid. The opportunities to speak with anyone on the planet and build new digital tools and systems seemed limitless. This was the backdrop to how a California skater kid learned to code.&lt;/p&gt;

&lt;p&gt;Jeff Gardner, founder of White Noise, cut his teeth in the traditional VC-backed tech startup ecosystem.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“I remember working in one of the early tech startups, and we were implementing and deleting things in the app. &amp;#39;Deleting&amp;#39; meant adding a flag in the database. It was &amp;#39;deleted&amp;#39;, but not actually deleted. It wasn&amp;#39;t removed from the database.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After initially holding a naive view of free services from Big Tech, he saw freedoms curtailed during COVID, which made him consider the systems he contributed to and used.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;When I saw Nostr, I understood that this was the way out. This is our escape hatch. We can go back to an early open Internet where it&amp;#39;s actually owned and run by the users rather than owned and run by five companies.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After seeing the possibilities of protocols like Nostr, Gardner closed down his startup and began to build decentralized systems.&lt;/p&gt;

&lt;h1 id=&#34;a-renewed-drive-for-freedom-2&#34;&gt;A Renewed Drive for Freedom&lt;/h1&gt;

&lt;p&gt;According to Gardner, the entire premise of Silicon Valley tech has been built on hacking the weak points of the human brain to monetize users, rather than finding customers and providing a valuable service.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;I&amp;#39;ve got three little kids,” he says, “and we&amp;#39;re at the point where our oldest is starting to use digital things. It&amp;#39;s a one-way door, right? Every time you add your name to a website, every time you put a picture of yourself online, you really can&amp;#39;t get it back. The Internet is a copy machine.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The only exit from that system is not to give companies the data in the first place, but that requires parallel privacy services for email, social, chat, and more.&lt;/p&gt;

&lt;p&gt;After 2020, Gardner’s forays into the Nostr developer community led him to form a group with the idea of fixing messaging. One major issue was that messages showed all the metadata around who was talking to whom. Ultimately, this led to NIP 17, a ‘band aid’ which fixed the metadata issue, but not the clunky and poorly scaled group messaging.&lt;/p&gt;

&lt;p&gt;While privacy-focused chat may not be in the mainstream consciousness just yet, it is growing (Signal App posted user numbers of 70 million in 2024). Gardner sees a wide range of privacy-seeking niche groups who could benefit from a decentralized, scalable privacy chat.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;Writers have sources,” &lt;/em&gt;he explained&lt;em&gt;, “and they have to talk together and gather information, while protecting their sources. If you want to use Signal to do that right now, it&amp;#39;s connected to your phone number and, therefore, your identity. With Nostr being an open protocol, you can create as many identities as you want. They&amp;#39;re all just key pairs. You can talk to your different sources or your different sources of information or whatever. Totally different identities as different people.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With &lt;a href=&#34;https://hrf.org/program/financial-freedom/&#34;&gt;&lt;em&gt;72% of the world living under authoritarian regimes&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;, there is a growing number of high-risk actions when it comes to platforms connected to real-world identities. Gardner and the White Noise team adhere to the cypherpunk ethos that open, unstoppable protocols are a net positive for people all around the world to have.&lt;/p&gt;

&lt;h1 id=&#34;do-we-really-need-another-app-2&#34;&gt;Do We Really Need Another App?&lt;/h1&gt;

&lt;p&gt;When asked about the need for another chat app, Gardner pointed to the unique nature of White Noise being decentralized, encrypted, and scalable.&lt;/p&gt;

&lt;p&gt;Although the forward secrecy and post-compromise security of the Signal algorithm are considered the gold standard of encryption, the organization itself represents a single point of failure.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;The one big drawback of Signal is that they are a big centralized entity, and they have to spend $50,000,000 a year on servers. And that means that if they ran out of funding or they had to shut down their system, Signal would just disappear for everybody overnight.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gardner’s White Noise project aims for Signal-level encryption capabilities and privacy, but on a resilient open protocol where the servers themselves can be swapped out.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;h1 id=&#34;marmot-the-decentralized-privacy-stack-2&#34;&gt;Marmot — The Decentralized Privacy Stack&lt;/h1&gt;

&lt;p&gt;To build White Noise, Gardner published &lt;a href=&#34;https://github.com/marmot-protocol/marmot&#34;&gt;&lt;em&gt;Marmot&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;— an open protocol harnessing Messaging Layer Security (MLS), Nostr, and Blossom.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;Using the Marmot protocol means we can make interoperable clients. So instead of having just the Signal app that can talk to just the Signal app, we can have White Noise that can talk to Primal or White Noise that can talk to Amethyst on Android.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He stressed the need for open-source contributors and ‘more eyes’ to ensure Marmot and White Noise remain secure and optimized for more users (the protocol is in the middle of its very first audit right now).&lt;/p&gt;

&lt;p&gt;The overall aim with Marmot was to be able to encrypt direct messages (but also group messages) with hopefully arbitrarily large groups, up to the millions. Gardner went on to explain exactly how Marmot functions:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“MLS is a good framework for key agreement and sharing of keys in a large group in a way that keeps forward-secrecy and post-compromise security. What happens when you start an MLS group is that I create it with just me in it. You give me your key that you want me to use, and I invite you to the group with that key. And then I send you a welcome message with just enough information that you can then construct the identical version of the group state, which is called the ratchet tree on your side.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So now we both have a copy of this ratchet tree. Right? Side by side. And as we keep talking and things change over time, so say I add someone else to the chat, which basically adds a state or changes the state of the group in some predictable way.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;the-path-forward-2&#34;&gt;The Path Forward&lt;/h2&gt;

&lt;p&gt;So far, White Noise has relied on generous grants from OpenSats and the Human Rights Foundation among donors. In the coming months, the project will be registered as a 501(c)(3) nonprofit, which means that donations from any individual or entity in the US will be tax-deductible.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;Taking in donations from a variety of sources is a really important part for us,” &lt;/em&gt;continues Gardner&lt;em&gt;. “We don&amp;#39;t wanna end up in a situation like ToR, where a vast portion of their funding comes from one source, which can dry up. And so I think we&amp;#39;ll push really hard on using that cool feature of Nostr that people can just zap you.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;a-call-for-developers-2&#34;&gt;A Call for Developers&lt;/h2&gt;

&lt;p&gt;When asked how others can get involved in the project, Gardner stressed the need for more developers to join the cause. “&lt;em&gt;Just go on GitHub, see the code, look at the issue list, pick something you wanna work on, or just pick something you wanna work on and send us a PR.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Building connections, as well as submitting perfect code, is important when working on open-source projects in the freedom space.&lt;/p&gt;

&lt;p&gt;Finally, Gardner summed up the current challenges facing the project.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“For White Noise to even be able to credibly compete even closely with Signal, WhatsApp, or Telegram, we&amp;#39;ve got to build a lot of things, and we&amp;#39;ve got to do it really well. I think that we do need to shift that conversation away from censorship resistance and talk more about the things that you can only do on Nostr, like getting zaps.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Visit the &lt;/em&gt;&lt;a href=&#34;https://www.whitenoise.chat/download&#34;&gt;&lt;em&gt;White Noise website to download the app &lt;/em&gt;&lt;/a&gt;&lt;em&gt;or message the team about donations or development.&lt;/em&gt;\
\
&lt;img src=&#34;https://blossom.primal.net/ec59f42c8de56a77b4818287f6565c1aa516c79094dad38eb8785fa3256c2c8b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Interview by:\
\
&lt;a href=&#34;https://totallyhumanwriter.com/home-2426&#34;&gt;Philip Charter is a totally human author&lt;/a&gt; , editor, and writer for leaders and companies in the freedom tech space. He successfully escaped the bad British weather and now lives in Gran Canaria, Spain.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-01-28T09:33:10&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9aqht3vf262d9k9570pz0un4u0czgefww7kku5sdf9rwg5eu4g9gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wel93gq</id>
    
      <title type="html">GM. The best way to predict the future is to build the tools that ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9aqht3vf262d9k9570pz0un4u0czgefww7kku5sdf9rwg5eu4g9gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wel93gq" />
    <content type="html">
      GM. The best way to predict the future is to build the tools that make it possible.
    </content>
    <updated>2026-01-28T08:55:58&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvrhhly2x32zjku4f04eq98m9h6zj62r32fc9c805wymt72vc03aczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whqzrds</id>
    
      <title type="html">It exists. A parallel world where money and chats require no ID. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvrhhly2x32zjku4f04eq98m9h6zj62r32fc9c805wymt72vc03aczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whqzrds" />
    <content type="html">
      It exists. A parallel world where money and chats require no ID. &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzqwlsccluhy6xxsr6l9a9uhhxf75g85g8a709tprjcn4e42h053vaqqs2gtucpqxgvthj5mjyptq4uvuth6xune2j9rx79jezmmmyc23887c2a7wcz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…7wcz&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; I&#39;ve recently found a small store that accepts Bitcoin close to my house.&lt;br/&gt;&lt;br/&gt;(And it&#39;s not even on that BTCMap thing.)&lt;br/&gt;&lt;br/&gt;Hyperbitcoinization is happening, finally! &lt;/blockquote&gt;
    </content>
    <updated>2026-01-27T08:29:55&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyutnqvmcsl7z392z58jr5lh0rl84nxh5tdfv678f6dytq5epwx8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4k4nfl</id>
    
      <title type="html">Making it easier to build on Nostr is how we win. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyutnqvmcsl7z392z58jr5lh0rl84nxh5tdfv678f6dytq5epwx8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4k4nfl" />
    <content type="html">
      Making it easier to build on Nostr is how we win.&lt;br/&gt;&lt;br/&gt;nevent1qqs97h9ednrvfx04gp8y0x2nfkw28xuan3r3lewul3v2geqt5s2y79szypuvuma2wgny8pegfej8hf5n3x2hxhkgcl2utfjhxlj4zv8sycc86qcyqqqqqqgehu35dnostr:nevent1qvzqqqqqqypzq7xwd748yfjrsu5yuerm56fcn9tntmyv04w95etn0e23xrczvvraqqs97h9ednrvfx04gp8y0x2nfkw28xuan3r3lewul3v2geqt5s2y79s54dn5f 
    </content>
    <updated>2026-01-27T08:15:46&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg4mzht8swwa9hs2vqz3ve8zvjv7me9mca9ukcjemk0qq4vay783gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whtv605</id>
    
      <title type="html">The last time you were robbed? Probably five seconds ago. We ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg4mzht8swwa9hs2vqz3ve8zvjv7me9mca9ukcjemk0qq4vay783gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whtv605" />
    <content type="html">
      The last time you were robbed? Probably five seconds ago.&lt;br/&gt;&lt;br/&gt;We accept a 100% tax on our digital lives. We feed the algorithm our thoughts, our networks, and our time. In return, we get served ads.  &lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/6edaf94708418f267652e3416a67131489f2c3a9c91b2ed823054359ad099e3d.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-01-26T18:47:36&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswhxjczw0xu6aw4w0q48xf7zaaj084kkwyj0774cwsktcq0fwxj8gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w8gs3u6</id>
    
      <title type="html">Just a reminder that leaks aren&amp;#39;t accidents. They are ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswhxjczw0xu6aw4w0q48xf7zaaj084kkwyj0774cwsktcq0fwxj8gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w8gs3u6" />
    <content type="html">
      Just a reminder that leaks aren&amp;#39;t accidents. They are inevitabilities of centralized storage.
    </content>
    <updated>2026-01-26T13:38:00&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz5z9hdjfer8md8n956dp08lxhagzkjf2fhlcwmgskf4uxzvmdvuqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7343v4</id>
    
      <title type="html">Building a platform is about control. Building on a protocol is ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz5z9hdjfer8md8n956dp08lxhagzkjf2fhlcwmgskf4uxzvmdvuqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7343v4" />
    <content type="html">
      Building a platform is about control. Building on a protocol is about freedom. &lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyv8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsfce088&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;JeffG&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e088&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/d24f942bfc39bede8ec7df1a727b0e687a5d2f566f1daca8838422a6b771a7e3.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-01-22T12:40:15&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqc8ccd2f4altfg4gag0y3ky4eqqdrux43lw4fhpjk77lc6vmmpqgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w0vxef0</id>
    
      <title type="html">The only way to win is to leave the table. Exit to Bitcoin. Move ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqc8ccd2f4altfg4gag0y3ky4eqqdrux43lw4fhpjk77lc6vmmpqgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w0vxef0" />
    <content type="html">
      The only way to win is to leave the table. Exit to Bitcoin. Move to Nostr. &lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyvhwue69uhkyat8d4skutndva6hjtnwv46r5dpcxsuqz9nhwden5te0vfjhgcfwdehhxarjd9kzucmpd5qzqxvfqd89dw8kqmrjfaz6zt8gfggcg93p4tm3s2slv4jrszuugfmt74rjkj&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;BTCsessions&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…rjkj&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/9e398a62381b287a5a96c0430fba2e85562ddebe7dc8c8744bf0d798fdcb1e67.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-01-21T12:36:28&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8s0wzegp6g5m8ykj5y0md2n5twqvl7z3uwftu8ly9peufaeme5rczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wph4hxp</id>
    
      <title type="html">🖤</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8s0wzegp6g5m8ykj5y0md2n5twqvl7z3uwftu8ly9peufaeme5rczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wph4hxp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrtsjwcn9zv4qmxnm4ktnsvlnq5s7qw6x9gmss49uua88a3hz5vggx4t90z&#39;&gt;nevent1q…t90z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🖤
    </content>
    <updated>2026-01-20T22:44:25&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz3qaqmz0khtk08hqaz0rqnawp9e78vgs3cw4qkcfua8e90dlhnsszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wmzrv7g</id>
    
      <title type="html">We don&amp;#39;t want to own the network. We just want to be a part ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz3qaqmz0khtk08hqaz0rqnawp9e78vgs3cw4qkcfua8e90dlhnsszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wmzrv7g" />
    <content type="html">
      We don&amp;#39;t want to own the network. We just want to be a part of it.
    </content>
    <updated>2026-01-20T22:12:51&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs03fdngtnwvrrcfpk9mq56mjqman9rnqmeytprmjrsvfywx973paqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w2pmz6a</id>
    
      <title type="html">Are you a dev? White Noise is open for PRs ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs03fdngtnwvrrcfpk9mq56mjqman9rnqmeytprmjrsvfywx973paqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w2pmz6a" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrgwlfstxk0emyf36kzm9uq83e92yfens6rpvhkwslhjf7jepv08qe67hj7&#39;&gt;nevent1q…7hj7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Are you a dev? White Noise is open for PRs &lt;br/&gt;&lt;br/&gt; &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise&#34;&gt;https://github.com/marmot-protocol/whitenoise&lt;/a&gt;
    </content>
    <updated>2026-01-20T21:27:41&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv09gyfahjk6qeleapaz6t7qfuk5efw2l7u9dxzz2n33v0gges00gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wp5r3gy</id>
    
      <title type="html">Look, if you want privacy, you have to do the work. Governments ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv09gyfahjk6qeleapaz6t7qfuk5efw2l7u9dxzz2n33v0gges00gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wp5r3gy" />
    <content type="html">
      Look, if you want privacy, you have to do the work. Governments won&amp;#39;t grant it. Corporations won&amp;#39;t sell it. It’s on us to code it.&lt;br/&gt;&lt;br/&gt;Let’s get to work.&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/2711d733424581fbbac3e1aad448c34809cbbc5d78559673e7d2b5dfc83bd392.png&#34;&gt;  
    </content>
    <updated>2026-01-20T09:38:56&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspfpev0an56nt905ajjyvkmj08vtvq5tg9x3nwywuzu52wap7nz0szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wslha5a</id>
    
      <title type="html">The modern web isn’t designed for the user. It’s designed for ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspfpev0an56nt905ajjyvkmj08vtvq5tg9x3nwywuzu52wap7nz0szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wslha5a" />
    <content type="html">
      The modern web isn’t designed for the user. It’s designed for the advertiser. They track your cursor’s hesitation to predict your weakness.&lt;br/&gt;&lt;br/&gt;You aren&amp;#39;t the client. You are the inventory.&lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/49174d44854d9db46f980c9e057a88b047fa3f168d39e5e91d6e272d9885b70d.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-01-19T13:10:08&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2hs89pkhetcz0g52faqxy294ss75wychn9vp2hmuadf53clwda0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4nehlq</id>
    
      <title type="html">It is no longer about whether Bitcoin works. We are past the ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2hs89pkhetcz0g52faqxy294ss75wychn9vp2hmuadf53clwda0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4nehlq" />
    <content type="html">
      It is no longer about whether Bitcoin works. We are past the &amp;#34;if.&amp;#34; We are now in the &amp;#34;how.&amp;#34;  &lt;br/&gt;&lt;br/&gt;Privacy isn&amp;#39;t a setting. It&amp;#39;s an act of coordination. &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/bae2cd4bdf1ac433d46f3f936970889b7ab7e52b2aae34c943d283bee86a2370.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-01-15T15:18:07&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8lcr453nyq56w2djah7a5n2mx2ftauxyrq4wvf7sfqdfmr3j0e2szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t9wc7</id>
    
      <title>Nostr event nevent1qqs8lcr453nyq56w2djah7a5n2mx2ftauxyrq4wvf7sfqdfmr3j0e2szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t9wc7</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8lcr453nyq56w2djah7a5n2mx2ftauxyrq4wvf7sfqdfmr3j0e2szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t9wc7" />
    <content type="html">
      Build on protocols. Platforms are just landlords.
    </content>
    <updated>2026-01-15T14:44:48&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvpf2rjwjldt46vccvk4jsr57dn5qujms3ta7qxw7cy67neeq3zzszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wp25q8a</id>
    
      <title type="html">People don&amp;#39;t choose new tools for the vibes. They choose them ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvpf2rjwjldt46vccvk4jsr57dn5qujms3ta7qxw7cy67neeq3zzszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wp25q8a" />
    <content type="html">
      People don&amp;#39;t choose new tools for the vibes. They choose them because the old ones stopped working.&lt;br/&gt;&lt;br/&gt;The next generation of apps won&amp;#39;t ask for your ID card or your phone number.&lt;br/&gt;&lt;br/&gt;If a government can shut it down, it’s a platform. If they can’t, it’s a tool. We prefer tools.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzq5xeflpdskqvdq4swxj59793uvdzqzc9pzatjk3nhmcg2h0js8trqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcqypxmq78qchuwnx8kdk66v00qettterd978jhph0vnvvf6k7tq8yx7chjwef&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…jwef&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; gov: *shuts down internet*&lt;br/&gt;ugandan people: set up a mesh network and download the bible&lt;br/&gt;  &lt;img src=&#34;https://blossom.primal.net/18b94b5c227de7bf2433f50cc7025b2877c9fdb886c58c266b5e4a9c276ff712.png&#34;&gt;  &lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzq5xeflpdskqvdq4swxj59793uvdzqzc9pzatjk3nhmcg2h0js8trqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcpzemhxue69uhks6tnwshxummnw3ezumrpdejz7qpq9slfdkrlzvpttk6593llejk0z750hytl7r2fy06zcf3eawf4ajyqm6fhsf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…fhsf&lt;/a&gt;&lt;/span&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-01-14T10:26:51&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg0t85uvyd9hg0n22j5rdpzdqktmfqttc8vetakxmylzv9scpkyjszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjnp0h5</id>
    
      <title type="html">If you have to think twice before typing, you&amp;#39;ve already lost ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg0t85uvyd9hg0n22j5rdpzdqktmfqttc8vetakxmylzv9scpkyjszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjnp0h5" />
    <content type="html">
      If you have to think twice before typing, you&amp;#39;ve already lost your autonomy.
    </content>
    <updated>2026-01-14T10:12:30&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz3npevyfzksgdtfhf2qundknhs7ckxvev8y4hzqeudpjvgjgmlwgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w69u3mj</id>
    
      <title type="html">😎</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz3npevyfzksgdtfhf2qundknhs7ckxvev8y4hzqeudpjvgjgmlwgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w69u3mj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspw9ahagfhywwxgd8l57w2ykzzs730nsy90yfjsdyvfzat36nt2ecpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgkxylzw&#39;&gt;nevent1q…ylzw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;😎
    </content>
    <updated>2026-01-13T17:37:35&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsd6qz82lkrahpglqp0aucsvrfwt3cepak72d37u3wjy5p5mv60k6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wt4ezxl</id>
    
      <title type="html">Centralized platforms hide data to own the user. Tools for ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsd6qz82lkrahpglqp0aucsvrfwt3cepak72d37u3wjy5p5mv60k6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wt4ezxl" />
    <content type="html">
      Centralized platforms hide data to own the user. Tools for freedom show data to empower the user.&lt;br/&gt;&lt;br/&gt; This is amazing. 👏 &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyv8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsfce088&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;JeffG&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e088&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://stats.andotherstuff.org&#34;&gt;https://stats.andotherstuff.org&lt;/a&gt;
    </content>
    <updated>2026-01-13T17:06:36&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdyyu4h8v65hpjet202aqlvsu3230pr2alsvhye083rfmlxwwclsqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w3ezyls</id>
    
      <title type="html">If the server goes down and you lose your friends, you never ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdyyu4h8v65hpjet202aqlvsu3230pr2alsvhye083rfmlxwwclsqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w3ezyls" />
    <content type="html">
      If the server goes down and you lose your friends, you never really &amp;#39;had&amp;#39; them.
    </content>
    <updated>2026-01-13T16:52:48&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrm6tt9eyl76622a4hz798sq98a93x7aqw0c903vug0pmydx0nydszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjw3270</id>
    
      <title type="html">Significant progress requires the ability to have private ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrm6tt9eyl76622a4hz798sq98a93x7aqw0c903vug0pmydx0nydszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjw3270" />
    <content type="html">
      Significant progress requires the ability to have private thoughts. If you cannot think in private, you cannot think for yourself. &lt;br/&gt;&lt;br/&gt;Privacy is the environment where progress happens. Without it, we don&amp;#39;t evolve: we conform. &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyv8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsfce088&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;JeffG&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e088&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/29a13cc8c736380da5e5ce1fbe87ea7c4325ac3d91f791d993fd475d1fddc01b.mp4&#34;&gt;&lt;/video&gt; s://primal.net/whitenoise/we-all-have-secrets-and-thats-ok
    </content>
    <updated>2026-01-13T14:01:24&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdzunhrc4sdjnj9np4mwyc73245825z79yyjxmptnw9jatk7tue3qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtfmwsh</id>
    
      <title type="html">Thanks for mentioning us:)</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdzunhrc4sdjnj9np4mwyc73245825z79yyjxmptnw9jatk7tue3qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtfmwsh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyqtnxdf5uecrgcjndfwgd4e7qhajdyenwtpekct4v64k835qv8mgpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhg03gltp&#39;&gt;nevent1q…gltp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks for mentioning us:)
    </content>
    <updated>2026-01-12T18:08:36&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy0l9j808fzwz4m58ej022fhea90txg9xeujjrr8vwgaazul68mkgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4ku8r4</id>
    
      <title type="html">❤️</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy0l9j808fzwz4m58ej022fhea90txg9xeujjrr8vwgaazul68mkgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4ku8r4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsguk3lex9ehftc6v2ghsxt39hvczz79xw3ts04n6wt8s9dvm0q6ygpz3mhxue69uhkummnw3ezummcw3ezuer9wcffj3wl&#39;&gt;nevent1q…j3wl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;❤️
    </content>
    <updated>2026-01-12T18:07:49&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg7wefesru4l2vysc2dwwghmpaq6d7ax7rzexrqhu504q043ndn6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wek48zm</id>
    
      <title type="html">Everyone has secrets: health struggles, business terms, private ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg7wefesru4l2vysc2dwwghmpaq6d7ax7rzexrqhu504q043ndn6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wek48zm" />
    <content type="html">
      Everyone has secrets: health struggles, business terms, private thoughts.&lt;br/&gt;&lt;br/&gt;These aren&amp;#39;t crimes. they are the components of a private life.&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qqs8wefdv9kxcttgv9mx2ttnv43hyet5wvkkzmny946xsct5wvkk76czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqcyqqq823c7qdz9y&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…dz9y&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Why do I need privacy?” You say.&lt;/p&gt;

&lt;p&gt;“No one is interested in my messages to my partner about what I need to buy for dinner. I have nothing to hide. It’s only criminals, perverts, and cheaters who have something to hide.”\
\
As we will see, everyone has something to hide. And that’s a good thing.&lt;/p&gt;

&lt;p&gt;Much of the language of privacy has been weaponized by governments, media outlets, and the enemies of freedom. When we see terms like obfuscation, masking, stealth, classified, surveillance, etc., it generally makes us think about people or organizations doing nefarious things. People who do those things, we think, are a danger to or a safeguard of our society.&lt;/p&gt;

&lt;p&gt;The next time you read about how institutions, groups, or individuals keep information private, consider the language being used. What about protection, discretion, integrity, confidentiality, trustless systems, and self-sovereignty? Don’t they deserve a mention too?&lt;/p&gt;

&lt;p&gt;&amp;gt; &lt;strong&gt;“Arguing that you don’t care about the right to privacy because you have nothing to hide is no different than saying you don’t care about free speech because you have nothing to say.” Edward Snowden.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Privacy is something we absolutely take for granted in the physical world. The thought police of Nineteen Eight-Four are still, thankfully, unable to penetrate the air-gapped space between the information in our heads and what we choose to reveal selectively to the world.&lt;/p&gt;

&lt;h1 id=&#34;a-world-with-no-secrets-2&#34;&gt;A world with no secrets&lt;/h1&gt;

&lt;p&gt;In a world with no secrets, all of these situations would be commonplace. Total transparency causes far more problems than you think.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You would have to tell your coworker you thought their presentation was garbage.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Your next-door neighbor would know about your difficulty in paying child support and saving for the new refrigerator you need.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Every embarrassing pimple, mental health struggle, and cancer scare would be common knowledge among your social circle.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Your date would automatically know all the details of break‑ups, lingering feelings, or encounters you prefer not to discuss.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Your boss could see every shortcut you’ve ever taken, and every work policy you have wittingly or unwittingly broken.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Every pet peeve, prejudicial feeling, and general annoyance could be confronted by others.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Your dreams and aspirations would be open to ridicule.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Every embarrassing slip, mistake, or brain fart could not be covered up or ignored.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Your politics, ideology, and religion would be open for discussion with every bystander at every event you attend.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Every favor and act of kindness would be tracked for reciprocation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Secrets are as much a part of life as work, sleep, and your morning coffee.&lt;/p&gt;

&lt;p&gt;It’s much easier to keep analogue secrets, as no one can gain access to the information in your head. Think of historical fiction — the premise of most stories is built on unlikely eavesdropping, the interception of written communications, and superhuman detective efforts.&lt;/p&gt;

&lt;p&gt;In reality, we kept most of our physical secrets well enough.&lt;/p&gt;

&lt;h1 id=&#34;digital-attack-vectors-for-privacy-2&#34;&gt;Digital attack vectors for privacy&lt;/h1&gt;

&lt;p&gt;Most of our information and communication is now stored in the digital realm. This opens a much broader attack surface for our digital secrets. Yet, we ignore most of the compromises through ignorance or a misplaced sense of trust.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Device hardware sensors&lt;/strong&gt; collect a huge amount of user data, and we often fail to question where it is stored and what it is used for. Microphones, cameras, GPS, accelerometers, and ambient light sensors can be accessed by malicious firmware or apps to capture audio, video, location, or movement data without the user’s knowledge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Operating‑system telemetry&lt;/strong&gt; turns everyday software into a surveillance feature. Built‑in diagnostics and usage‑statistics reporting (often enabled by default) transmit detailed system‑state information to the vendor or cloud services. Some stores already use Bluetooth and Wi-Fi beacons to &lt;a href=&#34;https://www.nytimes.com/interactive/2019/06/14/opinion/bluetooth-wireless-tracking-privacy.html&#34;&gt;&lt;em&gt;track your entry&lt;/em&gt;&lt;/a&gt;, exit, and position while shopping.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freemium software ecosystems&lt;/strong&gt; turn user data into the product. If any closed-source app is free, it is likely monetized by harvesting user data (contacts, browsing history, app usage) and selling it to advertisers or data brokers.&lt;/p&gt;

&lt;p&gt;Third-party analytics or &lt;strong&gt;social‑login SDKs&lt;/strong&gt; embedded in otherwise benign apps can collect identifiers, location, and behavior data and forward them to external servers.\
\
&lt;strong&gt;Big‑data aggregators &lt;/strong&gt;combine data from web cookies, mobile IDs, Wi‑Fi probes, and offline purchases to build granular profiles that can be sold or used for targeted manipulation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud storage synchronization&lt;/strong&gt; – automatic backup of files, photos, and messages to cloud providers can expose content if the provider is compromised, misconfigured, or compelled by legal orders.&lt;/p&gt;

&lt;p&gt;Smart devices like voice assistants, phone cameras, thermostats, bio-tracking wearables, and other &lt;strong&gt;IoT&lt;/strong&gt; &lt;strong&gt;devices&lt;/strong&gt; often lack strong authentication or encryption, allowing attackers to infer daily routines or listen in.&lt;/p&gt;

&lt;p&gt;These methods do not even touch on malicious privacy attacks. This is simply the privacy that is willingly sacrificed each day. Methods like these entirely remove our ability to selectively reveal ourselves and our information.&lt;/p&gt;

&lt;p&gt;In terms of direct communication, privacy becomes even more important. Governments and authorities should not have a monopoly on secrets. Again, you might think you have nothing to hide. But you do. Everyone does, and that’s OK.&lt;/p&gt;

&lt;h1 id=&#34;why-privacy-is-paramount-2&#34;&gt;Why privacy is paramount&lt;/h1&gt;

&lt;p&gt;As well as reducing or avoiding situations where we are unwittingly robbed of our privacy, we must make conscious choices about our conversations. If you’re about to divulge sensitive information in conversation, you’d probably look over your shoulder first. Make sure no one is listening in. Make sure there won’t be any repercussions. Yet, when using chat apps and digital communication, we rarely consider our privacy. We care more about speed, ease, and style than we do about our right to privacy.&lt;/p&gt;

&lt;p&gt;We are all used to clamoring for our right to free speech, but we seem less clear about why we should have the right to selectively reveal information in our chats. Digital privacy isn&amp;#39;t about hiding something, but protecting one&amp;#39;s sense of self, ideas, and freedom. Consider these situations where maintaining digital anonymity and privacy is crucial to people on both sides of the conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18 Chat Situations Where Privacy is Paramount:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The whistleblower exposing corporate fraud&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The journalist protecting a confidential source&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Researchers sharing unapproved drug‑trial data&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The underground artists planning a flash‑mob mural&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The domestic‑abuse survivor coordinating a safe exit&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The doctor sharing patient test results with a specialist&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Startup founders discussing term sheets with investors&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The executives negotiating a multi‑billion‑dollar merger&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Activists hiding locations of endangered cultural artifacts&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The therapist sending a secure follow‑up note to a client&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Relatives coordinating urgent travel after a natural disaster&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Hackathon teams swapping prototype code before a demo&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;A media personality sharing a baby announcement with family&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Citizens submitting anonymous tips about government corruption&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The pastor providing spiritual counsel on a highly personal matter&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Election observers transmitting real‑time reports from polling stations&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Financial analyst sharing insider market insights with a trusted partner&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The political dissident organizing protests under an authoritarian regime&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s likely that you could add another eighteen list items in just a few minutes. Privacy is that much a part of our lives, and it must be protected in the digital as well as physical realm. We must normalize that it’s OK to have something to hide.&lt;/p&gt;

&lt;p&gt;The next time you open your chat app, and the next time you send a message, consider whether you could ever be listed in one of these situations. Secrets are healthy, and complete transparency is only advisable when it benefits both parties. We cannot rely on corporations and institutions to handle our digital secrets sensitively. As Edward Snowden notes: “Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on.”&lt;/p&gt;

&lt;p&gt;To ensure that you have communication options that preserve your privacy, download White Noise — a free, open-source, decentralized and secure chat app for anyone with secrets.\
\
Download White Noise: &amp;lt;&lt;a href=&#34;https://www.whitenoise.chat/download&#34;&gt;https://www.whitenoise.chat/download&lt;/a&gt;&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/ec59f42c8de56a77b4818287f6565c1aa516c79094dad38eb8785fa3256c2c8b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-01-12T16:53:46&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqx8kc4da2xhs928trr7mmf28l5qt9ctm3r4m0pkj8xvvnvgdt3cczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjxtq3h</id>
    
      <title type="html">Everyone has secrets: health struggles, business terms, private ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqx8kc4da2xhs928trr7mmf28l5qt9ctm3r4m0pkj8xvvnvgdt3cczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjxtq3h" />
    <content type="html">
      Everyone has secrets: health struggles, business terms, private thoughts.&lt;br/&gt;&lt;br/&gt;These aren&amp;#39;t crimes. they are the components of a private life.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://primal.net/whitenoise/we-all-have-secrets-and-thats-ok&#34;&gt;https://primal.net/whitenoise/we-all-have-secrets-and-thats-ok&lt;/a&gt;
    </content>
    <updated>2026-01-12T15:31:48&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs85fzykdk3tv9mkqfap4usdugqxg796myk8dnpyd4gvdk65p5cf2szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wu8qf56</id>
    
      <title type="html">Stop renting your privacy from corporations. Start owning it. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs85fzykdk3tv9mkqfap4usdugqxg796myk8dnpyd4gvdk65p5cf2szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wu8qf56" />
    <content type="html">
       Stop renting your privacy from corporations. Start owning it.&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/469bea4699cecb3b3f03eb2efda397ed05ae0c7fc05f91f2f15d9f54f8145193.png&#34;&gt;  
    </content>
    <updated>2026-01-12T13:11:08&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8cc0re003xg9m92402emze4l8ka6jnlsmv26ml2uxjd2kl9qrdwgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wy3jsza</id>
    
      <title type="html">There is no such thing as free data storage. Someone is paying. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8cc0re003xg9m92402emze4l8ka6jnlsmv26ml2uxjd2kl9qrdwgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wy3jsza" />
    <content type="html">
      There is no such thing as free data storage. Someone is paying. If it&amp;#39;s not you, who is it?
    </content>
    <updated>2026-01-10T09:26:40&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyn7k5agp0rh9rdep46ml3k3dgpznxlm52w89t06cu32yhl3cclngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcs65vt</id>
    
      <title type="html">👏 @nprofile…8p0e</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyn7k5agp0rh9rdep46ml3k3dgpznxlm52w89t06cu32yhl3cclngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcs65vt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq2852pa636fqtrhwylpnc399yt02ahpyw7e0l0t7ell48gyj3a4spzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgg3vnj0&#39;&gt;nevent1q…vnj0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;👏 &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 
    </content>
    <updated>2026-01-09T09:38:17&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq2852pa636fqtrhwylpnc399yt02ahpyw7e0l0t7ell48gyj3a4szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl796qh</id>
    
      <title type="html">Math doesn&amp;#39;t ask for a visa, and code shouldn&amp;#39;t check ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq2852pa636fqtrhwylpnc399yt02ahpyw7e0l0t7ell48gyj3a4szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl796qh" />
    <content type="html">
      Math doesn&amp;#39;t ask for a visa, and code shouldn&amp;#39;t check your passport. Identity is a key you hold, not a location you live in. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/b1191747d65045c16c2e42fbeced52f981d5d905c8408fd15195203948d79aa3.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-01-09T09:37:43&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswxlk4nvpq9yr05qf350xpgp22epgwdwsvp9updl40fs0p860ppsszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wwqpa5q</id>
    
      <title>Nostr event nevent1qqswxlk4nvpq9yr05qf350xpgp22epgwdwsvp9updl40fs0p860ppsszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wwqpa5q</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswxlk4nvpq9yr05qf350xpgp22epgwdwsvp9updl40fs0p860ppsszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wwqpa5q" />
    <content type="html">
      We don&amp;#39;t know who you are. That’s the best feature we have.
    </content>
    <updated>2026-01-08T15:36:23&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdeec5hll492ahh04phke3cd7ag663sema2st4rx0jw7e920xyd0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wppewee</id>
    
      <title type="html">If an app requires your identity to function, it’s not a tool. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdeec5hll492ahh04phke3cd7ag663sema2st4rx0jw7e920xyd0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wppewee" />
    <content type="html">
      If an app requires your identity to function, it’s not a tool. It’s a registry.&lt;br/&gt; &lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/92eb8e1cd5686eec16cf4b62a18783c68f7ffd737c69febc325b50303816a7a2.png&#34;&gt;  
    </content>
    <updated>2026-01-08T12:09:12&#43;01:00</updated>
  </entry>

</feed>