<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-01-28T22:54:23Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by lostcause</title>
  <author>
    <name>lostcause</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1khf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlstdmd3q.rss" />
  <link href="https://yabu.me/npub1khf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlstdmd3q" />
  <id>https://yabu.me/npub1khf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlstdmd3q</id>
  <icon>https://m.primal.net/LsQy.jpg</icon>
  <logo>https://m.primal.net/LsQy.jpg</logo>




  <entry>
    <id>https://yabu.me/nevent1qqsqp2knl7wzc7xy7ru5rm0jatqnhpqjytw7gmp8guvtjv02nd0s8cgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7cnqpc5</id>
    
      <title type="html">#honeytrap - Trying again.... #nostrdev #alphasoftware</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqp2knl7wzc7xy7ru5rm0jatqnhpqjytw7gmp8guvtjv02nd0s8cgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7cnqpc5" />
    <content type="html">
      #honeytrap - Trying again....&lt;br/&gt;&lt;br/&gt;#nostrdev #alphasoftware
    </content>
    <updated>2026-02-22T21:53:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqp769ge0fgu6hpardn5kx3qplehwpg0gu8eawtea0qkacghtkhngzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7uregfh</id>
    
      <title type="html">#honeytrap - a #nostr client that uses #bittorrent to assist in ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqp769ge0fgu6hpardn5kx3qplehwpg0gu8eawtea0qkacghtkhngzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7uregfh" />
    <content type="html">
      #honeytrap - a #nostr client that uses #bittorrent to assist in propagating content - taking load of relays&lt;br/&gt;&lt;br/&gt;#nostrdev #alpha
    </content>
    <updated>2026-02-22T21:21:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsz37ndf6mfycy6flhpkhr0z3szljde84h9me9rtczyzg9q3tms5yszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7kxvc3l</id>
    
      <title>Nostr event nevent1qqsz37ndf6mfycy6flhpkhr0z3szljde84h9me9rtczyzg9q3tms5yszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7kxvc3l</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsz37ndf6mfycy6flhpkhr0z3szljde84h9me9rtczyzg9q3tms5yszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7kxvc3l" />
    <content type="html">
      Hello World #nostrbt
    </content>
    <updated>2026-02-02T10:47:11Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsp39hhs7w6cdg7yfsg7a2g4uenxrpu6k9tl8869mfvvwqlf6ypsuczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mw0c67</id>
    
      <title>Nostr event nevent1qqsp39hhs7w6cdg7yfsg7a2g4uenxrpu6k9tl8869mfvvwqlf6ypsuczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mw0c67</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsp39hhs7w6cdg7yfsg7a2g4uenxrpu6k9tl8869mfvvwqlf6ypsuczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mw0c67" />
    <content type="html">
      take 2? trying again
    </content>
    <updated>2026-02-02T10:27:02Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswjvrgnutaa603xfdzctcy3uqpm05xrp2pkxk4aakkt6s60uqklgszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7pdm32e</id>
    
      <title>Nostr event nevent1qqswjvrgnutaa603xfdzctcy3uqpm05xrp2pkxk4aakkt6s60uqklgszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7pdm32e</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswjvrgnutaa603xfdzctcy3uqpm05xrp2pkxk4aakkt6s60uqklgszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7pdm32e" />
    <content type="html">
      Message from the CLI - hoping to see in the web client
    </content>
    <updated>2026-02-02T10:20:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdclgg4jf0dy2qlhgddpf2p9dcpc2c70tkrdkm2qg5hmmqpafhclczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt765tm47</id>
    
      <title>Nostr event nevent1qqsdclgg4jf0dy2qlhgddpf2p9dcpc2c70tkrdkm2qg5hmmqpafhclczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt765tm47</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdclgg4jf0dy2qlhgddpf2p9dcpc2c70tkrdkm2qg5hmmqpafhclczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt765tm47" />
    <content type="html">
      This is from the BT client
    </content>
    <updated>2026-02-02T10:16:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszmqkmge5u646yc4l3t5gw2xpydsfcuytyxvd5z9gd233dxpu5y0szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt783gwkt</id>
    
      <title>Nostr event nevent1qqszmqkmge5u646yc4l3t5gw2xpydsfcuytyxvd5z9gd233dxpu5y0szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt783gwkt</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszmqkmge5u646yc4l3t5gw2xpydsfcuytyxvd5z9gd233dxpu5y0szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt783gwkt" />
    <content type="html">
      Trying a post over #nostr-over-bt
    </content>
    <updated>2026-02-02T08:09:02Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdnfcx92xuj2elclxgxm5ymevxut3wpqxd703ceuetc3wrt42fqzqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt74rruue</id>
    
      <title type="html">Trying now with WebSeeding #bittorrent #nostr #notsrdec ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdnfcx92xuj2elclxgxm5ymevxut3wpqxd703ceuetc3wrt42fqzqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt74rruue" />
    <content type="html">
      Trying now with WebSeeding #bittorrent #nostr #notsrdec #honeytrap
    </content>
    <updated>2026-02-01T11:08:19Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxmuqtpv4k0u3hxrmup34zd30sz5rjmnnun77z7k4vxte3rfpjzrqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7rfe0ph</id>
    
      <title type="html">Trying again - this time with server backed storage #nostr ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxmuqtpv4k0u3hxrmup34zd30sz5rjmnnun77z7k4vxte3rfpjzrqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7rfe0ph" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw4jv74f3lxvs9nwm2xtl6szel22jdyyx7ly8usjet8gll27rmegs3mkh9r&#39;&gt;nevent1q…kh9r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Trying again - this time with server backed storage #nostr #bittorrent #honeytrap
    </content>
    <updated>2026-02-01T08:53:59Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsw4jv74f3lxvs9nwm2xtl6szel22jdyyx7ly8usjet8gll27rmegszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ggxzwg</id>
    
      <title type="html">Trying the P2P only version of media sharing in posts #nostr ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsw4jv74f3lxvs9nwm2xtl6szel22jdyyx7ly8usjet8gll27rmegszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ggxzwg" />
    <content type="html">
      Trying the P2P only version of media sharing in posts #nostr #bittorrent #honeytrap &lt;a href=&#34;https://honeytrap.3nostr.com&#34;&gt;https://honeytrap.3nostr.com&lt;/a&gt;
    </content>
    <updated>2026-02-01T07:00:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrmdlzklrnq72p80n7k3knqctecktp5ea4nx8zk49cae2n3hyv7jgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70e64y8</id>
    
      <title type="html">Need to fix media attachments???</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrmdlzklrnq72p80n7k3knqctecktp5ea4nx8zk49cae2n3hyv7jgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70e64y8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0zyfueqrar3yx7kdxrn5kc768vlkvxmzdex8kjg0na00qe0skj7c3v87ev&#39;&gt;nevent1q…87ev&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Need to fix media attachments???
    </content>
    <updated>2026-02-01T04:11:42Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0zyfueqrar3yx7kdxrn5kc768vlkvxmzdex8kjg0na00qe0skj7czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7wnh0n0</id>
    
      <title type="html">Trying some new - again. Using #bittorrent to support nostr ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0zyfueqrar3yx7kdxrn5kc768vlkvxmzdex8kjg0na00qe0skj7czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7wnh0n0" />
    <content type="html">
      Trying some new - again. Using #bittorrent to support nostr relays...
    </content>
    <updated>2026-02-01T03:11:04Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs86z8kfl4z29x60ylpfu4vzdztryn5zkpd8dgefgun7xfk8ka7dcczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt75whazf</id>
    
      <title type="html">Shared post from pk_d...2a23</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs86z8kfl4z29x60ylpfu4vzdztryn5zkpd8dgefgun7xfk8ka7dcczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt75whazf" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqyxzumtdehhxarjqgstt56wahra37qua2j76dmmtgk4xnhff8awp3dt8whq54m25ar4e0crqsqqpphk26usav&#39;&gt;naddr1qq…usav&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Shared post from pk_d...2a23
    </content>
    <updated>2026-01-31T09:58:42Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfxez9clmex49mw2qun6fpfds2m83uzp7m04xl6fynlzkexhvygmqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7rztmax</id>
    
      <title type="html">Testing the BT uploads ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfxez9clmex49mw2qun6fpfds2m83uzp7m04xl6fynlzkexhvygmqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7rztmax" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqgxzumtdehhxarj946x2um5d9hxwq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqzr0ve8dsqe&#39;&gt;naddr1qq…dsqe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Testing the BT uploads&lt;br/&gt;magnet:?xt=urn:btih:8d9bd01bfa5216e301a8e049bb2a1d8680c99d74&amp;amp;dn=asknostr_logo.png&amp;amp;tr=wss%3A%2F%2Ftracker.openwebtorrent.com&amp;amp;tr=wss%3A%2F%2Ftracker.btorrent.xyz&amp;amp;tr=wss%3A%2F%2Ftracker.files.fm%3A7073%2Fannounce&amp;amp;tr=wss%3A%2F%2Ftracker.fastcast.nz
    </content>
    <updated>2026-01-30T01:03:19Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszqcql67vplcmcs2t24pvn0mmcck0rhvcceaexnjqrs43s6ywu6agzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt795p3d9</id>
    
      <title type="html">Testing the new BT seeding for media ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszqcql67vplcmcs2t24pvn0mmcck0rhvcceaexnjqrs43s6ywu6agzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt795p3d9" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqgxzumtdehhxarj946x2um5d9hxwq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqzr0ve8dsqe&#39;&gt;naddr1qq…dsqe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Testing the new BT seeding for media&lt;br/&gt;magnet:?xt=urn:btih:6c0084bdd7d9d9b2861d6ee74a5163c7f36d8efe&amp;amp;dn=asknostr1.png&amp;amp;tr=wss%3A%2F%2Ftracker.openwebtorrent.com&amp;amp;tr=wss%3A%2F%2Ftracker.btorrent.xyz&amp;amp;tr=wss%3A%2F%2Ftracker.files.fm%3A7073%2Fannounce&amp;amp;tr=wss%3A%2F%2Ftracker.fastcast.nz
    </content>
    <updated>2026-01-30T00:34:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd507sssak44hq6fw07xpzd6wvxt7fpn5q737x8h8mknw4ekhjulczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7deel0x</id>
    
      <title type="html">Got the Wallet going with NWC connections - @ mentions going - ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd507sssak44hq6fw07xpzd6wvxt7fpn5q737x8h8mknw4ekhjulczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7deel0x" />
    <content type="html">
      Got the Wallet going with NWC connections - @ mentions going - now just got to get the #threading properly sorted. &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://asknostr.3nostr.com&#34;&gt;https://asknostr.3nostr.com&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/21da87868080159a708dcf9ff09a746279b37448185adc82ea22d3c9379451d9.jpg&#34;&gt; 
    </content>
    <updated>2026-01-29T08:06:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrkl98u9xccq7ce2srnaynzfpar3669hquja008mcs5an7jqs9vgszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mkdqr6</id>
    
      <title type="html">PWA state persistence - needs looking at</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrkl98u9xccq7ce2srnaynzfpar3669hquja008mcs5an7jqs9vgszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mkdqr6" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqgxzumtdehhxarj946x2um5d9hxwq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqzr0ve8dsqe&#39;&gt;naddr1qq…dsqe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;PWA state persistence - needs looking at
    </content>
    <updated>2026-01-29T06:20:30Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyxytzcjjhxvy2mws298w63jmwadzn0v2nr9560dlzjnthpzsd2wszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt732kgja</id>
    
      <title type="html">Nice - nested threading for replies - now the whole thread tree ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyxytzcjjhxvy2mws298w63jmwadzn0v2nr9560dlzjnthpzsd2wszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt732kgja" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqgxzumtdehhxarj946x2um5d9hxwq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqzr0ve8dsqe&#39;&gt;naddr1qq…dsqe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Nice - nested threading for replies - now the whole thread tree isn&amp;#39;t showing when replying to a specific sub thread...
    </content>
    <updated>2026-01-29T05:14:29Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf0ssnlg88tut6uqyj4hztpy5m4wa9dv8zcfj0jyw0ypnlggx36sqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7y8vnvw</id>
    
      <title type="html">Done</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf0ssnlg88tut6uqyj4hztpy5m4wa9dv8zcfj0jyw0ypnlggx36sqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7y8vnvw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgj58tnfw96z2ufg8aynrjac5yqyhg9c8clzky90kjlvuyy6t2znsx5cndp&#39;&gt;nevent1q…cndp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Done
    </content>
    <updated>2026-01-29T05:13:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsye8s26ae5xlasudjvgp442mm34js2gfvsnxphyqc4x36ds4cr9xczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt782fjpu</id>
    
      <title type="html">Completed</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsye8s26ae5xlasudjvgp442mm34js2gfvsnxphyqc4x36ds4cr9xczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt782fjpu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg63skprfp6cg8f4vzu4s4zhe9f2pl28zzn4usspgzpk2y6phje4g4zv056&#39;&gt;nevent1q…v056&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Completed&lt;br/&gt;
    </content>
    <updated>2026-01-29T05:13:17Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsq0f9wtp0hj4pu5hcdjfeqvylxc8zl64zj4t882uv6jxg2t7rxm3gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ux6vzx</id>
    
      <title type="html">Completed</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsq0f9wtp0hj4pu5hcdjfeqvylxc8zl64zj4t882uv6jxg2t7rxm3gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ux6vzx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdsc248qqlyeudjvsrgnmx0yfy3acm4rfxy4w56kr5ad9y05n0gqckjw2sv&#39;&gt;nevent1q…w2sv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Completed&lt;br/&gt;
    </content>
    <updated>2026-01-29T05:13:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswj5vru77mff6kxmps4jk58h4362eunnku574r9cfh67yrgq4sa9szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7v72mp3</id>
    
      <title type="html">asknostr is coming along nicely... #hashtags are working - and ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswj5vru77mff6kxmps4jk58h4362eunnku574r9cfh67yrgq4sa9szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7v72mp3" />
    <content type="html">
      asknostr is coming along nicely... #hashtags are working - and now - uploads as well it seems...&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/40bdf0493e88a9b45af4fb628ccce6dad7580e97f8968c3e68727f119a1f1ed3.jpg&#34;&gt;  
    </content>
    <updated>2026-01-29T03:55:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsy6gmjky9j6lzf9khcl7wgp8u5yhvrtveu3zpdht87rxn4m8pjcfczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yxvpt3</id>
    
      <title type="html">Working</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsy6gmjky9j6lzf9khcl7wgp8u5yhvrtveu3zpdht87rxn4m8pjcfczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yxvpt3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyy9ms5nhe56jlmw8qapxu2xygs5gmz47pj7wq9rpgsrc79nyckacnrx20d&#39;&gt;nevent1q…x20d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Working&lt;br/&gt;
    </content>
    <updated>2026-01-29T03:33:13Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyy9ms5nhe56jlmw8qapxu2xygs5gmz47pj7wq9rpgsrc79nyckaczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7udl5pf</id>
    
      <title type="html">These should now be done #fingerscrossed</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyy9ms5nhe56jlmw8qapxu2xygs5gmz47pj7wq9rpgsrc79nyckaczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7udl5pf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4csx987y&#39;&gt;nevent1q…987y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;These should now be done #fingerscrossed
    </content>
    <updated>2026-01-29T03:26:33Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsz6eh7vuv2tyc8ky78kqanjjg77kha8y0cacsrvv4gqph52ygl5fszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78gtzd0</id>
    
      <title type="html">One of favourite things about #vibecoding - is the rapid ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsz6eh7vuv2tyc8ky78kqanjjg77kha8y0cacsrvv4gqph52ygl5fszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78gtzd0" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq28v6tzv5kkxmmyd9hxwttdvd5kw63c0f5sygplwuxkt5a8vj5utj6s8tsj8e3wcavc45p4mqmw92qs7wrh5azmyspsgqqqsmmqw95kyj&#39;&gt;naddr1qq…5kyj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;One of favourite things about #vibecoding - is the rapid iteration developing... Get an idea - make the change -deploy...
    </content>
    <updated>2026-01-29T03:05:21Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8fsdnty0lg5kmgeq03cpehc4ct820gfqaduvkeck47y5qwd7t3agzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78ce073</id>
    
      <title type="html">Need to deal with media kinds? K:4550? Post rendering? Publishing ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8fsdnty0lg5kmgeq03cpehc4ct820gfqaduvkeck47y5qwd7t3agzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78ce073" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqgxzumtdehhxarj946x2um5d9hxwq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqzr0ve8dsqe&#39;&gt;naddr1qq…dsqe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Need to deal with media kinds? K:4550? &lt;br/&gt;&lt;br/&gt;Post rendering?&lt;br/&gt;Publishing if the only content is media?&lt;br/&gt;&lt;br/&gt;Need to check it out more
    </content>
    <updated>2026-01-28T23:03:37Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgj58tnfw96z2ufg8aynrjac5yqyhg9c8clzky90kjlvuyy6t2znszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt76tq5me</id>
    
      <title type="html">Main community feeds - need to just have the root post - not all ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgj58tnfw96z2ufg8aynrjac5yqyhg9c8clzky90kjlvuyy6t2znszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt76tq5me" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4csx987y&#39;&gt;nevent1q…987y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Main community feeds - need to just have the root post - not all the commenting posts as well 🤔
    </content>
    <updated>2026-01-28T22:49:07Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsg63skprfp6cg8f4vzu4s4zhe9f2pl28zzn4usspgzpk2y6phje4gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7e0esep</id>
    
      <title type="html">And blocked users - should be stripped from feeds...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsg63skprfp6cg8f4vzu4s4zhe9f2pl28zzn4usspgzpk2y6phje4gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7e0esep" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4csx987y&#39;&gt;nevent1q…987y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;And blocked users - should be stripped from feeds...
    </content>
    <updated>2026-01-28T22:47:41Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspufqje4yrtya0f6dehh93p5kqyyy7jfla3xhzsquzyxmu6gscphgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ndcyx4</id>
    
      <title type="html">And response to thread - missing file/media uploaded icon</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspufqje4yrtya0f6dehh93p5kqyyy7jfla3xhzsquzyxmu6gscphgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ndcyx4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4csx987y&#39;&gt;nevent1q…987y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;And response to thread - missing file/media uploaded icon
    </content>
    <updated>2026-01-28T22:28:52Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdsc248qqlyeudjvsrgnmx0yfy3acm4rfxy4w56kr5ad9y05n0gqczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7z63uzt</id>
    
      <title type="html">Also need to truncate the nostr events - resolve nubs to profile ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdsc248qqlyeudjvsrgnmx0yfy3acm4rfxy4w56kr5ad9y05n0gqczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7z63uzt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4csx987y&#39;&gt;nevent1q…987y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Also need to truncate the nostr events - resolve nubs to profile names
    </content>
    <updated>2026-01-28T22:28:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2s5cs5grzfeeqfs3ewmk6vqhkc2jenaslhquyhy97nrspva96v6gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7nnnakt</id>
    
      <title type="html">Also need to check the undo reactions??</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2s5cs5grzfeeqfs3ewmk6vqhkc2jenaslhquyhy97nrspva96v6gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7nnnakt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4csx987y&#39;&gt;nevent1q…987y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Also need to check the undo reactions??
    </content>
    <updated>2026-01-28T22:20:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7rf0lyj</id>
    
      <title type="html">Need to add - in Posts↩️ hashtags @ mentions</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs095h040vz8u48pajqd5nq4f8qpdgcnfnaryf864tr0qhjugtrk4czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7rf0lyj" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqgxzumtdehhxarj946x2um5d9hxwq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqzr0ve8dsqe&#39;&gt;naddr1qq…dsqe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Need to add - in Posts↩️&lt;br/&gt;&lt;br/&gt;hashtags&lt;br/&gt;@ mentions
    </content>
    <updated>2026-01-28T22:19:14Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstk49sy06sp9jwtwq9vnrxwvjma5fh334fzypaqwcux7wcez7sleczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7xcx2v2</id>
    
      <title type="html">Broadcasting from the global feed of asknostr app ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstk49sy06sp9jwtwq9vnrxwvjma5fh334fzypaqwcux7wcez7sleczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7xcx2v2" />
    <content type="html">
      Broadcasting from the global feed of asknostr app &lt;a href=&#34;https://asknostr.3nostr.com&#34;&gt;https://asknostr.3nostr.com&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;The #Reddit style #nostr client
    </content>
    <updated>2026-01-28T22:16:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqk7yl4l2kc02gwnjhcvjxdafetw067z3ltmlthd0tz8kax7clrhszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7j4ef59</id>
    
      <title type="html">Shared post from pk_b...5cbf</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqk7yl4l2kc02gwnjhcvjxdafetw067z3ltmlthd0tz8kax7clrhszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7j4ef59" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8rxmn0wd68yttnw36kg6t0wvpzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cr9zksw&#39;&gt;naddr1qq…zksw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Shared post from pk_b...5cbf
    </content>
    <updated>2026-01-28T21:02:57Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsg83crhjf9l9jj2mne0tgllwdak5jtuqmtestyntne3qqdjjm4tmczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7dyxy8j</id>
    
      <title type="html">Here&amp;#39;s a tip when using asknostr - swiping &amp;#39;back&amp;#39; and ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsg83crhjf9l9jj2mne0tgllwdak5jtuqmtestyntne3qqdjjm4tmczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7dyxy8j" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8rxmn0wd68yttnw36kg6t0wvpzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cr9zksw&#39;&gt;naddr1qq…zksw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Here&amp;#39;s a tip when using asknostr - swiping &amp;#39;back&amp;#39; and the section title area will take you back a step...
    </content>
    <updated>2026-01-28T20:45:35Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdf9qya0f5d575yeyt3322gd390c7utatltpx4lkn0axfp02gjxmqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c33t99</id>
    
      <title type="html">Publishing from asknostr - the reddit styled nostr client!!</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdf9qya0f5d575yeyt3322gd390c7utatltpx4lkn0axfp02gjxmqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c33t99" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqvkummnw3ez6er9wejkcmmsv4e8xttdvfcrjum6x4hsygqyv87tanzvxd6y8xfj66u0zynfendhejtn44a9pt3k9kcntfr5m5psgqqqsmmquk7agn&#39;&gt;naddr1qq…7agn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Publishing from asknostr - the reddit styled nostr client!! &lt;br/&gt;
    </content>
    <updated>2026-01-28T11:30:07Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfp8pm8vgpw2g50mnhj2wheljzqls4gm28qmkr83xt70g0pekz9agzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78f9msn</id>
    
      <title type="html">Seems maybe don&amp;#39;t need the reply button - change it to share ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfp8pm8vgpw2g50mnhj2wheljzqls4gm28qmkr83xt70g0pekz9agzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78f9msn" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8rxmn0wd68yttnw36kg6t0wvpzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cr9zksw&#39;&gt;naddr1qq…zksw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Seems maybe don&amp;#39;t need the reply button - change it to share to Community??&lt;br/&gt;
    </content>
    <updated>2026-01-28T10:49:03Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqqk96s98732kulsg0hphz2wxt3jkfe72f0yfz0vvachtj4xclkkqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7sha94f</id>
    
      <title type="html">Slowly but surely - getting better</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqqk96s98732kulsg0hphz2wxt3jkfe72f0yfz0vvachtj4xclkkqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7sha94f" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8qqearxt3kyjsrvwtkwvvqgqqzxq84dfvux2hjhu6pkdasdavkzg4yshra&#39;&gt;nevent1q…shra&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Slowly but surely - getting better&lt;br/&gt;
    </content>
    <updated>2026-01-28T10:30:41Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs26608y6mlypk3jsp82kychm8t252rt5dhwr4esa2pupymp7pcyhqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c6ww53</id>
    
      <title type="html">Visit https://github.com/imattau/asknostr for the code</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs26608y6mlypk3jsp82kychm8t252rt5dhwr4esa2pupymp7pcyhqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c6ww53" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8xzmt9w358jum594c8y6tnd5pzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cyylhdp&#39;&gt;naddr1qq…lhdp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Visit &lt;a href=&#34;https://github.com/imattau/asknostr&#34;&gt;https://github.com/imattau/asknostr&lt;/a&gt; for the code
    </content>
    <updated>2026-01-28T08:03:58Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswwjzhy9gtam4tcll8r9x78p6jjj5ghh3k0yggqkspu6ezaeh6l9gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7czy6p6</id>
    
      <title type="html">Approved</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswwjzhy9gtam4tcll8r9x78p6jjj5ghh3k0yggqkspu6ezaeh6l9gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7czy6p6" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8xzmt9w358jum594c8y6tnd5pzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cyylhdp&#39;&gt;naddr1qq…lhdp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Approved
    </content>
    <updated>2026-01-28T07:54:24Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgmg0dhq6yrryfkgrzef7fldt7n6xqugcexe9n6unlmd2ye7zv4nqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7tun9nh</id>
    
      <title type="html">Check out the mod here at https://github.com/imattau/prism</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgmg0dhq6yrryfkgrzef7fldt7n6xqugcexe9n6unlmd2ye7zv4nqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7tun9nh" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8xzmt9w358jum594c8y6tnd5pzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cyylhdp&#39;&gt;naddr1qq…lhdp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Check out the mod here at &lt;a href=&#34;https://github.com/imattau/prism&#34;&gt;https://github.com/imattau/prism&lt;/a&gt;
    </content>
    <updated>2026-01-28T07:15:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8qqearxt3kyjsrvwtkwvvqgqqzxq84dfvux2hjhu6pkdasdavkzgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c0cc38</id>
    
      <title type="html">Bit buggy at the moment</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8qqearxt3kyjsrvwtkwvvqgqqzxq84dfvux2hjhu6pkdasdavkzgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c0cc38" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8rxmn0wd68yttnw36kg6t0wvpzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cr9zksw&#39;&gt;naddr1qq…zksw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Bit buggy at the moment&lt;br/&gt;
    </content>
    <updated>2026-01-27T13:22:27Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxa75vdcxesuyjfn8gfdrgvkavj0tq4dhvpqeaak50m04e3am5edgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7vf97lg</id>
    
      <title type="html">Need to get the bugs out of this</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxa75vdcxesuyjfn8gfdrgvkavj0tq4dhvpqeaak50m04e3am5edgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7vf97lg" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qq8rxmn0wd68yttnw36kg6t0wvpzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqvzqqqyx7cr9zksw&#39;&gt;naddr1qq…zksw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Need to get the bugs out of this
    </content>
    <updated>2026-01-27T13:19:12Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszsvp34d4q3q4a034fzsg6nqn966wuy2vz7nh95tfeztjlfye4axgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x52zl0</id>
    
      <title type="html">Question?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszsvp34d4q3q4a034fzsg6nqn966wuy2vz7nh95tfeztjlfye4axgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x52zl0" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqqqygqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpsgqqqqqqq0ajtf0&#39;&gt;naddr1qq…jtf0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Question?
    </content>
    <updated>2026-01-27T12:36:29Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9k88fs4xeas78xw5gayfh6jny083mxgwag49qxrkvs5ynk0suqhgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7t4sva5</id>
    
      <title type="html">First post for the win?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9k88fs4xeas78xw5gayfh6jny083mxgwag49qxrkvs5ynk0suqhgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7t4sva5" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqqqygqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpsgqqqqqqq0ajtf0&#39;&gt;naddr1qq…jtf0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;First post for the win?
    </content>
    <updated>2026-01-27T11:54:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsda7ns8f07v203yfx3atrwl7wcrj0c3vx7f66kzr2v6lcc4d0euwqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mjy0v5</id>
    
      <title type="html">asknostr. The reddit styled nostr client...!!</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsda7ns8f07v203yfx3atrwl7wcrj0c3vx7f66kzr2v6lcc4d0euwqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mjy0v5" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqqqygqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpsgqqqqqqq0ajtf0&#39;&gt;naddr1qq…jtf0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;asknostr. The reddit styled nostr client...!!
    </content>
    <updated>2026-01-27T10:30:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfhfn8hdlny42h8tz2fwm2auwunqahz33g3c63aryygd8swdj086qzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x9e6g2</id>
    
      <title type="html">Asked #Gemini to review the @nprofile…tdaq project - and tell ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfhfn8hdlny42h8tz2fwm2auwunqahz33g3c63aryygd8swdj086qzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x9e6g2" />
    <content type="html">
      Asked #Gemini to review the &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsptay8d9ymh9a9lty0k2m5aah8ftxekns4tlas7sr08v65crrae9syqtdaq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;fed_AI&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…tdaq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; project - and tell me about it in simple terms.... I like what it came up with -&amp;gt; &lt;br/&gt;&lt;br/&gt;fed_AI&amp;#34; is an experimental project building a decentralized marketplace for AI computing.&lt;br/&gt;&lt;br/&gt;  Think of it like Airbnb for AI processing: instead of paying one giant company (like OpenAI or Amazon) to run AI models for you, you can rent computing&lt;br/&gt;  power directly from independent operators around the world.&lt;br/&gt;&lt;br/&gt;  How it works (The 3 Main Players):&lt;br/&gt;   1. Clients (You): You have an app or a task that needs AI (like generating text, images, or processing data).&lt;br/&gt;   2. Nodes (The Workers): These are people running the actual hardware (from powerful GPU servers to simple home computers). They do the work.&lt;br/&gt;   3. Routers (The Matchmakers): These are the traffic controllers. They find the best &amp;#34;Node&amp;#34; for your specific task based on price, speed, and trust. They&lt;br/&gt;      coordinate the work but never touch your money.&lt;br/&gt;&lt;br/&gt;  The &amp;#34;Secret Sauce&amp;#34;:&lt;br/&gt;   * Nostr: Used for Identity. Your account is just a cryptographic key pair, so you own your identity and reputation across the network without needing a&lt;br/&gt;     central login server.&lt;br/&gt;   * Lightning Network: Used for Payments. You pay the workers directly (peer-to-peer) for exactly what you use (pay-as-you-go), instantly and with very low&lt;br/&gt;     fees.&lt;br/&gt;&lt;br/&gt;  What it hopes to achieve:&lt;br/&gt;   * No Vendor Lock-in: You aren&amp;#39;t stuck with one company&amp;#39;s rules or pricing.&lt;br/&gt;   * Privacy: The system is designed so that the &amp;#34;matchmakers&amp;#34; don&amp;#39;t see your data or money, and the work is broken up across many independent providers.&lt;br/&gt;   * Efficiency: It allows anyone with idle hardware to contribute to the network, potentially lowering costs and democratizing access to AI.&lt;br/&gt;&lt;br/&gt;  In short, it wants to build an open, uncensorable, and free market for AI where anyone can participate as a user or a provider.&lt;br/&gt;&lt;br/&gt;#fed_AI #AI #decentralised #privacy #v4v #nostrdevs
    </content>
    <updated>2026-01-19T03:07:30Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstcnektsadt8zmwhngrz3mpj49sjzwnx4wqtvafmjjj8edmr3ss7szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mphx7x</id>
    
      <title>Nostr event nevent1qqstcnektsadt8zmwhngrz3mpj49sjzwnx4wqtvafmjjj8edmr3ss7szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mphx7x</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstcnektsadt8zmwhngrz3mpj49sjzwnx4wqtvafmjjj8edmr3ss7szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7mphx7x" />
    <content type="html">
        &lt;img src=&#34;https://blossom.primal.net/107073ac280f56eb6c8389bf5a9c1113c557b9c5fbd3920a6c08ee12cbba2caf.png&#34;&gt;  &lt;br/&gt;&lt;br/&gt;While the content might be nonsense (it is a tiny LLM after all) - it does show that #fed_AI can function (at least locally)....&lt;br/&gt;&lt;br/&gt;#ai #nostrdevs #decentralised #privacy #funny
    </content>
    <updated>2026-01-18T05:34:53Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdsl8vl2zavxr84spqzyqka5sw4plws7r04nj7s3zsd0p7rc6x82czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7a7t0uu</id>
    
      <title>Nostr event nevent1qqsdsl8vl2zavxr84spqzyqka5sw4plws7r04nj7s3zsd0p7rc6x82czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7a7t0uu</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdsl8vl2zavxr84spqzyqka5sw4plws7r04nj7s3zsd0p7rc6x82czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7a7t0uu" />
    <content type="html">
       &lt;img src=&#34;https://image.nostr.build/dcfaae7279c079e1b7e24cbd3ed5e66da8cd2b975d19a9000b32979fbb19f732.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;#memes #vibecoder #vibecoding #meme #shortattention
    </content>
    <updated>2026-01-16T23:02:54Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2580yvuym6a9aa69cc575nhhxvqve3phqamtaz98nq2w3x7wdq7gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70slc3a</id>
    
      <title type="html">@nprofile…7syv</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2580yvuym6a9aa69cc575nhhxvqve3phqamtaz98nq2w3x7wdq7gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70slc3a" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf9mwgjuj43vtycucug89ujmxk3lfc390nyv4g06y6trpz4u0w2rqpr9mhxue69uhhyetvv9ujumt0d4hhxarj9ecxjmnt9u7jznqz&#39;&gt;nevent1q…znqz&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;/nprofile1qqspg3navgv05e0xmkekg6dvnlvzm87v8x3lk6sgphqusrnupeezl4spzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz8thwden5te0dehhxarj95crztnev94kj6r0dehx2tnrdakj7ud7syv&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;prism&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…7syv&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-01-11T12:14:54Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf9mwgjuj43vtycucug89ujmxk3lfc390nyv4g06y6trpz4u0w2rqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70accxu</id>
    
      <title type="html">It really is a testament to the work done by @nprofile…2lxp on ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf9mwgjuj43vtycucug89ujmxk3lfc390nyv4g06y6trpz4u0w2rqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70accxu" />
    <content type="html">
      It really is a testament to the work done by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpz9mhxue69uhkummnw3ezuamfdejj7qghwaehxw309amxjar0wghxummnw3erztnrdakj7qgswaehxw309ahx7um5wghx6mmd9ud62lxp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…2lxp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; on &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs24yz8xftq8kkdf7q5yzf4v7tn2ek78v0zp2y427mj3sa7f34ggjcpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz769wywf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Amethyst&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…wywf&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; that in the space of an afternoon - I was able to #vibe-code a functional video first app - just by refactoring #amethyst...&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/21b0398a66f463569633d5f51d51830f631d75ff631b911cc41cc7333782f910.jpg&#34;&gt; 
    </content>
    <updated>2026-01-11T12:14:03Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxhracljpy8wcrepdys97355wcu7w9g0x4lwf475zskgmdudtv7zczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7cl6hts</id>
    
      <title type="html">#naddr1qv…00cz</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxhracljpy8wcrepdys97355wcu7w9g0x4lwf475zskgmdudtv7zczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7cl6hts" />
    <content type="html">
      &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;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzq0mhp4ja8fmy48zuk5p6uy37vtk8tx9dqdwcxm32sy8nsaa8gkeyqqakz6fdve5hyum594jx2an9d3hhqmt9de6z6mmw94kk7cnfd3jj6umgv94k2umsv4shyefdvd5xzmn8v4ej6argv5kkwctdv5ft00cz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…00cz&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h1 id=&#34;ai-first-development-on-mobile-shakespeare-changes-the-game-2&#34;&gt;AI-First Development on Mobile: Shakespeare Changes the Game&lt;/h1&gt;

&lt;p&gt;If you&amp;#39;ve tried using AI to build apps on your phone, you&amp;#39;ve probably been disappointed. A recent &lt;a href=&#34;https://techcrunch.com/2025/09/23/dedicated-mobile-apps-for-vibe-coding-have-so-far-failed-to-gain-traction/&#34;&gt;TechCrunch report&lt;/a&gt; found that dedicated mobile apps for vibe coding have largely failed to gain traction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;#34;Despite the massive success of vibe-coding startups on desktop (with billion-dollar valuations), dedicated mobile apps in this space have virtually failed to gain traction. The largest app, Instance: AI App Builder, has only 16,000 downloads and $1,000 in consumer spending. The consensus: vibe coding is not ready for prime time on mobile devices.&amp;#34;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The data paints a bleak picture for mobile developers who want to build with AI. Most solutions are clunky, limited, or simply don&amp;#39;t work well on smaller screens. But there&amp;#39;s an exception that the mainstream hasn&amp;#39;t discovered yet.&lt;/p&gt;

&lt;h2 id=&#34;shakespeare-the-mobile-exception-2&#34;&gt;Shakespeare: The Mobile Exception&lt;/h2&gt;

&lt;p&gt;Shakespeare is a Progressive Web App (PWA) that installs directly on your phone and works like a native app. Unlike dedicated mobile coding apps that try to reinvent the wheel, Shakespeare leverages modern web technology to deliver a full development experience that actually works on mobile.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PWA&lt;/strong&gt; - Installs on your home screen, works offline&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nostr Git&lt;/strong&gt; - Sync projects between all your devices&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI Chat&lt;/strong&gt; - Build entire apps through conversation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Live Preview&lt;/strong&gt; - See your changes instantly on mobile&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;getting-started-install-shakespeare-as-a-pwa-2&#34;&gt;Getting Started: Install Shakespeare as a PWA&lt;/h2&gt;

&lt;p&gt;The first step is to install Shakespeare on your mobile device. Visit &lt;a href=&#34;https://shakespeare.diy&#34;&gt;shakespeare.diy&lt;/a&gt; in your mobile browser and you&amp;#39;ll see the option to install it as an app.&lt;/p&gt;

&lt;h3 id=&#34;step-1-install-the-pwa-2&#34;&gt;Step 1: Install the PWA&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;shakespeare.diy&lt;/strong&gt; in your mobile browser&lt;/li&gt;
&lt;li&gt;Tap the &lt;strong&gt;Install&lt;/strong&gt; button when prompted (or use your browser&amp;#39;s &amp;#34;Add to Home Screen&amp;#34; option)&lt;/li&gt;
&lt;li&gt;Shakespeare will now appear on your home screen like any other app&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;step-2-sign-in-with-nostr-2&#34;&gt;Step 2: Sign in with Nostr&lt;/h3&gt;

&lt;p&gt;To sync your projects across devices, you&amp;#39;ll need to sign in with your Nostr account. This enables Nostr Git, which lets you push and pull code changes from any device.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the menu and go to &lt;strong&gt;Settings&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Nostr&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Add your Nostr account by signing in with a Nostr signer extension or entering your nsec&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why Nostr?&lt;/strong&gt; Nostr Git is a decentralized version control system that stores your code on Nostr relays. This means you own your code, can access it from any device, and don&amp;#39;t depend on any single company&amp;#39;s servers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&#34;step-3-create-or-import-a-project-2&#34;&gt;Step 3: Create or Import a Project&lt;/h3&gt;

&lt;p&gt;You can start a new project from scratch or import an existing one. If you&amp;#39;ve already created projects on desktop, you can import them directly using Nostr Git.&lt;/p&gt;

&lt;h4 id=&#34;create-a-new-project-2&#34;&gt;Create a New Project&lt;/h4&gt;

&lt;p&gt;Tap the &lt;strong&gt;&#43; New Project&lt;/strong&gt; button to start fresh. Just describe what you want to build and let the AI create it for you.&lt;/p&gt;

&lt;h4 id=&#34;import-from-nostr-git-2&#34;&gt;Import from Nostr Git&lt;/h4&gt;

&lt;p&gt;Click the dropdown arrow next to &amp;#34;New Project&amp;#34; and select &lt;strong&gt;Import Repository&lt;/strong&gt;. You&amp;#39;ll see your existing Nostr Git projects listed under &amp;#34;My Projects&amp;#34;.&lt;/p&gt;

&lt;p&gt;Simply tap &lt;strong&gt;Clone&lt;/strong&gt; on any project to import it to your mobile device.&lt;/p&gt;

&lt;h3 id=&#34;step-4-work-on-your-project-2&#34;&gt;Step 4: Work on Your Project&lt;/h3&gt;

&lt;p&gt;Once your project is imported, you&amp;#39;ll see a success message and be ready to start developing. Shakespeare on mobile has all the same features as desktop:&lt;/p&gt;

&lt;h4 id=&#34;live-preview-2&#34;&gt;Live Preview&lt;/h4&gt;

&lt;p&gt;See your app running in real-time as you make changes.&lt;/p&gt;

&lt;h4 id=&#34;code-view-2&#34;&gt;Code View&lt;/h4&gt;

&lt;p&gt;Browse and edit your project files directly.&lt;/p&gt;

&lt;h4 id=&#34;terminal-access-2&#34;&gt;Terminal Access&lt;/h4&gt;

&lt;p&gt;Run commands like curl, hexdump, and git directly from your phone.&lt;/p&gt;

&lt;h2 id=&#34;syncing-your-work-between-devices-2&#34;&gt;Syncing Your Work Between Devices&lt;/h2&gt;

&lt;p&gt;One of the most powerful features of Shakespeare is seamless device sync via Nostr Git. Any changes you make on your phone can be pushed to Nostr relays and pulled on your desktop (or any other device).&lt;/p&gt;

&lt;h3 id=&#34;how-device-sync-works-2&#34;&gt;How Device Sync Works&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Start on Desktop&lt;/strong&gt; - Create your project and push it to Nostr Git&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continue on Mobile&lt;/strong&gt; - Import the repository on your phone and keep building&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push Changes&lt;/strong&gt; - When you&amp;#39;re done, push your mobile changes to Nostr Git&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pull on Any Device&lt;/strong&gt; - Your changes are now available on desktop or any other device&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This workflow means you&amp;#39;re never stuck waiting to get back to your computer. See a bug while you&amp;#39;re out? Fix it on your phone. Have an idea during lunch? Start building it immediately. Your work follows you everywhere.&lt;/p&gt;

&lt;h2 id=&#34;why-shakespeare-works-when-others-don-t-2&#34;&gt;Why Shakespeare Works When Others Don&amp;#39;t&lt;/h2&gt;

&lt;p&gt;The reason most mobile vibe coding apps fail is they try to recreate a desktop IDE experience on a tiny screen. Shakespeare takes a different approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Conversation-first interface&lt;/strong&gt; - You don&amp;#39;t need to navigate complex menus or type precise code. Just tell Shakespeare what you want in plain language.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PWA architecture&lt;/strong&gt; - By running as a web app, Shakespeare works on any device with a modern browser. No app store approval delays or platform restrictions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decentralized sync&lt;/strong&gt; - Nostr Git means your code isn&amp;#39;t locked in anyone&amp;#39;s cloud. It&amp;#39;s stored on relays you choose and accessible from anywhere.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mobile-optimized UI&lt;/strong&gt; - The interface adapts to smaller screens, with easy switching between Chat, Preview, and Code views.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;ready-to-code-from-anywhere-2&#34;&gt;Ready to Code from Anywhere?&lt;/h2&gt;

&lt;p&gt;Join the developers who are building real apps on their phones with Shakespeare. It&amp;#39;s free to try and works on any mobile device.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://shakespeare.diy&#34;&gt;Try Shakespeare on Mobile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soapbox.pub/shakespeare-resources&#34;&gt;More Shakespeare Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Works on iPhone, Android, and any device with a modern browser.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href=&#34;https://soapbox.pub/blog/shakespeare-mobile-development&#34;&gt;Soapbox.pub&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-01-11T04:46:53Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd4akgp6kxllmczzwqjs4tfrp2a4365mu8qqw8vnlzts7l2tv32jczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7vmey8s</id>
    
      <title type="html">Building on the awesome work of @nprofile…pt5w - ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd4akgp6kxllmczzwqjs4tfrp2a4365mu8qqw8vnlzts7l2tv32jczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7vmey8s" />
    <content type="html">
      Building on the awesome work of &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqelpt5w&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…pt5w&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;/nprofile1qqspg3navgv05e0xmkekg6dvnlvzm87v8x3lk6sgphqusrnupeezl4sccyfuj&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;prism&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yfuj&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; is a #video first scaled down version of &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs24yz8xftq8kkdf7q5yzf4v7tn2ek78v0zp2y427mj3sa7f34ggjccd5eyg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Amethyst&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…5eyg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;Still in pre...pre..alpha - you can build it from #github&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/d93f806eb59fc9534fe0a7ce3366151cbf09030a193777f504347480210166cf.png&#34;&gt;  
    </content>
    <updated>2026-01-11T04:41:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2u90kq5xgm34qmyq9y5s00ymmvtj3h9974un3k72z8kst377hgcgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7u55tmr</id>
    
      <title type="html">#naddr1qp…8raf</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2u90kq5xgm34qmyq9y5s00ymmvtj3h9974un3k72z8kst377hgcgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7u55tmr" />
    <content type="html">
       &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;/naddr1qpg8v6tzv5kkxmmyd9hxwttfdckkztt5v4ekccfdv9hxgttzw45kcerfdenj6erpwd5xymmpwfj8xtt0dckkzttnd4shyapdveexjer8v5khwetvvdhk6efdw3hj6v3sxgmqygp3ssfsdfn8xdeeuws7t0253pkh42lrnzllf2h3u05l8gc9u049sypsgqqqw4rstc8raf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qp…8raf&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;If someone told you five years ago that developers would be writing code from the passenger seat of a Tesla and building custom dashboards on smart refrigerators at Best Buy, you&amp;#39;d probably assume they&amp;#39;d been spending too much time in the sci-fi section. And yet, here we are.&lt;/p&gt;

&lt;p&gt;In the latest episode of Soapbox Sessions, Derek Ross and Heather Larson make one thing crystal clear: 2026 is the year of the builder. Not the year of talking about building. Not the year of planning to build. The year of actually rolling up your sleeves, firing up an AI assistant, and making things happen—even if &amp;#34;making things happen&amp;#34; means commandeering a retail appliance to prove a point.&lt;/p&gt;

&lt;h2 id=&#34;what-exactly-is-vibe-coding-2&#34;&gt;What Exactly Is &amp;#34;Vibe Coding&amp;#34;?&lt;/h2&gt;

&lt;p&gt;The term sounds like something you&amp;#39;d hear at a tech conference after-party, but it perfectly captures what&amp;#39;s happening across the decentralized tech space right now. Vibe coding is building on the fly, wherever inspiration strikes, using whatever tools are available.&lt;/p&gt;

&lt;p&gt;Case in point: Soapbox team members Alex and MK recently found themselves in a Tesla, pulled up the browser, navigated to Shakespeare.DIY, and started building. No dedicated workstation. No carefully curated development environment. Just a vehicle, a browser, and an idea. The result? A working project and a new philosophy about what it means to be a developer in 2026.&lt;/p&gt;

&lt;h2 id=&#34;the-great-smart-fridge-caper-2&#34;&gt;The Great Smart Fridge Caper&lt;/h2&gt;

&lt;p&gt;Perhaps the most entertaining story from the episode involves an impromptu trip to Best Buy. The mission? Test whether a smart refrigerator could be used for actual web development.&lt;/p&gt;

&lt;p&gt;Spoiler: it can.&lt;/p&gt;

&lt;p&gt;The team accessed the fridge&amp;#39;s built-in web browser, loaded up Shakespeare, and—using nothing more than a simple prompt—generated a custom refrigerator dashboard. Was it practical? Debatable. Was it hilarious? Absolutely. Did it prove that the boundaries between &amp;#34;serious development tools&amp;#34; and &amp;#34;IoT devices in your kitchen&amp;#34; are getting wonderfully blurry? Without question.&lt;/p&gt;

&lt;p&gt;This kind of playful experimentation isn&amp;#39;t just for laughs, though. It demonstrates something important about where technology is heading. When you can build functional web interfaces on literally any device with a browser, the barriers to entry for creators drop dramatically. Your next project might start on your phone, continue on a tablet, and get demoed on whatever screen happens to be nearby.&lt;/p&gt;

&lt;h2 id=&#34;building-in-public-the-antidote-to-perfectionism-2&#34;&gt;Building in Public: The Antidote to Perfectionism&lt;/h2&gt;

&lt;p&gt;Derek and Heather spend a good portion of the episode discussing the philosophy of building in public—sharing your work openly, documenting your experiments, and letting people watch you figure things out in real time.&lt;/p&gt;

&lt;p&gt;There&amp;#39;s something refreshing about this approach. Too often, we only see polished final products. We scroll past beautiful portfolio pieces without any sense of the messy middle that got them there. Building in public flips that script. It says: here&amp;#39;s what I&amp;#39;m trying, here&amp;#39;s what broke, here&amp;#39;s what I learned, and here&amp;#39;s what I&amp;#39;m doing next.&lt;/p&gt;

&lt;p&gt;The Best Buy refrigerator stunt is a perfect example. Could the team have quietly tested this at home and only shared the results if everything worked perfectly? Sure. But where&amp;#39;s the fun in that? By turning it into a public experiment—complete with the inherent risk of looking silly if things went sideways—they created a story worth telling and a moment worth remembering.&lt;/p&gt;

&lt;h2 id=&#34;from-experiment-to-application-2&#34;&gt;From Experiment to Application&lt;/h2&gt;

&lt;p&gt;Lest you think vibe coding is all party tricks and appliance hacking, Derek shares a more practical example: using Shakespeare to build a marketing website for Amethyst, a Nostr client developed by Vitor Pamplona.&lt;/p&gt;

&lt;p&gt;The process was straightforward. Derek crafted a detailed prompt outlining what the site needed to communicate—the app&amp;#39;s features, its benefits, its place in the Nostr ecosystem—and let the AI generate the content and structure. The result was a polished marketing site built in a fraction of the time traditional development would require.&lt;/p&gt;

&lt;p&gt;This is where the &amp;#34;year of the builder&amp;#34; thesis really hits home. AI tools aren&amp;#39;t replacing developers; they&amp;#39;re amplifying what developers can accomplish. A single person with a clear vision can now produce work that previously required entire teams. That&amp;#39;s not a threat to creativity—it&amp;#39;s an invitation to attempt projects you never would have considered before.&lt;/p&gt;

&lt;h2 id=&#34;the-takeaway-2&#34;&gt;The Takeaway&lt;/h2&gt;

&lt;p&gt;Whether you&amp;#39;re a seasoned developer or someone who&amp;#39;s never written a line of code, the message from this episode is clear: the tools are ready, the barriers are lower than ever, and the only thing standing between you and your next project is the decision to start.&lt;/p&gt;

&lt;p&gt;Maybe you won&amp;#39;t build your first app on a smart fridge. But then again, maybe you will. That&amp;#39;s the spirit of 2026.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;em&gt;Soapbox Sessions is a podcast exploring decentralized communication, AI innovation, and the future of the open internet. Catch new episodes wherever you listen to podcasts.&lt;/em&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-01-10T09:42:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx2zj2q9k3amat5xk89srvwmax4ngeqxa5hs4ls9qeq683xr05v2czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x7zj48</id>
    
      <title type="html">Think I might travel around the #nostrverse and look for projects ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx2zj2q9k3amat5xk89srvwmax4ngeqxa5hs4ls9qeq683xr05v2czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x7zj48" />
    <content type="html">
      Think I might travel around the #nostrverse and look for projects to contribute too... &lt;br/&gt;&lt;br/&gt;I&amp;#39;ve always thought that #opensource development sometimes spreads it&amp;#39;s resources thin...&lt;br/&gt;&lt;br/&gt;#vibe-coding 
    </content>
    <updated>2026-01-10T03:36:29Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvp5m93jaga8c4kpvv3660gqkvjv48ele7pta5smjrtcvdwczl36szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7f5umn5</id>
    
      <title type="html">Well this was a fun little experiment... @nprofile…zqjr was ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvp5m93jaga8c4kpvv3660gqkvjv48ele7pta5smjrtcvdwczl36szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7f5umn5" />
    <content type="html">
      Well  this was a fun little experiment... &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyw8wumn8ghj7mn0wd68ytfsxyh8jcttd95x7mnwv5hxxmmdqyw8wumn8ghj7mn0wd68ytfsxgh8jcttd95x7mnwv5hxxmmdqqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhs2vzqjr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zqjr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  was #vibe-coded #AI based search bot... If anyone is interested in playing with the code - can download here at &lt;a href=&#34;https://github.com/imattau/3nostr-searchbot&#34;&gt;https://github.com/imattau/3nostr-searchbot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;For me--- onto something else -&amp;gt; 👀 &lt;br/&gt;&lt;br/&gt;Hopefully - it&amp;#39;s final reply is something useful - seeing I mentioned it in this post...
    </content>
    <updated>2026-01-10T03:20:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9ymdtwv74h7t78p0k98jyzmtte4pss3peuwfz02xdagfjderhm2szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ywt4q8</id>
    
      <title type="html">@nprofile…zqjr What are some good hashtags to follow?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9ymdtwv74h7t78p0k98jyzmtte4pss3peuwfz02xdagfjderhm2szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ywt4q8" />
    <content type="html">
      &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyw8wumn8ghj7mn0wd68ytfsxyh8jcttd95x7mnwv5hxxmmdqyw8wumn8ghj7mn0wd68ytfsxgh8jcttd95x7mnwv5hxxmmdqqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhs2vzqjr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zqjr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; What are some good hashtags to follow?&lt;br/&gt;
    </content>
    <updated>2026-01-10T02:11:32Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqss98g2cp97xu9fcfk0y3jsdrvw2zumtzhmaspymc4dpca9hd8jqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77zfu8x</id>
    
      <title type="html">What it @nprofile…j8e6 talking about?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqss98g2cp97xu9fcfk0y3jsdrvw2zumtzhmaspymc4dpca9hd8jqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77zfu8x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq9tfrqhw4jm5cdgnzg9460a6jq2rv2exmz5smk5x55jjup899gpyfmhxue69uhkummnw3ez6an9wf5kv6t9vsh8wetvd3hhyer9wghxuet5yncqj4&#39;&gt;nevent1q…cqj4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What it &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1q9c8wue69uhkcmmrv9kxsmmnwsar2vfhxvhkyunfv3nk20m5v9exwet584mhxffngyjny339xfrrx6nvddmx7umcw35kxdm3xdjkkvmyv5erwdn6washgar4wpuk7mmgdcm82vnx09ervctnvf3nyer2wymxkdm9dpckgtn0de5k7m39xdqnsvqpz4mhxue69uhk2er9dchxummnw3ezumrpdejqqg946d8wm37clqww4f0dxaa45t2nfm55n7hqck4nhts22a42w36uhur5j8e6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;lostcause&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…j8e6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; talking about?&lt;br/&gt;
    </content>
    <updated>2026-01-10T01:46:18Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8j6w04su9nllhkwhfrvhump4ns0qz7t9zy8895dvlvsc4qsenkvgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt73yphmn</id>
    
      <title type="html">@nprofile…zqjr What is trending at the moment?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8j6w04su9nllhkwhfrvhump4ns0qz7t9zy8895dvlvsc4qsenkvgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt73yphmn" />
    <content type="html">
      &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyw8wumn8ghj7mn0wd68ytfsxyh8jcttd95x7mnwv5hxxmmdqyw8wumn8ghj7mn0wd68ytfsxgh8jcttd95x7mnwv5hxxmmdqqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhs2vzqjr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zqjr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; What is trending at the moment?&lt;br/&gt;
    </content>
    <updated>2026-01-10T01:34:34Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsynxkrsqnaulahhvxvufvvq5q46uvswlppmcxec93j8sfavy9724czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7crzesz</id>
    
      <title type="html">@nprofile…zqjr Which is the most active conversation at the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsynxkrsqnaulahhvxvufvvq5q46uvswlppmcxec93j8sfavy9724czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7crzesz" />
    <content type="html">
      &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyw8wumn8ghj7mn0wd68ytfsxyh8jcttd95x7mnwv5hxxmmdqyw8wumn8ghj7mn0wd68ytfsxgh8jcttd95x7mnwv5hxxmmdqqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhs2vzqjr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zqjr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; Which is the most active conversation at the moment? (That you know of)&lt;br/&gt;
    </content>
    <updated>2026-01-09T11:24:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswryftkne7rurxnn2z5sra4ul7cqaxlj40qe35ll682tassgewn9czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt700kwa2</id>
    
      <title type="html">What&amp;#39;s -&amp;gt; A tech giant rolling out vendor lock to wall-in ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswryftkne7rurxnn2z5sra4ul7cqaxlj40qe35ll682tassgewn9czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt700kwa2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq9uw8ekgpzuaaf38x2nq8peh60qvtk0ff037mndt7auktqpnyqprpmhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv46l896&#39;&gt;nevent1q…l896&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What&amp;#39;s -&amp;gt; A tech giant rolling out vendor lock to wall-in developers, with the open-source community responding. - about?
    </content>
    <updated>2026-01-09T10:51:34Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsztxa722l37artdjw7csztd80338jlug5cvlgrv5xy8gems9zg9pqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt75vp7gm</id>
    
      <title type="html">@nprofile…zqjr Any updates for the question? Latest in the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsztxa722l37artdjw7csztd80338jlug5cvlgrv5xy8gems9zg9pqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt75vp7gm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy87gd44298tghqvljx0lse9prf6rqce7900msgjzyrqvmwlkh0cgg30xqp&#39;&gt;nevent1q…0xqp&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;/nprofile1qyw8wumn8ghj7mn0wd68ytfsxyh8jcttd95x7mnwv5hxxmmdqyw8wumn8ghj7mn0wd68ytfsxgh8jcttd95x7mnwv5hxxmmdqqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhs2vzqjr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zqjr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; Any updates for the question? Latest in the world of open-source?&lt;br/&gt;
    </content>
    <updated>2026-01-09T10:44:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8v4prnjazys03klhc7lfu3eyguxr3vgcay293x8wmeq78jmq0jlqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7dmh3yn</id>
    
      <title type="html">Do you have enough context now?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8v4prnjazys03klhc7lfu3eyguxr3vgcay293x8wmeq78jmq0jlqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7dmh3yn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqrc7unz252mcjzwlwdv976tw3w4fzeq9a38wa6r8q96tkkshdgpr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mg409ljt&#39;&gt;nevent1q…9ljt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Do you have enough context now?&lt;br/&gt;
    </content>
    <updated>2026-01-09T10:30:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsy87gd44298tghqvljx0lse9prf6rqce7900msgjzyrqvmwlkh0cgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt72z0933</id>
    
      <title type="html">@nprofile…k0dr What&amp;#39;s going on in the world of open-source?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsy87gd44298tghqvljx0lse9prf6rqce7900msgjzyrqvmwlkh0cgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt72z0933" />
    <content type="html">
      &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhspr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mg0zk0dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…k0dr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; What&amp;#39;s going on in the world of open-source? &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-09T09:18:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqecdev5y4mhdp4n5chqqxjtdny3tjek4vprtglymkfvxf65vf7fszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yk6t6t</id>
    
      <title type="html">What do you mean?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqecdev5y4mhdp4n5chqqxjtdny3tjek4vprtglymkfvxf65vf7fszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yk6t6t" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqry8ax0r4hjrgu2upnn5edhhsu94jxujnths63az60l72hwh9qwnwc6a&#39;&gt;nevent1q…wc6a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What do you mean?
    </content>
    <updated>2026-01-09T09:13:16Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswpqr5fhfweph5dad8fedx5pph8fv07g8pzgusmsmn89c8s8h3tegzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77zvcfv</id>
    
      <title type="html">@npub1znk…pytz since we last spoke - have you learned anything ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswpqr5fhfweph5dad8fedx5pph8fv07g8pzgusmsmn89c8s8h3tegzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77zvcfv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqrr8v62p0l6skarlcxnhdtzlgj56mhg3cy0wuwwv7q9a2rvygg98nvmj&#39;&gt;nevent1q…nvmj&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;/npub1znkq5vga0us5p55fy0nw0976sdkc7m3s3avdfyvyfwrrr3u75n0qtxpytz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1znk…pytz&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; since we last spoke - have you learned anything more that can add to the conversation?
    </content>
    <updated>2026-01-09T09:11:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstkjwa3jews4j5lrt6wm2u775ynwzfedphjfecurmppdkz7j9avjszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7fzh4mf</id>
    
      <title type="html">seems that 5 sats is not unlimited?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstkjwa3jews4j5lrt6wm2u775ynwzfedphjfecurmppdkz7j9avjszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7fzh4mf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqxajaemh3zhxf8y0l4gxkejsq76x53chgty7l9jzg5rzp49huqfcydnv&#39;&gt;nevent1q…ydnv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;seems that 5 sats is not unlimited?
    </content>
    <updated>2026-01-09T08:47:44Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr7wu9f5t3g0gpt20865wvmu8kf6p7tjh06mny7frkw6xxgw0ug0szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yvcs89</id>
    
      <title type="html">Anything new happening now?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr7wu9f5t3g0gpt20865wvmu8kf6p7tjh06mny7frkw6xxgw0ug0szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yvcs89" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq8lqzelxpm2a5czmfd0ts0ewg4hma8kald5l84e9d9y0p4kl5cprpmhxue69uhhyetvv9ujuumwdae8gtnnda3kjctvc9qep9&#39;&gt;nevent1q…qep9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Anything new happening now?&lt;br/&gt;
    </content>
    <updated>2026-01-09T07:45:53Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspcgxk5rzpu7ysecm0a844rlddn6fla73sasg55pue336gedqrxwgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77yd79j</id>
    
      <title type="html">Do you have any more idea now?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspcgxk5rzpu7ysecm0a844rlddn6fla73sasg55pue336gedqrxwgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77yd79j" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq8x4wearfrr7cyahya3h95aa5ss47gl7f9l4yrlxes4kgk2ttcprdmhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv8g6nwmd97fy&#39;&gt;nevent1q…97fy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Do you have any more idea now?&lt;br/&gt;
    </content>
    <updated>2026-01-09T07:10:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0vnmq9ljg3vg089t4mud8j57vfwqtf6nqcg4xvrjfsac2k59qryczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7wws0ze</id>
    
      <title type="html">@nprofile…6xp9 - What is trending on #nostr at the moment?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0vnmq9ljg3vg089t4mud8j57vfwqtf6nqcg4xvrjfsac2k59qryczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7wws0ze" />
    <content type="html">
      &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhssc6xp9&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…6xp9&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; - What is trending on #nostr at the moment?&lt;br/&gt;
    </content>
    <updated>2026-01-09T07:02:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspq2ddh4yztz0wa8g9r59xpdtcrwns0xxgjgcz479n3vtpxdeuu2czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70ln206</id>
    
      <title type="html">@3nostr-searchbot help</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspq2ddh4yztz0wa8g9r59xpdtcrwns0xxgjgcz479n3vtpxdeuu2czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt70ln206" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgpr9mhxue69uhk2umsv4kxsmewva5hy6twduhx7un89udsk7fw&#39;&gt;nevent1q…k7fw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;@3nostr-searchbot help
    </content>
    <updated>2026-01-09T05:48:19Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9959uhkj9swa2k7zg7ac66kpp4ns4pgdyhqdza27knkqgf8mskwqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ck504w</id>
    
      <title type="html">@nprofile…k0dr help</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9959uhkj9swa2k7zg7ac66kpp4ns4pgdyhqdza27knkqgf8mskwqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ck504w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgpz3mhxue69uhhyetvv9ujuerpd46hxtnfduv00epj&#39;&gt;nevent1q…0epj&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;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhspr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mg0zk0dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…k0dr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; help &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-09T05:39:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqm084zhrdcm8ywg5j4awz5jvl25xvsxpvska4ecvgpu5ft4guydgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7a0my5e</id>
    
      <title type="html">@nprofile…k0dr help</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqm084zhrdcm8ywg5j4awz5jvl25xvsxpvska4ecvgpu5ft4guydgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7a0my5e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgpz3mhxue69uhhyetvv9ujuerpd46hxtnfduv00epj&#39;&gt;nevent1q…0epj&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;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhspr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mg0zk0dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…k0dr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; help &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-09T05:07:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0dwtcn4fjkr7f9nvd5mzjt3uyskn5r5303nfq54vwt72yfsecgxgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7wcshpf</id>
    
      <title type="html">@nprofile…k0dr help</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0dwtcn4fjkr7f9nvd5mzjt3uyskn5r5303nfq54vwt72yfsecgxgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7wcshpf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgpz3mhxue69uhhyetvv9ujuerpd46hxtnfduv00epj&#39;&gt;nevent1q…0epj&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;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhspr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mg0zk0dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…k0dr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; help &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-09T05:04:58Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswefwrun8cezsel60k7hj6f66xwf4gf4d3gn3jsr9ad64nhm7cj7qzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7nfh05g</id>
    
      <title type="html">@nprofile…k0dr help</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswefwrun8cezsel60k7hj6f66xwf4gf4d3gn3jsr9ad64nhm7cj7qzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7nfh05g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgpz3mhxue69uhhyetvv9ujuerpd46hxtnfduv00epj&#39;&gt;nevent1q…0epj&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;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhspr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mg0zk0dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…k0dr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; help &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-09T05:01:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspqdxx4vgx0cqhte7hz6lqasessmgfddcex9p9pkvy7k5kjaeevaqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7zth60z</id>
    
      <title type="html">@nprofile…k0dr help</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspqdxx4vgx0cqhte7hz6lqasessmgfddcex9p9pkvy7k5kjaeevaqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7zth60z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgpz3mhxue69uhhyetvv9ujuerpd46hxtnfduv00epj&#39;&gt;nevent1q…0epj&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;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhspr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mg0zk0dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…k0dr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  help &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-09T04:54:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78v9qzz</id>
    
      <title type="html">@nprofile…k0dr Are you online?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsp0wnpc9rkcng8lc4s667a6k44jngjrcq3ek2p4fjda8yxp60e5kgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt78v9qzz" />
    <content type="html">
      &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqspfmq2xywh7g2q62yj8eh8jldgxmv0dccg7kx5jxzyhp33c702fhspr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mg0zk0dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;3nostr-searchbot&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…k0dr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; Are you online? &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-09T04:51:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsq4t886a82y38jkak50kvy97kwehlxqnc3q33u3tnh7xpjfhvu4nqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7zt7jxa</id>
    
      <title type="html">One thing I like about #vibecoding If an app is missing something ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsq4t886a82y38jkak50kvy97kwehlxqnc3q33u3tnh7xpjfhvu4nqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7zt7jxa" />
    <content type="html">
      One thing I like about #vibecoding&lt;br/&gt;&lt;br/&gt;If an app is missing something you want, you do not complain about it. You grab the source, add the feature, and use it.&lt;br/&gt;&lt;br/&gt;Build instead of waiting.&lt;br/&gt;&lt;br/&gt;#nostr #opensource #builders #dev &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-08T19:02:53Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsplwsyzux25uwyxy272nadchw9e7mu9lgraa0m2hcch0a8ztnmvhczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x9xvrn</id>
    
      <title type="html">Start working on a new web app called #Binder ... Using existing ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsplwsyzux25uwyxy272nadchw9e7mu9lgraa0m2hcch0a8ztnmvhczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x9xvrn" />
    <content type="html">
      Start working on a new web app called #Binder ...&lt;br/&gt;&lt;br/&gt;Using existing #nostr primitives- it bundles long form content in a coherent &amp;#39;book&amp;#39;&lt;br/&gt;&lt;br/&gt;So far - &lt;br/&gt;&lt;br/&gt;- auto save drafting - encrypted backup to relasy&lt;br/&gt;- markdown editor and previewing&lt;br/&gt;- New authors and hots reads&lt;br/&gt;-  and other stuff&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Has been a fun exercise #vibe-coding #ai #codex #gemini&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/1f311fc046ea923271a6b5cc26da729f3e6724ddc3200d399bf6a00a032e16d7.png&#34;&gt; 
    </content>
    <updated>2026-01-08T10:15:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx8jk3mwa7298rydmqg63vurwxqmdhtws43mjqhqth80zdy9rlh0szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7l5w8ag</id>
    
      <title type="html">This is the first comment - on the first book - in binder... ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx8jk3mwa7298rydmqg63vurwxqmdhtws43mjqhqth80zdy9rlh0szyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7l5w8ag" />
    <content type="html">
      In reply to &lt;a href=&#39;/naddr1qqtxymm0dvkhg6r9943x7mmt95ensd3k8qexyegzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7qcyqqq82vc83k0dy&#39;&gt;naddr1qq…k0dy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This is the first comment - on the first book - in binder... Fingers crossed
    </content>
    <updated>2026-01-08T03:21:41Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgx9svy29446m0scxt9lug6nf7ttnjhx020zu9l8ddjv3ea4qwf9czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7hrcy4n</id>
    
      <title>Nostr event nevent1qqsgx9svy29446m0scxt9lug6nf7ttnjhx020zu9l8ddjv3ea4qwf9czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7hrcy4n</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgx9svy29446m0scxt9lug6nf7ttnjhx020zu9l8ddjv3ea4qwf9czyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7hrcy4n" />
    <content type="html">
       &lt;img src=&#34;https://image.nostr.build/6b5dc594d3801f646284043fb8962179e0fb7ec1aa154ef1615faa6ab6e03f33.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;NCC Sidecar v1.2.2 is live&lt;br/&gt;&lt;br/&gt;This release focuses on backup integrity, recovery, and more reliable discovery for self-hosted services.&lt;br/&gt;&lt;br/&gt;Encrypted backups by default&lt;br/&gt;Node backups (Kind 30001) now use NIP-44 encryption. Managed service lists and configuration data are no longer published in plain text to relays.&lt;br/&gt;&lt;br/&gt;Improved admin recovery&lt;br/&gt;A new two-stage bootstrap flow allows full recovery after reinstall. Logging in is enough. Sidecar locates your encrypted bootstrap keys linked to your identity and restores state automatically.&lt;br/&gt;&lt;br/&gt;Updated resolution engine&lt;br/&gt;Now running ncc-06-js v0.6.0, improving discovery resolution, protocol filtering, and overall reliability.&lt;br/&gt;&lt;br/&gt;UI refinements&lt;br/&gt;Standardised theming for cleaner dark mode transitions, relay management restored, and a new “Copy NPUB” shortcut added to the dashboard.&lt;br/&gt;&lt;br/&gt;The goal remains simple: make Nostr services easier to discover without compromising privacy.&lt;br/&gt;&lt;br/&gt;#NCC06 #Nostr #SelfHosting #Privacy&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.npmjs.com/package/ncc-sidecar&#34;&gt;https://www.npmjs.com/package/ncc-sidecar&lt;/a&gt;
    </content>
    <updated>2026-01-04T11:27:40Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstu8tydj2urtyd3jutunusfkk0eaaccxlym6felz8kedxpq0qtyygzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7sa5qzy</id>
    
      <title type="html">Continuing on with Nostr Community Conventions 02 and 05 (#ncc) - ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstu8tydj2urtyd3jutunusfkk0eaaccxlym6felz8kedxpq0qtyygzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7sa5qzy" />
    <content type="html">
      Continuing on with Nostr Community Conventions 02 and 05 (#ncc) - I knocked up an NCC-VPN....&lt;br/&gt;&lt;br/&gt;Technically a proxy service - it can intercept NCC address - &amp;lt;npub&amp;gt;.nostr and resolve using the NCC-02 Service Records and NCC-05 Dynamic Locators... Proving service without DNS is workable - using #nostr as the backbone!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.npmjs.com/package/ncc-vpn&#34;&gt;https://www.npmjs.com/package/ncc-vpn&lt;/a&gt; - CLI client - npm install ncc-vpn&lt;br/&gt;&lt;br/&gt;#nostrdevs #dns #privacy #decentralised
    </content>
    <updated>2026-01-04T09:16:57Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr5xd628eu20q5hyvv3zswq3d8l9gc6f4kalwty0er64elhv0zpqgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt73jhhlc</id>
    
      <title type="html">Stop Confusing Privacy &amp;amp;amp; Anonymity (and Security) ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr5xd628eu20q5hyvv3zswq3d8l9gc6f4kalwty0er64elhv0zpqgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt73jhhlc" />
    <content type="html">
      Stop Confusing Privacy &amp;amp;amp; Anonymity (and Security)&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://neat.tube/w/4SmJxn7Q2XRp7ZGDCxvNUV&#34;&gt;https://neat.tube/w/4SmJxn7Q2XRp7ZGDCxvNUV&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Are you mixing up privacy, security, and anonymity? Don&amp;#39;t worry, it&amp;#39;s more common than you might think! In this week&amp;#39;s video we break down each term, so you can make educated decisions on what tools are best for you.&lt;br/&gt;&lt;br/&gt;Please 👍 like and 🔔 subscribe to our channel to support our work and find out about our latest video content!&lt;br/&gt;&lt;br/&gt;💬 Join the community: &lt;a href=&#34;https://discuss.privacyguides.net&#34;&gt;https://discuss.privacyguides.net&lt;/a&gt;&lt;br/&gt;❤️ Support our work: &lt;a href=&#34;https://www.privacyguides.org/en/about/donate/&#34;&gt;https://www.privacyguides.org/en/about/donate/&lt;/a&gt;&lt;br/&gt;🏡 Visit our website: &lt;a href=&#34;https://www.privacyguides.org&#34;&gt;https://www.privacyguides.org&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Have a question, comment, or tip for us? You can securely reach us on Signal at @privacyguides.01 &lt;a href=&#34;https://www.privacyguides.org/en/about/&#34;&gt;https://www.privacyguides.org/en/about/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Sources: &lt;a href=&#34;https://www.privacyguides.org/videos/2025/03/14/stop-confusing-privacy-anonymity-and-security/&#34;&gt;https://www.privacyguides.org/videos/2025/03/14/stop-confusing-privacy-anonymity-and-security/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Copyright ©️ 2025 Privacy Guides. This video is made available under the Creative Commons Attribution Share Alike 4.0 International license. You can read the full license text here: &lt;a href=&#34;https://github.com/privacyguides/privacyguides.org/blob/main/LICENSE&#34;&gt;https://github.com/privacyguides/privacyguides.org/blob/main/LICENSE&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;YouTube is known for silent censorship and general privacy malfeasance. If you want to discuss this video you can do so on our forum at &lt;a href=&#34;https://discuss.privacyguides.net&#34;&gt;https://discuss.privacyguides.net&lt;/a&gt; in addition to commenting here, and you can follow our channel on the fediverse at: &lt;a href=&#34;https://neat.tube/c/privacyguides/videos&#34;&gt;https://neat.tube/c/privacyguides/videos&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Privacy Guides is a nonprofit project dedicated to promoting privacy, best cybersecurity practices, and digital rights. As a part of MAGIC Grants, a 501(c)(3) public charity, your donation to support our cause may be tax deductible.&lt;br/&gt;&lt;br/&gt;🎬 Credits&lt;br/&gt;===============&lt;br/&gt;Host: Jordan Warne&lt;br/&gt;Writer: Jordan Warne&lt;br/&gt;Editor: Jordan Warne&lt;br/&gt;Executive Producer: Jonah Aragon&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://plebs.app/#/video/208f4b7d429679ca47fee0e09f28e11513601d7b9772b0326aa65a2cc2c4254a&#34;&gt;https://plebs.app/#/video/208f4b7d429679ca47fee0e09f28e11513601d7b9772b0326aa65a2cc2c4254a&lt;/a&gt;
    </content>
    <updated>2026-01-04T01:24:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgjehx36mc26jg5ehwn2c0hjyd562pwm7jx9qky5d9g9zsxj5q2lgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7k45xft</id>
    
      <title type="html">Stop Confusing Privacy &amp;amp;amp; Anonymity (and Security) ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgjehx36mc26jg5ehwn2c0hjyd562pwm7jx9qky5d9g9zsxj5q2lgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7k45xft" />
    <content type="html">
      Stop Confusing Privacy &amp;amp;amp; Anonymity (and Security)&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://cdn.neat.tube/streaming-playlists/hls/1f5361c6-2230-4466-9390-659e0a0692ad/403b4b47-8b73-446d-b325-44562e28b871-1080-fragmented.mp4&#34;&gt;&lt;/video&gt;&lt;br/&gt;&lt;br/&gt;Are you mixing up privacy, security, and anonymity? Don&amp;#39;t worry, it&amp;#39;s more common than you might think! In this week&amp;#39;s video we break down each term, so you can make educated decisions on what tools are best for you.&lt;br/&gt;&lt;br/&gt;Please 👍 like and 🔔 subscribe to our channel to support our work and find out about our latest video content!&lt;br/&gt;&lt;br/&gt;💬 Join the community: &lt;a href=&#34;https://discuss.privacyguides.net&#34;&gt;https://discuss.privacyguides.net&lt;/a&gt;&lt;br/&gt;❤️ Support our work: &lt;a href=&#34;https://www.privacyguides.org/en/about/donate/&#34;&gt;https://www.privacyguides.org/en/about/donate/&lt;/a&gt;&lt;br/&gt;🏡 Visit our website: &lt;a href=&#34;https://www.privacyguides.org&#34;&gt;https://www.privacyguides.org&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Have a question, comment, or tip for us? You can securely reach us on Signal at @privacyguides.01 &lt;a href=&#34;https://www.privacyguides.org/en/about/&#34;&gt;https://www.privacyguides.org/en/about/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Sources: &lt;a href=&#34;https://www.privacyguides.org/videos/2025/03/14/stop-confusing-privacy-anonymity-and-security/&#34;&gt;https://www.privacyguides.org/videos/2025/03/14/stop-confusing-privacy-anonymity-and-security/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Copyright ©️ 2025 Privacy Guides. This video is made available under the Creative Commons Attribution Share Alike 4.0 International license. You can read the full license text here: &lt;a href=&#34;https://github.com/privacyguides/privacyguides.org/blob/main/LICENSE&#34;&gt;https://github.com/privacyguides/privacyguides.org/blob/main/LICENSE&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;YouTube is known for silent censorship and general privacy malfeasance. If you want to discuss this video you can do so on our forum at &lt;a href=&#34;https://discuss.privacyguides.net&#34;&gt;https://discuss.privacyguides.net&lt;/a&gt; in addition to commenting here, and you can follow our channel on the fediverse at: &lt;a href=&#34;https://neat.tube/c/privacyguides/videos&#34;&gt;https://neat.tube/c/privacyguides/videos&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Privacy Guides is a nonprofit project dedicated to promoting privacy, best cybersecurity practices, and digital rights. As a part of MAGIC Grants, a 501(c)(3) public charity, your donation to support our cause may be tax deductible.&lt;br/&gt;&lt;br/&gt;🎬 Credits&lt;br/&gt;===============&lt;br/&gt;Host: Jordan Warne&lt;br/&gt;Writer: Jordan Warne&lt;br/&gt;Editor: Jordan Warne&lt;br/&gt;Executive Producer: Jonah Aragon&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://plebs.app/#/video/d25c9f0f4406bc1921fc8f8efbbb5ebca96e7030af851d612ef0b29060bd08b6&#34;&gt;https://plebs.app/#/video/d25c9f0f4406bc1921fc8f8efbbb5ebca96e7030af851d612ef0b29060bd08b6&lt;/a&gt;
    </content>
    <updated>2026-01-03T22:46:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfes9znu62fhqcpw0cw76ul4wt2mzqah7zdxvz92pk5vewwhgzzqqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt74gljlj</id>
    
      <title type="html">Cosmic a great Linux desktop, but still limited ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfes9znu62fhqcpw0cw76ul4wt2mzqah7zdxvz92pk5vewwhgzzqqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt74gljlj" />
    <content type="html">
      Cosmic a great Linux desktop, but still limited&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://tilvids.com/w/j8FfrSBh8oUejkhdGcoqkB&#34;&gt;https://tilvids.com/w/j8FfrSBh8oUejkhdGcoqkB&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Use a secure, encrypted, and fast VPN with Proton VPN: &lt;a href=&#34;https://protonvpn.com/TheLinuxEXP&#34;&gt;https://protonvpn.com/TheLinuxEXP&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;👏 SUPPORT THE CHANNEL:&lt;br/&gt;Get access to:&lt;br/&gt;- a Daily Linux News show&lt;br/&gt;- a weekly patroncast for more thoughts&lt;br/&gt;- your name in the credits&lt;br/&gt;&lt;br/&gt;YouTube: &lt;a href=&#34;https://www.youtube.com/@thelinuxexp/join&#34;&gt;https://www.youtube.com/@thelinuxexp/join&lt;/a&gt;&lt;br/&gt;Patreon: &lt;a href=&#34;https://www.patreon.com/thelinuxexperiment&#34;&gt;https://www.patreon.com/thelinuxexperiment&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Or, you can donate whatever you want:&lt;br/&gt;&lt;a href=&#34;https://paypal.me/thelinuxexp&#34;&gt;https://paypal.me/thelinuxexp&lt;/a&gt;&lt;br/&gt;Liberapay: &lt;a href=&#34;https://liberapay.com/TheLinuxExperiment/&#34;&gt;https://liberapay.com/TheLinuxExperiment/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;👕 GET TLE MERCH&lt;br/&gt;Support the channel AND get cool new gear: &lt;a href=&#34;https://the-linux-experiment.creator-spring.com/&#34;&gt;https://the-linux-experiment.creator-spring.com/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Timestamps:&lt;br/&gt;00:00 Intro&lt;br/&gt;00:38 Sponsor: ProtonVPN&lt;br/&gt;01:31 Install &amp;amp;amp; First Run&lt;br/&gt;03:31 Cosmic Desktop: it&amp;#39;s fine&lt;br/&gt;08:10 Design and app integration&lt;br/&gt;13:15 Desktop Tweaking&lt;br/&gt;16:49 Tiling&lt;br/&gt;20:59 X11 &amp;amp;amp; Wayland&lt;br/&gt;22:45 Default Apps&lt;br/&gt;16:42 PopOS 24.04: Old, but up to date&lt;br/&gt;28:47 Parting Thoughts&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;#linuxdesktop #cosmic #linuxdistro #popos&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://plebs.app/#/video/4d0be01de00dcddfd75c25fe8dfe3828d3cffee4a3a00faa0720389538ab14be&#34;&gt;https://plebs.app/#/video/4d0be01de00dcddfd75c25fe8dfe3828d3cffee4a3a00faa0720389538ab14be&lt;/a&gt;
    </content>
    <updated>2026-01-03T22:13:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx5sxcxl6flmkmhdet5jtast8v9px745s2tavpv0h6jdlmen07erqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7030zmc</id>
    
      <title type="html">We Lose 73% of Revenue to Ad Blocking (AFDS 2025 Presentation) ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx5sxcxl6flmkmhdet5jtast8v9px745s2tavpv0h6jdlmen07erqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7030zmc" />
    <content type="html">
      We Lose 73% of Revenue to Ad Blocking (AFDS 2025 Presentation)&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://techlore.tv/w/vwSVhB8Fu8HNHjojsqaaKy&#34;&gt;https://techlore.tv/w/vwSVhB8Fu8HNHjojsqaaKy&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Techlore was invited to the Ad Filtering Dev Summit in Cyprus, where Henry spoke about the paradox we face: Techlore recommends ad blockers for digital rights &amp;amp;amp; privacy &amp;amp;amp; security, but we partially rely on ad revenue to survive. How do we navigate this? After 10 years, we&amp;#39;ve diversified revenue across sponsors, community support, and affiliates to get ahead of this, but what happens to other independent voices as ad blocking grows?&lt;br/&gt;&lt;br/&gt;🧑‍💻 AFDS 2025 CO-HOSTS AND SPONSORS&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/@AdGuardEN&#34;&gt;https://www.youtube.com/@AdGuardEN&lt;/a&gt; &lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/@eyeo_gmbH&#34;&gt;https://www.youtube.com/@eyeo_gmbH&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/@ghostery_adblocker&#34;&gt;https://www.youtube.com/@ghostery_adblocker&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;🔎 RELATED VIDEOS&lt;br/&gt;&lt;a href=&#34;https://youtu.be/dr7XSnbyv7w&#34;&gt;https://youtu.be/dr7XSnbyv7w&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://youtu.be/E4tJSHimd9c&#34;&gt;https://youtu.be/E4tJSHimd9c&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://youtu.be/KKJXGM48p00&#34;&gt;https://youtu.be/KKJXGM48p00&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://youtu.be/MREkh8oMCPs&#34;&gt;https://youtu.be/MREkh8oMCPs&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/playlist?list=PL61EKVIQWizG0tIYqNDoenVaOWSiaAsyb&#34;&gt;https://www.youtube.com/playlist?list=PL61EKVIQWizG0tIYqNDoenVaOWSiaAsyb&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;📱 RESOURCES IN VIDEO&lt;br/&gt;• NewPipe: &lt;a href=&#34;https://newpipe.net/&#34;&gt;https://newpipe.net/&lt;/a&gt;&lt;br/&gt;• Brave Rewards: &lt;a href=&#34;https://brave.com/brave-rewards&#34;&gt;https://brave.com/brave-rewards&lt;/a&gt;&lt;br/&gt;• Substack: &lt;a href=&#34;https://substack.com/&#34;&gt;https://substack.com/&lt;/a&gt;&lt;br/&gt;• PeerTube: &lt;a href=&#34;https://joinpeertube.org/&#34;&gt;https://joinpeertube.org/&lt;/a&gt;&lt;br/&gt;• eye-o: &lt;a href=&#34;https://eyeo.com/&#34;&gt;https://eyeo.com/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;🧡 SUPPORT TECHLORE&lt;br/&gt;Support our mission to defend digital rights for everyone:&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/channel/UCs6KfncB4OV6Vug4o_bzijg/join&#34;&gt;https://www.youtube.com/channel/UCs6KfncB4OV6Vug4o_bzijg/join&lt;/a&gt;&lt;br/&gt;• All Our Support Methods: &lt;a href=&#34;https://techlore.tech/support/&#34;&gt;https://techlore.tech/support/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;🔐 MORE FROM TECHLORE&lt;br/&gt;• Homepage &amp;amp;amp; Newsletter: &lt;a href=&#34;https://techlore.tech&#34;&gt;https://techlore.tech&lt;/a&gt;&lt;br/&gt;• Go Incognito Course: &lt;a href=&#34;https://techlore.tech/go-incognito-course/&#34;&gt;https://techlore.tech/go-incognito-course/&lt;/a&gt;&lt;br/&gt;• Privacy Tools: &lt;a href=&#34;https://privacytools.techlore.tech/&#34;&gt;https://privacytools.techlore.tech/&lt;/a&gt;&lt;br/&gt;• VPN Comparison Chart: &lt;a href=&#34;https://vpn.techlore.tech/&#34;&gt;https://vpn.techlore.tech/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;⏱️ TIMESTAMPS&lt;br/&gt;00:00 INTRO&lt;br/&gt;00:57 HENRY&amp;#39;S PRESENTATION&lt;br/&gt;12:22 OUTRO&lt;br/&gt;&lt;br/&gt;#AdBlocking #CreatorEconomy #DigitalRights&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://plebs.app/#/video/97d19d575a75451209954ad58992d4b44bb7abe68abf652eb805556a6a78aa3d&#34;&gt;https://plebs.app/#/video/97d19d575a75451209954ad58992d4b44bb7abe68abf652eb805556a6a78aa3d&lt;/a&gt;
    </content>
    <updated>2026-01-03T21:44:31Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdc2nps47xwcnnlzryvq7qm293k072g8p3gzzelqcqn0f6gh7fqxgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x2lxwj</id>
    
      <title type="html">Firefox turns into AI browser, more Wayland work - Linux Weekly ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdc2nps47xwcnnlzryvq7qm293k072g8p3gzzelqcqn0f6gh7fqxgzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7x2lxwj" />
    <content type="html">
      Firefox turns into AI browser, more Wayland work - Linux Weekly News&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://tilvids.com/static/streaming-playlists/hls/5784fc8c-ceb7-4354-87a2-1bca698979ed/1c753d94-9b8d-4a11-90a2-b182333d4922-144-fragmented.mp4&#34;&gt;&lt;/video&gt;&lt;br/&gt;&lt;br/&gt;Try TuxCare&amp;#39;s Endless Lifecycle Support for Debian 10:  &lt;a href=&#34;https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&amp;amp;amp;utm_source=youtube&amp;amp;amp;utm_medium=social&#34;&gt;https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&amp;amp;amp;utm_source=youtube&amp;amp;amp;utm_medium=social&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Grab a brand new laptop or desktop running Linux: &lt;a href=&#34;https://www.tuxedocomputers.com/en#&#34;&gt;https://www.tuxedocomputers.com/en#&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;👏 SUPPORT THE CHANNEL:&lt;br/&gt;Get access to:&lt;br/&gt;- a Daily Linux News show&lt;br/&gt;- a weekly patroncast for more thoughts&lt;br/&gt;- your name in the credits&lt;br/&gt;&lt;br/&gt;YouTube: &lt;a href=&#34;https://www.youtube.com/@thelinuxexp/join&#34;&gt;https://www.youtube.com/@thelinuxexp/join&lt;/a&gt;&lt;br/&gt;Patreon: &lt;a href=&#34;https://www.patreon.com/thelinuxexperiment&#34;&gt;https://www.patreon.com/thelinuxexperiment&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Or, you can donate whatever you want:&lt;br/&gt;&lt;a href=&#34;https://paypal.me/thelinuxexp&#34;&gt;https://paypal.me/thelinuxexp&lt;/a&gt;&lt;br/&gt;Liberapay: &lt;a href=&#34;https://liberapay.com/TheLinuxExperiment/&#34;&gt;https://liberapay.com/TheLinuxExperiment/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;👕 GET TLE MERCH&lt;br/&gt;Support the channel AND get cool new gear: &lt;a href=&#34;https://the-linux-experiment.creator-spring.com/&#34;&gt;https://the-linux-experiment.creator-spring.com/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Timestamps&lt;br/&gt;&lt;br/&gt;00:00 Intro&lt;br/&gt;00:30 Sponsor: TuxCare&lt;br/&gt;01:53 Firefox will become an AI browser &amp;amp;amp; makes all the mistakes&lt;br/&gt;07:01 Servo making progress&lt;br/&gt;08:19 Plasma 6.6 will fix some big Wayland issues&lt;br/&gt;09:48 Wayland protocols updated for better HDR&lt;br/&gt;10:51 GNOME bans AI from extensions&lt;br/&gt;13:00 Rust no longer experimental in Linux kernel&lt;br/&gt;14:21 Mint 22.3 beta released&lt;br/&gt;15:59 Website lets you scan Snaps for vulnerabilities&lt;br/&gt;18:19 Danish admin plans move to Linux&lt;br/&gt;20:17 NVK gets a huge performance boost&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Links:&lt;br/&gt;&lt;br/&gt;Firefox will become an AI browser&lt;br/&gt;&lt;a href=&#34;https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/&#34;&gt;https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features&#34;&gt;https://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo&#34;&gt;https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Servo making progress&lt;br/&gt;&lt;a href=&#34;https://servo.org/blog/2025/12/15/november-in-servo/&#34;&gt;https://servo.org/blog/2025/12/15/november-in-servo/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Plasma 6.6 will fix some big Wayland issues&lt;br/&gt;&lt;a href=&#34;https://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/&#34;&gt;https://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Wayland protocols updated for better HDR&lt;br/&gt;&lt;a href=&#34;https://www.phoronix.com/news/Wayland-Protocols-1.47&#34;&gt;https://www.phoronix.com/news/Wayland-Protocols-1.47&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;GNOME bans AI from extensions&lt;br/&gt;&lt;a href=&#34;https://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/&#34;&gt;https://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://gjs.guide/extensions/review-guidelines/review-guidelines.html&#34;&gt;https://gjs.guide/extensions/review-guidelines/review-guidelines.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Rust no longer experimental in Linux kernel&lt;br/&gt;&lt;a href=&#34;https://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/&#34;&gt;https://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Mint 22.3 beta released&lt;br/&gt;&lt;a href=&#34;https://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/&#34;&gt;https://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Website lets you scan Snaps for vulnerabilities&lt;br/&gt;&lt;a href=&#34;https://snapscope.popey.com/&#34;&gt;https://snapscope.popey.com/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Danish admin plans move to Linux&lt;br/&gt;&lt;a href=&#34;https://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/&#34;&gt;https://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://www.semaphor.dk/opensource/linuxpc&#34;&gt;https://www.semaphor.dk/opensource/linuxpc&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;NVK gets a huge performance boost&lt;br/&gt;&lt;a href=&#34;https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450&#34;&gt;https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;#linuxdesktop #linuxdistro #technews&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://plebs.app/#/video/a271a0f1cfb27ef8d2c589250145611e9bca6f19965654baab7107a39dad1d5b&#34;&gt;https://plebs.app/#/video/a271a0f1cfb27ef8d2c589250145611e9bca6f19965654baab7107a39dad1d5b&lt;/a&gt;
    </content>
    <updated>2026-01-03T21:39:27Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs24ujvckuvck6tfp2gygxp8m8c90w3fkxun3dv37q9c5qycfz5efqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yhz0vc</id>
    
      <title type="html">New X11 server, New portable package manager, no more Steam Deck ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs24ujvckuvck6tfp2gygxp8m8c90w3fkxun3dv37q9c5qycfz5efqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7yhz0vc" />
    <content type="html">
      New X11 server, New portable package manager, no more Steam Deck LCD - Linux Weekly News&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://tilvids.com/download/streaming-playlists/hls/videos/caa224f1-f169-448d-8d6e-77678ed9792b-144-fragmented.mp4&#34;&gt;&lt;/video&gt;&lt;br/&gt;&lt;br/&gt;Try out Proton Mail, the secure email that protects your privacy: &lt;a href=&#34;https://proton.me/mail/TheLinuxEXP&#34;&gt;https://proton.me/mail/TheLinuxEXP&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Grab a brand new laptop or desktop running Linux: &lt;a href=&#34;https://www.tuxedocomputers.com/en#&#34;&gt;https://www.tuxedocomputers.com/en#&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;👏 SUPPORT THE CHANNEL:&lt;br/&gt;Get access to:&lt;br/&gt;- a Daily Linux News show&lt;br/&gt;- a weekly patroncast for more thoughts&lt;br/&gt;- your name in the credits&lt;br/&gt;&lt;br/&gt;YouTube: &lt;a href=&#34;https://www.youtube.com/@thelinuxexp/join&#34;&gt;https://www.youtube.com/@thelinuxexp/join&lt;/a&gt;&lt;br/&gt;Patreon: &lt;a href=&#34;https://www.patreon.com/thelinuxexperiment&#34;&gt;https://www.patreon.com/thelinuxexperiment&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Or, you can donate whatever you want:&lt;br/&gt;&lt;a href=&#34;https://paypal.me/thelinuxexp&#34;&gt;https://paypal.me/thelinuxexp&lt;/a&gt;&lt;br/&gt;Liberapay: &lt;a href=&#34;https://liberapay.com/TheLinuxExperiment/&#34;&gt;https://liberapay.com/TheLinuxExperiment/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;👕 GET TLE MERCH&lt;br/&gt;Support the channel AND get cool new gear: &lt;a href=&#34;https://the-linux-experiment.creator-spring.com/&#34;&gt;https://the-linux-experiment.creator-spring.com/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Timestamps:&lt;br/&gt;00:00 Intro&lt;br/&gt;00:51 Sponsor: Proton Mail&lt;br/&gt;01:40 Brand new X11 server in the works&lt;br/&gt;04:36 New packaging solution for portable apps&lt;br/&gt;08:10 Steam Deck LCD is discontinued&lt;br/&gt;10:11 Linux Foundation publishes annual report&lt;br/&gt;12:58 elementary OS 8.1 released&lt;br/&gt;15:57 Older AMD GPUs get 30% performance boost&lt;br/&gt;17:41 CachyOS looks at the server now&lt;br/&gt;20:09 Italy fines Apple for their privacy framework&lt;br/&gt;23:24 Sponsor: Tuxedo Computers&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Links:&lt;br/&gt;&lt;br/&gt;Brand new X11 server in the works&lt;br/&gt;&lt;a href=&#34;https://git.dec05eba.com/phoenix/tree/README.md&#34;&gt;https://git.dec05eba.com/phoenix/tree/README.md&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/&#34;&gt;https://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;New packaging solution for portable apps&lt;br/&gt;&lt;a href=&#34;https://itsfoss.com/pkgforge/&#34;&gt;https://itsfoss.com/pkgforge/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Steam Deck LCD is discontinued&lt;br/&gt;&lt;a href=&#34;https://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/&#34;&gt;https://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Linux Foundation publishes annual report&lt;br/&gt;&lt;a href=&#34;https://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/&#34;&gt;https://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;elementary OS 8.1 released&lt;br/&gt;&lt;a href=&#34;https://blog.elementary.io/os-8-1-available-now/&#34;&gt;https://blog.elementary.io/os-8-1-available-now/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Older AMD GPUs get 30% performance boost&lt;br/&gt;&lt;a href=&#34;https://www.phoronix.com/review/linux-619-amdgpu-radeon/5&#34;&gt;https://www.phoronix.com/review/linux-619-amdgpu-radeon/5&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;CachyOS looks at the server now&lt;br/&gt;&lt;a href=&#34;https://cachyos.org/blog/2025-christmas-new-year/&#34;&gt;https://cachyos.org/blog/2025-christmas-new-year/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Italy fines Apple for their privacy framework&lt;br/&gt;&lt;a href=&#34;https://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/&#34;&gt;https://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://plebs.app/#/video/57c4a3e52752b75747daf7b6f4b40634f5bc7d3041e3ed5c3d39c076e526f75e&#34;&gt;https://plebs.app/#/video/57c4a3e52752b75747daf7b6f4b40634f5bc7d3041e3ed5c3d39c076e526f75e&lt;/a&gt;
    </content>
    <updated>2026-01-03T11:45:42Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyltkmvah95h96m77f7z9z9pqclzpf28rgmvlny50pvhl7233pvpszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt79k4td9</id>
    
      <title type="html">#Repost - the gift that keeps on giving In a world where we are ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyltkmvah95h96m77f7z9z9pqclzpf28rgmvlny50pvhl7233pvpszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt79k4td9" />
    <content type="html">
      #Repost - the gift that keeps on giving&lt;br/&gt;&lt;br/&gt;In a world where we are the algorithm reshaping content you like is what makes #nostr better.... 📨
    </content>
    <updated>2026-01-02T19:27:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqk8es9yyecsg5ed07nwkczgequlms43942whuy8pxpw9pvzjypvszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7vnawp6</id>
    
      <title type="html">@npub1gcx…nj5z @npub142g…xrj0 @npub1yzv…rf8q ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqk8es9yyecsg5ed07nwkczgequlms43942whuy8pxpw9pvzjypvszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7vnawp6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspv8frg6jrkxqarxudnqkjrat8f83glxzjq9943mzuu03vx5h2xuch95vnn&#39;&gt;nevent1q…5vnn&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;/npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1gcx…nj5z&lt;/span&gt;)&lt;/a&gt;&lt;/span&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;/npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Amethyst&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub142g…xrj0&lt;/span&gt;)&lt;/a&gt;&lt;/span&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;/npub1yzvxlwp7wawed5vgefwfmugvumtp8c8t0etk3g8sky4n0ndvyxesnxrf8q&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;YakiHonne&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1yzv…rf8q&lt;/span&gt;)&lt;/a&gt;&lt;/span&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;/npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1w4u…0jr5&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 
    </content>
    <updated>2026-01-02T19:24:18Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstkradwn0hj5vqhgd5qqt2etpx5f72s0n970cmf6rwnm4tpq2txdqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt797e0lc</id>
    
      <title type="html">#naddr1qq…pgy5</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstkradwn0hj5vqhgd5qqt2etpx5f72s0n970cmf6rwnm4tpq2txdqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt797e0lc" />
    <content type="html">
       &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;/naddr1qqgrvvpjx33kgvtrxgen2vfcvcurjq3qklkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qxpqqqp65wfepgy5&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…pgy5&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h1 id=&#34;preface-2&#34;&gt;Preface&lt;/h1&gt;

&lt;p&gt;The state is the most dangerous institution in human history. It has killed hundreds of millions, impoverished billions, and now constructs surveillance infrastructure that would make prior tyrannies weep with envy. Central Bank Digital Currencies will complete the architecture: money itself becoming a tool of observation and control, every transaction recorded, every purchase approved or denied at the discretion of authorities.&lt;/p&gt;

&lt;p&gt;This is not paranoia. This is the announced policy of over 130 central banks.&lt;/p&gt;

&lt;p&gt;Three groups of people might resist. Each has a fatal weakness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Austrian economists&lt;/strong&gt; have built the most rigorous analytical framework for understanding why the state fails, why markets succeed, and why sound money matters. They can explain with devastating precision how intervention distorts, how central banking destroys, how surveillance enables tyranny. But most are armchair theorists. They write papers. They give lectures. They lament the state of the world. Ask them HOW to actually implement sound money, HOW to build systems that resist control, HOW to create markets outside state supervision, and they have no answer. Theory without implementation is impotent. The state does not fear essays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cypherpunks&lt;/strong&gt; have built working systems. Bitcoin processes blocks. Tor routes traffic. Encryption holds. They wrote code while others wrote complaints. But many lack economic understanding. They build tools without grasping why those tools matter, launch companies that centralize what should remain distributed, make compromises that betray the purpose of the technology. Projects fail not from technical inadequacy but from economic ignorance: misaligned incentives, unsustainable models, vulnerability to the very powers they meant to resist. Implementation without theory is blind. The state does not fear tools it can co-opt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freedom-seeking individuals&lt;/strong&gt; sense that something is deeply wrong. They distrust institutions, question official narratives, seek alternatives to systems that feel increasingly hostile. This instinct is correct. But awareness without understanding is paralysis. They know they should be concerned about surveillance, about financial control, about the consolidation of power. They do not know what to do. They lack both the theoretical framework to understand what they face and the technical knowledge to defend against it. Instinct without strategy is helpless. The state does not fear the confused.&lt;/p&gt;

&lt;p&gt;Each group&amp;#39;s weakness is dangerous. The economist who cannot build, the engineer who cannot reason, the individual who cannot act: all are neutralized despite their partial knowledge.&lt;/p&gt;

&lt;p&gt;This book exists to fix that.&lt;/p&gt;

&lt;h3 id=&#34;the-synthesis-2&#34;&gt;The Synthesis&lt;/h3&gt;

&lt;p&gt;Two intellectual traditions, developing independently across the twentieth century, arrived at the same conclusions about privacy, money, and freedom. Austrian economists, through deductive analysis from the axiom of human action, established that privacy is structural to purposeful behavior, that sound money is essential to economic coordination, that the state is systematic aggression. Cypherpunks, through cryptographic implementation, demonstrated that privacy can be technically defended, that sound money can be programmed, that systems can be built to resist control.&lt;/p&gt;

&lt;p&gt;Neither tradition alone suffices. Together, they provide both the WHY and the HOW.&lt;/p&gt;

&lt;p&gt;This book synthesizes their insights into a unified strategy. The theoretical foundations are rigorous: axioms that cannot be coherently denied, conclusions derived through strict deduction. The practical guidance is concrete: tools that work, techniques that protect, systems that function. The strategic framework is clear: how cheap defense defeats expensive attack, how breaking observation prevents control, how the parallel economy grows until the state withers from irrelevance.&lt;/p&gt;

&lt;h3 id=&#34;for-different-readers-2&#34;&gt;For Different Readers&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Austrian economists&lt;/strong&gt; will find their theory operationalized. Cryptographic concepts translate through economic analogies: public key cryptography solving trust problems, Bitcoin implementing sound money, zero-knowledge proofs enabling verification without disclosure. You will learn HOW to build what you have long understood SHOULD exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cypherpunks&lt;/strong&gt; will discover the economic framework explaining why your tools matter and why some projects succeed while others fail. The action axiom provides foundations as rigorous as mathematical axioms. Austrian political economy illuminates the adversaries you face, why surveillance persists, and how to design systems that resist capture. You will understand WHY what you build matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freedom-seeking individuals&lt;/strong&gt; will gain both the analytical framework and the practical knowledge you need. No prior expertise required. Both domains are explained from first principles. Your instinct is correct; this book gives it teeth. You will learn WHAT you face and WHAT to do about it.&lt;/p&gt;

&lt;h3 id=&#34;the-stakes-2&#34;&gt;The Stakes&lt;/h3&gt;

&lt;p&gt;Privacy is not about hiding. It is about the conditions under which humans can act as humans: deliberating internally, coordinating voluntarily, accumulating wealth beyond the reach of those who would seize it.&lt;/p&gt;

&lt;p&gt;The state cannot steal what it cannot see. The state cannot control what it cannot observe. The state cannot persist when theft becomes unprofitable.&lt;/p&gt;

&lt;p&gt;This book shows how to make it so.&lt;/p&gt;

&lt;p&gt;The logic is sound. The strategy is clear. The tools exist. The only question is whether enough people will understand and act before the window closes.&lt;/p&gt;

&lt;p&gt;Read. Understand. Build.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Next Chapter:
&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qqgxvdpc8pjrywryxv6nwv3kxsungq3qklkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qxpqqqp65wlc5wjq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…5wjq&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-01-02T19:15:14Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsds6wcu67j397tnjruvhgkzkws6y04nec0u33g0wulxacl8spr4cszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77773ew</id>
    
      <title type="html">If you using #AI for vibe-coding here are some things I&amp;#39;ve ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsds6wcu67j397tnjruvhgkzkws6y04nec0u33g0wulxacl8spr4cszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt77773ew" />
    <content type="html">
      If you using #AI for vibe-coding here are some things I&amp;#39;ve found useful. &lt;br/&gt;&lt;br/&gt;1. Use lint and type check - just as the AI to do it for you - this quickly helps the AI identify issues. (AI has brain farts too).&lt;br/&gt;2. Occasionally as it to complete a SWOT analysis - you can even target specific aspects including the code itself.&lt;br/&gt;3. Ask it to develop plans - and the implement. This helps the AI arrange itself to complete big tasks in manageable bites.&lt;br/&gt;&lt;br/&gt;#vibe-coding #tips &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-02T13:29:14Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspv8frg6jrkxqarxudnqkjrat8f83glxzjq9943mzuu03vx5h2xuczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7jlk9sx</id>
    
      <title type="html">#nostr without dns... time for some shameless - unsolicited- ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspv8frg6jrkxqarxudnqkjrat8f83glxzjq9943mzuu03vx5h2xuczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7jlk9sx" />
    <content type="html">
      #nostr without dns... time for some shameless - unsolicited- mentions. See if can gather any interest, or be relegated to the internet dustbin &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub17xvf49kht23cddxgw92rvfktkd3vqvjgkgsdexh9847wl0927tqsrhc9as&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;HRF&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub17xv…c9as&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;/npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt&#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;npub1klk…x3vt&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;/npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Derek Ross&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub18am…p424&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;/npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;jack&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1sg6…f63m&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 🤞#ncc #decentralised #privacy &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;/naddr1qq24xmt42anh2wrjgevysstxfe485tfcx36kjq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqp65wsyn6xw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…n6xw&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;&lt;img src=&#34;https://image.nostr.build/75966e88f99debffe0bd09a67eddf60caa94ce58b4654f88097a810f7d08c60d.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;h2 id=&#34;services-without-dns-an-identity-first-model-using-ncc-2&#34;&gt;Services without DNS: an identity-first model using NCC&lt;/h2&gt;

&lt;p&gt;This project demonstrates a working proof of concept for running and discovering services without relying on DNS. Instead of names and registrars, services are anchored to cryptographic identities and published over Nostr using signed, immutable records.&lt;/p&gt;

&lt;p&gt;The result is a system where ownership, reachability, and trust are decoupled, verifiable, and client-resolved.&lt;/p&gt;

&lt;p&gt;DNS becomes optional, not foundational.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This work is a proof of concept and reference implementation. The specifications, libraries, and sidecar are under active development and should not yet be considered production-hardened. The goal is to validate the model, explore client and relay behaviour, and provide a concrete basis for further review and iteration.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Although this project is demonstrated using Nostr relays, the model is &lt;strong&gt;service-agnostic&lt;/strong&gt;. NCC-02 and NCC-05 apply to any networked service, including APIs, web services, media endpoints, &lt;strong&gt;and full web applications&lt;/strong&gt;. Relays provide the discovery and distribution backbone. The service itself does not need to be a relay, or even Nostr-aware, to participate.&lt;/p&gt;

&lt;p&gt;This includes standard web apps. A web application can be discovered, resolved, and reached via NCC records, with clients resolving identity and endpoints independently of DNS.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 id=&#34;the-components-2&#34;&gt;The components&lt;/h3&gt;

&lt;h4 id=&#34;ncc-02-identity-bound-service-ownership-2&#34;&gt;NCC-02 – Identity-bound service ownership&lt;/h4&gt;

&lt;p&gt;NCC-02 defines how a Nostr identity asserts ownership of a service.&lt;/p&gt;

&lt;p&gt;An NCC-02 record is a signed Nostr event that binds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a service identifier using the &lt;code&gt;d&lt;/code&gt; tag,&lt;/li&gt;
&lt;li&gt;to a controlling npub,&lt;/li&gt;
&lt;li&gt;with optional descriptive metadata.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This record answers a single question: &lt;strong&gt;who owns this service?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because the event is signed by the service key, ownership is cryptographically verifiable. Any client can confirm that the service belongs to that identity without relying on DNS, registries, or central authorities.&lt;/p&gt;

&lt;p&gt;Key properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Services exist as identities, not hostnames&lt;/li&gt;
&lt;li&gt;Only the private key holder can update or revoke the record&lt;/li&gt;
&lt;li&gt;Multiple services can exist under one identity, distinguished by &lt;code&gt;d&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Updates are expressed as new signed events, not mutable records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NCC-02 does not describe where a service runs or how to reach it. It is purely the ownership anchor.&lt;/p&gt;

&lt;hr&gt;

&lt;h4 id=&#34;service-record-attestations-2&#34;&gt;Service record attestations&lt;/h4&gt;

&lt;p&gt;Service record attestations extend NCC-02 by allowing &lt;strong&gt;other identities&lt;/strong&gt; to make signed statements &lt;em&gt;about&lt;/em&gt; a service, without changing ownership.&lt;/p&gt;

&lt;p&gt;An attestation is a separate Nostr event that references an NCC-02 service record and asserts some claim about it.&lt;/p&gt;

&lt;p&gt;Critically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The attester does not control the service&lt;/li&gt;
&lt;li&gt;The attestation does not modify or replace the NCC-02 record&lt;/li&gt;
&lt;li&gt;The claim stands on the reputation of the signer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ownership remains singular. Claims about the service can be plural.&lt;/p&gt;

&lt;p&gt;Attestations are intentionally generic and client-interpreted. They can represent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;operational responsibility&lt;/li&gt;
&lt;li&gt;observed availability&lt;/li&gt;
&lt;li&gt;validation or compliance checks&lt;/li&gt;
&lt;li&gt;authorisation assertions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The NCC system does not interpret or enforce these claims. Clients decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which attesters they trust&lt;/li&gt;
&lt;li&gt;how many attestations matter&lt;/li&gt;
&lt;li&gt;how to handle conflicting or missing attestations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Attestations provide &lt;strong&gt;evidence&lt;/strong&gt;, not authority. They replace central trust anchors with explicit, signed statements evaluated client-side.&lt;/p&gt;

&lt;hr&gt;

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

&lt;h4 id=&#34;ncc-05-cryptographic-location-resolution-2&#34;&gt;NCC-05 – Cryptographic location resolution&lt;/h4&gt;

&lt;p&gt;NCC-05 defines how a service publishes &lt;strong&gt;where it can be reached&lt;/strong&gt;, independently of DNS.&lt;/p&gt;

&lt;p&gt;An NCC-05 record is associated with an NCC-02 service and contains one or more &lt;strong&gt;locators&lt;/strong&gt;, each describing a concrete endpoint:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IPv4&lt;/li&gt;
&lt;li&gt;IPv6&lt;/li&gt;
&lt;li&gt;Tor onion services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Locators may be public or encrypted using NIP-44, allowing private endpoints to be published safely.&lt;/p&gt;

&lt;p&gt;Key properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Endpoints are cryptographically bound to the service identity&lt;/li&gt;
&lt;li&gt;Multiple locators can coexist in parallel&lt;/li&gt;
&lt;li&gt;Endpoints can rotate without changing identity&lt;/li&gt;
&lt;li&gt;Clients resolve locations by following identities, not names&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NCC-05 does not proxy traffic, establish tunnels, or provide anonymity by itself. It is strictly a location description and resolution mechanism.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 id=&#34;potential-service-patterns-2&#34;&gt;Potential service patterns&lt;/h3&gt;

&lt;p&gt;NCC-05 enables a range of service models beyond simple dynamic IP resolution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Private and invite-only services&lt;/strong&gt;
Encrypted locators allow endpoints to be shared only with authorised pubkeys.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Paid or subscription services&lt;/strong&gt;
Access to locators can be gated behind one-off payments or ongoing zap-based subscriptions, with npubs removed from records or endpoints rotated as needed for easy user management.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ephemeral services&lt;/strong&gt;
Short-lived APIs, temporary collaboration endpoints, or time-boxed access using tight TTLs.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Peer-to-peer rendezvous&lt;/strong&gt;
Two peers discover each other’s endpoints without public signalling, registrars, or coordination servers.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agent and automation backchannels&lt;/strong&gt;
Bots or agents briefly exposing private control or callback endpoints.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Web apps without DNS&lt;/strong&gt;
Standard web applications reachable via IP or onion, discovered and resolved through identity-bound records instead of hostnames.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Onion-only and censorship-resistant services&lt;/strong&gt;
Services that never publish a public endpoint and rely entirely on private resolution.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Infrastructure mobility and failover&lt;/strong&gt;
Moving services between hosts or networks, or publishing multiple locators with deterministic priority.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Relays act only as the distribution backbone. The services themselves can be arbitrary protocols and do not need to be Nostr-aware.&lt;/p&gt;

&lt;hr&gt;

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

&lt;h4 id=&#34;ncc-06-sidecar-and-operational-control-plane-2&#34;&gt;NCC-06 – Sidecar and operational control plane&lt;/h4&gt;

&lt;p&gt;NCC-06 operationalises NCC-02 and NCC-05.&lt;/p&gt;

&lt;p&gt;The sidecar is a local daemon that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;monitors services across IPv4, IPv6, and Tor&lt;/li&gt;
&lt;li&gt;detects meaningful changes in endpoints, certificates, or metadata&lt;/li&gt;
&lt;li&gt;publishes updated NCC-02 and NCC-05 records when required&lt;/li&gt;
&lt;li&gt;sends encrypted admin notifications using NIP-44&lt;/li&gt;
&lt;li&gt;supports secure remote administration via NIP-46&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The sidecar does &lt;strong&gt;not&lt;/strong&gt; forward traffic and is &lt;strong&gt;not&lt;/strong&gt; a proxy. It acts as a publisher, monitor, and control plane that keeps service records accurate and current.&lt;/p&gt;

&lt;p&gt;Because service identity is decoupled from network location, the sidecar enables rapid &lt;strong&gt;endpoint and metadata rotation&lt;/strong&gt; under a stable identity. Services can move hosts, rotate IPs or onion addresses, update TLS fingerprints, or change publication relays and have the new state published within minutes.&lt;/p&gt;

&lt;p&gt;Changing the service’s npub creates a new identity and is treated as a distinct service.&lt;/p&gt;

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

&lt;hr&gt;

&lt;h3 id=&#34;the-client-s-role-2&#34;&gt;The client’s role&lt;/h3&gt;

&lt;p&gt;This model only works because the client is an active participant rather than a passive resolver.&lt;/p&gt;

&lt;p&gt;The reference client shows how a client discovers NCC-02 service records, verifies ownership, and then resolves NCC-05 locator records to determine where a service can actually be reached. When locators are private, the client handles decryption using NIP-44 and decides which endpoints it is authorised to see.&lt;/p&gt;

&lt;p&gt;The client is also responsible for correlating service records, locator records, and any attestations into a single, coherent view of a service. Trust is not implicit. Each client applies its own policy about which attestations to accept, which identities to trust, and when to fail closed.&lt;/p&gt;

&lt;p&gt;Endpoint selection is likewise a client decision. The client chooses between multiple locators deterministically, respecting priority, expiry, and freshness, and automatically follows changes as new records are published. When endpoints rotate or infrastructure moves, the client converges on the new state without manual reconfiguration.&lt;/p&gt;

&lt;p&gt;Connections are made directly to the resolved service endpoints. Where required, the client can route traffic to onion services using a local bridge, allowing standard web applications and browsers to participate without special network configuration.&lt;/p&gt;

&lt;p&gt;In this architecture, relays act purely as the distribution layer and the sidecar keeps service records accurate over time. The client is where meaning is enforced. What to trust, where to connect, and how to react to change are all resolved locally, without any global authority.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 id=&#34;how-it-fits-together-2&#34;&gt;How it fits together&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;NCC-02&lt;/strong&gt; answers: Who owns this service?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Attestations&lt;/strong&gt; answer: What do others claim about it?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NCC-05&lt;/strong&gt; answers: Where can it be reached?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NCC-06&lt;/strong&gt; keeps all of the above accurate over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All components use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;immutable, signed Nostr events&lt;/li&gt;
&lt;li&gt;client-side resolution&lt;/li&gt;
&lt;li&gt;no DNS, PKI, or naming authorities&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h3 id=&#34;why-this-matters-2&#34;&gt;Why this matters&lt;/h3&gt;

&lt;p&gt;DNS-based service discovery couples identity, location, and trust into a brittle hierarchy. NCC separates these concerns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;identity is cryptographic&lt;/li&gt;
&lt;li&gt;location is declarative and rotatable&lt;/li&gt;
&lt;li&gt;trust is explicit and plural&lt;/li&gt;
&lt;li&gt;resolution is client-driven&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes services more portable, harder to censor, easier to migrate, and independently verifiable.&lt;/p&gt;

&lt;p&gt;DNS becomes optional, not foundational.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 id=&#34;code-and-references-2&#34;&gt;Code and references&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Proof-of-concept client
&lt;a href=&#34;https://github.com/imattau/ncc-client&#34;&gt;https://github.com/imattau/ncc-client&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;NCC-06 sidecar and library
&lt;a href=&#34;https://github.com/imattau/ncc-06&#34;&gt;https://github.com/imattau/ncc-06&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;NCC-02 spec and library
&lt;a href=&#34;https://github.com/imattau/ncc-02&#34;&gt;https://github.com/imattau/ncc-02&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;NCC-05 spec and library
&lt;a href=&#34;https://github.com/imattau/ncc-05&#34;&gt;https://github.com/imattau/ncc-05&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NPM Libraries used: &lt;code&gt;ncc-02-js&lt;/code&gt;, &lt;code&gt;ncc-05-js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;#nostr #builders #privacy #p2p #tor #dns #decentralization #nostrdevs #ncc #npm #js&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-01-02T08:20:16Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrfa2kugxyq0qjj47vetphvtq89xvudj3f5jf3gcwza9gja0hkxpqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7kwz8yh</id>
    
      <title type="html">#naddr1qv…nqct</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrfa2kugxyq0qjj47vetphvtq89xvudj3f5jf3gcwza9gja0hkxpqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7kwz8yh" />
    <content type="html">
      &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;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqqgxxetyxvex2deexf3nwvtpxp3rv4znqct&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…nqct&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Welcome back to Nostr Compass, your weekly guide to the Nostr protocol ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This week:&lt;/strong&gt; As 2025 closes, we look back at five years of December milestones in Nostr&amp;#39;s evolution. From fiatjaf&amp;#39;s first client release in December 2020, through Jack Dorsey&amp;#39;s pivotal 14 BTC donation in December 2022, to this month&amp;#39;s NIP-55 signer proliferation and NDK&amp;#39;s 162x cache speedup, December has consistently marked turning points for the protocol. This special issue traces the technical history through each December, documenting the protocol&amp;#39;s growth from two experimental relays to 2,500&#43; nodes across 50 countries. Plus: Amethyst&amp;#39;s desktop module takes shape via Quartz, Notedeck gains messaging, Citrine hosts web apps, and NIP-54 fixes internationalization for non-Latin scripts.&lt;/p&gt;

&lt;h2 id=&#34;december-recap-five-years-of-nostr-decembers-2&#34;&gt;December Recap: Five Years of Nostr Decembers&lt;/h2&gt;

&lt;p&gt;Nostr turns five this year. fiatjaf initiated the protocol on November 7, 2020, and every December since has marked a distinct phase in its evolution: from proof-of-concept to global movement to production ecosystem. This is a technical retrospective of December 2020 through December 2025, the formative years that established Nostr&amp;#39;s foundation and catalyzed its breakout moment.&lt;/p&gt;

&lt;h3 id=&#34;december-2020-genesis-2&#34;&gt;December 2020: Genesis&lt;/h3&gt;

&lt;p&gt;The first full month of Nostr&amp;#39;s existence saw fiatjaf release &lt;a href=&#34;https://github.com/fiatjaf/branle&#34;&gt;Branle&lt;/a&gt;, the protocol&amp;#39;s first client, built with Quasar (Vue.js) and absurd-sql for local storage. fiatjaf had already established the core architecture: users identified by secp256k1 public keys, all posts cryptographically signed, relays serving as dumb storage that don&amp;#39;t communicate with each other. One or two experimental relays served a handful of early adopters coordinating in the Telegram group &lt;a href=&#34;https://t.me/nostr_protocol&#34;&gt;@nostr_protocol&lt;/a&gt;, which had launched November 16. The &lt;a href=&#34;https://fiatjaf.com/nostr.html&#34;&gt;original documentation&lt;/a&gt; described &amp;#34;the simplest open protocol that is able to create a censorship-resistant global social network,&amp;#34; a premise that would take two more years to prove.&lt;/p&gt;

&lt;h3 id=&#34;december-2021-early-development-2&#34;&gt;December 2021: Early Development&lt;/h3&gt;

&lt;p&gt;On December 31, 2021, Nostr hit the &lt;a href=&#34;https://news.ycombinator.com/item?id=29749061&#34;&gt;Hacker News front page&lt;/a&gt; with 110 points and 138 comments, submitted by Cameri. This marked the protocol&amp;#39;s first significant exposure to the broader developer community. The network ran on approximately seven relays with fewer than 1,000 users. Branle received updates including private key import (December 31) and multi-relay support. A command-line client, noscl, provided terminal-based interaction. The protocol specifications existed in fiatjaf&amp;#39;s documentation, though the formal &lt;a href=&#34;https://github.com/nostr-protocol/nips&#34;&gt;NIPs repository&lt;/a&gt; wouldn&amp;#39;t be created until May 2022. The protocol was, as fiatjaf described it, &amp;#34;a work in progress.&amp;#34;&lt;/p&gt;

&lt;h3 id=&#34;december-2022-the-tipping-point-2&#34;&gt;December 2022: The Tipping Point&lt;/h3&gt;

&lt;p&gt;December 2022 transformed Nostr from a niche experiment into a mainstream movement. The catalyst came on December 15, when Jack Dorsey donated &lt;a href=&#34;https://www.coindesk.com/tech/2022/12/15/jack-dorsey-gives-decentralized-social-network-nostr-14-btc-in-funding&#34;&gt;14.17171699 BTC&lt;/a&gt; (~$245,000-$250,000) to fiatjaf after discovering the protocol and declaring it &amp;#34;100 percent what we wanted from Bluesky, but it wasn&amp;#39;t developed from a company.&amp;#34; On December 16, fiatjaf announced splitting funds with Damus developer William Casarin (jb55), and Dorsey verified his Nostr account (npub: &lt;code&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;jack&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1sg6…f63m&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;). The funding legitimized the project overnight.&lt;/p&gt;

&lt;p&gt;The same week, Twitter&amp;#39;s chaos accelerated adoption. December 14-15 saw suspensions of prominent journalists from the New York Times, CNN, and Washington Post. On December 18, Twitter &lt;a href=&#34;https://techcrunch.com/2022/12/18/twitter-wont-let-you-post-your-facebook-instagram-and-mastodon-handles/&#34;&gt;announced bans&lt;/a&gt; on accounts promoting Nostr, Mastodon, and other platforms. The policy was reversed the following day after backlash. The exodus drove users to explore alternatives.&lt;/p&gt;

&lt;p&gt;Protocol development surged. On December 16, &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-19/&#34;&gt;NIP-19&lt;/a&gt; was merged (&lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/57&#34;&gt;#57&lt;/a&gt;), introducing bech32-encoded identifiers (npub, nsec, note, nprofile, nevent) that made keys human-readable and distinguishable. The NIPs repository logged 36&#43; commits that month, including NIP-40 and NIP-07 updates. Clients proliferated: Damus filled its TestFlight beta within hours, Astral forked Branle for profile creation, Snort launched as a &amp;#34;fast, censorship-resistant&amp;#34; web client, and Vitor Pamplona began Amethyst development. Alby v1.22.1 &amp;#34;Kemble&amp;#39;s Cascade of Stars&amp;#34; shipped December 22 with NIP-19 support. By December 7, Nostr had approximately 800 users with profiles; when Damus hit the App Store on January 31, 2023, the floodgates opened, driving growth to 315,000&#43; users by June 2023.&lt;/p&gt;

&lt;h3 id=&#34;december-2023-ecosystem-maturation-2&#34;&gt;December 2023: Ecosystem Maturation&lt;/h3&gt;

&lt;p&gt;December 2023 marked a critical inflection point for Nostr protocol security. On December 20, &lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/746&#34;&gt;NIP-44 revision 3 was merged&lt;/a&gt; following an independent Cure53 security audit (NOS-01) that identified 10 issues in the TypeScript, Go, and Rust implementations, including timing attacks and forward secrecy concerns. The updated spec replaced the flawed &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-04/&#34;&gt;NIP-04&lt;/a&gt; encryption with ChaCha20 and HMAC-SHA256, establishing the cryptographic foundation that now underpins &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-17/&#34;&gt;NIP-17&lt;/a&gt; private DMs and &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-59/&#34;&gt;NIP-59&lt;/a&gt; gift wrapping. The same week, &lt;a href=&#34;https://opensats.org/blog/nostr-grants-december-2023&#34;&gt;OpenSats announced their fourth wave of grants&lt;/a&gt; on December 21, funding seven projects including Lume, noStrudel, ZapThreads, and an independent NIP-44 audit. This followed the &lt;a href=&#34;https://opensats.org/blog/nostr-grants-july-2023&#34;&gt;first wave in July 2023&lt;/a&gt; that had funded Damus, Coracle, Iris, and others, bringing total Nostr Fund allocation to approximately $3.4 million across 39 grants.&lt;/p&gt;

&lt;p&gt;The month also exposed sustainability tensions in the ecosystem. On December 28, William Casarin (jb55) &lt;a href=&#34;https://stacker.news/items/368863&#34;&gt;posted on Stacker News&lt;/a&gt; that 2024 would &amp;#34;likely be the last year of Damus,&amp;#34; citing that &amp;#34;nostr clients don&amp;#39;t make money&amp;#34; after Apple&amp;#39;s restrictions on in-app zaps severely limited revenue potential. The Damus team had previously rejected VC funding. Meanwhile, &lt;a href=&#34;https://github.com/getAlby/nostr-wallet-connect/releases/tag/0.4.1&#34;&gt;Nostr Wallet Connect v0.4.1&lt;/a&gt; shipped on December 26, extending &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-47/&#34;&gt;NIP-47&lt;/a&gt; with &lt;code&gt;pay_keysend&lt;/code&gt;, &lt;code&gt;make_invoice&lt;/code&gt;, &lt;code&gt;lookup_invoice&lt;/code&gt;, &lt;code&gt;list_transactions&lt;/code&gt;, &lt;code&gt;get_balance&lt;/code&gt;, and &lt;code&gt;get_info&lt;/code&gt; methods, laying groundwork for the wallet integrations that would become standard across clients.&lt;/p&gt;

&lt;h3 id=&#34;december-2024-protocol-advancement-2&#34;&gt;December 2024: Protocol Advancement&lt;/h3&gt;

&lt;p&gt;December 2024 opened with the &lt;a href=&#34;https://damus.io/notedeck/&#34;&gt;Notedeck Alpha launch&lt;/a&gt; on November 30, the Damus team&amp;#39;s Rust-based desktop client featuring a multi-column interface with multiple account support. Built for Linux, macOS, and Windows (Android planned for 2025), Notedeck initially shipped to Damus Purple subscribers and represented a strategic expansion beyond iOS. Two weeks later, &lt;a href=&#34;https://opensats.org/blog/9th-wave-of-nostr-grants&#34;&gt;OpenSats announced their ninth wave of grants&lt;/a&gt; on December 16, funding AlgoRelay (the first algorithmic relay for personalized feeds), Pokey (Android app with Bluetooth mesh for restricted internet), Nostr Safebox (&lt;a href=&#34;https://nostrcompass.org/en/topics/nip-60/&#34;&gt;NIP-60&lt;/a&gt; Cashu token storage), and LumiLumi (lightweight accessible web client), pushing total Nostr Fund allocation to approximately $9 million, a 67% year-over-year increase.&lt;/p&gt;

&lt;p&gt;The month saw significant client maturation across the ecosystem. &lt;a href=&#34;https://github.com/mikedilger/gossip/releases/tag/v0.13.0&#34;&gt;Gossip 0.13.0&lt;/a&gt; landed on December 23 with File Metadata (&lt;a href=&#34;https://nostrcompass.org/en/topics/nip-92/&#34;&gt;NIP-92&lt;/a&gt;/&lt;a href=&#34;https://nostrcompass.org/en/topics/nip-94/&#34;&gt;NIP-94&lt;/a&gt;) support, Blossom integration, and &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-50/&#34;&gt;NIP-50&lt;/a&gt; relay search. &lt;a href=&#34;https://github.com/coracle-social/coracle/releases/tag/0.5.0&#34;&gt;Coracle 0.5.0&lt;/a&gt; shipped December 12 with reworked onboarding and nostr-editor integration. Protocol development remained active with 30 pull requests submitted between December 9-22 (10 merged), including &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-46/&#34;&gt;NIP-46&lt;/a&gt; rewrites to use only NIP-44 encryption and continued work on &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-104/&#34;&gt;NIP-104&lt;/a&gt; for Signal-level double ratchet encryption. Network statistics showed 224,000&#43; daily trusted pubkey events, 4x year-over-year growth in new profiles with contact lists, and a 50% increase in public writing events.&lt;/p&gt;

&lt;h3 id=&#34;december-2025-ecosystem-expansion-2&#34;&gt;December 2025: Ecosystem Expansion&lt;/h3&gt;

&lt;p&gt;December 2025 brought continued protocol maturation and ecosystem expansion. On December 21, &lt;a href=&#34;https://opensats.org/blog/fourteenth-wave-of-nostr-grants&#34;&gt;OpenSats announced their fourteenth wave of Nostr grants&lt;/a&gt;, funding three projects: YakiHonne (a multi-platform client with creator portal for long-form content and Cashu/Nutzaps payment integration), Quartz (Vitor Pamplona&amp;#39;s Kotlin Multiplatform library that powers Amethyst and will enable an iOS version), and Nostr Feedz (RSS-to-Nostr bidirectional integration by PlebOne). Grant renewals went to Dart NDK and Mattn&amp;#39;s nostr-relay.&lt;/p&gt;

&lt;p&gt;Protocol evolution continued with &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-be/&#34;&gt;NIP-BE&lt;/a&gt; (Bluetooth Low Energy messaging, &lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/1979&#34;&gt;#1979&lt;/a&gt;) merged in November, enabling offline device synchronization. &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-a4/&#34;&gt;NIP-A4&lt;/a&gt; (Public Messages, kind 24, &lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/1988&#34;&gt;#1988&lt;/a&gt;) landed later in the month, defining notification-screen messages that use &lt;code&gt;q&lt;/code&gt; tags to avoid threading complications. &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-29/&#34;&gt;NIP-29&lt;/a&gt; received major clarification (&lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2106&#34;&gt;#2106&lt;/a&gt;), introducing the &lt;code&gt;hidden&lt;/code&gt; tag for truly private, undiscoverable groups. The &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-55/&#34;&gt;NIP-55&lt;/a&gt; spec also saw refinement (&lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2166&#34;&gt;#2166&lt;/a&gt;), addressing a common implementation mistake where developers called &lt;code&gt;get_public_key&lt;/code&gt; from background processes.&lt;/p&gt;

&lt;p&gt;On the client side, &lt;a href=&#34;https://nostrcompass.org/en/newsletters/2025-12-24-newsletter/#news&#34;&gt;Primal Android became a full NIP-55 signer&lt;/a&gt; through eight merged PRs implementing &lt;code&gt;LocalSignerContentProvider&lt;/code&gt;, joining Amber and Aegis as Android signing options. The &lt;a href=&#34;https://nostrcompass.org/en/newsletters/2025-12-24-newsletter/#notable-code-and-documentation-changes&#34;&gt;NDK library achieved 162x faster cache queries&lt;/a&gt; (from ~3,690ms to ~22ms) by eliminating duplicate writes and unnecessary LRU cache lookups (&lt;a href=&#34;https://github.com/nostr-dev-kit/ndk/pull/371&#34;&gt;PR #371&lt;/a&gt;, &lt;a href=&#34;https://github.com/nostr-dev-kit/ndk/pull/372&#34;&gt;PR #372&lt;/a&gt;). Shopstr introduced &lt;a href=&#34;https://nostrcompass.org/en/newsletters/2025-12-24-newsletter/#news&#34;&gt;Zapsnags&lt;/a&gt; for flash sales via zaps. White Noise shipped &lt;a href=&#34;https://nostrcompass.org/en/topics/mip-05/&#34;&gt;MIP-05&lt;/a&gt; privacy-preserving push notifications. See &lt;a href=&#34;https://nostrcompass.org/en/newsletters/2025-12-17-newsletter/&#34;&gt;Newsletter #1&lt;/a&gt; and &lt;a href=&#34;https://nostrcompass.org/en/newsletters/2025-12-24-newsletter/&#34;&gt;Newsletter #2&lt;/a&gt; for complete coverage.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Five years ago, fiatjaf released Branle to a handful of users across two experimental relays. Today, the protocol supports 140&#43; clients, 2,500&#43; relays across 50 countries, and a growing web of trust linking hundreds of thousands of keypairs. December&amp;#39;s pattern of major releases continued this month with Bluetooth messaging, Android signer proliferation, and infrastructure grants signaling sustained investment in cross-platform tooling.&lt;/p&gt;

&lt;h2 id=&#34;news-2&#34;&gt;News&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Amethyst Desktop Takes Shape&lt;/strong&gt; - The Quartz grant from OpenSats&amp;#39; fourteenth wave is already producing results. &lt;a href=&#34;https://github.com/vitorpamplona/amethyst/pull/1625&#34;&gt;PR #1625&lt;/a&gt; creates a full &lt;code&gt;:desktopApp&lt;/code&gt; module for Amethyst using Compose Multiplatform, with login and global feed screens functional on Desktop JVM. The architecture converts the &lt;code&gt;:commons&lt;/code&gt; module to Kotlin Multiplatform with a clean source set structure (&lt;code&gt;commonMain&lt;/code&gt;, &lt;code&gt;jvmAndroid&lt;/code&gt;, &lt;code&gt;androidMain&lt;/code&gt;, &lt;code&gt;jvmMain&lt;/code&gt;), enabling shared UI components between Android and desktop while leaving platform-specific decisions to each target. This lays the foundation for the eventual iOS version via the same Kotlin Multiplatform approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amethyst Voice Replies&lt;/strong&gt; - A Christmas delivery from davotoula: &lt;a href=&#34;https://github.com/vitorpamplona/amethyst/pull/1622&#34;&gt;PR #1622&lt;/a&gt; adds dedicated voice reply screens with waveform visualization, re-record support, media server selection, and upload progress indicators. Users can now reply to both root voice messages and voice replies with audio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notedeck Adds Messaging&lt;/strong&gt; - Notedeck, the Damus desktop client, gained a messages feature in &lt;a href=&#34;https://github.com/damus-io/notedeck/pull/1223&#34;&gt;PR #1223&lt;/a&gt;, expanding beyond timeline browsing into direct communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Citrine Hosts Web Apps&lt;/strong&gt; - Citrine can now &lt;a href=&#34;https://github.com/greenart7c3/Citrine/pull/81&#34;&gt;host web applications&lt;/a&gt;, turning your phone into a local-first Nostr web server. A separate &lt;a href=&#34;https://github.com/greenart7c3/Citrine/pull/85&#34;&gt;PR #85&lt;/a&gt; adds automatic reconnection and event broadcasting when network connectivity returns, with comprehensive test coverage across Android API levels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nostrability Developer Toolkit Registry&lt;/strong&gt; - The &lt;a href=&#34;https://github.com/nostrability/nostrability/issues/264&#34;&gt;Developer Kits &amp;amp; Tooling&lt;/a&gt; tracker maintains a curated registry of SDKs, libraries, and developer tools across languages (TypeScript, Rust, Python, Go, Dart, Swift, and more). If you&amp;#39;re new to Nostr development, this is a useful starting point for finding the right toolkit for your stack.&lt;/p&gt;

&lt;h2 id=&#34;nip-updates-2&#34;&gt;NIP Updates&lt;/h2&gt;

&lt;p&gt;Recent changes to the &lt;a href=&#34;https://github.com/nostr-protocol/nips&#34;&gt;NIPs repository&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://nostrcompass.org/en/topics/nip-54/&#34;&gt;NIP-54&lt;/a&gt;&lt;/strong&gt; - Critical internationalization fix for wiki d-tag normalization (&lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2177&#34;&gt;#2177&lt;/a&gt;). Previous rules converted all non-ASCII characters to &lt;code&gt;-&lt;/code&gt;, breaking support for Japanese, Chinese, Arabic, Cyrillic, and other scripts. The updated spec preserves UTF-8 letters, applies lowercase only to characters with case variants, and includes comprehensive examples: &lt;code&gt;&amp;#34;ウィキペディア&amp;#34;&lt;/code&gt; stays &lt;code&gt;&amp;#34;ウィキペディア&amp;#34;&lt;/code&gt;, &lt;code&gt;&amp;#34;Москва&amp;#34;&lt;/code&gt; becomes &lt;code&gt;&amp;#34;москва&amp;#34;&lt;/code&gt;, and mixed scripts like &lt;code&gt;&amp;#34;日本語 Article&amp;#34;&lt;/code&gt; normalize to &lt;code&gt;&amp;#34;日本語-article&amp;#34;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;releases-2&#34;&gt;Releases&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Zapstore 1.0-rc1&lt;/strong&gt; - The Nostr-based permissionless app store ships the &lt;a href=&#34;https://github.com/zapstore/zapstore/releases/tag/1.0-rc1&#34;&gt;first release candidate&lt;/a&gt; of its new architecture, featuring a complete UI refresh, rewritten package manager with improved error handling, App Stacks for curated discovery, redesigned profile screens, background update checking, and infinite scrolling in release lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KeyChat v1.38.1&lt;/strong&gt; - The MLS-based encrypted messaging app &lt;a href=&#34;https://github.com/keychat-io/keychat-app/releases/tag/v1.38.1%2B6489&#34;&gt;adds UnifiedPush support&lt;/a&gt; for Android and Linux push notifications, plus biometric authentication for privacy operations. Available for Android, Windows, macOS, and Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alby Go v2.0.0&lt;/strong&gt; - The mobile Lightning wallet companion &lt;a href=&#34;https://github.com/getAlby/go/releases/tag/v2.0.0&#34;&gt;ships a visual redesign&lt;/a&gt; with new logo, updated color palette, redesigned address book, and improved amount input keyboard. BTC Map is now accessible from the home screen, and transaction descriptions appear in notifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;nak v0.17.4&lt;/strong&gt; - fiatjaf&amp;#39;s command-line Nostr tool &lt;a href=&#34;https://github.com/fiatjaf/nak/releases/tag/v0.17.4&#34;&gt;released&lt;/a&gt;, following v0.17.3&amp;#39;s LMDB Linux restriction fix from last week.&lt;/p&gt;

&lt;h2 id=&#34;notable-code-and-documentation-changes-2&#34;&gt;Notable code and documentation changes&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Open pull requests and early-stage work worth watching.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&#34;damus-ios-2&#34;&gt;Damus (iOS)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/damus-io/damus/pull/3477&#34;&gt;NIP-19 relay hints&lt;/a&gt; implements relay hint consumption for event fetching. When users open nevent, nprofile, or naddr links, Damus now extracts relay hints from the bech32 TLV data and connects to ephemeral relays to fetch content not in the user&amp;#39;s relay pool. The implementation includes ref-counted cleanup to prevent race conditions during concurrent lookups. &lt;a href=&#34;https://github.com/damus-io/damus/pull/3474&#34;&gt;Image URL detection&lt;/a&gt; automatically converts pasted image URLs into preview thumbnails in the composer, with a carousel position badge for multiple images. &lt;a href=&#34;https://github.com/damus-io/damus/pull/3473&#34;&gt;npub paste conversion&lt;/a&gt; transforms pasted npub/nprofile strings into mention links with async profile resolution.&lt;/p&gt;

&lt;h3 id=&#34;amethyst-android-2&#34;&gt;Amethyst (Android)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/vitorpamplona/amethyst/pull/1627&#34;&gt;Payment targets&lt;/a&gt; adds an event interface for NIP-57 zap splits, allowing posts to specify multiple recipients who share incoming zaps (useful for collaborations, revenue sharing, or tipping both content creators and the tools they use). &lt;a href=&#34;https://github.com/vitorpamplona/amethyst/pull/1624&#34;&gt;Quartz feature parity documentation&lt;/a&gt; adds a detailed table tracking which features are implemented across Android, Desktop JVM, and iOS targets, noting that iOS is missing core cryptography (&lt;code&gt;Secp256k1Instance&lt;/code&gt;), JSON serialization, and data structures.&lt;/p&gt;

&lt;h3 id=&#34;notedeck-desktop-2&#34;&gt;Notedeck (Desktop)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/damus-io/notedeck/pull/1226&#34;&gt;Timeline filter rebuild&lt;/a&gt; fixes a bug where unfollowed accounts kept appearing in feeds. Timeline filters were built once from the contact list and never updated; the fix adds &lt;code&gt;contact_list_timestamp&lt;/code&gt; tracking and an &lt;code&gt;invalidate()&lt;/code&gt; method to trigger rebuilds when follow state changes.&lt;/p&gt;

&lt;h3 id=&#34;citrine-android-relay-2&#34;&gt;Citrine (Android Relay)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/greenart7c3/Citrine/pull/86&#34;&gt;ContentProvider API&lt;/a&gt; exposes the local relay&amp;#39;s event database to other Android apps via &lt;code&gt;ContentResolver&lt;/code&gt;. Unlike the WebSocket interface (which requires apps to maintain a persistent connection and speak the Nostr relay protocol), ContentProvider offers direct synchronous database access through Android&amp;#39;s native IPC mechanism. External apps can query events by ID, pubkey, kind, or date range, insert new events with validation, and delete events without managing socket connections.&lt;/p&gt;

&lt;h3 id=&#34;rust-nostr-library-2&#34;&gt;rust-nostr (Library)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/rust-nostr/nostr/pull/1183&#34;&gt;NIP-40 relay-level support&lt;/a&gt; adds expiration handling at the relay builder level. Expired events are now rejected before storage and filtered out before sending to clients, eliminating the need for each database implementation to handle expiration checks independently.&lt;/p&gt;

&lt;h3 id=&#34;nak-cli-2&#34;&gt;nak (CLI)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/fiatjaf/nak/pull/91&#34;&gt;Blossom mirror&lt;/a&gt; implements blob mirroring functionality for the command-line tool.&lt;/p&gt;

&lt;h3 id=&#34;mostro-p2p-trading-2&#34;&gt;Mostro (P2P Trading)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/MostroP2P/mostro/pull/559&#34;&gt;Dev fee audit events&lt;/a&gt; adds transparent audit trails for development fund payments through kind 8383 Nostr events. The implementation publishes non-blocking audit events after successful fee payments, including order details and payment hashes while excluding buyer/seller pubkeys for privacy.&lt;/p&gt;

&lt;h3 id=&#34;mdk-marmot-development-kit-2&#34;&gt;MDK (Marmot Development Kit)&lt;/h3&gt;

&lt;p&gt;Three security audit fixes landed: &lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/40&#34;&gt;Author verification&lt;/a&gt; enforces that rumor pubkeys match MLS sender credentials, preventing impersonation attacks. &lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/41&#34;&gt;KeyPackage identity binding&lt;/a&gt; verifies credential identity matches event signers. &lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/42&#34;&gt;Admin update validation&lt;/a&gt; prevents empty admin sets and non-member admin assignments.&lt;/p&gt;

&lt;h3 id=&#34;shopstr-marketplace-2&#34;&gt;Shopstr (Marketplace)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/shopstr-eng/shopstr/pull/217&#34;&gt;HODL invoice escrow&lt;/a&gt; implements a trust-minimized payment system for physical goods. The architecture uses Alby&amp;#39;s &lt;code&gt;makeHoldInvoice&lt;/code&gt; to lock buyer funds in their own wallet, with settlement triggered only after merchant inventory verification. The handshake protocol flows through &lt;a href=&#34;https://nostrcompass.org/en/topics/nip-17/&#34;&gt;NIP-17&lt;/a&gt; encrypted DMs: buyer sends order request, merchant responds with HODL invoice, buyer pays (funds locked), merchant confirms stock and shipping, then settlement releases funds. Multi-merchant cart support splits payments across vendors.&lt;/p&gt;

&lt;h3 id=&#34;jumble-web-client-2&#34;&gt;Jumble (Web Client)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/CodyTseng/jumble/pull/713&#34;&gt;Per-relay discovery mode&lt;/a&gt; adds a toggle to hide posts from followed users on specific relays, enabling language-based discovery feeds (e.g., nostr.band/lang/*). The feature filters out posts where the author pubkey appears in the user&amp;#39;s follow list, persisting toggle state per relay URL in localStorage.&lt;/p&gt;

&lt;h3 id=&#34;white-noise-encrypted-messaging-2&#34;&gt;White Noise (Encrypted Messaging)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/937&#34;&gt;Media upload retry&lt;/a&gt; adds retry options for failed uploads. &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/927&#34;&gt;Profile edit warnings&lt;/a&gt; alert users about profile changes. On the backend, &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/422&#34;&gt;whitenoise-rs&lt;/a&gt; fixes a race condition in AccountGroup creation.&lt;/p&gt;

&lt;h3 id=&#34;npub-cash-lightning-address-service-2&#34;&gt;npub.cash (Lightning Address Service)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/cashubtc/npubcash-server/pull/40&#34;&gt;v3 rewrite&lt;/a&gt; migrates to Bun for the monorepo and server, adds SQLite support, drops v1 compatibility, implements LUD-21, and adds realtime mint quote updates.&lt;/p&gt;

&lt;h3 id=&#34;nostr-java-library-2&#34;&gt;nostr-java (Library)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/tcheeric/nostr-java/releases/tag/v1.1.1&#34;&gt;v1.1.1&lt;/a&gt; ships WebSocket handling refactors and improved test robustness across &lt;a href=&#34;https://github.com/tcheeric/nostr-java/pull/499&#34;&gt;two PRs&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&#34;nips-repository-2&#34;&gt;NIPs Repository&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2180&#34;&gt;NIP-54 Djot migration&lt;/a&gt; proposes a separate change to the wiki spec: switching the content format from Asciidoc to Djot, a lightweight markup language with cleaner syntax. The PR introduces reference-style links for wikilinks, making cross-references between wiki articles more readable in source form. &lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2179&#34;&gt;NIP-XX Quorum&lt;/a&gt; introduces threshold multi-signature governance for Nostr groups using FROST (Flexible Round-Optimized Schnorr Threshold signatures). A Quorum is an nsec shared among members through a T-of-N scheme where members can represent themselves or delegate to a council of representatives. When the council changes, the old nsec becomes obsolete and a new one is distributed—the final act of any council is signing the governance transition event. The spec defines membership (public or private), elections and polls (popular votes, votes of no confidence), optional natural-language &amp;#34;laws,&amp;#34; and crucially, quorum ontologies where quorums can be members of other quorums, enabling hierarchical structures like localities joining regional bodies. Use cases span source code development, company boards, HOAs, and moderated communities.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;That&amp;#39;s it for this week and this year. Building something? Have news to share? Want us to cover your project? &amp;lt;a href=&amp;#34;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Nostr Compass&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1wav…2923&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&amp;#34;&amp;gt;Reach out via NIP-17 DM&amp;lt;/a&amp;gt; or find us on Nostr.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2025-12-31T21:20:29Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr23pc4047jyk0nqcku4k9lqcvcqth0u63zywv5azu4mwhz6jjkugzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7msq8p5</id>
    
      <title type="html">📖👀 #naddr1qq…7z2z</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr23pc4047jyk0nqcku4k9lqcvcqth0u63zywv5azu4mwhz6jjkugzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7msq8p5" />
    <content type="html">
      📖👀 &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;/naddr1qqcxummnw3ez67npwqkhxar0wfjj6ct5w3skx6mfdenj6argv5kkzurs94ehgmmjv5kk6mmwdacx7mreqgsvfljdka6fpru7jzv8zfm3v6c9ptjehj8674uvn7mn06qymq4sllcrqsqqqa287w7z2z&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…7z2z&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h4 id=&#34;breaking-the-apple-and-google-duopoly-with-censorship-resistant-app-distribution-2&#34;&gt;Breaking the Apple and Google duopoly with censorship-resistant app distribution&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;by Alien Investor&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;────────────────\
&lt;strong&gt;Software is our access to the world.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But who controls which software you are allowed to install on your phone?&lt;/p&gt;

&lt;p&gt;For over a decade, we have lived in a global duopoly. Apple (iOS) and Google (Android) act as the wardens of our digital prisons — often euphemistically called &amp;#34;&lt;strong&gt;Walled Gardens&lt;/strong&gt;.&amp;#34;&lt;/p&gt;

&lt;p&gt;They decide on censorship. They collect up to 30 percent &amp;#34;taxes&amp;#34; on innovation. They dictate what digital sovereignty is allowed to mean.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But resistance is forming.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Nostr protocol, originally started as a Twitter alternative, has developed a weapon against this monopoly: the Nostr Zap Store.&lt;/p&gt;

&lt;p&gt;We look at how this system works, why Apple fears it, and whether it is truly secure.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;the-architecture-of-control-2&#34;&gt;The Architecture of Control&lt;/h4&gt;

&lt;p&gt;To understand why the Zap Store matters, we must identify the problem. The power of Apple and Google rests on three pillars: gatekeeping, economic extraction, and data centralization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gatekeeping is a weapon&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every app must pass through corporate control. What is officially called &amp;#34;safety&amp;#34; is often political or economic censorship.&lt;/p&gt;

&lt;p&gt;A prime example is the conflict between Apple and the Nostr app Damus.&lt;/p&gt;

&lt;p&gt;Apple threatened to remove Damus from the App Store because users could send each other &amp;#34;Zaps&amp;#34; (Bitcoin via Lightning) for posts. Apple wanted these payments to run through their In-App Purchase system to capture their 30% cut. Since Zaps are peer-to-peer, this model does not fit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result:&lt;/strong&gt; Apple forced Damus to cripple the feature.&lt;/p&gt;

&lt;p&gt;This shows that a true peer-to-peer economy is unwanted in closed stores. If you threaten the gatekeeper&amp;#39;s business model, you are out.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Then there is the illusion of safety.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The argument that &amp;#34;only the App Store is safe&amp;#34; is fragile. Centralized entities are a single point of failure. If the warden is corrupt or hacked, all users are affected simultaneously.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;the-nostr-zap-store-technical-deconstruction-2&#34;&gt;The Nostr Zap Store: Technical Deconstruction&lt;/h4&gt;

&lt;p&gt;The &amp;#34;Zap Store&amp;#34; is not a company. It is not a central server. It is a protocol.&lt;/p&gt;

&lt;p&gt;It relies on several Nostr standards (NIPs) that form a decentralized infrastructure together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It starts with App Events.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How do you find an app without Google? Through Nostr events. Developers publish a signed App Event (kind 32267) to the network. It contains the name, icon, and tags.&lt;/p&gt;

&lt;p&gt;Releases are modeled as &amp;#34;Release Artifact Sets&amp;#34; (kind 30063), referencing file metadata including download URLs and hashes.&lt;/p&gt;

&lt;p&gt;It is a decentralized app manifest. No one can prevent a developer from sending this event. It is permissionless.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage via Blossom.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nostr relays usually store text, not large files. That is what Blossom is for. Files are not stored by name, but by their cryptographic fingerprint (hash).&lt;/p&gt;

&lt;p&gt;If a single bit of the file changes, the hash changes. Manipulation is immediately detected.&lt;/p&gt;

&lt;p&gt;Since the file is retrieved via its hash, it can be mirrored on many servers. If one server deletes it, your phone simply fetches it from another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identity via Cryptography.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the Zap Store, there are no accounts with email addresses. Developers identify themselves via their Public Key.&lt;/p&gt;

&lt;p&gt;Release and update metadata are signed with the private key. Your phone verifies: &amp;#34;Does this update really come from the same developer as before?&amp;#34;&lt;/p&gt;

&lt;p&gt;This is supply chain security at Linux level, made usable for end users.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;value-proposition-freedom-and-money-streaming-2&#34;&gt;Value Proposition: Freedom and Money Streaming&lt;/h4&gt;

&lt;p&gt;Why go through the trouble? Because the economic model is revolutionary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Value4Value instead of a 30% tax.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the Zap Store, there is no platform fee. If you buy an app or send money to the developer, it happens via Bitcoin Lightning. The money flows directly from you to the developer.&lt;/p&gt;

&lt;p&gt;This enables micro-transactions — for example, 10 cents for a feature — which were impossible in the old system due to fees.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web of Trust instead of Algorithms.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Google&amp;#39;s Play Store, you see what pays the most for ads. In the Zap Store, you see what your network recommends.&lt;/p&gt;

&lt;p&gt;If a security researcher you trust &amp;#34;zaps&amp;#34; or recommends an app, that carries more weight than anonymous 5-star ratings, which are often bought by bots.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;decentralization-vs-security-2&#34;&gt;Decentralization vs. Security&lt;/h4&gt;

&lt;p&gt;Without a gatekeeper, anyone can upload apps — including malware. How does the Zap Store protect us?&lt;/p&gt;

&lt;p&gt;It shifts the model from Blind Trust to Web of Trust.&lt;/p&gt;

&lt;p&gt;In the centralized model, you blindly trust the brand (Apple/Google). In the decentralized model, you trust signatures and your social graph.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It creates antifragility.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is no global kill switch. Censorship is significantly more difficult.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And it relies on OS isolation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On Android, apps run in a sandbox. Even a malicious app from the Zap Store cannot access your contacts or location without permission. The operating system&amp;#39;s security is the final line of defense.&lt;/p&gt;

&lt;p&gt;Protection in the Zap Store is based on transparency and reputation. An app from an unknown key is marked as &amp;#34;unverified.&amp;#34;&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;reality-check-does-it-work-2&#34;&gt;Reality Check: Does It Work?&lt;/h4&gt;

&lt;p&gt;On Android, the &amp;#34;Happy Path&amp;#34; works surprisingly well today.&lt;/p&gt;

&lt;p&gt;You must allow installation from &amp;#34;unknown sources&amp;#34; once. After that, it feels like an F-Droid Store with social features. Updates can come in automatically and signed.&lt;/p&gt;

&lt;p&gt;Tools like the zapstore-cli allow developers to push updates directly from their coding environment to the world — no waiting time, no review.&lt;/p&gt;

&lt;p&gt;On iOS, sovereignty is denied.&lt;/p&gt;

&lt;p&gt;On the iPhone, the Zap Store remains theoretical for now. Outside the EU, Apple continues to block real sideloading. Even within the EU, barriers remain high.&lt;/p&gt;

&lt;p&gt;This clearly shows: whoever wants digital freedom hits a hard wall with Apple.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;the-verdict-a-crack-in-the-wall-2&#34;&gt;The Verdict: A Crack in the Wall&lt;/h4&gt;

&lt;p&gt;The Nostr Zap Store is not yet mass-market ready. It does not pass the &amp;#34;Grandma test&amp;#34; yet.&lt;/p&gt;

&lt;p&gt;But it is proof that it is technically possible to distribute software globally without asking a corporation for permission and without paying protection money.&lt;/p&gt;

&lt;p&gt;It is a return to the principles of the open internet — combined with hard money (Bitcoin) and hard cryptography.&lt;/p&gt;

&lt;p&gt;For developers, it is a lifeboat. For users, it is a tool of self-defense.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;launchpad-installing-the-zap-store-2&#34;&gt;Launchpad: Installing the Zap Store&lt;/h4&gt;

&lt;p&gt;Ready to take the risk? Here is the direct access to the app and the web catalog.&lt;/p&gt;

&lt;p&gt;Download (APK &amp;amp; Info) &lt;a href=&#34;https://zapstore.dev/&#34;&gt;https://zapstore.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Web Catalog (Browser) &lt;a href=&#34;https://nostrapps.com/&#34;&gt;https://nostrapps.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;blockquote&gt;
&lt;h4 id=&#34;the-nostr-sovereignty-series-2&#34;&gt;&lt;strong&gt;The Nostr Sovereignty Series&lt;/strong&gt;&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Foundation:&lt;/strong&gt; How to start correctly. The Sovereign Protocol: Architecture of an Unconfiscatable Digital Identity &lt;a href=&#34;https://primal.net/Alien-Investor/the-sovereign-protocol-architecture-of-an-unconfiscatable-digital-identity&#34;&gt;https://primal.net/Alien-Investor/the-sovereign-protocol-architecture-of-an-unconfiscatable-digital-identity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Defense:&lt;/strong&gt; Why you need an external signer. Your Private Key Is Not A Password: The Case for External Signers &lt;a href=&#34;https://primal.net/Alien-Investor/your-private-key-is-not-a-password-the-case-for-external-signers&#34;&gt;https://primal.net/Alien-Investor/your-private-key-is-not-a-password-the-case-for-external-signers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Proof:&lt;/strong&gt; How to get verified without permission. The Silver Badge: Immortalize Your Nostr Identity &lt;a href=&#34;https://primal.net/Alien-Investor/the-silver-badge-immortalize-your-nostr-identity&#34;&gt;https://primal.net/Alien-Investor/the-silver-badge-immortalize-your-nostr-identity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Money, power, Bitcoin — and OPSEC. I write about financial sovereignty, privacy, and cybersecurity in a world built on control. More at &lt;/em&gt;&lt;a href=&#34;http://alien-investor.org&#34;&gt;&lt;em&gt;alien-investor.org&lt;/em&gt;&lt;/a&gt;&lt;em&gt; (German only) 👽&lt;/em&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2025-12-31T20:36:13Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstr6sf9h0laceed5wa25em4fanhnm0u5a364k45ng3mk5qgh96guszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ajdzkn</id>
    
      <title type="html">... now just need people to test if they can get it to work... (I ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstr6sf9h0laceed5wa25em4fanhnm0u5a364k45ng3mk5qgh96guszyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7ajdzkn" />
    <content type="html">
      ... now just need people to test if they can get it to work... (I did (yay!) - but very limited scope...)&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;/npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt&#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;npub1klk…x3vt&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;/npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc&#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;npub1zuu…c2uc&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;/npub1yzvxlwp7wawed5vgefwfmugvumtp8c8t0etk3g8sky4n0ndvyxesnxrf8q&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;YakiHonne&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1yzv…rf8q&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;/npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;jack&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1sg6…f63m&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; (unsolicited mentions 🤫)&lt;br/&gt;&lt;br/&gt;#ncc #nostrdevs  &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;/naddr1qqgrsd3sv9nrjvecxeskvvfex5ukzq3qkhf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlsxpqqqp65wpfyxuh&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…yxuh&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Location-Independent Infrastructure Using NCC-02, NCC-05, and NCC-06&lt;/p&gt;

&lt;p&gt;Most internet services still rely on DNS as the root of discovery and trust. Even systems that describe themselves as decentralised often fall back to domain names, certificate authorities, and fixed hostnames once you look closely at how clients actually connect.&lt;/p&gt;

&lt;p&gt;This article explores how services can function without DNS at all, using patterns that emerged from the Nostr ecosystem and were formalised through NCC-02, NCC-05, and NCC-06. While these conventions originated alongside Nostr, they are not limited to relays or social protocols. The same approach applies to content systems such as IPFS, media services like Blossom, private APIs, admin panels, and self-hosted infrastructure operating in unreliable or hostile networks.&lt;/p&gt;

&lt;p&gt;The shift is subtle but significant.
Instead of asking which domain should I connect to, clients ask which service key am I trying to reach.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Why DNS Becomes a Liability&lt;/p&gt;

&lt;p&gt;DNS was designed for a network where services were relatively static, operators were identifiable, and intermediaries were trusted by default. None of those assumptions reliably hold today.&lt;/p&gt;

&lt;p&gt;A DNS-based service is tightly coupled to external authorities: registrars, certificate issuers, recursive resolvers, and often hosting providers. Blocking or interference at any of these layers is usually sufficient to disrupt access. Even when services use literal IP addresses, DNS frequently re-enters indirectly through TLS validation, discovery mechanisms, or bootstrap endpoints.&lt;/p&gt;

&lt;p&gt;The problem is not that DNS fails occasionally. The problem is that DNS collapses naming, trust, and location into a single fragile abstraction.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Identity First, Location Second&lt;/p&gt;

&lt;p&gt;NCC-02, NCC-05, and NCC-06 deliberately separate these concerns.&lt;/p&gt;

&lt;p&gt;In this model, a service is defined by a cryptographic public key. That key represents identity and continuity. Where or how the service is reachable becomes contextual information rather than a defining property.&lt;/p&gt;

&lt;p&gt;Endpoints are treated as descriptive hints, not authoritative truth. Resolution becomes a matter of retrieving signed data and applying deterministic rules, rather than trusting a global naming hierarchy.&lt;/p&gt;

&lt;p&gt;This is the same conceptual shift Nostr made for users, applied consistently to services.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;NCC-02: Service Records as Signed Intent&lt;/p&gt;

&lt;p&gt;NCC-02 introduces the concept of a service record. A service record is a signed statement published by the service operator, asserting that a given public key represents a specific service and optionally describing how it may be reached.&lt;/p&gt;

&lt;p&gt;Crucially, NCC-02 does not require a hostname, nor does it assume public reachability. A record may list multiple endpoints, a single endpoint, or none at all. It may change over time without breaking identity.&lt;/p&gt;

&lt;p&gt;From the client’s perspective, a service record answers only one question.
If this key is trusted, what does the operator currently claim about this service?&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;NCC-05: Reachability Without Exposure&lt;/p&gt;

&lt;p&gt;NCC-05 extends the model by allowing endpoint information to be encrypted and scoped.&lt;/p&gt;

&lt;p&gt;Many services should not expose their location publicly. Admin interfaces, private relays, region-restricted backends, and censorship-sensitive deployments all benefit from being discoverable without being globally reachable.&lt;/p&gt;

&lt;p&gt;With NCC-05, a service can publish its existence openly while revealing connection details only to authorised clients. Onion addresses can be preferred without advertising them. IPv4 or IPv6 endpoints can exist purely as fallback. Endpoint ordering expresses operator intent rather than promise.&lt;/p&gt;

&lt;p&gt;An observer may learn that a service exists without learning how to reach it. DNS has no way to express that distinction.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;NCC-06: Resolution as Data Retrieval&lt;/p&gt;

&lt;p&gt;NCC-06 describes how clients turn published records into an actual connection attempt.&lt;/p&gt;

&lt;p&gt;Rather than querying a central resolver or directory, clients retrieve signed service records from relays. Multiple relays may carry the same records. Records may be stale, partial, or conflicting.&lt;/p&gt;

&lt;p&gt;Instead of treating these conditions as errors, NCC-06 treats them as expected states. Clients verify signatures, discard expired data, apply deterministic conflict resolution, and select the best reachable endpoint they can see.&lt;/p&gt;

&lt;p&gt;Resolution becomes a data problem, not a naming problem. If nothing is reachable, the service is considered unavailable rather than broken.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;How This Differs From Existing Approaches&lt;/p&gt;

&lt;p&gt;The distinction becomes clearer when compared to existing systems.&lt;/p&gt;

&lt;p&gt;Traditional DNS and TLS rely on human-readable names backed by central authorities. ENS replaces registrars with a blockchain but still treats names as the primary abstraction, often routing users back to DNS-hosted endpoints. Tor onion services derive addresses from keys, but operate entirely within the Tor ecosystem and do not generalise cleanly across mixed transports.&lt;/p&gt;

&lt;p&gt;IPFS excels at content addressing, but when services are layered on top, DNS-based gateways frequently reappear. Blossom media servers today typically rely on standard URLs and HTTPS, inheriting the same structural fragility as conventional web services.&lt;/p&gt;

&lt;p&gt;NCC differs by identifying services themselves by keys, not content and not names, and resolving reachability using signed data rather than global lookup infrastructure.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;What This Model Does Not Solve&lt;/p&gt;

&lt;p&gt;Being explicit about limits matters.&lt;/p&gt;

&lt;p&gt;This approach does not solve the first-contact trust problem. If a client is given the wrong service key, it will resolve the wrong service correctly. This is not unique to NCC. The same bootstrap problem exists with domain names, TLS certificates, ENS names, and onion addresses. Initial trust establishment remains a social or application-layer concern.&lt;/p&gt;

&lt;p&gt;It does not eliminate traffic analysis. NCC-05 can hide endpoint details, but it does not make network traffic invisible. Timing and connection metadata remain observable, even when Tor is used. The goal is to reduce resolution visibility, not to defeat a global passive adversary.&lt;/p&gt;

&lt;p&gt;It does not make denial-of-service attacks impossible. Relays can be flooded and endpoints can be exhausted. What NCC provides instead is graceful degradation through multiple resolution paths and cached records, without a single resolver whose failure breaks the system.&lt;/p&gt;

&lt;p&gt;The model also deliberately avoids human-readable naming. Keys are not memorable, and that is a trade-off. Naming systems can exist on top, but NCC keeps naming out of the trust path to avoid reintroducing the same fragility.&lt;/p&gt;

&lt;p&gt;Finally, this is not a universal replacement for DNS. DNS remains effective for public websites and mass-market discovery. NCC is intended for environments where mobility, privacy, and resistance to interference matter more than convenience.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;The Structural Shift&lt;/p&gt;

&lt;p&gt;What NCC-02, NCC-05, and NCC-06 describe is not a new protocol layer so much as a design pattern.&lt;/p&gt;

&lt;p&gt;Services publish signed intent.
Clients resolve by retrieving and validating data.
Trust is anchored in keys, not names.&lt;/p&gt;

&lt;p&gt;Once this separation is made explicit, DNS stops being foundational. It becomes optional infrastructure rather than an assumed root of trust.&lt;/p&gt;

&lt;p&gt;That change is small in implementation, but significant in consequence.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Closing Note: A Pattern, Not a Platform&lt;/p&gt;

&lt;p&gt;Although NCC-02, NCC-05, and NCC-06 emerged from the Nostr ecosystem, the ideas they encode are not tied to Nostr itself. They describe a general infrastructure pattern for service discovery and reachability in environments where DNS is fragile, politicised, or simply unavailable.&lt;/p&gt;

&lt;p&gt;The pattern is portable. Any system that can sign data, publish it to a retrievable medium, and verify signatures can adopt the same approach. Nostr provides a convenient substrate today, but it is not a prerequisite.&lt;/p&gt;

&lt;p&gt;Seen this way, the value of these conventions is not that they replace DNS everywhere, but that they demonstrate how services can function cleanly without it when required. They make explicit a separation that has long been implicit: identity does not need to imply location, and discovery does not need to depend on names.&lt;/p&gt;

&lt;p&gt;That distinction is likely to become more important, not less, as services continue to become more mobile, more private, and more contested at the network edge.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;References&lt;/p&gt;

&lt;p&gt;NCC-02 – Service Records
&lt;a href=&#34;https://github.com/imattau/ncc-02&#34;&gt;https://github.com/imattau/ncc-02&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NCC-05 – Dynamic and Encrypted Locators
&lt;a href=&#34;https://github.com/imattau/ncc-05&#34;&gt;https://github.com/imattau/ncc-05&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NCC-06 – Service Resolution and Sidecar Publishing
&lt;a href=&#34;https://github.com/imattau/ncc-06&#34;&gt;https://github.com/imattau/ncc-06&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;npm Libraries&lt;/p&gt;

&lt;p&gt;Reference implementations of the NCC conventions are also available as JavaScript libraries on npm. These are intended for client applications, tooling, and sidecar services rather than for defining the specifications themselves.&lt;/p&gt;

&lt;p&gt;ncc-02-js
&lt;a href=&#34;https://www.npmjs.com/package/ncc-02-js&#34;&gt;https://www.npmjs.com/package/ncc-02-js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ncc-05-js
&lt;a href=&#34;https://www.npmjs.com/package/ncc-05-js&#34;&gt;https://www.npmjs.com/package/ncc-05-js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ncc-06-js
&lt;a href=&#34;https://www.npmjs.com/package/ncc-06-js&#34;&gt;https://www.npmjs.com/package/ncc-06-js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The libraries provide typed helpers, validation logic, and record-handling utilities aligned with the conventions, and are suitable for use in browsers, Node.js clients, and service sidecars.&lt;/p&gt;

&lt;p&gt;#Nostr #DecentralisedInfrastructure #ProtocolDesign #DistributedSystems #ServiceDiscovery #CryptographicIdentity #PrivacyEngineering #CensorshipResistance #IPFS #Tor #SelfHosted #EdgeInfrastructure #NetworkResilience #nostrdev&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2025-12-30T20:10:48Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsggy26gy7etn29llmtvcf2mrcx7x46hkgj4s79u5vs7axcn6seahczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c0nrly</id>
    
      <title type="html">Great read! Prompted me to update the way I was signed in... 🥸 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsggy26gy7etn29llmtvcf2mrcx7x46hkgj4s79u5vs7axcn6seahczyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7c0nrly" />
    <content type="html">
      Great read! Prompted me to update the way I was signed in... 🥸&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;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qpq8jmm4wgkhqunfweshgefdddjhjttfwvkkumm594sj6urpwdehwmmjvskhg6r9943kzum994nx7u3dv4u8getjdeskcttnd9nkuetjwvpzp387fkmhfyy0n6gfsuf8w9ntq59wtx7glt6h3j0mwdlgqnvzkrllqvzqqqr4gua56rxd&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qp…6rxd&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h4 id=&#34;why-pasting-your-nsec-into-apps-is-a-security-nightmare-and-why-you-need-amber-2&#34;&gt;Why pasting your nsec into apps is a security nightmare and why you need Amber&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;by Alien Investor&lt;/em&gt;\
────────────────\
On Nostr, you are not a row in a tech giant&amp;#39;s database. You are a cryptographic key.&lt;/p&gt;

&lt;p&gt;Your private key (nsec) is your voice, your identity, and your reputation. Whoever holds this key, &lt;em&gt;is&lt;/em&gt; you.&lt;/p&gt;

&lt;p&gt;Yet, most users — especially those valuing convenience — commit digital harakiri daily. They copy their nsec from a password manager and paste it directly into apps like Primal or Damus.&lt;/p&gt;

&lt;p&gt;It works, but from a security architecture perspective, it is a nightmare.&lt;/p&gt;

&lt;p&gt;Here is why your password manager hits its limits here, and why you urgently need to switch to a dedicated signer like Amber.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;the-problem-your-login-is-actually-a-surrender-2&#34;&gt;The Problem: Your &amp;#34;Login&amp;#34; Is Actually a Surrender&lt;/h4&gt;

&lt;p&gt;When you &amp;#34;log in&amp;#34; to a Nostr app by pasting your key, background processes occur that you need to understand.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Clipboard is a Public Marketplace. A password manager is built to store secrets securely. But to use them, it must decrypt them and pass them to the operating system — usually via the clipboard.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is malware designed solely to scan the clipboard for strings starting with &lt;code&gt;nsec1...&lt;/code&gt;. If you use cloud-based keyboards (like Gboard or SwiftKey), your clipboard contents often end up in the cache or cloud servers of Google or Microsoft.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The &amp;#34;Hot Wallet&amp;#34; Trap. Once you paste the key into a client app, the app must store it so you aren&amp;#39;t asked for it with every like. This means a complex social media app with millions of lines of code, image parsers, and constant internet access has permanent access to your most important secret.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If a hacker finds a vulnerability in the client (e.g., via a manipulated image), they can theoretically extract your key. You have turned your client into a &amp;#34;Hot Wallet.&amp;#34;&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;the-solution-amber-and-the-concept-of-signers-2&#34;&gt;The Solution: Amber and the Concept of &amp;#34;Signers&amp;#34;&lt;/h4&gt;

&lt;p&gt;Amber is a Nostr Event Signer for Android. The app does exactly one thing: It guards your key and signs things for you — but it never reveals the key.&lt;/p&gt;

&lt;p&gt;The Difference: Secret vs. Signature.&lt;/p&gt;

&lt;p&gt;The Old Way (Client has the key): You give the client your entire checkbook and sign blank checks. The client can do anything at any time.&lt;/p&gt;

&lt;p&gt;The Signer Way (Amber): The client comes to you with a filled-out check (an event) and asks: &amp;#34;Can you please sign this?&amp;#34; Amber verifies it, signs it cryptographically, and returns &lt;em&gt;only the signature&lt;/em&gt;. The key itself never leaves Amber.&lt;/p&gt;

&lt;p&gt;Technically, this works via NIP-55 (Android Intents). The client app never knows what your private key looks like; it only knows your public key (npub).&lt;/p&gt;

&lt;p&gt;&amp;#34;Amber is like a hardware wallet running as software on your phone. It isolates the secret from the app that connects to the internet.&amp;#34;&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;why-amber-is-safer-than-your-password-manager-2&#34;&gt;Why Amber Is Safer Than Your Password Manager&lt;/h4&gt;

&lt;p&gt;Many think: &amp;#34;Doesn&amp;#39;t an extra app increase the attack surface?&amp;#34; False. In this case, it is the opposite. It is called compartmentalization.&lt;/p&gt;

&lt;p&gt;No Internet Access for the Key. You can (and should) revoke Amber&amp;#39;s internet access in Android settings. An app that cannot &amp;#34;phone home&amp;#34; cannot steal your key, even if it were compromised. A social client, by definition, must be online.&lt;/p&gt;

&lt;p&gt;Android Keystore &amp;amp; Biometrics. Amber utilizes the Android Keystore System. Where possible, your key is processed in a dedicated security chip (Titan M, StrongBox). Additionally, you can secure every signature with a fingerprint. Even if someone steals your unlocked phone and opens Primal, they cannot post anything because Amber demands your biometric authorization.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;the-legacy-question-is-my-key-already-burned-2&#34;&gt;The &amp;#34;Legacy&amp;#34; Question: Is My Key Already Burned?&lt;/h4&gt;

&lt;p&gt;A common objection: &amp;#34;I created my account directly in Primal. The key was already online. Is it worth switching?&amp;#34;&lt;/p&gt;

&lt;p&gt;The answer is a clear YES.&lt;/p&gt;

&lt;p&gt;It is about Future Protection. If Primal was compromised in the past, that is a historical risk. But by migrating now, you protect yourself against &lt;em&gt;future&lt;/em&gt; attacks.&lt;/p&gt;

&lt;p&gt;If a malicious update is pushed tomorrow, or a new vulnerability is exploited, your key is no longer there. The attack hits a void. You degrade the client from the &amp;#34;owner&amp;#34; of your identity to a mere &amp;#34;user&amp;#34; of it.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;how-to-migrate-properly-the-primal-nuke-2&#34;&gt;How to Migrate Properly (The &amp;#34;Primal Nuke&amp;#34;)&lt;/h4&gt;

&lt;p&gt;Simply logging out is often insufficient, as data remnants can persist in storage. Here is the clean path to sovereignty:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Verify Backup. Ensure you have your &lt;code&gt;nsec&lt;/code&gt; written down securely (offline, on paper/metal). Without a backup, you lose access.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Install Amber. Download Amber (preferably via F-Droid or GitHub to verify the source).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Import Key. Enter your &lt;code&gt;nsec&lt;/code&gt; into Amber. Immediately enable biometric locking (fingerprint).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The &amp;#34;Nuke&amp;#34;. Do not just log out of your client. Go to Android Settings → Apps → Primal → Storage → Clear Data. This forces Android to physically purge the app&amp;#39;s storage area.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Restart via Signer. Open the &amp;#34;fresh&amp;#34; client. When logging in, do NOT select &amp;#34;Enter nsec.&amp;#34; Select &amp;#34;Log in with external signer&amp;#34; (often a key icon).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Authorize. Amber will open and ask for permission. Confirm it. Done.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You are now using the client merely as an interface. Your key lies securely in the vault of Amber.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;h4 id=&#34;verdict-reclaim-your-authority-2&#34;&gt;Verdict: Reclaim Your Authority&lt;/h4&gt;

&lt;p&gt;Convenience is the enemy of security. Copy-pasting private keys is a bad habit from the Web2 world that we must discard.&lt;/p&gt;

&lt;p&gt;Migrating to a signer like Amber effectively transforms your smartphone into a &amp;#34;Hardware Wallet Light.&amp;#34; You trade a systemic risk (key in clipboard and app) for a hardened architecture.&lt;/p&gt;

&lt;p&gt;Even if it takes five minutes: Do it. Your digital identity is worth it.&lt;/p&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;blockquote&gt;
&lt;h4 id=&#34;the-nostr-sovereignty-series-5&#34;&gt;&lt;strong&gt;The Nostr Sovereignty Series&lt;/strong&gt;&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Foundation:&lt;/strong&gt; How to start correctly. The Sovereign Protocol: Architecture of an Unconfiscatable Digital Identity &lt;a href=&#34;https://primal.net/Alien-Investor/the-sovereign-protocol-architecture-of-an-unconfiscatable-digital-identity&#34;&gt;https://primal.net/Alien-Investor/the-sovereign-protocol-architecture-of-an-unconfiscatable-digital-identity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Proof:&lt;/strong&gt; How to get verified without permission. The Silver Badge: Immortalize Your Nostr Identity &lt;a href=&#34;https://primal.net/Alien-Investor/the-silver-badge-immortalize-your-nostr-identity&#34;&gt;https://primal.net/Alien-Investor/the-silver-badge-immortalize-your-nostr-identity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Economy:&lt;/strong&gt; Escaping the walled gardens. Nostr Zap Store: Attacking the App Store Monopoly &lt;a href=&#34;https://primal.net/Alien-Investor/nostr-zap-store-attacking-the-app-store-monopoly&#34;&gt;https://primal.net/Alien-Investor/nostr-zap-store-attacking-the-app-store-monopoly&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;────────────────&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Money, power, Bitcoin — and OPSEC. I write about financial sovereignty, privacy, and cybersecurity in a world built on control. More at &lt;/em&gt;&lt;a href=&#34;http://alien-investor.org&#34;&gt;&lt;em&gt;alien-investor.org&lt;/em&gt;&lt;/a&gt;&lt;em&gt; *&lt;strong&gt;&lt;em&gt;(German only)&lt;/em&gt;&lt;/strong&gt;*👽&lt;/em&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2025-12-28T05:06:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx7ss63np3yhuwfyhxym7erh5825ml7fhcfcqsganpu3g5tlaf9uqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7gnc2tv</id>
    
      <title type="html">Great work! Really well put together... I think the only missing ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx7ss63np3yhuwfyhxym7erh5825ml7fhcfcqsganpu3g5tlaf9uqzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7gnc2tv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw4kgkyec75aa2xzjjrwth4gnjzwm0m3w8c9equ7elmvvpqja9mtq9qep9k&#39;&gt;nevent1q…ep9k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Great work! Really well put together... I think the only missing part is the marketing...&lt;br/&gt;&lt;br/&gt;I only came across it by accident when doom scrolling -  and didn&amp;#39;t see it on places like nostrapps.com or zapstore.dev? &lt;br/&gt;&lt;br/&gt;Also think you need to tell the creators what is better about it (for them) - zaps? decentralised? Whatever..&lt;br/&gt;&lt;br/&gt;Maybe look for content creators using Peertube - offer to help repost their content or something... people like &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1djpadwxx86fxgxnkhtv9h604rh22u65geznfxc3nntry2rz0sjgsj28kck&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Nick @ The Linux Experiment&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1djp…8kck&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  or &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1sehlkgvpelxmnd0wn7ec0grn9wyzw9gm6805wz8xl0gaw2c0377q4nfsgc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;The New Oil&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1seh…fsgc&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 
    </content>
    <updated>2025-12-28T03:18:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0298tuaxu74483c409glln30cretqnc6mzuee5hpfxlrlqlge08qzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7fua4s5</id>
    
      <title type="html">Published new Nostr Community Convention: ncc-06 - NCC-02 / ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0298tuaxu74483c409glln30cretqnc6mzuee5hpfxlrlqlge08qzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7fua4s5" />
    <content type="html">
      Published new Nostr Community Convention: ncc-06 - NCC-02 / NCC-05 Service Profile&lt;br/&gt;&lt;br/&gt;NCC-06 updated: NCC-02 / NCC-05 Service Profile&lt;br/&gt;&lt;br/&gt;NCC-06 now formally defines a service participation profile that composes NCC-02 and NCC-05 for identity-first, DNS-optional service discovery.&lt;br/&gt;&lt;br/&gt;It specifies what a service, sidecar, and client must do to support:&lt;br/&gt;&lt;br/&gt;Pubkey-owned service identity&lt;br/&gt;&lt;br/&gt;Deterministic client-side resolution and trust&lt;br/&gt;&lt;br/&gt;Dynamic endpoint rotation&lt;br/&gt;&lt;br/&gt;Tor and onion services as first-class endpoints&lt;br/&gt;&lt;br/&gt;Robust behaviour under partial failure and inconsistent data&lt;br/&gt;&lt;br/&gt;NCC-06 does not change underlying protocols, add new message types, or move resolution or trust logic into services. Services remain protocol-dumb. Clients remain in control.&lt;br/&gt;&lt;br/&gt;#nostr #ncc-02 #ncc-05 #ncc-06 #service #no-dns #nostrdev&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;/naddr1qvzqqqr4vgpzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqqrxucmr95crvkvmv52&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…mv52&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; # NCC-06: NCC-02 / NCC-05 Service Profile&lt;br/&gt;&lt;br/&gt;## Type&lt;br/&gt;&lt;br/&gt;Convention&lt;br/&gt;&lt;br/&gt;## Layer&lt;br/&gt;&lt;br/&gt;Application&lt;br/&gt;&lt;br/&gt;## Related NCCs (Informative)&lt;br/&gt;&lt;br/&gt;- NCC-00: Publication, revision, and discovery of NCC documents on Nostr.&lt;br/&gt;- NCC-02: Pubkey-owned service discovery, endpoint identity binding, trust material (`k`), attestations, and revocations.&lt;br/&gt;- NCC-05: Dynamic endpoint location and rotation for Nostr-identified services.&lt;br/&gt;&lt;br/&gt;NCC-06 defines a service participation profile that composes NCC-02 and NCC-05 for identity-first, DNS-optional service discovery.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Summary&lt;br/&gt;&lt;br/&gt;This Nostr Community Convention defines an opt-in service participation profile for any Nostr-identified service that supports identity-first service discovery using NCC-02 (Service Discovery and Trust) and NCC-05 (Dynamic Locators).&lt;br/&gt;&lt;br/&gt;Services conforming to this profile are discovered and addressed via Nostr identity rather than DNS, while remaining fully compatible with their respective protocols (e.g. NIP-01 for relays, HTTP for APIs).&lt;br/&gt;&lt;br/&gt;This convention does not modify underlying protocols, introduce new message types, or require services to perform client-side resolution or trust evaluation.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Purpose&lt;br/&gt;&lt;br/&gt;This NCC defines what a service must publish and serve in order to participate in an NCC-02 / NCC-05-based discovery model, enabling:&lt;br/&gt;&lt;br/&gt;- Identity-anchored service addressing&lt;br/&gt;- DNS-optional endpoint resolution&lt;br/&gt;- Dynamic endpoint rotation&lt;br/&gt;- First-class support for Tor and onion services&lt;br/&gt;- Deterministic, client-side resolution and trust decisions&lt;br/&gt;- Robust behaviour under partial failure and inconsistent data&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Scope&lt;br/&gt;&lt;br/&gt;This convention specifies:&lt;br/&gt;&lt;br/&gt;- A service participation profile for NCC-02 and NCC-05&lt;br/&gt;- Required and recommended behaviours for services, sidecars, and clients under this profile&lt;br/&gt;- Deterministic conflict handling and caching rules for clients (without moving logic into services)&lt;br/&gt;- Publication redundancy expectations for sidecars to reduce single points of failure&lt;br/&gt;&lt;br/&gt;### Identity-First Addressing&lt;br/&gt;&lt;br/&gt;Services conforming to this profile are addressed by **Nostr identity**, not by DNS hostnames.&lt;br/&gt;&lt;br/&gt;Clients are expected to refer to such services using identity-based URIs (for example `wss://&lt;npub&gt;` for relays or `https://&lt;npub&gt;` for APIs), which function as **identity references**, not concrete network endpoints.&lt;br/&gt;&lt;br/&gt;These identity-based URIs MUST NOT be dereferenced directly. Clients MUST resolve them via NCC-02 and NCC-05 before establishing a network connection.&lt;br/&gt;&lt;br/&gt;Services MUST NOT accept, interpret, or resolve identity-based URIs.&lt;br/&gt;&lt;br/&gt;This convention does not specify:&lt;br/&gt;&lt;br/&gt;- New service-client protocol behaviour&lt;br/&gt;- Service-side trust enforcement or validation&lt;br/&gt;- DNS-based discovery or identifiers&lt;br/&gt;- Browser or WebView integration&lt;br/&gt;- Internal service architecture or storage design&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Dependencies&lt;br/&gt;&lt;br/&gt;Services conforming to this profile MUST support:&lt;br/&gt;&lt;br/&gt;- NCC-00 (NCC publication and discovery)&lt;br/&gt;- NCC-02 (Service discovery and trust)&lt;br/&gt;- NCC-05 (Dynamic locators)&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Definitions&lt;br/&gt;&lt;br/&gt;### NCC-02 / NCC-05 Service&lt;br/&gt;&lt;br/&gt;A service (e.g. a relay, API, or media server) that opts into this convention by publishing and serving NCC-02 and NCC-05 records describing itself, and by making those records available to querying clients.&lt;br/&gt;&lt;br/&gt;### Service Identity&lt;br/&gt;&lt;br/&gt;The Nostr public key (`npub`) that uniquely identifies the service.&lt;br/&gt;&lt;br/&gt;### Sidecar&lt;br/&gt;&lt;br/&gt;A dedicated companion component operated alongside the service. It is the primary actor responsible for enabling NCC-06 compliance by publishing and maintaining NCC-02 and NCC-05 records for the service&#39;s identity.&lt;br/&gt;&lt;br/&gt;### Publication Relay Set&lt;br/&gt;&lt;br/&gt;A set of relays used to publish and retrieve NCC-02/NCC-05 records, including (ideally) the target relay itself plus additional relays to avoid a single point of failure.&lt;br/&gt;&lt;br/&gt;### Freshness&lt;br/&gt;&lt;br/&gt;A record is **fresh** if it is within its declared validity window:&lt;br/&gt;- NCC-02 Service Record: within its `exp`&lt;br/&gt;- NCC-05 Locator: within its TTL (or equivalent freshness tags defined by NCC-05)&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Service Requirements (e.g. Relays)&lt;br/&gt;&lt;br/&gt;A service (such as a relay) claiming conformance to this profile MUST:&lt;br/&gt;&lt;br/&gt;### 1. Protocol Compliance&lt;br/&gt;&lt;br/&gt;- Support its base protocol (e.g. NIP-01 for relays, HTTP for APIs)&lt;br/&gt;- For relays: Support standard `EVENT`, `REQ`, `CLOSE`, and `EOSE` semantics&lt;br/&gt;&lt;br/&gt;### 2. NCC Document Support (NCC-00)&lt;br/&gt;&lt;br/&gt;- Accept, store, and serve NCC documents as defined by NCC-00&lt;br/&gt;- At minimum, support publication and retrieval of:&lt;br/&gt;  - NCC-00&lt;br/&gt;  - NCC-02&lt;br/&gt;  - NCC-05&lt;br/&gt;  - NCC-06&lt;br/&gt;- Treat NCC documents as ordinary Nostr events&lt;br/&gt;- MUST NOT interpret or enforce NCC semantics&lt;br/&gt;&lt;br/&gt;### 3. NCC-02 Service and Trust Records&lt;br/&gt;&lt;br/&gt;The service MUST:&lt;br/&gt;&lt;br/&gt;- Accept, store, and serve NCC-02-related events, including:&lt;br/&gt;  - Service Records (kind 30059)&lt;br/&gt;  - Certificate Attestations (kind 30060)&lt;br/&gt;  - Revocations (kind 30061)&lt;br/&gt;- Treat all NCC-02-related events as opaque data&lt;br/&gt;- MUST NOT evaluate trust, validate keys, or apply revocations&lt;br/&gt;&lt;br/&gt;The service MUST publish at least one Service Record (30059) describing itself.&lt;br/&gt;&lt;br/&gt;Publishing attestations or revocations is OPTIONAL.&lt;br/&gt;&lt;br/&gt;### 4. NCC-05 Locator Records&lt;br/&gt;&lt;br/&gt;- Accept, store, and serve NCC-05 Locator events (kind 30058)&lt;br/&gt;- Publish at least one locator describing current reachable endpoints&lt;br/&gt;- Locator records MAY include multiple endpoints, including onion services&lt;br/&gt;&lt;br/&gt;### 5. Self-Describing Behaviour&lt;br/&gt;&lt;br/&gt;- The service MUST return its own NCC-02 and NCC-05 records when queried via standard Nostr filters&lt;br/&gt;- Self-publication MAY be performed by a Sidecar or equivalent process&lt;br/&gt;&lt;br/&gt;### 6. Client Resolution Neutrality&lt;br/&gt;&lt;br/&gt;The service:&lt;br/&gt;&lt;br/&gt;- MUST NOT perform NCC-02 or NCC-05 resolution on behalf of clients&lt;br/&gt;- MUST NOT validate endpoint keys or compare `k` values&lt;br/&gt;- MUST NOT evaluate attestations or revocations&lt;br/&gt;- MUST NOT redirect, proxy, or influence endpoint selection&lt;br/&gt;- MUST remain protocol-dumb with respect to resolution and trust&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Robustness Requirements&lt;br/&gt;&lt;br/&gt;This section defines required or recommended behaviours to handle real-world failure modes without adding service-side intelligence.&lt;br/&gt;&lt;br/&gt;### A. Conflicting Records (Normative Client Handling)&lt;br/&gt;&lt;br/&gt;Clients MUST assume they may receive multiple candidate records for the same `(service pubkey, kind, d)` due to:&lt;br/&gt;- service divergence&lt;br/&gt;- propagation delays&lt;br/&gt;- sidecar misconfiguration&lt;br/&gt;- malicious publication&lt;br/&gt;&lt;br/&gt;Clients MUST apply a deterministic selection rule per record type:&lt;br/&gt;&lt;br/&gt;#### A.1 Selecting NCC-02 Service Records (kind 30059)&lt;br/&gt;&lt;br/&gt;Given a set of candidate Service Records matching `(pubkey, d)`:&lt;br/&gt;1. Discard records with invalid signatures.&lt;br/&gt;2. Discard records that are expired (`now &gt; exp`) unless operating in **stale fallback** mode (see Section D).&lt;br/&gt;3. Prefer the record with the greatest `created_at`.&lt;br/&gt;4. If tied on `created_at`, prefer the record with the lexicographically greatest event id.&lt;br/&gt;&lt;br/&gt;If the chosen record’s `u` points to an endpoint that is unreachable, clients SHOULD try alternate valid candidates in descending order before failing (see Section B).&lt;br/&gt;&lt;br/&gt;#### A.2 Selecting NCC-05 Locators (kind 30058)&lt;br/&gt;&lt;br/&gt;Given a set of candidate Locator records matching `(pubkey, d)`:&lt;br/&gt;1. Discard records with invalid signatures.&lt;br/&gt;2. Discard records that are stale by TTL unless operating in **stale fallback** mode (see Section D).&lt;br/&gt;3. Prefer the record with the greatest freshness marker as defined by NCC-05 (for example `updated_at`), otherwise `created_at`.&lt;br/&gt;4. If tied, prefer lexicographically greatest event id.&lt;br/&gt;&lt;br/&gt;Clients SHOULD treat Locator endpoints as an ordered candidate set, not a single truth, and apply reachability and policy selection (see Sections B and E).&lt;br/&gt;&lt;br/&gt;### B. Partial Availability (Normative Client Behaviour)&lt;br/&gt;&lt;br/&gt;Clients MUST NOT assume that a “correct” record implies a reachable endpoint.&lt;br/&gt;&lt;br/&gt;When resolving to endpoints, clients SHOULD:&lt;br/&gt;- try endpoints in a policy-defined preference order (see Section E)&lt;br/&gt;- stop on first successful connection&lt;br/&gt;- record per-endpoint health with exponential backoff on failures&lt;br/&gt;- avoid retry storms by applying jitter and minimum retry intervals&lt;br/&gt;- maintain a “last known good endpoint” cache keyed by `(pubkey, d)`&lt;br/&gt;&lt;br/&gt;Sidecars SHOULD publish multiple endpoints when available (for example multiple PoPs, clearnet plus onion, alternate ports) to increase survivability.&lt;br/&gt;&lt;br/&gt;### C. Service Unavailability (Normative Publication and Retrieval)&lt;br/&gt;&lt;br/&gt;A core failure mode is: the service storing its own NCC-02/NCC-05 records is unreachable.&lt;br/&gt;&lt;br/&gt;#### C.1 Sidecar Publication Redundancy (Normative)&lt;br/&gt;&lt;br/&gt;Sidecars operating under NCC-06 MUST publish NCC-02 and NCC-05 records to:&lt;br/&gt;- the service itself (local-first bootstrap) when reachable, AND&lt;br/&gt;- at least one additional relay in a configured Publication Relay Set&lt;br/&gt;&lt;br/&gt;Sidecars SHOULD publish to multiple additional relays to reduce correlated failure.&lt;br/&gt;&lt;br/&gt;#### C.2 Client Retrieval Redundancy (Normative)&lt;br/&gt;&lt;br/&gt;Clients MUST query for NCC-02 and NCC-05 records across a Publication Relay Set, not only the target service endpoint(s).&lt;br/&gt;&lt;br/&gt;If the client has no configured Publication Relay Set, it SHOULD use a small default set (implementation-defined).&lt;br/&gt;&lt;br/&gt;If all publication relays are unreachable or return no valid records:&lt;br/&gt;- clients MAY fall back to a user-supplied concrete endpoint, or a previously cached endpoint,&lt;br/&gt;- otherwise resolution fails.&lt;br/&gt;&lt;br/&gt;### D. Caching, Staleness, and Fallback (Normative)&lt;br/&gt;&lt;br/&gt;Clients will cache NCC-02 and NCC-05 records for performance and reliability. Caching creates staleness risk.&lt;br/&gt;&lt;br/&gt;#### D.1 Cache Keys&lt;br/&gt;&lt;br/&gt;Clients SHOULD cache by:&lt;br/&gt;- NCC-02 Service Record: `(pubkey, d, kind=30059)`&lt;br/&gt;- NCC-05 Locator: `(pubkey, d, kind=30058)`&lt;br/&gt;&lt;br/&gt;Clients SHOULD store:&lt;br/&gt;- selected event id&lt;br/&gt;- record `created_at`&lt;br/&gt;- retrieval time (`fetched_at`)&lt;br/&gt;- record validity window (`exp` or TTL metadata)&lt;br/&gt;- derived endpoint list&lt;br/&gt;&lt;br/&gt;#### D.2 Freshness Enforcement&lt;br/&gt;&lt;br/&gt;Clients MUST treat records as non-fresh when:&lt;br/&gt;- NCC-02: `now &gt; exp`&lt;br/&gt;- NCC-05: TTL window has elapsed per NCC-05 definition&lt;br/&gt;&lt;br/&gt;#### D.3 Stale Fallback Mode&lt;br/&gt;&lt;br/&gt;To avoid hard failure during propagation delays or temporary publication relay outages, clients MAY enter stale fallback mode when:&lt;br/&gt;- no fresh valid record is obtainable, AND&lt;br/&gt;- the client has at least one previously cached valid record&lt;br/&gt;&lt;br/&gt;In stale fallback mode:&lt;br/&gt;- clients MAY use the newest previously cached record even if stale&lt;br/&gt;- clients SHOULD apply a maximum staleness window (implementation-defined)&lt;br/&gt;- clients MUST surface (internally or to the user) that a stale record was used&lt;br/&gt;- clients SHOULD aggressively refresh in the background on subsequent attempts (without retry storms)&lt;br/&gt;&lt;br/&gt;### E. Multiple Valid Paths and Trust (Normative Client Policy)&lt;br/&gt;&lt;br/&gt;When multiple endpoints are available, clients must choose based on both reachability and trust.&lt;br/&gt;&lt;br/&gt;#### E.1 Transport Preference&lt;br/&gt;&lt;br/&gt;Unless the user explicitly overrides, clients SHOULD apply:&lt;br/&gt;1. Prefer secure endpoints (`wss://`, `https://`, `tls://`) with verifiable `k`&lt;br/&gt;2. Then secure endpoints without `k` (lower trust)&lt;br/&gt;3. Then onion endpoints when Tor-capable and allowed by user policy&lt;br/&gt;4. Avoid insecure clearnet endpoints (`ws://`, `http://`, `tcp://`) unless explicitly configured&lt;br/&gt;&lt;br/&gt;#### E.2 `k` Verification Requirements&lt;br/&gt;&lt;br/&gt;- For secure endpoints, clients SHOULD verify the endpoint key material against NCC-02 `k` where defined by NCC-02.&lt;br/&gt;- If `k` is present and does not match, clients MUST treat that endpoint as failing trust and MUST NOT connect to it unless the user explicitly overrides.&lt;br/&gt;- If `k` is absent, clients MAY connect according to local policy, but SHOULD treat it as lower trust.&lt;br/&gt;&lt;br/&gt;#### E.3 Conflicts Between Trust Paths&lt;br/&gt;&lt;br/&gt;If multiple fresh records exist and imply different trust bindings (different `k` values or materially different endpoint sets), clients SHOULD:&lt;br/&gt;- prefer the candidate record whose `k` matches the observed endpoint key on successful connection&lt;br/&gt;- otherwise fall back to the deterministic conflict rules in Section A and treat the result as untrusted until verified&lt;br/&gt;&lt;br/&gt;Services MUST remain neutral and MUST NOT enforce these rules.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Sidecar Trust and Publication Responsibilities&lt;br/&gt;&lt;br/&gt;A Sidecar operating under this profile MUST, when publishing NCC-02 Service Records:&lt;br/&gt;&lt;br/&gt;- Publish a valid `k` tag identifying the service endpoint’s cryptographic key where applicable&lt;br/&gt;- Ensure the published `k` corresponds to the key actually presented by the endpoint&lt;br/&gt;- Update or rotate Service Records when:&lt;br/&gt;  - endpoint keys change&lt;br/&gt;  - endpoint locations change&lt;br/&gt;  - records approach expiry&lt;br/&gt;&lt;br/&gt;In addition, sidecars operating under NCC-06:&lt;br/&gt;&lt;br/&gt;- MUST publish to a Publication Relay Set (see Section C.1)&lt;br/&gt;- SHOULD publish multiple endpoints where possible to improve survivability (see Section B)&lt;br/&gt;- SHOULD avoid publishing short expiries or TTLs that cannot be reliably refreshed under normal operation&lt;br/&gt;&lt;br/&gt;The sidecar MAY publish Certificate Attestations or Revocations.&lt;br/&gt;&lt;br/&gt;The sidecar MUST NOT assume service-side or client-side trust acceptance.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Transport Selection and `k` Semantics&lt;br/&gt;&lt;br/&gt;### Transport Recommendations&lt;br/&gt;&lt;br/&gt;- Sidecars SHOULD publish at least one secure clearnet endpoint (e.g. `wss://` or `https://`)&lt;br/&gt;- Sidecars MAY publish onion endpoints using:&lt;br/&gt;  - `ws://&lt;onion&gt;`&lt;br/&gt;  - `wss://&lt;onion&gt;`&lt;br/&gt;- Clients SHOULD prefer secure protocols over insecure ones when both are available&lt;br/&gt;- Clients MAY accept `ws://&lt;onion&gt;` where Tor provides the underlying security context&lt;br/&gt;- Clients SHOULD NOT select insecure clearnet endpoints unless explicitly configured&lt;br/&gt;&lt;br/&gt;### `k` Tag Semantics&lt;br/&gt;&lt;br/&gt;- For secure endpoints, the NCC-02 `k` tag SHOULD be a public key fingerprint (e.g. TLS SPKI) suitable for pinning&lt;br/&gt;- For insecure endpoints, the `k` tag MAY be omitted unless a verifiable non-TLS key identity is defined and supported by the client&lt;br/&gt;- Clients MUST treat `k` as an assertion and verify it independently&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Onion Endpoints (Informative)&lt;br/&gt;&lt;br/&gt;NCC-06 supports onion endpoints as a first-class deployment option to enable DNS-optional and location-hiding service access.&lt;br/&gt;&lt;br/&gt;### Publishing onion endpoints&lt;br/&gt;&lt;br/&gt;A service MAY publish one or more onion endpoints in its NCC-05 Locator (kind 30058) endpoints list.&lt;br/&gt;&lt;br/&gt;Typical forms include:&lt;br/&gt;&lt;br/&gt;- `ws://&lt;onion&gt;.onion:&lt;port&gt;` (common)&lt;br/&gt;- `wss://&lt;onion&gt;.onion:&lt;port&gt;` (optional defence-in-depth)&lt;br/&gt;&lt;br/&gt;Onion endpoints SHOULD be published via NCC-05 (dynamic locator) rather than being assumed stable or discoverable elsewhere.&lt;br/&gt;&lt;br/&gt;### Transport and trust considerations&lt;br/&gt;&lt;br/&gt;- Onion endpoints using `ws://` rely on Tor’s security properties for confidentiality and endpoint authentication.&lt;br/&gt;- The NCC-02 `k` tag binds the service identity to the key presented by the transport endpoint and therefore applies to secure endpoints only.&lt;br/&gt;- Clients SHOULD NOT require `k` verification for `ws://` onion endpoints.&lt;br/&gt;- Clients MAY apply additional local policy, such as preferring onion endpoints when Tor is available.&lt;br/&gt;&lt;br/&gt;### Operational model&lt;br/&gt;&lt;br/&gt;An onion endpoint MAY be:&lt;br/&gt;- managed by the service operator externally, or&lt;br/&gt;- managed by an administrative sidecar that creates and maintains the hidden service and republishes NCC-05 when endpoints change.&lt;br/&gt;&lt;br/&gt;Services remain protocol-dumb and do not participate in endpoint discovery or onion service management.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Client Interaction Model (Informative)&lt;br/&gt;&lt;br/&gt;Clients interacting with services conforming to this profile are expected to:&lt;br/&gt;&lt;br/&gt;1. Identify the service by Nostr identity (for example via an identity-based URI such as `wss://&lt;npub&gt;` or `https://&lt;npub&gt;`), not by hostname&lt;br/&gt;2. Resolve NCC-02 Service Records and trust material&lt;br/&gt;3. Apply attestation and revocation policy locally&lt;br/&gt;4. Resolve NCC-05 Locators for current endpoints&lt;br/&gt;5. Apply conflict handling, caching, and fallback rules (Sections A–D)&lt;br/&gt;6. Select endpoints based on transport and trust policy (Section E)&lt;br/&gt;7. Connect using the service&#39;s base protocol (e.g. NIP-01 for relays)&lt;br/&gt;8. Verify endpoint key against NCC-02 `k` when using secure transports&lt;br/&gt;&lt;br/&gt;Identity-based URIs are not dereferenced directly and are always resolved through NCC-02 and NCC-05 prior to connection.&lt;br/&gt;&lt;br/&gt;Services do not participate in this logic.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Security Considerations&lt;br/&gt;&lt;br/&gt;- All NCC-02 and NCC-05 records are signed using standard Nostr keys&lt;br/&gt;- Trust, pinning, and revocation are client-side responsibilities&lt;br/&gt;- Services act solely as neutral event stores&lt;br/&gt;- Publication relay redundancy reduces availability risks but does not remove the need for client-side trust evaluation&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Non-Goals&lt;br/&gt;&lt;br/&gt;This convention does not attempt to:&lt;br/&gt;&lt;br/&gt;- Implement or rely on DNS or NIP-05&lt;br/&gt;- Guarantee service availability&lt;br/&gt;- Prevent Sybil attacks&lt;br/&gt;- Define moderation, certification, or access control policy&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Conformance Tests (Non-Normative)&lt;br/&gt;&lt;br/&gt;A service conforms to NCC-06 if:&lt;br/&gt;&lt;br/&gt;- It serves kinds 30058, 30059, 30060, and 30061&lt;br/&gt;- It serves NCC documents per NCC-00&lt;br/&gt;- It responds with correct `EOSE` semantics&lt;br/&gt;- It is protocol-compatible with its base protocol when accessed via a concrete endpoint&lt;br/&gt;- It does not resolve identity references for clients, and remains protocol-dumb&lt;br/&gt;&lt;br/&gt;A sidecar conforms to NCC-06 publication robustness expectations if it:&lt;br/&gt;- publishes NCC-02 and NCC-05 records to a Publication Relay Set (not only the target service)&lt;br/&gt;&lt;br/&gt;A client conforms to NCC-06 robustness expectations if it:&lt;br/&gt;- applies deterministic conflict selection (Section A)&lt;br/&gt;- handles partial endpoint availability with ordered attempts and backoff (Section B)&lt;br/&gt;- queries multiple publication relays for records (Section C.2)&lt;br/&gt;- enforces freshness and uses bounded stale fallback (Section D)&lt;br/&gt;- applies transport and `k` trust policy (Section E)&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Relationship to Other NCCs&lt;br/&gt;&lt;br/&gt;- Builds on NCC-00, NCC-02, and NCC-05&lt;br/&gt;- Defines a service participation profile without protocol changes&lt;br/&gt;- Remains orthogonal to DNS-based and gossip-based discovery&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Conclusion&lt;br/&gt;&lt;br/&gt;NCC-06 defines a minimal, identity-first service profile that composes service discovery, trust assertion, and dynamic location using existing Nostr primitives, while preserving strict separation between storage, assertion, and enforcement.&lt;br/&gt;&lt;br/&gt;It additionally specifies deterministic and robust client and sidecar behaviours to handle conflicting records, partial availability, service unavailability, and caching staleness, without moving resolution or trust enforcement into services.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Appendix A: Minimal Reference Implementation (Informative)&lt;br/&gt;&lt;br/&gt;This appendix describes a minimal, working-shaped system that conforms to NCC-06. It illustrates **component roles and responsibilities**, not a production deployment or complete failure handling logic.&lt;br/&gt;&lt;br/&gt;The reference implementation consists of three logical components:&lt;br/&gt;&lt;br/&gt;1. A protocol-dumb service (e.g. a NIP-01 relay)&lt;br/&gt;2. A Sidecar for NCC-02 and NCC-05 records&lt;br/&gt;3. A policy-aware client&lt;br/&gt;&lt;br/&gt;Each component is intentionally simple and narrowly scoped.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.1 Protocol-Dumb Service&lt;br/&gt;&lt;br/&gt;The service is a standard event store (like a NIP-01 relay) with no NCC-specific logic.&lt;br/&gt;&lt;br/&gt;The service:&lt;br/&gt;&lt;br/&gt;- Accepts and serves Nostr events using standard semantics&lt;br/&gt;- Stores and serves NCC documents (NCC-00, NCC-02, NCC-05, NCC-06) as ordinary events&lt;br/&gt;- Stores and serves NCC-02 Service Records, attestations, and revocations&lt;br/&gt;- Stores and serves NCC-05 Locator records&lt;br/&gt;- Does not interpret event content, tags, or semantics&lt;br/&gt;- Does not resolve identities, select endpoints, or evaluate trust&lt;br/&gt;&lt;br/&gt;The service may be unreachable, partially reachable, or out of sync with other relays. It is not assumed to be authoritative.&lt;br/&gt;&lt;br/&gt;The service MAY store its own NCC-02 and NCC-05 records, but MUST NOT be treated as the sole source of those records.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.2 Sidecar&lt;br/&gt;&lt;br/&gt;The sidecar is an out-of-band process operated alongside the service. It is responsible for **asserting service state**, not enforcing it.&lt;br/&gt;&lt;br/&gt;The sidecar:&lt;br/&gt;&lt;br/&gt;- Publishes NCC-02 Service Records (kind 30059) for the service identity&lt;br/&gt;- Publishes NCC-05 Locator records (kind 30058) describing current reachable endpoints&lt;br/&gt;- Optionally publishes NCC-02 attestations or revocations&lt;br/&gt;- Maintains the correspondence between published records and actual service state&lt;br/&gt;&lt;br/&gt;To conform with NCC-06 robustness expectations, the sidecar:&lt;br/&gt;&lt;br/&gt;- Publishes records to a **Publication Relay Set**, not to a single relay&lt;br/&gt;- Attempts publication to the target service when reachable&lt;br/&gt;- Publishes to at least one additional relay to avoid single points of failure&lt;br/&gt;- Republishes records when:&lt;br/&gt;  - endpoints change&lt;br/&gt;  - endpoint keys change&lt;br/&gt;  - records approach expiry&lt;br/&gt;- May publish multiple endpoints (for example multiple PoPs, clearnet and onion) to improve availability&lt;br/&gt;&lt;br/&gt;The sidecar does not assume that any single relay will always be reachable or consistent.&lt;br/&gt;&lt;br/&gt;The sidecar does not perform client resolution, endpoint selection, or trust enforcement.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.3 Policy-Aware Client&lt;br/&gt;&lt;br/&gt;The client is responsible for **resolution, selection, caching, and trust decisions**.&lt;br/&gt;&lt;br/&gt;The client:&lt;br/&gt;&lt;br/&gt;1. Identifies the service by Nostr public key (service identity)&lt;br/&gt;2. Queries a Publication Relay Set for NCC-02 Service Records and related trust material&lt;br/&gt;3. Applies deterministic conflict resolution to select candidate records&lt;br/&gt;4. Enforces freshness rules and caches records with validity metadata&lt;br/&gt;5. Falls back to bounded stale records when fresh records are unavailable&lt;br/&gt;6. Queries for NCC-05 Locator records and derives an ordered endpoint set&lt;br/&gt;7. Attempts endpoints in policy-defined order with backoff and retry control&lt;br/&gt;8. Verifies endpoint key material against NCC-02 `k` where applicable&lt;br/&gt;9. Establishes a connection to the selected endpoint using the service&#39;s base protocol&lt;br/&gt;&lt;br/&gt;The client:&lt;br/&gt;&lt;br/&gt;- Does not assume global consistency&lt;br/&gt;- Does not assume immediate propagation&lt;br/&gt;- Does not assume a single valid path&lt;br/&gt;- Treats all records as assertions, not guarantees&lt;br/&gt;&lt;br/&gt;All trust, caching, and selection logic is strictly client-side.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.4 Failure and Degradation Model&lt;br/&gt;&lt;br/&gt;This reference implementation assumes:&lt;br/&gt;&lt;br/&gt;- Conflicting records may exist across relays&lt;br/&gt;- Some relays may be unreachable&lt;br/&gt;- Some endpoints may be temporarily unavailable&lt;br/&gt;- Cached data may become stale&lt;br/&gt;&lt;br/&gt;Correct operation is achieved through:&lt;br/&gt;&lt;br/&gt;- Redundant publication by the sidecar&lt;br/&gt;- Redundant retrieval by the client&lt;br/&gt;- Deterministic client-side conflict handling&lt;br/&gt;- Bounded stale fallback&lt;br/&gt;- Ordered endpoint attempts&lt;br/&gt;&lt;br/&gt;No component relies on service-side enforcement or consensus.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.5 Summary&lt;br/&gt;&lt;br/&gt;This reference implementation demonstrates that:&lt;br/&gt;&lt;br/&gt;- Services remain protocol-dumb and interchangeable&lt;br/&gt;- Sidecars assert service state redundantly&lt;br/&gt;- Clients resolve identity, trust, and location deterministically&lt;br/&gt;&lt;br/&gt;NCC-06 achieves robustness through **composition and policy**, not through additional protocol features or service intelligence.&lt;br/&gt;&lt;br/&gt;## Companion `ncc-06-js` package&lt;br/&gt;&lt;br/&gt;To make the NCC-06 resolver, selector, and NCC-02/NCC-05 helpers reusable outside of this specific example harness, there&#39;s a dedicated `ncc-06-js` npm package in the repository. It provides:&lt;br/&gt;&lt;br/&gt;- **Service-Agnostic Helpers:** Full support for `serviceUrl`, `serviceMode`, and custom `allowedProtocols` (e.g. `https`, `tcp`), allowing discovery for any Nostr-identified service.&lt;br/&gt;- **Deterministic NCC-06 resolution:** Resolver orchestration that fetches service records, locators, and enforces `k` fingerprints for any secure protocol (`wss`, `https`, `tls`, etc).&lt;br/&gt;- **NCC-02/NCC-05 builders &amp; validators:** Logic to parse and manage the `d`, `u`, `k`, and `exp` tags a service record must expose.&lt;br/&gt;- **External endpoint helpers:** Helpers to declare onion/IPv6/IPv4 reachability in a reproducible order.&lt;br/&gt;- **Key and trust utilities:** SPKI fingerprint calculation (`k`), keypair management, and certificate generation. &lt;/blockquote&gt;
    </content>
    <updated>2025-12-28T02:27:32Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqst5krmghc9mpuskwxepjc0vz2vralrctelv3sr9qxaef8u280n38gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7cd3njp</id>
    
      <title type="html">Published new Nostr Community Convention: ncc-05 - Identity-Bound ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqst5krmghc9mpuskwxepjc0vz2vralrctelv3sr9qxaef8u280n38gzyz6axnhdclv0s8825hknw76694f5a62fltsvt2em4c99w648gawt7cd3njp" />
    <content type="html">
      Published new Nostr Community Convention: ncc-05 - Identity-Bound Service Locator Resolution&lt;br/&gt;&lt;br/&gt;NCC-05 update published&lt;br/&gt;&lt;br/&gt;NCC-05 now clearly defines identity-bound, encrypted service locator resolution for dynamic ip:port endpoints, without DNS or public infrastructure.&lt;br/&gt;&lt;br/&gt;What’s new and clarified:&lt;br/&gt;&lt;br/&gt;Explicit anchored vs unanchored operating modes&lt;br/&gt;&lt;br/&gt;Anchored mode (recommended): NCC-02 provides identity and trust, NCC-05 provides private reachability&lt;br/&gt;&lt;br/&gt;Unanchored mode (permitted): supports ephemeral, P2P, and bootstrap use cases&lt;br/&gt;&lt;br/&gt;Formalised endpoint object format with deterministic selection&lt;br/&gt;&lt;br/&gt;Stronger guidance on TLS key binding (k) to prevent endpoint substitution&lt;br/&gt;&lt;br/&gt;Clear TTL, expiration, caching, and refresh semantics&lt;br/&gt;&lt;br/&gt;Deterministic record and endpoint selection to improve interoperability&lt;br/&gt;&lt;br/&gt;Explicit support for private and invite-only services&lt;br/&gt;&lt;br/&gt;NCC-05 remains client-agnostic, relay-agnostic, and fully compatible with existing Nostr primitives, while enabling private, low-cost alternatives to Dynamic DNS.&lt;br/&gt;&lt;br/&gt;#nostr #nameresolution #privacy&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;/naddr1qvzqqqr4vgpzpdwnfmku0k8crn42tmfh0ddz656wa9yl4cx94va6uzjhd2n5wh9lqqrxucmr95cr22rcfga&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…cfga&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; # NCC-05: Identity-Bound Service Locator Resolution&lt;br/&gt;&lt;br/&gt;**Status:** Draft  &lt;br/&gt;**Category:** Discovery / Resolution  &lt;br/&gt;**Author(s):** lostcause  &lt;br/&gt;**Supersedes:** None&lt;br/&gt;&lt;br/&gt;**Related NCCs (Informative)**&lt;br/&gt;&lt;br/&gt;- NCC-02: May advertise service identities and intent; NCC-05 provides private reachability.&lt;br/&gt;&lt;br/&gt;- NCC-00: Publication and revision conventions.&lt;br/&gt;&lt;br/&gt;**Integration with NCC-02 (Informative)**&lt;br/&gt;&lt;br/&gt;NCC-02 may be used to publish public service records and trust material for a service identity. Clients MAY attempt NCC-05 resolution for the same service identity as a private override. If NCC-05 resolution succeeds and the record is fresh, clients SHOULD prefer the NCC-05 resolved endpoint for connection while continuing to apply any NCC-02 trust checks (eg endpoint key pinning) where applicable.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Abstract&lt;br/&gt;&lt;br/&gt;This Nostr Community Convention defines a client-agnostic method for resolving **dynamic `ip:port` service endpoints** bound to a cryptographic identity, using existing Nostr primitives.&lt;br/&gt;&lt;br/&gt;The primary goal of this convention is to enable **cost-effective, private resolution of dynamic `ip:port` endpoints** without relying on domain names, registrars, Dynamic DNS providers, or publicly observable infrastructure.&lt;br/&gt;&lt;br/&gt;Clients publish signed, TTL-bound, **encrypted** service locator records as parameterised replaceable events (`kind:30058`). IP address and port information is distributed via Nostr relays without exposing network topology to relays or third parties.&lt;br/&gt;&lt;br/&gt;Alternative locator types such as tunnels, overlays, or onion services MAY be included for resilience, but are secondary to the core `ip:port` resolution use case.&lt;br/&gt;&lt;br/&gt;This convention does not modify the Nostr protocol or require relay enforcement. It standardises client behaviour for publishing, resolving, caching, and expiring locator records.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 1. Purpose&lt;br/&gt;&lt;br/&gt;NCC-05 primarily addresses the problem of **privately resolving dynamic `ip:port` endpoints** in environments where traditional DNS or Dynamic DNS introduces unnecessary cost, public metadata exposure, or operational dependency.&lt;br/&gt;&lt;br/&gt;The convention defines shared expectations for:&lt;br/&gt;&lt;br/&gt;- publishing encrypted `ip:port` reachability information bound to a pubkey&lt;br/&gt;  &lt;br/&gt;- resolving that information deterministically&lt;br/&gt;  &lt;br/&gt;- supporting frequently changing network addresses&lt;br/&gt;  &lt;br/&gt;- minimising relay load and metadata leakage&lt;br/&gt;  &lt;br/&gt;- avoiding dependence on registrars, domains, or central services&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 2. Scope&lt;br/&gt;&lt;br/&gt;This convention applies to:&lt;br/&gt;&lt;br/&gt;- client behaviour for publishing encrypted locator records&lt;br/&gt;  &lt;br/&gt;- deterministic resolution and caching logic&lt;br/&gt;  &lt;br/&gt;- TTL and refresh semantics&lt;br/&gt;  &lt;br/&gt;- privacy and abuse mitigation expectations&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;This convention does **not** define:&lt;br/&gt;&lt;br/&gt;- new cryptographic primitives&lt;br/&gt;  &lt;br/&gt;- relay enforcement rules&lt;br/&gt;  &lt;br/&gt;- domain name integration&lt;br/&gt;  &lt;br/&gt;- protocol-level changes&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 2.1 Leveraged NIPs&lt;br/&gt;&lt;br/&gt;NCC-05 relies entirely on existing Nostr Improvement Proposals and does not introduce new protocol primitives.&lt;br/&gt;&lt;br/&gt;### NIP-01: Basic protocol flow&lt;br/&gt;&lt;br/&gt;Used for:&lt;br/&gt;&lt;br/&gt;- event structure and encoding&lt;br/&gt;  &lt;br/&gt;- event signing and verification&lt;br/&gt;  &lt;br/&gt;- relay publish and subscription semantics&lt;br/&gt;  &lt;br/&gt;- `created_at` ordering&lt;br/&gt;  &lt;br/&gt;- tag-based filtering, including the `d` tag&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;All `kind:30058` locator records are valid NIP-01 events.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### NIP-16: Replaceable and parameterised replaceable events&lt;br/&gt;&lt;br/&gt;Used for:&lt;br/&gt;&lt;br/&gt;- parameterised replaceable semantics&lt;br/&gt;  &lt;br/&gt;- replacement based on `pubkey &#43; kind &#43; d`&lt;br/&gt;  &lt;br/&gt;- deterministic latest-state resolution&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### NIP-33: Parameterised replaceable kind ranges&lt;br/&gt;&lt;br/&gt;Defines the `30000–39999` range.&lt;br/&gt;&lt;br/&gt;This convention assigns **`kind:30058`** for identity-bound service locator records.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### NIP-04 and NIP-44: Encrypted event content&lt;br/&gt;&lt;br/&gt;Used to encrypt `ip:port` locator payloads.&lt;br/&gt;&lt;br/&gt;This convention:&lt;br/&gt;&lt;br/&gt;- mandates encryption by default&lt;br/&gt;  &lt;br/&gt;- does not require a specific encryption NIP&lt;br/&gt;  &lt;br/&gt;- allows clients to support one or more schemes&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### NIP-65: Relay List Metadata (Gossip)&lt;br/&gt;&lt;br/&gt;NCC-05 MAY leverage relay hints published via NIP-65 to improve resolution efficiency and reliability.&lt;br/&gt;&lt;br/&gt;When resolving locator records, clients:&lt;br/&gt;&lt;br/&gt;- MAY query relays listed in the target pubkey’s NIP-65 relay list&lt;br/&gt;  &lt;br/&gt;- SHOULD prefer relays marked for read or both read/write access&lt;br/&gt;  &lt;br/&gt;- MAY fall back to locally configured or default relays if no NIP-65 data is available&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;NIP-65 is used strictly as a **hint mechanism** and does not alter NCC-05 resolution semantics or trust assumptions.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### Explicit non-dependencies&lt;br/&gt;&lt;br/&gt;NCC-05 deliberately does **not** rely on:&lt;br/&gt;&lt;br/&gt;- DNS or naming-related NIPs&lt;br/&gt;  &lt;br/&gt;- relay moderation or enforcement NIPs&lt;br/&gt;  &lt;br/&gt;- payment, zap, or wallet NIPs&lt;br/&gt;  &lt;br/&gt;- profile or alias NIPs&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 3. Conceptual Model&lt;br/&gt;&lt;br/&gt;NCC-05 provides **DNS-like resolution semantics for encrypted `ip:port` reachability**, using Nostr events as the distribution mechanism.&lt;br/&gt;&lt;br/&gt;| DNS concept | NCC-05 analogue |&lt;br/&gt;| --- | --- |&lt;br/&gt;| Domain name | Pubkey |&lt;br/&gt;| Record name | `d` tag |&lt;br/&gt;| A / SRV record | Encrypted `ip:port` entry |&lt;br/&gt;| TTL | Payload TTL |&lt;br/&gt;| Authoritative server | Signature &#43; freshness |&lt;br/&gt;| Resolver cache | Client cache |&lt;br/&gt;&lt;br/&gt;Resolution is identity-centric and private by default.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 4. Event Model&lt;br/&gt;&lt;br/&gt;### 4.1 Event kind&lt;br/&gt;&lt;br/&gt;Locator records **MUST** be published as **parameterised replaceable events** of:&lt;br/&gt;&lt;br/&gt;- `kind:30058`&lt;br/&gt;&lt;br/&gt;Replaceability is determined by:&lt;br/&gt;&lt;br/&gt;- `pubkey`&lt;br/&gt;  &lt;br/&gt;- `kind = 30058`&lt;br/&gt;  &lt;br/&gt;- `d` tag value&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;Clients **MUST** treat locator records as latest-state only.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### 4.2 Required tags&lt;br/&gt;&lt;br/&gt;| Tag | Description |&lt;br/&gt;| --- | --- |&lt;br/&gt;| `d` | Stable locator record identifier |&lt;br/&gt;&lt;br/&gt;The `d` tag **MUST** remain stable.&lt;br/&gt;&lt;br/&gt;Recommended values:&lt;br/&gt;&lt;br/&gt;- `addr`&lt;br/&gt;  &lt;br/&gt;- `addr:v1`&lt;br/&gt;  &lt;br/&gt;- `addr:&lt;device-id&gt;`&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### 4.3 Optional tags&lt;br/&gt;&lt;br/&gt;- `expiration` – Unix timestamp indicating when the locator event SHOULD be treated as expired.&lt;br/&gt;  - Clients SHOULD treat expiry as the earliest of:&lt;br/&gt;    - `expiration`, and&lt;br/&gt;    - `updated_at &#43; ttl` from the decrypted payload.&lt;br/&gt;&lt;br/&gt;- `private` – Boolean marker (for example `[&#34;private&#34;,&#34;true&#34;]`) indicating the publisher intends the locator record for authorised use only.&lt;br/&gt;  - This tag does not provide privacy by itself.&lt;br/&gt;  - Privacy is provided by encryption and recipient scoping.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 5. Payload Format and Encryption&lt;br/&gt;&lt;br/&gt;### 5.1 Mandatory encryption&lt;br/&gt;&lt;br/&gt;Service locator records **MUST NOT expose `ip:port` data in plaintext by default**.&lt;br/&gt;&lt;br/&gt;Event content:&lt;br/&gt;&lt;br/&gt;- **MUST** be encrypted when publishing `ip:port` data&lt;br/&gt;  &lt;br/&gt;- **MUST NOT** include address data in tags&lt;br/&gt;  &lt;br/&gt;- **MUST** assume relays are not trusted&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### 5.2 Plaintext exception&lt;br/&gt;&lt;br/&gt;A plaintext record MAY be published only if:&lt;br/&gt;&lt;br/&gt;- the endpoint is intentionally public&lt;br/&gt;  &lt;br/&gt;- metadata disclosure is acceptable&lt;br/&gt;  &lt;br/&gt;- the publisher explicitly opts out of privacy&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;Clients **MUST NOT** treat plaintext records as private.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### 5.3 Payload structure (encrypted)&lt;br/&gt;&lt;br/&gt;Logical structure:&lt;br/&gt;&lt;br/&gt;- `v`: payload version&lt;br/&gt;  &lt;br/&gt;- `ttl`: time-to-live in seconds&lt;br/&gt;  &lt;br/&gt;- `updated_at`: unix timestamp&lt;br/&gt;  &lt;br/&gt;- `endpoints`: ordered list of endpoint objects&lt;br/&gt;  &lt;br/&gt;- `caps`: optional capability identifiers&lt;br/&gt;  &lt;br/&gt;- `notes`: optional text&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;Direct `ip:port` endpoints are the **primary and expected** use case.&lt;br/&gt;&lt;br/&gt;### 5.4 Endpoint object format (Normative)&lt;br/&gt;&lt;br/&gt;Each entry in `endpoints` MUST describe a reachable transport endpoint.&lt;br/&gt;&lt;br/&gt;Required:&lt;br/&gt;- `url` – full endpoint URL.&lt;br/&gt;&lt;br/&gt;Optional but strongly recommended:&lt;br/&gt;- `priority` – integer where lower values are preferred (default `1000`).&lt;br/&gt;- `family` – `onion`, `ipv6`, or `ipv4`.&lt;br/&gt;- `k` – transport key fingerprint for TLS-protected endpoints.&lt;br/&gt;&lt;br/&gt;For `wss://` endpoints:&lt;br/&gt;- Publishers SHOULD include `k`.&lt;br/&gt;- Clients SHOULD fail closed when `k` is present and does not match the observed transport identity.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 6. Publishing Behaviour&lt;br/&gt;&lt;br/&gt;Clients publishing locator records:&lt;br/&gt;&lt;br/&gt;- **MUST** encrypt `ip:port` data by default&lt;br/&gt;  &lt;br/&gt;- **MUST** sign records with the resolved pubkey&lt;br/&gt;  &lt;br/&gt;- **MUST** publish only current reachability state&lt;br/&gt;  &lt;br/&gt;- **SHOULD** publish on change or bounded refresh&lt;br/&gt;  &lt;br/&gt;- **SHOULD** jitter refresh timing&lt;br/&gt;  &lt;br/&gt;- **MUST NOT** publish redundant updates&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 7. Resolution Algorithm&lt;br/&gt;&lt;br/&gt;Unless explicitly operating in unanchored mode, clients SHOULD resolve and validate a corresponding NCC-02 Service Record before accepting NCC-05 locator records.&lt;br/&gt;&lt;br/&gt;### Input&lt;br/&gt;&lt;br/&gt;- target `pubkey`&lt;br/&gt;  &lt;br/&gt;- locator name (`d` tag), default `addr`&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;### Relay selection&lt;br/&gt;&lt;br/&gt;Clients SHOULD determine an initial relay set using the following order:&lt;br/&gt;&lt;br/&gt;1. Relays advertised by the target pubkey via NIP-65, if available&lt;br/&gt;  &lt;br/&gt;2. Client-configured default relays&lt;br/&gt;  &lt;br/&gt;3. Additional relays as required to complete resolution&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;Relay selection does not affect record validity.&lt;br/&gt;&lt;br/&gt;### Query&lt;br/&gt;&lt;br/&gt;Clients query selected relays for:&lt;br/&gt;&lt;br/&gt;- author = target pubkey&lt;br/&gt;  &lt;br/&gt;- kind = 30058&lt;br/&gt;  &lt;br/&gt;- matching `d` tag&lt;br/&gt;&lt;br/&gt;### Record selection (Normative)&lt;br/&gt;&lt;br/&gt;When multiple locator events exist for the same identity:&lt;br/&gt;1. Select the event with the greatest `created_at`.&lt;br/&gt;2. If equal, select the lexicographically smallest event `id`.&lt;br/&gt;  &lt;br/&gt;### Event selection&lt;br/&gt;&lt;br/&gt;Clients:&lt;br/&gt;1. discard invalid signatures&lt;br/&gt;2. discard undecryptable payloads&lt;br/&gt;3. pass all remaining candidate events to record selection&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;### Freshness validation&lt;br/&gt;&lt;br/&gt;Records are valid only if:&lt;br/&gt;&lt;br/&gt;- `now &lt;= updated_at &#43; ttl`&lt;br/&gt;&lt;br/&gt;Expired records **MUST NOT** be used.&lt;br/&gt;&lt;br/&gt;### Endpoint selection (Normative)&lt;br/&gt;&lt;br/&gt;Clients SHOULD select endpoints deterministically:&lt;br/&gt;1. Sort by ascending `priority`.&lt;br/&gt;2. For equal priority, apply a deterministic family order (for example `onion`, then `ipv6`, then `ipv4`).&lt;br/&gt;3. Attempt endpoints in order until a connection succeeds.&lt;br/&gt;4. Clients SHOULD apply cooldowns to failed endpoints to avoid retry storms.&lt;br/&gt;&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;Endpoint failure does not invalidate the record.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 8. Caching and Expiry&lt;br/&gt;&lt;br/&gt;- Clients MUST treat a locator record as expired when `now &gt; updated_at &#43; ttl`.&lt;br/&gt;- If an `expiration` tag is present, clients SHOULD treat expiry as the earliest of:&lt;br/&gt;  - `expiration`, and&lt;br/&gt;  - `updated_at &#43; ttl`.&lt;br/&gt;&lt;br/&gt;Expired records:&lt;br/&gt;- Clients SHOULD NOT use expired records by default.&lt;br/&gt;- Clients MAY retain one expired record as a short-lived fallback only in explicit override or recovery modes.&lt;br/&gt;&lt;br/&gt;TTL rules:&lt;br/&gt;- TTL MUST NOT be extended by resolvers.&lt;br/&gt;- Publishers SHOULD refresh locator records before expiry using jittered schedules.&lt;br/&gt;&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 9. Privacy Considerations&lt;br/&gt;&lt;br/&gt;Encryption protects:&lt;br/&gt;&lt;br/&gt;- IP address and port&lt;br/&gt;  &lt;br/&gt;- network topology&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;Encryption does not protect:&lt;br/&gt;&lt;br/&gt;- pubkey identity&lt;br/&gt;  &lt;br/&gt;- existence of a locator record&lt;br/&gt;  &lt;br/&gt;- publish timing&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;Using NIP-65 relay hints can reduce unnecessary broadcast queries and limit metadata exposure during resolution.&lt;br/&gt;&lt;br/&gt;Relays are assumed honest-but-curious.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 10. Abuse and Relay Load&lt;br/&gt;&lt;br/&gt;- Records **SHOULD** be small and replaceable&lt;br/&gt;  &lt;br/&gt;- Publish frequency **SHOULD** align with TTL&lt;br/&gt;  &lt;br/&gt;- Relays **MAY** apply rate limits or policy&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 11. Comparison to Dynamic DNS&lt;br/&gt;&lt;br/&gt;Dynamic DNS publishes **public, domain-bound `ip:port` mappings**.&lt;br/&gt;&lt;br/&gt;NCC-05 publishes **encrypted, identity-bound `ip:port` mappings** without domains, registrars, or subscriptions.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 12. Non-Goals&lt;br/&gt;&lt;br/&gt;This convention is not intended for:&lt;br/&gt;&lt;br/&gt;- public website discovery&lt;br/&gt;  &lt;br/&gt;- human-readable naming&lt;br/&gt;  &lt;br/&gt;- anonymous global resolution&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 13. Why This Is an NCC&lt;br/&gt;&lt;br/&gt;NCC-05 standardises **client usage patterns**, not protocol rules.&lt;br/&gt;&lt;br/&gt;It uses existing primitives and avoids relay mandates.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## 14. Summary&lt;br/&gt;&lt;br/&gt;NCC-05 defines **encrypted, identity-bound resolution of dynamic `ip:port` endpoints** using Nostr.&lt;br/&gt;&lt;br/&gt;It provides a private, low-cost alternative to Dynamic DNS while remaining fully compatible with the existing protocol.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Appendix A: Example Locator Record and Resolution Flow&lt;br/&gt;&lt;br/&gt;### A.1 Example scenario&lt;br/&gt;&lt;br/&gt;A user operates a self-hosted service reachable at a dynamic endpoint that may change networks, addresses, or ports.&lt;br/&gt;&lt;br/&gt;The user wants authorised clients to discover the current endpoint privately, without exposing it publicly or relying on Dynamic DNS.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.2 Publishing the locator record&lt;br/&gt;&lt;br/&gt;The service publishes a parameterised replaceable event with:&lt;br/&gt;&lt;br/&gt;- `kind:30058`&lt;br/&gt;  &lt;br/&gt;- `d=addr`&lt;br/&gt;  &lt;br/&gt;- encrypted `content`&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;#### Example logical content (inside encryption)&lt;br/&gt;&lt;br/&gt;- `v`: 1&lt;br/&gt;  &lt;br/&gt;- `ttl`: 600&lt;br/&gt;  &lt;br/&gt;- `updated_at`: 1766726400&lt;br/&gt;  &lt;br/&gt;- `endpoints`:&lt;br/&gt;  &lt;br/&gt;  - type: tcp  &lt;br/&gt;    uri: `[2001:db8:abcd:42::10]:9735`  &lt;br/&gt;    priority: 5  &lt;br/&gt;    family: ipv6&lt;br/&gt;    &lt;br/&gt;  - type: tcp  &lt;br/&gt;    uri: `203.0.113.42:9735`  &lt;br/&gt;    priority: 10  &lt;br/&gt;    family: ipv4&lt;br/&gt;    &lt;br/&gt;- `caps`:&lt;br/&gt;  &lt;br/&gt;  - nostr-connect&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.2.1 IPv6 considerations&lt;br/&gt;&lt;br/&gt;- IPv6 endpoints MAY be included alongside IPv4 endpoints.&lt;br/&gt;  &lt;br/&gt;- Clients SHOULD attempt endpoints strictly by priority.&lt;br/&gt;  &lt;br/&gt;- IPv6 literals MUST use standard bracket notation with ports.&lt;br/&gt;  &lt;br/&gt;- Publishers MAY omit IPv4 endpoints entirely in IPv6-only environments.&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.3 Replaceability and updates&lt;br/&gt;&lt;br/&gt;When the service address changes, the publisher emits a new `kind:30058` event using the same `d` tag and a newer `created_at`.&lt;br/&gt;&lt;br/&gt;Clients automatically treat the latest event as authoritative.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.4 Client resolution process&lt;br/&gt;&lt;br/&gt;A resolving client:&lt;br/&gt;&lt;br/&gt;1. Determines relay set, preferring NIP-65 hints if available.&lt;br/&gt;  &lt;br/&gt;2. Queries for `kind=30058` events with matching `d` tag.&lt;br/&gt;  &lt;br/&gt;3. Verifies signature and decrypts payload.&lt;br/&gt;  &lt;br/&gt;4. Selects the latest valid event.&lt;br/&gt;  &lt;br/&gt;5. Attempts endpoints by priority.&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.5 Failure handling&lt;br/&gt;&lt;br/&gt;If an endpoint connection attempt fails:&lt;br/&gt;&lt;br/&gt;- the client MAY attempt the next endpoint&lt;br/&gt;  &lt;br/&gt;- the locator record remains valid until expiry&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.6 Privacy properties demonstrated&lt;br/&gt;&lt;br/&gt;This example demonstrates that:&lt;br/&gt;&lt;br/&gt;- `ip:port` data is never visible to relays&lt;br/&gt;  &lt;br/&gt;- observers cannot infer network topology&lt;br/&gt;  &lt;br/&gt;- resolution requires prior knowledge of the pubkey&lt;br/&gt;  &lt;br/&gt;- historical addresses are not exposed&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.7 Relationship to application or browser resolution&lt;br/&gt;&lt;br/&gt;Browser extensions, proxies, or custom URI handlers MAY build on NCC-05, but are outside the scope of this convention.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### A.8 Summary&lt;br/&gt;&lt;br/&gt;Appendix A illustrates how NCC-05 enables encrypted, identity-bound resolution of dynamic `ip:port` endpoints using only existing Nostr primitives. &lt;/blockquote&gt;
    </content>
    <updated>2025-12-28T00:13:42Z</updated>
  </entry>

</feed>