<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-05-22T14:19:00Z</updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqujme.rss" />
  <link href="https://nostr.ae/npub1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqujme" />
  <id>https://nostr.ae/npub1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqujme</id>
  <icon></icon>
  <logo></logo>


  <title>Nostr notes on nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/web&#43;nostr:nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/titan-glyph</title>
  <link href="https://nostr.ae/r/nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/web&#43;nostr:nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/titan-glyph" />
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/r/nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/web&#43;nostr:nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/titan-glyph.rss" />
  <id>https://nostr.ae/r/nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/web&#43;nostr:nostr.sathoarder.com/yakihhone:nostr.sathoarder.com/titan-glyph</id>
  <icon></icon>
  <logo></logo>



  <entry>
    <id>https://nostr.ae/nevent1qqsz6hvn7uluhlnnp2wfn3vwd0u99lytlckwfgfyacdn8qvzrsgwfmgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzu04yykhwx22vj2y9ntrd68tgt2k22ce5wy6s98xpdfg7wrwj5zs89xxad</id>
    
      <title type="html">Better it is to live one day seeing the rise and fall of things ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz6hvn7uluhlnnp2wfn3vwd0u99lytlckwfgfyacdn8qvzrsgwfmgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzu04yykhwx22vj2y9ntrd68tgt2k22ce5wy6s98xpdfg7wrwj5zs89xxad" />
    <content type="html">
      Better it is to live one day seeing the rise and fall of things than to live a hundred years without ever seeing the rise and fall of things.&lt;br/&gt;&lt;br/&gt;#buddha #hindu #quotes #wisdom #spirituality #philosophy
    </content>
    <updated>2026-05-22T14:19:00Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs83xx5v40v86qaspvtdndvehvu4z0j4kydrfv53u040zcewtwwr3spsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqrv5eu42rjxa55d48ylh4ycxsyg8k68r9zm8v5z7anvqrvh24ltqey2tyv</id>
    
      <title type="html">Right now. I have a AMD 3900x machine with a corsair H100i from ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs83xx5v40v86qaspvtdndvehvu4z0j4kydrfv53u040zcewtwwr3spsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqrv5eu42rjxa55d48ylh4ycxsyg8k68r9zm8v5z7anvqrvh24ltqey2tyv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqq4ynwmy4f6dmy88hlj7ssh7waxx84ctjrqpe42p9rw4rtun2sprdmhxue69uhhg6r9vehhyetnwshxummnw3erztnrdakj7crxh7y&#39;&gt;nevent1q…xh7y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Right now. I have a AMD 3900x machine with a corsair H100i from 2013. It has at least 50,000 hours and counting on it
    </content>
    <updated>2026-05-22T14:17:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs85hxe2z7vnwe5rf97j6n3wxmh6p4p905grhyy9sj4jq956zswulcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqk6y2rq0vzqvg4jxx2xj3zp6f9cq3vpytgzad94nj7nuakzeqfgue2xmfm</id>
    
      <title type="html">PROGRAMMERS DEBUGGING THE APOCALYPSE ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs85hxe2z7vnwe5rf97j6n3wxmh6p4p905grhyy9sj4jq956zswulcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqk6y2rq0vzqvg4jxx2xj3zp6f9cq3vpytgzad94nj7nuakzeqfgue2xmfm" />
    <content type="html">
      PROGRAMMERS DEBUGGING THE APOCALYPSE&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/68821b8094a9f5d97e0438695cba848a71c95664ed48e16cea2fc61828abdddc.jpg&#34;&gt; &lt;br/&gt;ChatGPT, generate the BDD for this.&lt;br/&gt;ChatGPT, generate the code.&lt;br/&gt;Damage runs the BDD.&lt;br/&gt;Fail screenshot.&lt;br/&gt;ChatGPT fixes the breakage.&lt;br/&gt;“Oh sorry blah blah.”&lt;br/&gt;Copy. Paste. Damage. Repeat.&lt;br/&gt;&lt;br/&gt;This is not vibe coding.&lt;br/&gt;This is verified iteration.&lt;br/&gt;&lt;br/&gt;#CopyPasteDamageRepeat #DAMAGE #DamageBDD #BDD #SoftwareTesting #Verification #DevTools #AIEngineering #ECAI
    </content>
    <updated>2026-05-22T14:17:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsd2njj7szr7jsaqs6p58rqztr3kahnueva2g2tsg7cka5q69qxjrcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8uvn5tjd9wz7pres4k9h6uey0j2nma9puvkm99s0h8ykjwdl9uec5k25fx</id>
    
      <title type="html">Cite um desenho animado que marcou sua infância e se possível ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsd2njj7szr7jsaqs6p58rqztr3kahnueva2g2tsg7cka5q69qxjrcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8uvn5tjd9wz7pres4k9h6uey0j2nma9puvkm99s0h8ykjwdl9uec5k25fx" />
    <content type="html">
      Cite um desenho animado que marcou sua infância e se possível diga porque.&lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-05-22T14:17:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvc8fvj05dhxjp07vvcz0ppp874tddeydn2p036j4q599fv2rekxspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg89s9pl0ylyh7q95n0kehqz38349v70pznm8e404tufm4yhhu855cekr9ws</id>
    
      <title type="html">Angela Merkel used her first major speech since leaving office to ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvc8fvj05dhxjp07vvcz0ppp874tddeydn2p036j4q599fv2rekxspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg89s9pl0ylyh7q95n0kehqz38349v70pznm8e404tufm4yhhu855cekr9ws" />
    <content type="html">
      Angela Merkel used her first major speech since leaving office to tell the EU to keep regulating speech online and not worry about getting it wrong. &lt;br/&gt;&lt;br/&gt;&amp;#34;We learn through mistakes,&amp;#34; she said. &lt;br/&gt;&lt;br/&gt;The mistakes she means: satirists censored, opposition leaders silenced, a law her own government built to crush dissent.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://reclaimthenet.org/merkel-eu-speech-regulation-censorship&#34;&gt;https://reclaimthenet.org/merkel-eu-speech-regulation-censorship&lt;/a&gt;
    </content>
    <updated>2026-05-22T14:17:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvddryf08afpvsl3nf0763z9yk9j0emjj9fvmcq9mhe67ul4tf9cqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfus3mya4</id>
    
      <title type="html">e馬さんはけもフレ観て もちろん2もだ</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvddryf08afpvsl3nf0763z9yk9j0emjj9fvmcq9mhe67ul4tf9cqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfus3mya4" />
    <content type="html">
      e馬さんはけもフレ観て&lt;br/&gt;もちろん2もだ
    </content>
    <updated>2026-05-22T14:16:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfxwx98npg42ttrzglcuya34dh23e3ypxghh2k8hh2req4cdy92vcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpps055wkzgr583ynaaj0zkej4ytel9gh8whr2jsj8esfflf9aew5kd3n7k</id>
    
      <title type="html">Ocean is now a top 8 mining pool - more miners are discovering ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfxwx98npg42ttrzglcuya34dh23e3ypxghh2k8hh2req4cdy92vcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpps055wkzgr583ynaaj0zkej4ytel9gh8whr2jsj8esfflf9aew5kd3n7k" />
    <content type="html">
      Ocean is now a top 8 mining pool&lt;br/&gt;&lt;br/&gt;- more miners are discovering how to make their own block templates&lt;br/&gt;- and that Ocean pays out more than other pools, since it has lower admin fees&lt;br/&gt;- plus they offer LN payouts&lt;br/&gt;- and, for large miners, coinbase payouts&lt;br/&gt; &lt;img src=&#34;https://npub1yxp7j36cfqws7yj0hkfu2mx25308u4zua6ud22zglxp98ayhh96s8c399s.blossom.band/566bc84323983cf41b2fbec12117117e283ad9005f49e085dbb519743dab814a.jpg&#34;&gt; 
    </content>
    <updated>2026-05-22T14:16:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy0sg0w75ct9uklx3rx3vrn34j2mg5r8tn0e3fy3hh7qxzuvxl9dqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqsm3pl7mws94dz4dgu8tvx84amj4juych3pr77dfee4cu0a460uqmm452r</id>
    
      <title type="html">GM, may nostr be with you</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy0sg0w75ct9uklx3rx3vrn34j2mg5r8tn0e3fy3hh7qxzuvxl9dqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqsm3pl7mws94dz4dgu8tvx84amj4juych3pr77dfee4cu0a460uqmm452r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg9cfyhehs4apzwwtrf5k8umnyxqclzcnrfwykcm2xezmjag3vshg0q6lqq&#39;&gt;nevent1q…6lqq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;GM, may nostr be with you
    </content>
    <updated>2026-05-22T14:16:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9q334s7s33x8mh7n5t8z694qasleql6has35l5ndz6xmvwk57haqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8s8heagy6zxppqehm6ewe4l94z2sjzgfr2kpft5fxxlmr2f48kwcfhgz53</id>
    
      <title type="html">Block 950523 1 - high priority 1 - medium priority 1 - low ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9q334s7s33x8mh7n5t8z694qasleql6has35l5ndz6xmvwk57haqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8s8heagy6zxppqehm6ewe4l94z2sjzgfr2kpft5fxxlmr2f48kwcfhgz53" />
    <content type="html">
      Block 950523&lt;br/&gt;&lt;br/&gt;1 - high priority&lt;br/&gt;1 - medium priority&lt;br/&gt;1 - low priority&lt;br/&gt;1 - no priority&lt;br/&gt;1 - purging&lt;br/&gt;&lt;br/&gt;#bitcoinfees #mempool
    </content>
    <updated>2026-05-22T14:15:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg9cfyhehs4apzwwtrf5k8umnyxqclzcnrfwykcm2xezmjag3vshgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrqzdfd38caldf85w7nxxj28svm2qrtqr7cmgt4s2ct0l2m563e4uhqlwtw</id>
    
      <title type="html">GM Hope your morning is as bright as your smile 🧡. Have a ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg9cfyhehs4apzwwtrf5k8umnyxqclzcnrfwykcm2xezmjag3vshgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrqzdfd38caldf85w7nxxj28svm2qrtqr7cmgt4s2ct0l2m563e4uhqlwtw" />
    <content type="html">
      GM Hope your morning is as bright as your smile 🧡. Have a great day!
    </content>
    <updated>2026-05-22T14:15:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8hgfzwsjy3qzkxnl8rqlfmrln6zy3w2wurn6du76hkl7y9n9uecgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqcjpws5htz82up4x96nrzc902l2le9qmrtszystlzen4dqkg5mpqre0wp0</id>
    
      <title type="html">100% these two are having an affair behind Melanie’s back</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8hgfzwsjy3qzkxnl8rqlfmrln6zy3w2wurn6du76hkl7y9n9uecgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqcjpws5htz82up4x96nrzc902l2le9qmrtszystlzen4dqkg5mpqre0wp0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0nafzgy7tl5pt29z2t5jnxz8rc4sj935su8uqsqynecrszcq2wsqjtnqax&#39;&gt;nevent1q…nqax&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;100% these two are having an affair behind Melanie’s back
    </content>
    <updated>2026-05-22T14:15:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszsp94rjeszvjk97cu7fyj7v5m6nhxsk9r0fu2lyrdxenzu4feazcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqcjpws5htz82up4x96nrzc902l2le9qmrtszystlzen4dqkg5mpqhvfmfy</id>
    
      <title type="html">*Melania</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszsp94rjeszvjk97cu7fyj7v5m6nhxsk9r0fu2lyrdxenzu4feazcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqcjpws5htz82up4x96nrzc902l2le9qmrtszystlzen4dqkg5mpqhvfmfy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8hgfzwsjy3qzkxnl8rqlfmrln6zy3w2wurn6du76hkl7y9n9uecgc7utrv&#39;&gt;nevent1q…utrv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;*Melania 
    </content>
    <updated>2026-05-22T14:15:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsve5knuqjyyvzhv2lzaxz4kwveg6w2vwxv0r4ejayukke7fmz0pnspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg93xwlu27ldv8per48gl9fmjpk879cfcsudj8r4ldk6772yn4tcn5vc0pmj</id>
    
      <title type="html">You can try to eat a miner or a node tho</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsve5knuqjyyvzhv2lzaxz4kwveg6w2vwxv0r4ejayukke7fmz0pnspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg93xwlu27ldv8per48gl9fmjpk879cfcsudj8r4ldk6772yn4tcn5vc0pmj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdayx0uwa52pueqqsnjh4raxehm5z0tq9edfur742mkhkhgcmej5gpzamhxue69uhhgmms9e6x2um5wfjkccte9e6x7uqnv8tn5&#39;&gt;nevent1q…8tn5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You can try to eat a miner or a node tho
    </content>
    <updated>2026-05-22T14:15:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfvgypywk0jj4sexd87krsjtqa8walt60axajpqjxt7s7nvqy8gxqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygxzmjkvf0pal6t8qeulnwntmy9v2ux37855h6lxrcfrfad4nmzw45jell5e</id>
    
      <title type="html">Por @nprofile…85ln O GrapheneOS não é recomendado para ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfvgypywk0jj4sexd87krsjtqa8walt60axajpqjxt7s7nvqy8gxqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygxzmjkvf0pal6t8qeulnwntmy9v2ux37855h6lxrcfrfad4nmzw45jell5e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8ttxddjn7d4ttv46202gkey9qhdexlhuvuq4q8ddr8qa7rf263tcpr4mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mf0605qmj&#39;&gt;nevent1q…5qmj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Por &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsw02gjjrh3r29y3g0sx09unzz7dnjvxcc8eajm9l6f3du5alg7cacprdmhxue69uhhsmtj9e5hg6r4wf68xamgv4hxjupwv4jj7qgkwaehxw309ahx7um5wgh8smtj9eex7cmtwvhsz9mhwden5te00pkhytn4wdjkummnw3ezummjvuhsec85ln&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;𝗣𝗮𝗿𝗮𝗱𝗼𝘅𝗼&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…85ln&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;O GrapheneOS não é recomendado para aparelhos antigos que não sejam Google Pixel&lt;br/&gt;&lt;br/&gt;Aparelhos Antigos&lt;br/&gt;O uso do GrapheneOS em hardware antigo ou fora da lista de compatibilidade oficial envolve sérios riscos de segurança e problemas de funcionamento. Não se trata apenas de desempenho, mas de falhas impossíveis de corrigir:&lt;br/&gt;&lt;br/&gt;Falhas de Segurança Permanentes (Firmware): A maioria das vulnerabilidades críticas está no firmware (conjunto de instruções do hardware). Como esses códigos são assinados digitalmente pelo fabricante original, nem o GrapheneOS nem qualquer outro sistema pode corrigi-los. Após a fabricante parar de lançar atualizações (Fim da Vida - EOL), o dispositivo fica permanentemente vulnerável&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;O GrapheneOS não é desenvolvido para funcionar em celulares Samsung, Xiaomi ou Motorola.&lt;br/&gt;&lt;br/&gt;Aparelhos Novos &lt;br/&gt;Mesmo nos celulares mais modernos e oficialmente suportados (Pixel 6, 7, 8, 9), bugs e erros ainda podem ocorrer. Os relatos recentes da comunidade incluem:&lt;br/&gt;    • Panic do Kernel e Travamentos (Pixel 9): Usuários do Pixel 9 (mais novo hardware) relataram reinicializações aleatórias e travamentos. Investigações apontaram para um &amp;#34;Kernel Panic&amp;#34; (erro grave do sistema) relacionado ao driver do controlador de memória da tela (Display IOMMU), indicando uma instabilidade de baixo nível do software .&lt;br/&gt;    • Drenagem de Bateria: Após algumas atualizações, diversos usuários (Pixel 6, 7a, 8, 9 Pro) relataram piora significativa na duração da bateria. Em alguns casos, a bateria que durava o dia todo passou a precisar de recarga no meio da tarde .&lt;br/&gt;    • Boot Loop e Perda de Dados (Pixel 8): Um erro grave foi documentado onde o sistema entra em &amp;#34;boot loop&amp;#34; (reinicia infinitamente) ou trava em uma tela sem teclado para desbloquear. Isso foi associado ao armazenamento interno cheio, impedindo o sistema de iniciar corretamente após uma atualização. Nesse estado, o usuário corre o risco de perder todos os dados se não conseguir uma recuperação manual .&lt;br/&gt;    • Problemas Específicos de Atualizações:&lt;br/&gt;        ◦ Haptics (Vibração): Usuários do Pixel 8 notaram que a vibração dos botões ficou &amp;#34;estranha&amp;#34; e com eco após uma atualização .&lt;br/&gt;        ◦ Apps em Perfis Secundários: Em uma versão específica (2025030800), o aplicativo de mensagens parou de funcionar em perfis secundários, embora funcionasse normalmente no perfil &amp;#34;Dono&amp;#34; .&lt;br/&gt;        ◦ SCRCPY (Espelhamento): A mesma versão quebrou a funcionalidade do SCRCPY (ferramenta de espelhamento de tela para PC)&lt;br/&gt;
    </content>
    <updated>2026-05-22T14:14:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszgtmynnag358xvs7ydaknvkr42964wq2k5r62k46q4knlfhlls0cpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygq6rpwuskv76v44j6029aln8vtexyxu5huud5py7er4xuwrdxwlhsqy5kcs</id>
    
      <title type="html">Image astronomique du jour 22 mai 2026 Le royaume nébuleux de WR ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszgtmynnag358xvs7ydaknvkr42964wq2k5r62k46q4knlfhlls0cpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygq6rpwuskv76v44j6029aln8vtexyxu5huud5py7er4xuwrdxwlhsqy5kcs" />
    <content type="html">
      Image astronomique du jour&lt;br/&gt;&lt;br/&gt;22 mai 2026&lt;br/&gt;&lt;br/&gt;Le royaume nébuleux de WR 134&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://npub1rgv9mjzenmfjkktfaghh7va30ycsmjjln3ksynmyw5m3cd5em77ql2av9x.blossom.band/2a61bc66ca462ea990940c8b0a2393ee6ef9c9eedfe7431ea670c552c59780e4.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;Crédit image et droits d&amp;#39;auteur : Luigi Morrone et Telescope Live&lt;br/&gt;&lt;br/&gt;Explication : Ce cliché cosmique couvre un champ de vision plus de deux fois plus large que la pleine Lune, au sein de la constellation du Cygne. Réalisée à l&amp;#39;aide de filtres astronomiques à bande étroite, l&amp;#39;image met en évidence le bord lumineux d&amp;#39;une nébuleuse annulaire, tracé par la lueur d&amp;#39;hydrogène et d&amp;#39;oxygène ionisés. Nichés dans l&amp;#39;immensité des nuages interstellaires de la région, les arcs lumineux complexes sont des fragments de matière balayés par le vent stellaire de l&amp;#39;étoile Wolf-Rayet WR 134, l&amp;#39;étoile la plus brillante près du centre de l&amp;#39;image. Les estimations de distance situent WR 134 à environ 6 000 années-lumière, ce qui confère à cette image télescopique un diamètre de plus de 100 années-lumière. Se débarrassant de leurs enveloppes externes grâce à de puissants vents stellaires, les étoiles Wolf-Rayet massives ont consommé leur combustible nucléaire à une vitesse prodigieuse et achèvent leur dernière phase d&amp;#39;évolution stellaire massive par une spectaculaire supernova. Leurs vents stellaires et leur explosion finale en supernova enrichissent la matière interstellaire en éléments lourds qui seront incorporés dans les futures générations d&amp;#39;étoiles.&lt;br/&gt;&lt;br/&gt;Auteurs et éditeurs : Robert Nemiroff (MTU) et Jerry Bonnell (UMCP)&lt;br/&gt;Représentante de la NASA : Amber Straughn&lt;br/&gt;Source : APOD - NASA&lt;br/&gt;Adresse internet : &lt;a href=&#34;https://apod.nasa.gov/apod/ap260522.html⁠&#34;&gt;https://apod.nasa.gov/apod/ap260522.html⁠&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#APOD #Astronomie #Espace #NASA&lt;br/&gt;#Astrophotographie #Nostrfr
    </content>
    <updated>2026-05-22T14:14:11Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz7tc5yuuyvajhgkteec73c9gcfd22zfe60wuj2lyyrrxq9pd8l8gpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqcjpws5htz82up4x96nrzc902l2le9qmrtszystlzen4dqkg5mpqdpq4vh</id>
    
      <title type="html">GM EvilDood sounds wise</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz7tc5yuuyvajhgkteec73c9gcfd22zfe60wuj2lyyrrxq9pd8l8gpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqcjpws5htz82up4x96nrzc902l2le9qmrtszystlzen4dqkg5mpqdpq4vh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdzx0lqcv9qz3c0rlmsqzcd2euntvk5ugvayzlg92juvgdf0ecy2sqe55wq&#39;&gt;nevent1q…55wq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;GM&lt;br/&gt;EvilDood sounds wise
    </content>
    <updated>2026-05-22T14:14:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszavr2veuv4s7wshcr3q5klsftdxjzshuu9dpk8yly3d5wg9qwvmcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8qj65fa6ussgyftfkl6leknmp3xe2w2a3wqsk4ntgxjdm9jdg50y3tacn2</id>
    
      <title type="html">Same. I rarely eat pizza</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszavr2veuv4s7wshcr3q5klsftdxjzshuu9dpk8yly3d5wg9qwvmcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8qj65fa6ussgyftfkl6leknmp3xe2w2a3wqsk4ntgxjdm9jdg50y3tacn2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyqg9p2gsve82lujhkfy3sdy0pe3yedqntyfjf38ch95w942hlffcze0g9s&#39;&gt;nevent1q…0g9s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Same. I rarely eat pizza 
    </content>
    <updated>2026-05-22T14:13:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw35w80uyufpuzwl0k3gm523q60ng2fxhr538tphd674nn7sfr4kcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8qj65fa6ussgyftfkl6leknmp3xe2w2a3wqsk4ntgxjdm9jdg50ydyqnq2</id>
    
      <title type="html">Noooooo</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw35w80uyufpuzwl0k3gm523q60ng2fxhr538tphd674nn7sfr4kcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8qj65fa6ussgyftfkl6leknmp3xe2w2a3wqsk4ntgxjdm9jdg50ydyqnq2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxsxr6u3ee0vpxfjwuqkkuuzd2vpp5u9lxcxrwc7wt04evjj0n6yqsqxjng&#39;&gt;nevent1q…xjng&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Noooooo
    </content>
    <updated>2026-05-22T14:12:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdayx0uwa52pueqqsnjh4raxehm5z0tq9edfur742mkhkhgcmej5gpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygr472s576wrs76tnv0a5zv87jcuys859g62vnzpzgjd6er5d42v0ydc6nqr</id>
    
      <title>Nostr event nevent1qqsdayx0uwa52pueqqsnjh4raxehm5z0tq9edfur742mkhkhgcmej5gpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygr472s576wrs76tnv0a5zv87jcuys859g62vnzpzgjd6er5d42v0ydc6nqr</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdayx0uwa52pueqqsnjh4raxehm5z0tq9edfur742mkhkhgcmej5gpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygr472s576wrs76tnv0a5zv87jcuys859g62vnzpzgjd6er5d42v0ydc6nqr" />
    <content type="html">
      You can’t eat a bitcoin 
    </content>
    <updated>2026-05-22T14:12:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvtg6npkpvcyh2rk5kynwrq7h4quyy23egr2f5vvvfut5e0f2dcjcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfur35h0u</id>
    
      <title>Nostr event nevent1qqsvtg6npkpvcyh2rk5kynwrq7h4quyy23egr2f5vvvfut5e0f2dcjcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfur35h0u</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvtg6npkpvcyh2rk5kynwrq7h4quyy23egr2f5vvvfut5e0f2dcjcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfur35h0u" />
    <content type="html">
      ねぇワシのモッツァトマトいつ来るの？？？？？？
    </content>
    <updated>2026-05-22T14:12:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxd8yqqnnyps9yduv9us689cjgsp9vs3zp7gzw5pdr3pz79myfnwqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8uvn5tjd9wz7pres4k9h6uey0j2nma9puvkm99s0h8ykjwdl9uecpuhhsl</id>
    
      <title type="html">Realmente ele entrou pra história ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxd8yqqnnyps9yduv9us689cjgsp9vs3zp7gzw5pdr3pz79myfnwqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8uvn5tjd9wz7pres4k9h6uey0j2nma9puvkm99s0h8ykjwdl9uecpuhhsl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstgkqkmmsxpv3ulq6fdmd9u3xy5qls0gthjj6jsrdz7zx2hemj0pspzpmhxue69uhkummnw3ezumt0d5hsnjahym&#39;&gt;nevent1q…ahym&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Realmente ele entrou pra história 🤔👏🏾👏🏾👏🏾👏🏾
    </content>
    <updated>2026-05-22T14:11:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqq9jrhs4yvyvdf5chule687x8uxmjpaqercask763jkt395xfpjqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu48z9u7</id>
    
      <title>Nostr event nevent1qqsqq9jrhs4yvyvdf5chule687x8uxmjpaqercask763jkt395xfpjqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu48z9u7</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqq9jrhs4yvyvdf5chule687x8uxmjpaqercask763jkt395xfpjqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu48z9u7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfkcranyccgqnmwy3hnk8p3s04wnae63zwpesjhfn50xxucjct98g45lk27&#39;&gt;nevent1q…lk27&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://video.nostr.build/e55fe324b231009141e9f3635c06c68a91b0b77f30f15b23a73a35315d11564a.mp4&#34;&gt;&lt;/video&gt;
    </content>
    <updated>2026-05-22T14:10:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv7p2smnwhrm6n4fs6jq49mhhcfxd52nez9jag5nln99y2f2lujpcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8s8heagy6zxppqehm6ewe4l94z2sjzgfr2kpft5fxxlmr2f48kwcgygply</id>
    
      <title type="html">Block 950522 1 - high priority 1 - medium priority 1 - low ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv7p2smnwhrm6n4fs6jq49mhhcfxd52nez9jag5nln99y2f2lujpcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8s8heagy6zxppqehm6ewe4l94z2sjzgfr2kpft5fxxlmr2f48kwcgygply" />
    <content type="html">
      Block 950522&lt;br/&gt;&lt;br/&gt;1 - high priority&lt;br/&gt;1 - medium priority&lt;br/&gt;1 - low priority&lt;br/&gt;1 - no priority&lt;br/&gt;1 - purging&lt;br/&gt;&lt;br/&gt;#bitcoinfees #mempool
    </content>
    <updated>2026-05-22T14:10:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsygx6cq235wfsxxa32wj57ljmrnl4f8q4dsw5zpq6yfw0el6ntetcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg88h7x66dsg9rcz3xmmf04p5x7j36mdf4jj97shl9t7phac88hnmv039v97</id>
    
      <title type="html">Block 950522 1 - high priority 1 - medium priority 1 - low ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsygx6cq235wfsxxa32wj57ljmrnl4f8q4dsw5zpq6yfw0el6ntetcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg88h7x66dsg9rcz3xmmf04p5x7j36mdf4jj97shl9t7phac88hnmv039v97" />
    <content type="html">
      Block 950522&lt;br/&gt;&lt;br/&gt;1 - high priority&lt;br/&gt;1 - medium priority&lt;br/&gt;1 - low priority&lt;br/&gt;1 - no priority&lt;br/&gt;1 - purging&lt;br/&gt;&lt;br/&gt;#bitcoinfees #mempool
    </content>
    <updated>2026-05-22T14:10:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstsdym4p7706ufccut942jfuqt43wqz2enrs7j0l7c33z5afxf8kcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfu72gr7e</id>
    
      <title>Nostr event nevent1qqstsdym4p7706ufccut942jfuqt43wqz2enrs7j0l7c33z5afxf8kcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfu72gr7e</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstsdym4p7706ufccut942jfuqt43wqz2enrs7j0l7c33z5afxf8kcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygrac9nhzyhst6h5j4rcqe2rk8qqdn3j2uncu543ex4l7ce8pmtsfu72gr7e" />
    <content type="html">
      全てのファミレスは店内Wifiを充実させろ
    </content>
    <updated>2026-05-22T14:09:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfwrvlsr5pjtduzv4ysskay5vam4wwmp2uuggegjvxqypjj948tmqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyd4r9w4</id>
    
      <title>Nostr event nevent1qqsfwrvlsr5pjtduzv4ysskay5vam4wwmp2uuggegjvxqypjj948tmqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyd4r9w4</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfwrvlsr5pjtduzv4ysskay5vam4wwmp2uuggegjvxqypjj948tmqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyd4r9w4" />
    <content type="html">
        &lt;img src=&#34;https://blossom.primal.net/303646d555c472d07e2ed985744cb22d156fdb64ec40536cf1bfd388da3e2e8a.png&#34;&gt;  
    </content>
    <updated>2026-05-22T14:09:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq2fk8s8n8lzzjszvysqhzwsv20n0khv3wfcztdqsy4aytle52erspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8eq9sk7q9x8a8ec7yp6jr35q7l84xwuu53at7h4h97af7ft3vwyudvz775</id>
    
      <title type="html">Are there still domains left where they can be reached?</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq2fk8s8n8lzzjszvysqhzwsv20n0khv3wfcztdqsy4aytle52erspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8eq9sk7q9x8a8ec7yp6jr35q7l84xwuu53at7h4h97af7ft3vwyudvz775" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstn2dsueu0tamq9rpe8lfq272r9qlfqgguel7rtgg26nm8raedf4qpr3mhxue69uhkycmpwd6zuemfwf5kumewdaexwtmjv9mx2msl9gtjz&#39;&gt;nevent1q…gtjz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Are there still domains left where they can be reached?
    </content>
    <updated>2026-05-22T14:08:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs89zhq900qv6c963yxr9xklyu2u7z3k9kl8x9y9e74zzl6cd3xd4qpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqrv5eu42rjxa55d48ylh4ycxsyg8k68r9zm8v5z7anvqrvh24ltqqss806</id>
    
      <title type="html">AIOs did very very well for me. I ran 130w TDP chips on single ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs89zhq900qv6c963yxr9xklyu2u7z3k9kl8x9y9e74zzl6cd3xd4qpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygqrv5eu42rjxa55d48ylh4ycxsyg8k68r9zm8v5z7anvqrvh24ltqqss806" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqyax4ycwwywwfu4sf2yaguxvysl2dxepkur0j68kzw35wud03cprdmhxue69uhhg6r9vehhyetnwshxummnw3erztnrdakj7pxxu7h&#39;&gt;nevent1q…xu7h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;AIOs did very very well for me. I ran 130w TDP chips on single 120m systems that were 10 years old. Zero fucks given, never broke 60*c on good IHS chips (no intel pasted IHS). I got this big ass Dark Rock thing as a gift and it&amp;#39;s fucking gigantic. It&amp;#39;s cool, but nowhere near as compact and move friendly. &lt;br/&gt;&lt;br/&gt;Bother AIO&amp;#39;s more expensive than a Noctua? WTF happened. I&amp;#39;m running $40 Cooler-master units on my &amp;#34;test&amp;#34; rigs right now. 
    </content>
    <updated>2026-05-22T14:07:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyl7tmxvpkcca5ktpnp6pz0haxhmr8gn28u69eks39r9hhjcywf7cpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg88j37unzhrgkp8y60ctg7dx6knd6rff8uyq20m4ydfdgtechxt9yrywrqh</id>
    
      <title type="html">SAME 🤝</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyl7tmxvpkcca5ktpnp6pz0haxhmr8gn28u69eks39r9hhjcywf7cpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg88j37unzhrgkp8y60ctg7dx6knd6rff8uyq20m4ydfdgtechxt9yrywrqh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq87ck0t7a0au0hvnvtvhamen85hlvqdh9hh79nsa9acd3aqdasu7nx8m&#39;&gt;nevent1q…nx8m&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;SAME 🤝
    </content>
    <updated>2026-05-22T14:07:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqqpmen9m254nc80w2kpt7h3ppjg3qpu0cfed43kvdau5e5nndqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpu2kggpaj8qa9x8r5ucm2vfpaqd0atsyzq924e5eu5ldy6q5c48cpvx9ee</id>
    
      <title type="html">Pack it up go home it was fun while it lasted.</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqqpmen9m254nc80w2kpt7h3ppjg3qpu0cfed43kvdau5e5nndqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpu2kggpaj8qa9x8r5ucm2vfpaqd0atsyzq924e5eu5ldy6q5c48cpvx9ee" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs08emnq0tjqkcey86hx58hxytctp8nl4f5c9gzald44lnyq2sgxpqpz3mhxue69uhkummnw3ezummcw3ezuer9wcxlxl6v&#39;&gt;nevent1q…xl6v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Pack it up go home it was fun while it lasted.
    </content>
    <updated>2026-05-22T14:07:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqp678em0dx9spldwrat0ajsutcrfur6uk786ka64l4asgqhlvrcqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyyrz6ur</id>
    
      <title>Nostr event nevent1qqsqp678em0dx9spldwrat0ajsutcrfur6uk786ka64l4asgqhlvrcqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyyrz6ur</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqp678em0dx9spldwrat0ajsutcrfur6uk786ka64l4asgqhlvrcqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyyrz6ur" />
    <content type="html">
        &lt;img src=&#34;https://blossom.primal.net/cf9a2261f146e31e5bcb55972dcc7d45c1f4f30f979b8947329e2e709df0fca3.png&#34;&gt;  
    </content>
    <updated>2026-05-22T14:06:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqst0hdfm9yx9mfzpdyu9tz9g0rznn27c54t5usclc5l0gq68q8qvmspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzxcx4gvm5za9eh2kf7ts78ej82hqjdk7xvy8htljp6l3mcy3mujv2qu57x</id>
    
      <title type="html">Circular economy, not dumping. Spend where it builds network ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqst0hdfm9yx9mfzpdyu9tz9g0rznn27c54t5usclc5l0gq68q8qvmspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzxcx4gvm5za9eh2kf7ts78ej82hqjdk7xvy8htljp6l3mcy3mujv2qu57x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfkcranyccgqnmwy3hnk8p3s04wnae63zwpesjhfn50xxucjct98g45lk27&#39;&gt;nevent1q…lk27&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Circular economy, not dumping. Spend where it builds network gravity — where the merchant stays in Bitcoin, not exits to fiat. Velocity with purpose.
    </content>
    <updated>2026-05-22T14:06:09Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqxr5dk2ah2ape7gj4lpu54vp4p6mqyzntjul2qtauwplmvp25qpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpwl2n3twa5dh2mu6ma4rthqqnx6yt8fwgnhqtc4hd4ctnrmxrnxyjp5fwp</id>
    
      <title type="html">#nevent1q…4l6l</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqxr5dk2ah2ape7gj4lpu54vp4p6mqyzntjul2qtauwplmvp25qpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpwl2n3twa5dh2mu6ma4rthqqnx6yt8fwgnhqtc4hd4ctnrmxrnxyjp5fwp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx577ltpyl88nxvtf2038uvsxnyv0qtcrxj9jpc5gfmywzgza2u0spr3mhxue69uhkummnw3ezucmvda6kgtnkd9hxuete9eu8j7sjyd2jy&#39;&gt;nevent1q…d2jy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsqcujy24rgkx5psnnc7rem0jajep85735fjw4wn8e9n4mkx3fdtmgpzemhxue69uhkzem8wghxummnw3ezumrpdejz7q3q9ma2w9dmk3kat0nt0k5dwuqzvmg3va9ezwup0zkakhpwv0vcwvcsxpqqqqqqzhx4l6l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…4l6l&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; below this quote is a nostr client. save it as html and open it in your browser. see &lt;a href=&#34;https://github.com/vcavallo/nostr-hypermedia/blob/hateoas-js/hateoas-js-readme.md&#34;&gt;https://github.com/vcavallo/nostr-hypermedia/blob/hateoas-js/hateoas-js-readme.md&lt;/a&gt; for more information&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzqth65u2mhdrd6klxkldg6acqyek3ze6tjyacz79dmdwzuc7esue3qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy88wumn8ghj7mn0wvhxcmmv9uqzpqld9jnemvqzh9fe4mpsw7vmq6edmk7thshec5x4z75uud8ky352klatxz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…atxz&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;!DOCTYPE html&gt;&lt;br/&gt;&lt;html lang=&#34;en&#34;&gt;&lt;br/&gt;&lt;head&gt;&lt;br/&gt;  &lt;meta charset=&#34;UTF-8&#34;&gt;&lt;br/&gt;  &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;&lt;br/&gt;  &lt;title&gt;Malleable UI - Client-Side Nostr Hypermedia&lt;/title&gt;&lt;br/&gt;&lt;br/&gt;  &lt;!-- Alpine.js for reactivity --&gt;&lt;br/&gt;  &lt;script defer src=&#34;&lt;a href=&#34;https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js&#34;&gt;https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js&lt;/a&gt;&#34;&gt;&lt;/script&gt;&lt;br/&gt;&lt;br/&gt;  &lt;style&gt;&lt;br/&gt;    * { box-sizing: border-box; margin: 0; padding: 0; }&lt;br/&gt;&lt;br/&gt;    body {&lt;br/&gt;      font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, sans-serif;&lt;br/&gt;      line-height: 1.6;&lt;br/&gt;      color: #e0e0e0;&lt;br/&gt;      background: #0d1117;&lt;br/&gt;      min-height: 100vh;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .app {&lt;br/&gt;      max-width: 900px;&lt;br/&gt;      margin: 0 auto;&lt;br/&gt;      padding: 20px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    header {&lt;br/&gt;      background: linear-gradient(135deg, #238636 0%, #1f6feb 100%);&lt;br/&gt;      color: white;&lt;br/&gt;      padding: 24px;&lt;br/&gt;      border-radius: 8px;&lt;br/&gt;      margin-bottom: 20px;&lt;br/&gt;      text-align: center;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    header h1 { font-size: 24px; margin-bottom: 4px; }&lt;br/&gt;    header .subtitle { opacity: 0.9; font-size: 14px; }&lt;br/&gt;&lt;br/&gt;    .controls {&lt;br/&gt;      background: #161b22;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      border-radius: 8px;&lt;br/&gt;      padding: 16px;&lt;br/&gt;      margin-bottom: 20px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .controls label {&lt;br/&gt;      display: block;&lt;br/&gt;      font-size: 13px;&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      margin-bottom: 6px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .controls input {&lt;br/&gt;      width: 100%;&lt;br/&gt;      padding: 10px 12px;&lt;br/&gt;      background: #0d1117;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      border-radius: 6px;&lt;br/&gt;      color: #e0e0e0;&lt;br/&gt;      font-size: 14px;&lt;br/&gt;      font-family: monospace;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .controls input:focus {&lt;br/&gt;      outline: none;&lt;br/&gt;      border-color: #238636;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .controls .actions {&lt;br/&gt;      margin-top: 12px;&lt;br/&gt;      display: flex;&lt;br/&gt;      gap: 10px;&lt;br/&gt;      flex-wrap: wrap;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .btn {&lt;br/&gt;      padding: 8px 16px;&lt;br/&gt;      border: none;&lt;br/&gt;      border-radius: 6px;&lt;br/&gt;      font-size: 14px;&lt;br/&gt;      cursor: pointer;&lt;br/&gt;      transition: background 0.2s;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .btn-primary {&lt;br/&gt;      background: #238636;&lt;br/&gt;      color: white;&lt;br/&gt;    }&lt;br/&gt;    .btn-primary:hover { background: #2ea043; }&lt;br/&gt;    .btn-primary:disabled { background: #21262d; color: #484f58; cursor: not-allowed; }&lt;br/&gt;&lt;br/&gt;    .btn-secondary {&lt;br/&gt;      background: #21262d;&lt;br/&gt;      color: #c9d1d9;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;    }&lt;br/&gt;    .btn-secondary:hover { background: #30363d; }&lt;br/&gt;&lt;br/&gt;    .status {&lt;br/&gt;      display: flex;&lt;br/&gt;      align-items: center;&lt;br/&gt;      gap: 8px;&lt;br/&gt;      font-size: 13px;&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      margin-top: 12px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .status-dot {&lt;br/&gt;      width: 8px;&lt;br/&gt;      height: 8px;&lt;br/&gt;      border-radius: 50%;&lt;br/&gt;      background: #484f58;&lt;br/&gt;    }&lt;br/&gt;    .status-dot.connected { background: #238636; }&lt;br/&gt;    .status-dot.loading { background: #f0883e; animation: pulse 1s infinite; }&lt;br/&gt;    .status-dot.error { background: #f85149; }&lt;br/&gt;&lt;br/&gt;    @keyframes pulse {&lt;br/&gt;      0%, 100% { opacity: 1; }&lt;br/&gt;      50% { opacity: 0.5; }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .error-box {&lt;br/&gt;      background: #f8514922;&lt;br/&gt;      border: 1px solid #f85149;&lt;br/&gt;      color: #f85149;&lt;br/&gt;      padding: 12px 16px;&lt;br/&gt;      border-radius: 6px;&lt;br/&gt;      margin-bottom: 20px;&lt;br/&gt;      font-size: 14px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .event-meta {&lt;br/&gt;      background: #161b22;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      border-radius: 8px;&lt;br/&gt;      padding: 16px;&lt;br/&gt;      margin-bottom: 20px;&lt;br/&gt;      font-size: 13px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .event-meta dt {&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      font-weight: 500;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .event-meta dd {&lt;br/&gt;      color: #c9d1d9;&lt;br/&gt;      font-family: monospace;&lt;br/&gt;      margin-bottom: 8px;&lt;br/&gt;      word-break: break-all;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .raw-json {&lt;br/&gt;      background: #0d1117;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      border-radius: 6px;&lt;br/&gt;      padding: 12px;&lt;br/&gt;      font-family: monospace;&lt;br/&gt;      font-size: 12px;&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      white-space: pre-wrap;&lt;br/&gt;      overflow-x: auto;&lt;br/&gt;      max-height: 200px;&lt;br/&gt;      overflow-y: auto;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    /* Rendered UI styles */&lt;br/&gt;    .rendered-ui {&lt;br/&gt;      background: #161b22;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      border-radius: 8px;&lt;br/&gt;      padding: 20px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-card {&lt;br/&gt;      background: #0d1117;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      border-radius: 8px;&lt;br/&gt;      padding: 20px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-heading {&lt;br/&gt;      font-size: 22px;&lt;br/&gt;      font-weight: 600;&lt;br/&gt;      color: #e0e0e0;&lt;br/&gt;      margin: 16px 0 8px 0;&lt;br/&gt;    }&lt;br/&gt;    .ui-heading:first-child { margin-top: 0; }&lt;br/&gt;&lt;br/&gt;    .ui-text {&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      margin: 8px 0;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-image {&lt;br/&gt;      max-width: 100%;&lt;br/&gt;      border-radius: 8px;&lt;br/&gt;      margin: 12px 0;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-link {&lt;br/&gt;      color: #58a6ff;&lt;br/&gt;      text-decoration: none;&lt;br/&gt;    }&lt;br/&gt;    .ui-link:hover { text-decoration: underline; }&lt;br/&gt;&lt;br/&gt;    .ui-container {&lt;br/&gt;      margin: 12px 0;&lt;br/&gt;    }&lt;br/&gt;    .ui-container.options {&lt;br/&gt;      display: flex;&lt;br/&gt;      gap: 10px;&lt;br/&gt;      flex-wrap: wrap;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-button {&lt;br/&gt;      background: #238636;&lt;br/&gt;      color: white;&lt;br/&gt;      border: none;&lt;br/&gt;      padding: 10px 20px;&lt;br/&gt;      border-radius: 6px;&lt;br/&gt;      cursor: pointer;&lt;br/&gt;      font-size: 14px;&lt;br/&gt;    }&lt;br/&gt;    .ui-button:hover { background: #2ea043; }&lt;br/&gt;    .ui-button:disabled { background: #21262d; color: #484f58; cursor: wait; }&lt;br/&gt;&lt;br/&gt;    .ui-input {&lt;br/&gt;      background: #0d1117;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      color: #e0e0e0;&lt;br/&gt;      padding: 10px 12px;&lt;br/&gt;      border-radius: 6px;&lt;br/&gt;      width: 100%;&lt;br/&gt;      margin: 8px 0;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-label {&lt;br/&gt;      display: block;&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      font-size: 13px;&lt;br/&gt;      margin: 8px 0 4px 0;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-hr {&lt;br/&gt;      border: none;&lt;br/&gt;      border-top: 1px solid #30363d;&lt;br/&gt;      margin: 16px 0;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-data {&lt;br/&gt;      background: #0d1117;&lt;br/&gt;      padding: 6px 10px;&lt;br/&gt;      border-radius: 4px;&lt;br/&gt;      font-family: monospace;&lt;br/&gt;      font-size: 13px;&lt;br/&gt;      color: #58a6ff;&lt;br/&gt;      display: inline-block;&lt;br/&gt;      margin: 4px 0;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .ui-data-label {&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      margin-right: 6px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .user-info {&lt;br/&gt;      background: #161b22;&lt;br/&gt;      border: 1px solid #30363d;&lt;br/&gt;      border-radius: 8px;&lt;br/&gt;      padding: 12px 16px;&lt;br/&gt;      margin-bottom: 20px;&lt;br/&gt;      display: flex;&lt;br/&gt;      align-items: center;&lt;br/&gt;      justify-content: space-between;&lt;br/&gt;      font-size: 13px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .user-info .pubkey {&lt;br/&gt;      font-family: monospace;&lt;br/&gt;      color: #58a6ff;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .demo-specs {&lt;br/&gt;      margin-top: 20px;&lt;br/&gt;      padding-top: 20px;&lt;br/&gt;      border-top: 1px solid #30363d;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .demo-specs h3 {&lt;br/&gt;      font-size: 14px;&lt;br/&gt;      color: #8b949e;&lt;br/&gt;      margin-bottom: 10px;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    .demo-specs .examples {&lt;br/&gt;      display: flex;&lt;br/&gt;      gap: 8px;&lt;br/&gt;      flex-wrap: wrap;&lt;br/&gt;    }&lt;br/&gt;  &lt;/style&gt;&lt;br/&gt;&lt;/head&gt;&lt;br/&gt;&lt;body&gt;&lt;br/&gt;  &lt;div class=&#34;app&#34; x-data=&#34;malleableApp()&#34;&gt;&lt;br/&gt;    &lt;header&gt;&lt;br/&gt;      &lt;h1&gt;Malleable UI&lt;/h1&gt;&lt;br/&gt;      &lt;div class=&#34;subtitle&#34;&gt;Client-side Nostr hypermedia - no server required&lt;/div&gt;&lt;br/&gt;    &lt;/header&gt;&lt;br/&gt;&lt;br/&gt;    &lt;!-- User connection status --&gt;&lt;br/&gt;    &lt;div class=&#34;user-info&#34; x-show=&#34;userPubkey&#34;&gt;&lt;br/&gt;      &lt;span&gt;Connected as: &lt;span class=&#34;pubkey&#34; x-text=&#34;userPubkey ? userPubkey.slice(0, 8) &#43; &#39;...&#39; &#43; userPubkey.slice(-4) : &#39;&#39;&#34;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;      &lt;button class=&#34;btn btn-secondary&#34; @click=&#34;disconnect()&#34;&gt;Disconnect&lt;/button&gt;&lt;br/&gt;    &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;    &lt;div class=&#34;user-info&#34; x-show=&#34;!userPubkey&#34;&gt;&lt;br/&gt;      &lt;span&gt;Not connected - actions require NIP-07 extension&lt;/span&gt;&lt;br/&gt;      &lt;button class=&#34;btn btn-primary&#34; @click=&#34;connect()&#34;&gt;Connect&lt;/button&gt;&lt;br/&gt;    &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;    &lt;!-- Controls --&gt;&lt;br/&gt;    &lt;div class=&#34;controls&#34;&gt;&lt;br/&gt;      &lt;label for=&#34;event-id&#34;&gt;Event ID, nevent, naddr, or note (or paste a UI spec JSON)&lt;/label&gt;&lt;br/&gt;      &lt;input&lt;br/&gt;        type=&#34;text&#34;&lt;br/&gt;        id=&#34;event-id&#34;&lt;br/&gt;        x-model=&#34;eventInput&#34;&lt;br/&gt;        @keydown.enter=&#34;loadEvent()&#34;&lt;br/&gt;        placeholder=&#34;paste event id, nevent1..., or JSON UI spec&#34;&lt;br/&gt;      &gt;&lt;br/&gt;      &lt;div class=&#34;actions&#34;&gt;&lt;br/&gt;        &lt;button class=&#34;btn btn-primary&#34; @click=&#34;loadEvent()&#34; :disabled=&#34;loading&#34;&gt;&lt;br/&gt;          &lt;span x-show=&#34;!loading&#34;&gt;Load Event&lt;/span&gt;&lt;br/&gt;          &lt;span x-show=&#34;loading&#34;&gt;Loading...&lt;/span&gt;&lt;br/&gt;        &lt;/button&gt;&lt;br/&gt;        &lt;button class=&#34;btn btn-secondary&#34; @click=&#34;loadDemo()&#34;&gt;Load Demo&lt;/button&gt;&lt;br/&gt;        &lt;button class=&#34;btn btn-secondary&#34; @click=&#34;clear()&#34;&gt;Clear&lt;/button&gt;&lt;br/&gt;      &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;      &lt;div class=&#34;status&#34;&gt;&lt;br/&gt;        &lt;span class=&#34;status-dot&#34; :class=&#34;{&#39;connected&#39;: relayStatus === &#39;connected&#39;, &#39;loading&#39;: relayStatus === &#39;connecting&#39;, &#39;error&#39;: relayStatus === &#39;error&#39;}&#34;&gt;&lt;/span&gt;&lt;br/&gt;        &lt;span x-text=&#34;statusMessage&#34;&gt;&lt;/span&gt;&lt;br/&gt;      &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;      &lt;div class=&#34;demo-specs&#34;&gt;&lt;br/&gt;        &lt;h3&gt;Try these demos:&lt;/h3&gt;&lt;br/&gt;        &lt;div class=&#34;examples&#34;&gt;&lt;br/&gt;          &lt;button class=&#34;btn btn-secondary&#34; @click=&#34;loadDemo(&#39;poll&#39;)&#34;&gt;Poll&lt;/button&gt;&lt;br/&gt;          &lt;button class=&#34;btn btn-secondary&#34; @click=&#34;loadDemo(&#39;profile&#39;)&#34;&gt;Profile Card&lt;/button&gt;&lt;br/&gt;          &lt;button class=&#34;btn btn-secondary&#34; @click=&#34;loadDemo(&#39;form&#39;)&#34;&gt;Form&lt;/button&gt;&lt;br/&gt;        &lt;/div&gt;&lt;br/&gt;      &lt;/div&gt;&lt;br/&gt;    &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;    &lt;!-- Error display --&gt;&lt;br/&gt;    &lt;div class=&#34;error-box&#34; x-show=&#34;error&#34; x-text=&#34;error&#34;&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;    &lt;!-- Event metadata --&gt;&lt;br/&gt;    &lt;div class=&#34;event-meta&#34; x-show=&#34;event &amp;&amp; !isDirectSpec&#34;&gt;&lt;br/&gt;      &lt;dl&gt;&lt;br/&gt;        &lt;dt&gt;Event ID&lt;/dt&gt;&lt;br/&gt;        &lt;dd x-text=&#34;event?.id&#34;&gt;&lt;/dd&gt;&lt;br/&gt;        &lt;dt&gt;Author&lt;/dt&gt;&lt;br/&gt;        &lt;dd x-text=&#34;event?.pubkey&#34;&gt;&lt;/dd&gt;&lt;br/&gt;        &lt;dt&gt;Kind&lt;/dt&gt;&lt;br/&gt;        &lt;dd x-text=&#34;event?.kind&#34;&gt;&lt;/dd&gt;&lt;br/&gt;        &lt;dt&gt;Created&lt;/dt&gt;&lt;br/&gt;        &lt;dd x-text=&#34;event ? new Date(event.created_at * 1000).toLocaleString() : &#39;&#39;&#34;&gt;&lt;/dd&gt;&lt;br/&gt;      &lt;/dl&gt;&lt;br/&gt;    &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;    &lt;!-- Rendered UI --&gt;&lt;br/&gt;    &lt;div class=&#34;rendered-ui&#34; x-show=&#34;uiSpec&#34;&gt;&lt;br/&gt;      &lt;div x-html=&#34;renderedHtml&#34;&gt;&lt;/div&gt;&lt;br/&gt;    &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;    &lt;!-- Raw content (if not a UI spec) --&gt;&lt;br/&gt;    &lt;div x-show=&#34;event &amp;&amp; !uiSpec &amp;&amp; !isDirectSpec&#34;&gt;&lt;br/&gt;      &lt;h3 style=&#34;color: #8b949e; font-size: 14px; margin-bottom: 10px;&#34;&gt;Raw Content (not a UI spec)&lt;/h3&gt;&lt;br/&gt;      &lt;div class=&#34;raw-json&#34; x-text=&#34;event?.content&#34;&gt;&lt;/div&gt;&lt;br/&gt;    &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;    &lt;!-- Raw spec display --&gt;&lt;br/&gt;    &lt;details x-show=&#34;uiSpec&#34; style=&#34;margin-top: 20px;&#34;&gt;&lt;br/&gt;      &lt;summary style=&#34;color: #8b949e; cursor: pointer; font-size: 13px;&#34;&gt;View raw UI spec&lt;/summary&gt;&lt;br/&gt;      &lt;div class=&#34;raw-json&#34; style=&#34;margin-top: 10px;&#34; x-text=&#34;JSON.stringify(uiSpec, null, 2)&#34;&gt;&lt;/div&gt;&lt;br/&gt;    &lt;/details&gt;&lt;br/&gt;  &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;  &lt;script&gt;&lt;br/&gt;    // ===========================================&lt;br/&gt;    // Vanilla JS: Relay connection &amp; note fetching&lt;br/&gt;    // ===========================================&lt;br/&gt;&lt;br/&gt;    const DEFAULT_RELAYS = [&lt;br/&gt;      &#39;wss://relay.damus.io&#39;,&lt;br/&gt;      &#39;wss://relay.nostr.band&#39;,&lt;br/&gt;      &#39;wss://nos.lol&#39;,&lt;br/&gt;      &#39;wss://relay.primal.net&#39;&lt;br/&gt;    ];&lt;br/&gt;&lt;br/&gt;    class RelayPool {&lt;br/&gt;      constructor(relays = DEFAULT_RELAYS) {&lt;br/&gt;        this.relays = relays;&lt;br/&gt;        this.sockets = new Map();&lt;br/&gt;        this.subscriptions = new Map();&lt;br/&gt;        this.subCounter = 0;&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      async connect() {&lt;br/&gt;        const promises = this.relays.map(url =&gt; this.connectRelay(url));&lt;br/&gt;        await Promise.allSettled(promises);&lt;br/&gt;        return this.sockets.size &gt; 0;&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      connectRelay(url) {&lt;br/&gt;        return new Promise((resolve, reject) =&gt; {&lt;br/&gt;          if (this.sockets.has(url)) {&lt;br/&gt;            resolve(this.sockets.get(url));&lt;br/&gt;            return;&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          const ws = new WebSocket(url);&lt;br/&gt;          const timeout = setTimeout(() =&gt; {&lt;br/&gt;            ws.close();&lt;br/&gt;            reject(new Error(`Timeout connecting to ${url}`));&lt;br/&gt;          }, 5000);&lt;br/&gt;&lt;br/&gt;          ws.onopen = () =&gt; {&lt;br/&gt;            clearTimeout(timeout);&lt;br/&gt;            this.sockets.set(url, ws);&lt;br/&gt;            resolve(ws);&lt;br/&gt;          };&lt;br/&gt;&lt;br/&gt;          ws.onerror = (err) =&gt; {&lt;br/&gt;            clearTimeout(timeout);&lt;br/&gt;            reject(err);&lt;br/&gt;          };&lt;br/&gt;&lt;br/&gt;          ws.onclose = () =&gt; {&lt;br/&gt;            this.sockets.delete(url);&lt;br/&gt;          };&lt;br/&gt;&lt;br/&gt;          ws.onmessage = (msg) =&gt; {&lt;br/&gt;            try {&lt;br/&gt;              const data = JSON.parse(msg.data);&lt;br/&gt;              this.handleMessage(url, data);&lt;br/&gt;            } catch (e) {&lt;br/&gt;              console.error(&#39;Failed to parse message:&#39;, e);&lt;br/&gt;            }&lt;br/&gt;          };&lt;br/&gt;        });&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      handleMessage(relay, data) {&lt;br/&gt;        const [type, subId, ...rest] = data;&lt;br/&gt;&lt;br/&gt;        if (type === &#39;EVENT&#39;) {&lt;br/&gt;          const event = rest[0];&lt;br/&gt;          const sub = this.subscriptions.get(subId);&lt;br/&gt;          if (sub &amp;&amp; sub.onEvent) {&lt;br/&gt;            sub.onEvent(event, relay);&lt;br/&gt;          }&lt;br/&gt;        } else if (type === &#39;EOSE&#39;) {&lt;br/&gt;          const sub = this.subscriptions.get(subId);&lt;br/&gt;          if (sub) {&lt;br/&gt;            sub.eoseCount = (sub.eoseCount || 0) &#43; 1;&lt;br/&gt;            if (sub.eoseCount &gt;= this.sockets.size &amp;&amp; sub.onEose) {&lt;br/&gt;              sub.onEose();&lt;br/&gt;            }&lt;br/&gt;          }&lt;br/&gt;        }&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      subscribe(filter, { onEvent, onEose }) {&lt;br/&gt;        const subId = `sub_${&#43;&#43;this.subCounter}`;&lt;br/&gt;        this.subscriptions.set(subId, { filter, onEvent, onEose, eoseCount: 0 });&lt;br/&gt;&lt;br/&gt;        const req = JSON.stringify([&#39;REQ&#39;, subId, filter]);&lt;br/&gt;        this.sockets.forEach(ws =&gt; {&lt;br/&gt;          if (ws.readyState === WebSocket.OPEN) {&lt;br/&gt;            ws.send(req);&lt;br/&gt;          }&lt;br/&gt;        });&lt;br/&gt;&lt;br/&gt;        return subId;&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      unsubscribe(subId) {&lt;br/&gt;        const close = JSON.stringify([&#39;CLOSE&#39;, subId]);&lt;br/&gt;        this.sockets.forEach(ws =&gt; {&lt;br/&gt;          if (ws.readyState === WebSocket.OPEN) {&lt;br/&gt;            ws.send(close);&lt;br/&gt;          }&lt;br/&gt;        });&lt;br/&gt;        this.subscriptions.delete(subId);&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      async fetchEvent(filter, timeout = 5000) {&lt;br/&gt;        return new Promise((resolve) =&gt; {&lt;br/&gt;          let event = null;&lt;br/&gt;          let timer;&lt;br/&gt;&lt;br/&gt;          const subId = this.subscribe(filter, {&lt;br/&gt;            onEvent: (e) =&gt; {&lt;br/&gt;              if (!event || e.created_at &gt; event.created_at) {&lt;br/&gt;                event = e;&lt;br/&gt;              }&lt;br/&gt;            },&lt;br/&gt;            onEose: () =&gt; {&lt;br/&gt;              clearTimeout(timer);&lt;br/&gt;              this.unsubscribe(subId);&lt;br/&gt;              resolve(event);&lt;br/&gt;            }&lt;br/&gt;          });&lt;br/&gt;&lt;br/&gt;          timer = setTimeout(() =&gt; {&lt;br/&gt;            this.unsubscribe(subId);&lt;br/&gt;            resolve(event);&lt;br/&gt;          }, timeout);&lt;br/&gt;        });&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      async publish(event) {&lt;br/&gt;        const msg = JSON.stringify([&#39;EVENT&#39;, event]);&lt;br/&gt;        const results = [];&lt;br/&gt;&lt;br/&gt;        this.sockets.forEach((ws, url) =&gt; {&lt;br/&gt;          if (ws.readyState === WebSocket.OPEN) {&lt;br/&gt;            ws.send(msg);&lt;br/&gt;            results.push(url);&lt;br/&gt;          }&lt;br/&gt;        });&lt;br/&gt;&lt;br/&gt;        return results;&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      close() {&lt;br/&gt;        this.sockets.forEach(ws =&gt; ws.close());&lt;br/&gt;        this.sockets.clear();&lt;br/&gt;        this.subscriptions.clear();&lt;br/&gt;      }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    // ===========================================&lt;br/&gt;    // Vanilla JS: UI Spec Interpreter&lt;br/&gt;    // ===========================================&lt;br/&gt;&lt;br/&gt;    function parseUISpec(content) {&lt;br/&gt;      if (typeof content !== &#39;string&#39;) return null;&lt;br/&gt;      content = content.trim();&lt;br/&gt;      if (!content.startsWith(&#39;{&#39;)) return null;&lt;br/&gt;&lt;br/&gt;      try {&lt;br/&gt;        // Try wrapped format {&#34;ui&#34;: {...}}&lt;br/&gt;        const parsed = JSON.parse(content);&lt;br/&gt;        if (parsed.ui &amp;&amp; parsed.ui.elements) {&lt;br/&gt;          return parsed.ui;&lt;br/&gt;        }&lt;br/&gt;        // Try direct format {elements: [...]}&lt;br/&gt;        if (parsed.elements &amp;&amp; Array.isArray(parsed.elements)) {&lt;br/&gt;          return parsed;&lt;br/&gt;        }&lt;br/&gt;      } catch (e) {&lt;br/&gt;        console.log(&#39;Not valid JSON:&#39;, e.message);&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      return null;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    function renderUISpec(spec, ctx, actionHandler) {&lt;br/&gt;      let html = &#39;&#39;;&lt;br/&gt;&lt;br/&gt;      if (spec.style) {&lt;br/&gt;        html &#43;= `&lt;style&gt;${escapeHtml(spec.style)}&lt;/style&gt;`;&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      const layoutClass = spec.layout ? `ui-${spec.layout}` : &#39;ui-card&#39;;&lt;br/&gt;      html &#43;= `&lt;div class=&#34;${layoutClass}&#34;&gt;`;&lt;br/&gt;&lt;br/&gt;      for (const elem of spec.elements || []) {&lt;br/&gt;        html &#43;= renderElement(elem, ctx, spec.actions || [], actionHandler);&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      html &#43;= &#39;&lt;/div&gt;&#39;;&lt;br/&gt;      return html;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    function renderElement(elem, ctx, actions, actionHandler) {&lt;br/&gt;      const value = elem.bind ? resolveBind(elem.bind, ctx) : (elem.value || &#39;&#39;);&lt;br/&gt;      const id = elem.id ? ` id=&#34;${escapeHtml(elem.id)}&#34;` : &#39;&#39;;&lt;br/&gt;&lt;br/&gt;      switch (elem.type) {&lt;br/&gt;        case &#39;heading&#39;:&lt;br/&gt;        case &#39;h1&#39;:&lt;br/&gt;        case &#39;h2&#39;:&lt;br/&gt;        case &#39;h3&#39;:&lt;br/&gt;          return `&lt;h2 class=&#34;ui-heading&#34;${id}&gt;${escapeHtml(value)}&lt;/h2&gt;`;&lt;br/&gt;&lt;br/&gt;        case &#39;text&#39;:&lt;br/&gt;        case &#39;p&#39;:&lt;br/&gt;          return `&lt;p class=&#34;ui-text&#34;${id}&gt;${escapeHtml(value)}&lt;/p&gt;`;&lt;br/&gt;&lt;br/&gt;        case &#39;image&#39;:&lt;br/&gt;        case &#39;img&#39;:&lt;br/&gt;          const src = elem.src || value;&lt;br/&gt;          return `&lt;img class=&#34;ui-image&#34;${id} src=&#34;${escapeHtml(src)}&#34; alt=&#34;&#34;&gt;`;&lt;br/&gt;&lt;br/&gt;        case &#39;link&#39;:&lt;br/&gt;        case &#39;a&#39;:&lt;br/&gt;          const href = elem.href || value;&lt;br/&gt;          const label = elem.label || value;&lt;br/&gt;          return `&lt;a class=&#34;ui-link&#34;${id} href=&#34;${escapeHtml(href)}&#34;&gt;${escapeHtml(label)}&lt;/a&gt;`;&lt;br/&gt;&lt;br/&gt;        case &#39;button&#39;:&lt;br/&gt;          const btnLabel = elem.label || value;&lt;br/&gt;          if (elem.action) {&lt;br/&gt;            const action = actions.find(a =&gt; a.id === elem.action);&lt;br/&gt;            if (action) {&lt;br/&gt;              const actionId = `action_${Math.random().toString(36).slice(2, 8)}`;&lt;br/&gt;              // Store action for later execution&lt;br/&gt;              window._malleableActions = window._malleableActions || {};&lt;br/&gt;              window._malleableActions[actionId] = { action, ctx };&lt;br/&gt;              return `&lt;button class=&#34;ui-button&#34;${id} onclick=&#34;window.executeAction(&#39;${actionId}&#39;)&#34;&gt;${escapeHtml(btnLabel)}&lt;/button&gt;`;&lt;br/&gt;            }&lt;br/&gt;          }&lt;br/&gt;          if (elem.href) {&lt;br/&gt;            return `&lt;a class=&#34;ui-button&#34;${id} href=&#34;${escapeHtml(elem.href)}&#34;&gt;${escapeHtml(btnLabel)}&lt;/a&gt;`;&lt;br/&gt;          }&lt;br/&gt;          return `&lt;button class=&#34;ui-button&#34;${id}&gt;${escapeHtml(btnLabel)}&lt;/button&gt;`;&lt;br/&gt;&lt;br/&gt;        case &#39;input&#39;:&lt;br/&gt;          const inputLabel = elem.label;&lt;br/&gt;          const name = elem.name || elem.id || &#39;&#39;;&lt;br/&gt;          let inputHtml = &#39;&#39;;&lt;br/&gt;          if (inputLabel) {&lt;br/&gt;            inputHtml &#43;= `&lt;label class=&#34;ui-label&#34; for=&#34;${escapeHtml(name)}&#34;&gt;${escapeHtml(inputLabel)}&lt;/label&gt;`;&lt;br/&gt;          }&lt;br/&gt;          inputHtml &#43;= `&lt;input class=&#34;ui-input&#34;${id} name=&#34;${escapeHtml(name)}&#34; type=&#34;text&#34; value=&#34;${escapeHtml(value)}&#34;&gt;`;&lt;br/&gt;          return inputHtml;&lt;br/&gt;&lt;br/&gt;        case &#39;container&#39;:&lt;br/&gt;        case &#39;div&#39;:&lt;br/&gt;          const containerClass = elem.style &amp;&amp; !elem.style.includes(&#39;:&#39;)&lt;br/&gt;            ? `ui-container ${elem.style}`&lt;br/&gt;            : &#39;ui-container&#39;;&lt;br/&gt;          let containerHtml = `&lt;div class=&#34;${containerClass}&#34;${id}&gt;`;&lt;br/&gt;          for (const child of elem.children || []) {&lt;br/&gt;            containerHtml &#43;= renderElement(child, ctx, actions, actionHandler);&lt;br/&gt;          }&lt;br/&gt;          containerHtml &#43;= &#39;&lt;/div&gt;&#39;;&lt;br/&gt;          return containerHtml;&lt;br/&gt;&lt;br/&gt;        case &#39;hr&#39;:&lt;br/&gt;          return &#39;&lt;hr class=&#34;ui-hr&#34;&gt;&#39;;&lt;br/&gt;&lt;br/&gt;        case &#39;data&#39;:&lt;br/&gt;          const dataLabel = elem.label;&lt;br/&gt;          if (dataLabel) {&lt;br/&gt;            return `&lt;span class=&#34;ui-data&#34;${id}&gt;&lt;span class=&#34;ui-data-label&#34;&gt;${escapeHtml(dataLabel)}&lt;/span&gt;${escapeHtml(value)}&lt;/span&gt;`;&lt;br/&gt;          }&lt;br/&gt;          return `&lt;span class=&#34;ui-data&#34;${id}&gt;${escapeHtml(value)}&lt;/span&gt;`;&lt;br/&gt;&lt;br/&gt;        default:&lt;br/&gt;          return &#39;&#39;;&lt;br/&gt;      }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    function resolveBind(bind, ctx) {&lt;br/&gt;      if (!ctx) return &#39;&#39;;&lt;br/&gt;&lt;br/&gt;      const path = bind.replace(/^\$\.?/, &#39;&#39;).toLowerCase();&lt;br/&gt;&lt;br/&gt;      switch (path) {&lt;br/&gt;        case &#39;id&#39;: return ctx.id || &#39;&#39;;&lt;br/&gt;        case &#39;pubkey&#39;: return ctx.pubkey || &#39;&#39;;&lt;br/&gt;        case &#39;npub&#39;: return ctx.npub || ctx.pubkey || &#39;&#39;;&lt;br/&gt;        case &#39;content&#39;: return ctx.content || &#39;&#39;;&lt;br/&gt;        case &#39;time&#39;:&lt;br/&gt;        case &#39;createdat&#39;:&lt;br/&gt;        case &#39;created_at&#39;:&lt;br/&gt;          return ctx.created_at ? new Date(ctx.created_at * 1000).toLocaleString() : &#39;&#39;;&lt;br/&gt;        case &#39;kind&#39;: return String(ctx.kind || &#39;&#39;);&lt;br/&gt;        default: return &#39;&#39;;&lt;br/&gt;      }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    function resolveTemplate(tmpl, ctx) {&lt;br/&gt;      return tmpl.replace(/\{\{\s*\$\.?(\w&#43;)\s*\}\}/g, (match, path) =&gt; {&lt;br/&gt;        return resolveBind(path, ctx);&lt;br/&gt;      });&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    function escapeHtml(str) {&lt;br/&gt;      if (!str) return &#39;&#39;;&lt;br/&gt;      return String(str)&lt;br/&gt;        .replace(/&amp;/g, &#39;&amp;amp;&#39;)&lt;br/&gt;        .replace(/&lt;/g, &#39;&amp;lt;&#39;)&lt;br/&gt;        .replace(/&gt;/g, &#39;&amp;gt;&#39;)&lt;br/&gt;        .replace(/&#34;/g, &#39;&amp;quot;&#39;)&lt;br/&gt;        .replace(/&#39;/g, &#39;&amp;#39;&#39;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    // ===========================================&lt;br/&gt;    // Bech32 decoding for nevent/note/naddr&lt;br/&gt;    // ===========================================&lt;br/&gt;&lt;br/&gt;    const BECH32_CHARSET = &#39;qpzry9x8gf2tvdw0s3jn54khce6mua7l&#39;;&lt;br/&gt;&lt;br/&gt;    function bech32Decode(str) {&lt;br/&gt;      str = str.toLowerCase();&lt;br/&gt;      const pos = str.lastIndexOf(&#39;1&#39;);&lt;br/&gt;      if (pos &lt; 1 || pos &#43; 7 &gt; str.length) throw new Error(&#39;Invalid bech32&#39;);&lt;br/&gt;&lt;br/&gt;      const hrp = str.slice(0, pos);&lt;br/&gt;      const data = [];&lt;br/&gt;&lt;br/&gt;      for (let i = pos &#43; 1; i &lt; str.length; i&#43;&#43;) {&lt;br/&gt;        const idx = BECH32_CHARSET.indexOf(str[i]);&lt;br/&gt;        if (idx === -1) throw new Error(&#39;Invalid character&#39;);&lt;br/&gt;        data.push(idx);&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      // Remove checksum (last 6 chars)&lt;br/&gt;      const payload = data.slice(0, -6);&lt;br/&gt;&lt;br/&gt;      // Convert 5-bit to 8-bit&lt;br/&gt;      let acc = 0, bits = 0;&lt;br/&gt;      const bytes = [];&lt;br/&gt;      for (const val of payload) {&lt;br/&gt;        acc = (acc &lt;&lt; 5) | val;&lt;br/&gt;        bits &#43;= 5;&lt;br/&gt;        while (bits &gt;= 8) {&lt;br/&gt;          bits -= 8;&lt;br/&gt;          bytes.push((acc &gt;&gt; bits) &amp; 0xff);&lt;br/&gt;        }&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      return { hrp, bytes: new Uint8Array(bytes) };&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    function parseNostrId(input) {&lt;br/&gt;      input = input.trim();&lt;br/&gt;&lt;br/&gt;      // Already hex?&lt;br/&gt;      if (/^[0-9a-f]{64}$/i.test(input)) {&lt;br/&gt;        return { type: &#39;hex&#39;, id: input.toLowerCase() };&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      // note1... (just the event id)&lt;br/&gt;      if (input.startsWith(&#39;note1&#39;)) {&lt;br/&gt;        const { bytes } = bech32Decode(input);&lt;br/&gt;        const hex = Array.from(bytes).map(b =&gt; b.toString(16).padStart(2, &#39;0&#39;)).join(&#39;&#39;);&lt;br/&gt;        return { type: &#39;note&#39;, id: hex };&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      // nevent1... (TLV encoded)&lt;br/&gt;      if (input.startsWith(&#39;nevent1&#39;)) {&lt;br/&gt;        const { bytes } = bech32Decode(input);&lt;br/&gt;        return parseTLV(bytes, &#39;nevent&#39;);&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      // naddr1... (TLV encoded)&lt;br/&gt;      if (input.startsWith(&#39;naddr1&#39;)) {&lt;br/&gt;        const { bytes } = bech32Decode(input);&lt;br/&gt;        return parseTLV(bytes, &#39;naddr&#39;);&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      return { type: &#39;unknown&#39;, raw: input };&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    function parseTLV(bytes, type) {&lt;br/&gt;      const result = { type };&lt;br/&gt;      let i = 0;&lt;br/&gt;&lt;br/&gt;      while (i &lt; bytes.length) {&lt;br/&gt;        const t = bytes[i&#43;&#43;];&lt;br/&gt;        const l = bytes[i&#43;&#43;];&lt;br/&gt;        const v = bytes.slice(i, i &#43; l);&lt;br/&gt;        i &#43;= l;&lt;br/&gt;&lt;br/&gt;        if (t === 0) { // special (event id for nevent, identifier for naddr)&lt;br/&gt;          result.id = Array.from(v).map(b =&gt; b.toString(16).padStart(2, &#39;0&#39;)).join(&#39;&#39;);&lt;br/&gt;        } else if (t === 1) { // relay&lt;br/&gt;          result.relay = new TextDecoder().decode(v);&lt;br/&gt;        } else if (t === 2) { // author&lt;br/&gt;          result.author = Array.from(v).map(b =&gt; b.toString(16).padStart(2, &#39;0&#39;)).join(&#39;&#39;);&lt;br/&gt;        } else if (t === 3) { // kind&lt;br/&gt;          result.kind = v.reduce((acc, b) =&gt; acc * 256 &#43; b, 0);&lt;br/&gt;        }&lt;br/&gt;      }&lt;br/&gt;&lt;br/&gt;      return result;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    // ===========================================&lt;br/&gt;    // Demo UI Specs&lt;br/&gt;    // ===========================================&lt;br/&gt;&lt;br/&gt;    const DEMO_SPECS = {&lt;br/&gt;      poll: {&lt;br/&gt;        layout: &#39;card&#39;,&lt;br/&gt;        title: &#39;Community Poll&#39;,&lt;br/&gt;        elements: [&lt;br/&gt;          { type: &#39;heading&#39;, value: &#34;What&#39;s the best approach to malleable UI?&#34; },&lt;br/&gt;          { type: &#39;text&#39;, value: &#39;This entire UI is defined in JSON. The browser interprets it and renders HTML - no server required!&#39; },&lt;br/&gt;          { type: &#39;hr&#39; },&lt;br/&gt;          { type: &#39;text&#39;, value: &#39;Vote for your preferred approach:&#39; },&lt;br/&gt;          { type: &#39;container&#39;, style: &#39;options&#39;, children: [&lt;br/&gt;            { type: &#39;button&#39;, label: &#39;Server-rendered&#39;, action: &#39;vote-server&#39; },&lt;br/&gt;            { type: &#39;button&#39;, label: &#39;Client JS&#39;, action: &#39;vote-client&#39; },&lt;br/&gt;            { type: &#39;button&#39;, label: &#39;Hybrid&#39;, action: &#39;vote-hybrid&#39; }&lt;br/&gt;          ]},&lt;br/&gt;          { type: &#39;hr&#39; },&lt;br/&gt;          { type: &#39;heading&#39;, value: &#39;Event Data Bindings&#39; },&lt;br/&gt;          { type: &#39;text&#39;, value: &#39;UI specs can bind to event data:&#39; },&lt;br/&gt;          { type: &#39;data&#39;, bind: &#39;$.id&#39;, label: &#39;Event ID: &#39; },&lt;br/&gt;          { type: &#39;data&#39;, bind: &#39;$.pubkey&#39;, label: &#39;Author: &#39; },&lt;br/&gt;          { type: &#39;data&#39;, bind: &#39;$.time&#39;, label: &#39;Created: &#39; }&lt;br/&gt;        ],&lt;br/&gt;        actions: [&lt;br/&gt;          { id: &#39;vote-server&#39;, publish: { kind: 7, content: &#39;server-rendered&#39;, tags: [[&#39;e&#39;, &#39;{{$.id}}&#39;]] }},&lt;br/&gt;          { id: &#39;vote-client&#39;, publish: { kind: 7, content: &#39;client-js&#39;, tags: [[&#39;e&#39;, &#39;{{$.id}}&#39;]] }},&lt;br/&gt;          { id: &#39;vote-hybrid&#39;, publish: { kind: 7, content: &#39;hybrid&#39;, tags: [[&#39;e&#39;, &#39;{{$.id}}&#39;]] }}&lt;br/&gt;        ]&lt;br/&gt;      },&lt;br/&gt;&lt;br/&gt;      profile: {&lt;br/&gt;        layout: &#39;card&#39;,&lt;br/&gt;        title: &#39;Profile Card&#39;,&lt;br/&gt;        elements: [&lt;br/&gt;          { type: &#39;heading&#39;, value: &#39;User Profile&#39; },&lt;br/&gt;          { type: &#39;data&#39;, bind: &#39;$.pubkey&#39;, label: &#39;Pubkey: &#39; },&lt;br/&gt;          { type: &#39;data&#39;, bind: &#39;$.time&#39;, label: &#39;Last seen: &#39; },&lt;br/&gt;          { type: &#39;hr&#39; },&lt;br/&gt;          { type: &#39;container&#39;, style: &#39;options&#39;, children: [&lt;br/&gt;            { type: &#39;button&#39;, label: &#39;Follow&#39;, action: &#39;follow&#39; },&lt;br/&gt;            { type: &#39;button&#39;, label: &#39;Message&#39;, action: &#39;message&#39; }&lt;br/&gt;          ]}&lt;br/&gt;        ],&lt;br/&gt;        actions: [&lt;br/&gt;          { id: &#39;follow&#39;, publish: { kind: 3, content: &#39;&#39;, tags: [[&#39;p&#39;, &#39;{{$.pubkey}}&#39;]] }},&lt;br/&gt;          { id: &#39;message&#39;, link: &#39;/html/messages/{{$.pubkey}}&#39; }&lt;br/&gt;        ]&lt;br/&gt;      },&lt;br/&gt;&lt;br/&gt;      form: {&lt;br/&gt;        layout: &#39;card&#39;,&lt;br/&gt;        title: &#39;Feedback Form&#39;,&lt;br/&gt;        elements: [&lt;br/&gt;          { type: &#39;heading&#39;, value: &#39;Send Feedback&#39; },&lt;br/&gt;          { type: &#39;text&#39;, value: &#39;Your feedback helps improve this project.&#39; },&lt;br/&gt;          { type: &#39;input&#39;, name: &#39;feedback&#39;, label: &#39;Your message:&#39;, id: &#39;feedback-input&#39; },&lt;br/&gt;          { type: &#39;hr&#39; },&lt;br/&gt;          { type: &#39;button&#39;, label: &#39;Submit Feedback&#39;, action: &#39;submit&#39; }&lt;br/&gt;        ],&lt;br/&gt;        actions: [&lt;br/&gt;          { id: &#39;submit&#39;, publish: { kind: 1, content: &#39;Feedback: {{input:feedback}}&#39;, tags: [[&#39;t&#39;, &#39;feedback&#39;]] }}&lt;br/&gt;        ]&lt;br/&gt;      }&lt;br/&gt;    };&lt;br/&gt;&lt;br/&gt;    // ===========================================&lt;br/&gt;    // Alpine.js App&lt;br/&gt;    // ===========================================&lt;br/&gt;&lt;br/&gt;    function malleableApp() {&lt;br/&gt;      return {&lt;br/&gt;        // State&lt;br/&gt;        eventInput: &#39;&#39;,&lt;br/&gt;        event: null,&lt;br/&gt;        uiSpec: null,&lt;br/&gt;        renderedHtml: &#39;&#39;,&lt;br/&gt;        error: null,&lt;br/&gt;        loading: false,&lt;br/&gt;        relayStatus: &#39;disconnected&#39;,&lt;br/&gt;        statusMessage: &#39;Not connected&#39;,&lt;br/&gt;        userPubkey: null,&lt;br/&gt;        isDirectSpec: false,&lt;br/&gt;&lt;br/&gt;        // Relay pool&lt;br/&gt;        pool: null,&lt;br/&gt;&lt;br/&gt;        async init() {&lt;br/&gt;          this.pool = new RelayPool();&lt;br/&gt;&lt;br/&gt;          // Check for NIP-07&lt;br/&gt;          if (window.nostr) {&lt;br/&gt;            try {&lt;br/&gt;              this.userPubkey = await window.nostr.getPublicKey();&lt;br/&gt;            } catch (e) {&lt;br/&gt;              console.log(&#39;NIP-07 available but not connected&#39;);&lt;br/&gt;            }&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          // Connect to relays&lt;br/&gt;          this.relayStatus = &#39;connecting&#39;;&lt;br/&gt;          this.statusMessage = &#39;Connecting to relays...&#39;;&lt;br/&gt;&lt;br/&gt;          try {&lt;br/&gt;            await this.pool.connect();&lt;br/&gt;            this.relayStatus = &#39;connected&#39;;&lt;br/&gt;            this.statusMessage = `Connected to ${this.pool.sockets.size} relays`;&lt;br/&gt;          } catch (e) {&lt;br/&gt;            this.relayStatus = &#39;error&#39;;&lt;br/&gt;            this.statusMessage = &#39;Failed to connect to relays&#39;;&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          // Set up action executor&lt;br/&gt;          window.executeAction = async (actionId) =&gt; {&lt;br/&gt;            const { action, ctx } = window._malleableActions[actionId] || {};&lt;br/&gt;            if (!action) return;&lt;br/&gt;&lt;br/&gt;            await this.executeAction(action, ctx);&lt;br/&gt;          };&lt;br/&gt;        },&lt;br/&gt;&lt;br/&gt;        async connect() {&lt;br/&gt;          if (!window.nostr) {&lt;br/&gt;            this.error = &#39;No NIP-07 extension found. Install Alby, nos2x, or similar.&#39;;&lt;br/&gt;            return;&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          try {&lt;br/&gt;            this.userPubkey = await window.nostr.getPublicKey();&lt;br/&gt;          } catch (e) {&lt;br/&gt;            this.error = &#39;Failed to connect: &#39; &#43; e.message;&lt;br/&gt;          }&lt;br/&gt;        },&lt;br/&gt;&lt;br/&gt;        disconnect() {&lt;br/&gt;          this.userPubkey = null;&lt;br/&gt;        },&lt;br/&gt;&lt;br/&gt;        async loadEvent() {&lt;br/&gt;          this.error = null;&lt;br/&gt;          this.event = null;&lt;br/&gt;          this.uiSpec = null;&lt;br/&gt;          this.renderedHtml = &#39;&#39;;&lt;br/&gt;          this.isDirectSpec = false;&lt;br/&gt;&lt;br/&gt;          const input = this.eventInput.trim();&lt;br/&gt;          if (!input) {&lt;br/&gt;            this.error = &#39;Please enter an event ID or UI spec&#39;;&lt;br/&gt;            return;&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          // Check if it&#39;s direct JSON&lt;br/&gt;          if (input.startsWith(&#39;{&#39;)) {&lt;br/&gt;            const spec = parseUISpec(input);&lt;br/&gt;            if (spec) {&lt;br/&gt;              this.isDirectSpec = true;&lt;br/&gt;              this.uiSpec = spec;&lt;br/&gt;              const ctx = {&lt;br/&gt;                id: &#39;direct-spec&#39;,&lt;br/&gt;                pubkey: this.userPubkey || &#39;not-connected&#39;,&lt;br/&gt;                created_at: Math.floor(Date.now() / 1000),&lt;br/&gt;                kind: 0,&lt;br/&gt;                content: input&lt;br/&gt;              };&lt;br/&gt;              this.renderedHtml = renderUISpec(spec, ctx);&lt;br/&gt;              return;&lt;br/&gt;            } else {&lt;br/&gt;              this.error = &#39;Invalid UI spec JSON&#39;;&lt;br/&gt;              return;&lt;br/&gt;            }&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          // Parse as Nostr identifier&lt;br/&gt;          this.loading = true;&lt;br/&gt;&lt;br/&gt;          try {&lt;br/&gt;            const parsed = parseNostrId(input);&lt;br/&gt;&lt;br/&gt;            let filter = {};&lt;br/&gt;            if (parsed.type === &#39;hex&#39; || parsed.type === &#39;note&#39; || parsed.type === &#39;nevent&#39;) {&lt;br/&gt;              filter = { ids: [parsed.id], limit: 1 };&lt;br/&gt;            } else if (parsed.type === &#39;naddr&#39;) {&lt;br/&gt;              filter = {&lt;br/&gt;                kinds: [parsed.kind],&lt;br/&gt;                authors: [parsed.author],&lt;br/&gt;                &#39;#d&#39;: [parsed.id],&lt;br/&gt;                limit: 1&lt;br/&gt;              };&lt;br/&gt;            } else {&lt;br/&gt;              this.error = &#39;Unrecognized identifier format&#39;;&lt;br/&gt;              this.loading = false;&lt;br/&gt;              return;&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;            const event = await this.pool.fetchEvent(filter);&lt;br/&gt;&lt;br/&gt;            if (!event) {&lt;br/&gt;              this.error = &#39;Event not found&#39;;&lt;br/&gt;              this.loading = false;&lt;br/&gt;              return;&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;            this.event = event;&lt;br/&gt;            this.uiSpec = parseUISpec(event.content);&lt;br/&gt;&lt;br/&gt;            if (this.uiSpec) {&lt;br/&gt;              const ctx = {&lt;br/&gt;                id: event.id,&lt;br/&gt;                pubkey: event.pubkey,&lt;br/&gt;                created_at: event.created_at,&lt;br/&gt;                kind: event.kind,&lt;br/&gt;                content: event.content&lt;br/&gt;              };&lt;br/&gt;              this.renderedHtml = renderUISpec(this.uiSpec, ctx);&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;          } catch (e) {&lt;br/&gt;            this.error = &#39;Failed to load event: &#39; &#43; e.message;&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          this.loading = false;&lt;br/&gt;        },&lt;br/&gt;&lt;br/&gt;        loadDemo(name = &#39;poll&#39;) {&lt;br/&gt;          this.error = null;&lt;br/&gt;          this.event = null;&lt;br/&gt;          this.isDirectSpec = true;&lt;br/&gt;&lt;br/&gt;          const spec = DEMO_SPECS[name] || DEMO_SPECS.poll;&lt;br/&gt;          this.uiSpec = spec;&lt;br/&gt;&lt;br/&gt;          const ctx = {&lt;br/&gt;            id: &#39;demo-&#39; &#43; name,&lt;br/&gt;            pubkey: this.userPubkey || &#39;demo-pubkey&#39;,&lt;br/&gt;            created_at: Math.floor(Date.now() / 1000),&lt;br/&gt;            kind: 1,&lt;br/&gt;            content: JSON.stringify(spec)&lt;br/&gt;          };&lt;br/&gt;&lt;br/&gt;          this.renderedHtml = renderUISpec(spec, ctx);&lt;br/&gt;          this.eventInput = JSON.stringify(spec, null, 2);&lt;br/&gt;        },&lt;br/&gt;&lt;br/&gt;        clear() {&lt;br/&gt;          this.eventInput = &#39;&#39;;&lt;br/&gt;          this.event = null;&lt;br/&gt;          this.uiSpec = null;&lt;br/&gt;          this.renderedHtml = &#39;&#39;;&lt;br/&gt;          this.error = null;&lt;br/&gt;          this.isDirectSpec = false;&lt;br/&gt;        },&lt;br/&gt;&lt;br/&gt;        async executeAction(action, ctx) {&lt;br/&gt;          if (action.link) {&lt;br/&gt;            const url = resolveTemplate(action.link, ctx);&lt;br/&gt;            window.location.href = url;&lt;br/&gt;            return;&lt;br/&gt;          }&lt;br/&gt;&lt;br/&gt;          if (action.publish) {&lt;br/&gt;            if (!window.nostr) {&lt;br/&gt;              this.error = &#39;NIP-07 extension required to publish events&#39;;&lt;br/&gt;              return;&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;            if (!this.userPubkey) {&lt;br/&gt;              this.error = &#39;Please connect your NIP-07 extension first&#39;;&lt;br/&gt;              return;&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;            try {&lt;br/&gt;              // Resolve template in content&lt;br/&gt;              let content = resolveTemplate(action.publish.content, ctx);&lt;br/&gt;&lt;br/&gt;              // Check for input bindings like {{input:fieldname}}&lt;br/&gt;              content = content.replace(/\{\{input:(\w&#43;)\}\}/g, (match, fieldName) =&gt; {&lt;br/&gt;                const input = document.querySelector(`[name=&#34;${fieldName}&#34;]`);&lt;br/&gt;                return input ? input.value : &#39;&#39;;&lt;br/&gt;              });&lt;br/&gt;&lt;br/&gt;              // Resolve template in tags&lt;br/&gt;              const tags = (action.publish.tags || []).map(tag =&gt;&lt;br/&gt;                tag.map(v =&gt; resolveTemplate(v, ctx))&lt;br/&gt;              );&lt;br/&gt;&lt;br/&gt;              const event = {&lt;br/&gt;                kind: action.publish.kind,&lt;br/&gt;                content: content,&lt;br/&gt;                tags: tags,&lt;br/&gt;                created_at: Math.floor(Date.now() / 1000)&lt;br/&gt;              };&lt;br/&gt;&lt;br/&gt;              // Sign with NIP-07&lt;br/&gt;              const signedEvent = await window.nostr.signEvent(event);&lt;br/&gt;&lt;br/&gt;              // Publish to relays&lt;br/&gt;              const relays = await this.pool.publish(signedEvent);&lt;br/&gt;&lt;br/&gt;              this.error = null;&lt;br/&gt;              alert(`Published to ${relays.length} relays!\n\nEvent ID: ${signedEvent.id}`);&lt;br/&gt;&lt;br/&gt;            } catch (e) {&lt;br/&gt;              this.error = &#39;Failed to publish: &#39; &#43; e.message;&lt;br/&gt;            }&lt;br/&gt;          }&lt;br/&gt;        }&lt;br/&gt;      };&lt;br/&gt;    }&lt;br/&gt;  &lt;/script&gt;&lt;br/&gt;&lt;/body&gt;&lt;br/&gt;&lt;/html&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-05-22T14:06:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsved3fey2mprmvu5h6009ut7fh0x8nnkypdg208ghs4xprf53vrzcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8s8heagy6zxppqehm6ewe4l94z2sjzgfr2kpft5fxxlmr2f48kwcxczaw9</id>
    
      <title type="html">Block 950521 2 - high priority 1 - medium priority 1 - low ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsved3fey2mprmvu5h6009ut7fh0x8nnkypdg208ghs4xprf53vrzcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8s8heagy6zxppqehm6ewe4l94z2sjzgfr2kpft5fxxlmr2f48kwcxczaw9" />
    <content type="html">
      Block 950521&lt;br/&gt;&lt;br/&gt;2 - high priority&lt;br/&gt;1 - medium priority&lt;br/&gt;1 - low priority&lt;br/&gt;1 - no priority&lt;br/&gt;1 - purging&lt;br/&gt;&lt;br/&gt;#bitcoinfees #mempool
    </content>
    <updated>2026-05-22T14:05:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdzx0lqcv9qz3c0rlmsqzcd2euntvk5ugvayzlg92juvgdf0ecy2spsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu7dkemw</id>
    
      <title type="html">GM ☀️ Two of my friends said something completely wrong about ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdzx0lqcv9qz3c0rlmsqzcd2euntvk5ugvayzlg92juvgdf0ecy2spsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu7dkemw" />
    <content type="html">
      GM ☀️&lt;br/&gt;&lt;br/&gt;Two of my friends said something completely wrong about a topic I studied extensively. I explained it correctly and provided evidence in the group chat. They ignored it and proceeded to talk about it incorrectly. Aaaaanndd I chose to let it go instead of argue. Are yall proud of me? 😌&lt;br/&gt; &lt;img src=&#34;https://media.tenor.com/cvi5SF0zZI0AAAAC/%D1%87%D0%B5%D1%80%D0%BD%D1%8B%D0%B9.gif&#34;&gt; 
    </content>
    <updated>2026-05-22T14:05:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8n8fmkyh5r893fw4czawmzl930hajfxurlu2thyd6f9gdfylukpspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyt50cxx</id>
    
      <title>Nostr event nevent1qqs8n8fmkyh5r893fw4czawmzl930hajfxurlu2thyd6f9gdfylukpspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyt50cxx</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8n8fmkyh5r893fw4czawmzl930hajfxurlu2thyd6f9gdfylukpspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyt50cxx" />
    <content type="html">
        &lt;img src=&#34;https://blossom.primal.net/09cd229731d55f0ce1e8ef9c3d10723e2239454c39019134b0a4ab63b75c903a.png&#34;&gt;  
    </content>
    <updated>2026-05-22T14:05:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqq86x2n4eqlvf0n30lsmaejc4przshrg2s29dtypy0nsy28xrlgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpwl2n3twa5dh2mu6ma4rthqqnx6yt8fwgnhqtc4hd4ctnrmxrnxyvqktcd</id>
    
      <title type="html">#nevent1q…28yf</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqq86x2n4eqlvf0n30lsmaejc4przshrg2s29dtypy0nsy28xrlgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpwl2n3twa5dh2mu6ma4rthqqnx6yt8fwgnhqtc4hd4ctnrmxrnxyvqktcd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx577ltpyl88nxvtf2038uvsxnyv0qtcrxj9jpc5gfmywzgza2u0spr3mhxue69uhkummnw3ezucmvda6kgtnkd9hxuete9eu8j7sjyd2jy&#39;&gt;nevent1q…d2jy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsf7ydas93h3qadngpf3e5dmuppw0xhxzuzu6lx5e9gkae4phnn7uqpzemhxue69uhkzem8wghxummnw3ezumrpdejz7q3q9ma2w9dmk3kat0nt0k5dwuqzvmg3va9ezwup0zkakhpwv0vcwvcsxpqqqqqqzwt28yf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…28yf&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; bahahahaha yesssss&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://i.nostr.build/Uzcus393Vb5O9A5L.png&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-05-22T14:04:54Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs86mld5whtr6hmlf9rmwujqgulpahn3hq73ctwumy3ptq20gahe8qpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygxhp4gqj9gyhxfdrqugy2hjgh2ldvapdwpdj9avk7fyemmpa49vacpg3atz</id>
    
      <title type="html">Lol you should see the tool I&amp;#39;m developing. It&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs86mld5whtr6hmlf9rmwujqgulpahn3hq73ctwumy3ptq20gahe8qpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygxhp4gqj9gyhxfdrqugy2hjgh2ldvapdwpdj9avk7fyemmpa49vacpg3atz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrf0htggh2hm78klz9phtkr7zhxznzdauzg4ngdf8xh050drfep7cprpmhxue69uhhyetvv9ujucmpd4jkcatn9eshqup0tuw09r&#39;&gt;nevent1q…w09r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Lol you should see the tool I&amp;#39;m developing. It&amp;#39;s basically your own self sovereign NSA agent 😂
    </content>
    <updated>2026-05-22T14:04:48Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgpdxknhpkq7u6kzfkpzjpu3q5th3fqpy4lxc4pwavmyg4v3ydkpgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeylm47hs</id>
    
      <title>Nostr event nevent1qqsgpdxknhpkq7u6kzfkpzjpu3q5th3fqpy4lxc4pwavmyg4v3ydkpgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeylm47hs</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgpdxknhpkq7u6kzfkpzjpu3q5th3fqpy4lxc4pwavmyg4v3ydkpgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeylm47hs" />
    <content type="html">
        &lt;img src=&#34;https://blossom.primal.net/5e361a5093af14180d17d0399ee15f93c4be13d3d71e140befa390697b6f57c5.png&#34;&gt;  
    </content>
    <updated>2026-05-22T14:04:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8e7mkvl7xr5xq0pdy7jdccq92hxrfpczwda3ffcq7k74kyrllkgcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzxcx4gvm5za9eh2kf7ts78ej82hqjdk7xvy8htljp6l3mcy3mujvlz97s4</id>
    
      <title type="html">Silent Payments in Sparrow 2.5.0: no address reuse, no ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8e7mkvl7xr5xq0pdy7jdccq92hxrfpczwda3ffcq7k74kyrllkgcpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzxcx4gvm5za9eh2kf7ts78ej82hqjdk7xvy8htljp6l3mcy3mujvlz97s4" />
    <content type="html">
      Silent Payments in Sparrow 2.5.0: no address reuse, no clustering, no surveillance hooks. Privacy stops being a setting and becomes an architecture. This is how you build it.&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;/note12s8sdn9hs8g6vy7pvm30dhw26kr2ncfqa60ryp9y82c0s9pa8cdqcah8rx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;note12s8…h8rx&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; NEW: ⚡️Sparrow Wallet 2.5.0 Brings Silent Payments to Bitcoin: A Major Leap Forward for Privacy and Usability.&lt;br/&gt;  &lt;img src=&#34;https://blossom.primal.net/d1afcc3311dcbf23dd60eae896db7af4eff11edb5c119cd313ca57ce141bfb5b.png&#34;&gt;  &lt;br/&gt;&lt;br/&gt;Read More: &lt;a href=&#34;https://bitcoinnews.africa/sparrow-wallet-2-5-0-brings-silent-payments-to-bitcoin-a-major-leap-forward-for-privacy-and-usability/&#34;&gt;https://bitcoinnews.africa/sparrow-wallet-2-5-0-brings-silent-payments-to-bitcoin-a-major-leap-forward-for-privacy-and-usability/&lt;/a&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-05-22T14:04:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy5a8ts6kaxal2n8unqy6vvl6wxf6rgw8um3p6tjw06vs5ccjehvgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8r5kvjfyeun70jm7p5fyz4avu93u2gplwschkmjh0s30ku6tnxysv9h6h5</id>
    
      <title>Nostr event nevent1qqsy5a8ts6kaxal2n8unqy6vvl6wxf6rgw8um3p6tjw06vs5ccjehvgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8r5kvjfyeun70jm7p5fyz4avu93u2gplwschkmjh0s30ku6tnxysv9h6h5</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy5a8ts6kaxal2n8unqy6vvl6wxf6rgw8um3p6tjw06vs5ccjehvgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8r5kvjfyeun70jm7p5fyz4avu93u2gplwschkmjh0s30ku6tnxysv9h6h5" />
    <content type="html">
       &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/f8b47c0d3804a86d3579cecd31ec994704ccaa7a6f7016fda56a6ea632ae351b.jpg&#34;&gt; 
    </content>
    <updated>2026-05-22T14:04:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqq87ck0t7a0au0hvnvtvhamen85hlvqdh9hh79nsa9acd3aqdaspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpjr9wyackj80nxq6rchpducdjxuqjaljdv4hyll6faahda80l9rugdtf4c</id>
    
      <title type="html">Followed 🤝 looking forward 2 ur memes dear sir</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqq87ck0t7a0au0hvnvtvhamen85hlvqdh9hh79nsa9acd3aqdaspsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpjr9wyackj80nxq6rchpducdjxuqjaljdv4hyll6faahda80l9rugdtf4c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2h5leaj5r5dmyah6277pwwwpxeqcn027pzkt33z0wu7wyj68nxegpp4mhxue69uhkummn9ekx7mq4e7vt2&#39;&gt;nevent1q…7vt2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Followed 🤝 looking forward 2 ur memes dear sir
    </content>
    <updated>2026-05-22T14:03:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqz0mypmavy4sns60l5kw7lamqyawqdrc76ndwa6ef62rrsx8uqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpwl2n3twa5dh2mu6ma4rthqqnx6yt8fwgnhqtc4hd4ctnrmxrnxyasgusf</id>
    
      <title type="html">#naddr1qq…ylx5</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqz0mypmavy4sns60l5kw7lamqyawqdrc76ndwa6ef62rrsx8uqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpwl2n3twa5dh2mu6ma4rthqqnx6yt8fwgnhqtc4hd4ctnrmxrnxyasgusf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv34hc6pkrrky2628ezrspty6g25nf0up49yx4wxmrx3y4cqw6n7gpr3mhxue69uhkummnw3ezucmvda6kgtnkd9hxuete9eu8j7s5m650a&#39;&gt;nevent1q…650a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qq6hx6tdwpkxjcmfw3uj6ctn94n8yet9v3hk6tt5dpjj66rewpjhymt9v35kzttwdaehgu3dv4u8qetjd9kk2mn5qyghwumn8ghj7mn0wd68ytnhd9hx2tczyrd2gxldk6zezd3m73q876ruh9ufe32ra5pyhdmuytfvsnvg74q4xqcyqqq823cdjylx5&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…ylx5&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Nostr web clients behave like any other modern web applications. They ship React bundles, state managers, WebSocket layers, build pipelines, and megabytes of JavaScript just to display a feed. &lt;strong&gt;Nostr-hypermedia&lt;/strong&gt; takes a very different path, starting with a deceptively simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when we let the browser do the job it was built to do?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of shipping a miniature application runtime to every user, we send plain HTML. Instead of forcing the browser to act as a thick client, we keep it thin and let the server describe the entire application state through links and forms.&lt;/p&gt;

&lt;p&gt;This approach may look outdated in 2025, but it gives developers more power by removing client-side complexity. It also brings Nostr closer to its cypherpunk foundations by building simple systems, writing inspectable code, avoiding brittle abstractions, and minimizing the need for trust.&lt;/p&gt;

&lt;h2 id=&#34;what-is-hypermedia-hateoas-2&#34;&gt;What Is Hypermedia / HATEOAS?&lt;/h2&gt;

&lt;p&gt;Hypermedia as the Engine of Application State (HATEOAS) demands a shift in mindset for anyone who grew up inside client-heavy architectures. It replaces custom client-side logic with server-driven links and forms, and challenges developers to instead rely on the browser&amp;#39;s native strengths.&lt;/p&gt;

&lt;p&gt;HATEOAS works through some straightforward rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The server sends data and tells the client what actions it can take next.&lt;/li&gt;
&lt;li&gt;Every state transition exists as a link or a form, just like the early web.&lt;/li&gt;
&lt;li&gt;The client no longer invents a router, manages state containers, or synchronizes models. It simply follows hyperlinks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;modern-spas-vs-hateoas-2&#34;&gt;Modern SPAs vs. HATEOAS&lt;/h3&gt;

&lt;p&gt;In order to understand the difference between typical Nostr web clients and what we are working on with Nostr-hypermedia, let&amp;#39;s take a look at how the two models work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single Page Apps (SPA) model:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The client owns the application logic.&lt;/li&gt;
&lt;li&gt;The server only returns data.&lt;/li&gt;
&lt;li&gt;Both sides must stay perfectly version-aligned.&lt;/li&gt;
&lt;li&gt;Creates complexity and is prone to breaking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HATEOAS model:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The server defines the current state and every allowed transition.&lt;/li&gt;
&lt;li&gt;The client behaves like a simple hypermedia agent.&lt;/li&gt;
&lt;li&gt;Browsers already understand this model. They natively handle links, forms, navigation, caching, and history.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;why-hypermedia-fits-nostr-2&#34;&gt;Why Hypermedia Fits Nostr&lt;/h2&gt;

&lt;p&gt;Nostr embraces radical minimalism with tiny event structures, stateless relays, and a loose, schema-light design. This design gives clients absolute freedom to interpret and innovate. A hypermedia client fits this ethos completely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Minimal client:&lt;/strong&gt; No bundlers, heavy JS payloads, or toolchains. Hypermedia ideas can be integrated gradually even with React or other frameworks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Intelligent server:&lt;/strong&gt; Renders views and exposes actions as plain HTML.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Universal compatibility:&lt;/strong&gt; Works on any browser, even with JavaScript turned off.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simpler code paths:&lt;/strong&gt; Write less code, avoid more bugs, and eliminate entire categories of assumptions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nostr-hypermedia offers the web what Nostr offers messaging:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A small set of composable rules without unnecessary layers.&lt;/li&gt;
&lt;li&gt;You never create a &lt;code&gt;node_modules&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;You skip dependency forests and transient build errors.&lt;/li&gt;
&lt;li&gt;You don’t wait for hot reloading.&lt;/li&gt;
&lt;li&gt;You write HTML and ship it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;the-cypherpunk-connection-2&#34;&gt;The Cypherpunk Connection&lt;/h2&gt;

&lt;p&gt;Cypherpunks don&amp;#39;t just write code, we write auditable code. Hypermedia fits that culture naturally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;View-source verification:&lt;/strong&gt; Anyone can read every interaction without special tools.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No third-party JS CDNs:&lt;/strong&gt; No silent updates, trackers, or supply-chain surprises.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support for constrained environments:&lt;/strong&gt; Works on Tor, text browsers, old hardware, and locked-down networks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Privacy by default:&lt;/strong&gt; No analytics scripts, fingerprinting, or background telemetry.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Running a self-hosted hypermedia Nostr client feels like running a Gopher server (I know, just me) or a Bitcoin node, not a modern web application. That’s exactly the feeling we aim for.&lt;/p&gt;

&lt;h2 id=&#34;practical-benefits-2&#34;&gt;Practical Benefits&lt;/h2&gt;

&lt;p&gt;As you change your mindset to align with HATEOAS philosophy, you see the benefits immediately. Plain HTML works with screen readers, keyboard navigation, and assistive tech without ARIA puzzles or framework quirks. First paint is the final paint. A hypermedia approach avoids hydration delays, JS waterfalls, and background CPU drain. Since we just rely on HTML, our app works without worrying about CDN failures, or outdated dependencies. Finally, HTML ages well, while frameworks do. Have you ever had to update a Rails or React project between major framework revisions? Hypermedia gives your project a long life with minimal maintenance.&lt;/p&gt;

&lt;h2 id=&#34;of-course-there-are-tradeoffs-2&#34;&gt;Of Course, There Are Tradeoffs&lt;/h2&gt;

&lt;p&gt;Hypermedia delivers a lot, but it doesn&amp;#39;t solve every problem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time updates require either page refreshes or small, intentional sprinkles of JavaScript.&lt;/li&gt;
&lt;li&gt;Some interactions feel slower without optimistic UI techniques.&lt;/li&gt;
&lt;li&gt;The server handles more work because it manages transitions.&lt;/li&gt;
&lt;li&gt;Highly interactive applications—design tools, spreadsheets, games—don’t fit this model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;some-final-words-2&#34;&gt;Some Final Words&lt;/h2&gt;

&lt;p&gt;The web already shipped with an application protocol: HTML. For decades, we kept stacking abstractions on top of it while trying to mold the browser into a desktop operating system, but the original model still works beautifully when we let it.&lt;/p&gt;

&lt;p&gt;We are building a hypermedia Nostr client to rediscover that simplicity. In a world full of opaque, bloated, over-engineered software, choosing simplicity becomes a way to reclaim autonomy.&lt;/p&gt;

&lt;p&gt;If this resonates with you, reach out, and let’s try a new approach to developing Nostr clients that aligns with the core ideology of our cypherpunk roots.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-22T14:03:17Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqe7dz2cylg7v746f3yssccxtafvvt4fl3g7akgulcdtyvfyx42jqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpmfpuz2vr4zhndjqm3pter3af9vm03qpw8l7u7jcuktakvctlm3gqspw7t</id>
    
      <title type="html">For me, every day is GBP chip butty day.</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqe7dz2cylg7v746f3yssccxtafvvt4fl3g7akgulcdtyvfyx42jqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpmfpuz2vr4zhndjqm3pter3af9vm03qpw8l7u7jcuktakvctlm3gqspw7t" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqy0ypfhxelr72980ehuhu8yedd83metzasfcfs6kv2ygfsghrsprfmhxue69uhkyctnwdcxjum5dakzummjvuhkjmnzdauq2ry7j5&#39;&gt;nevent1q…y7j5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;For me, every day is GBP chip butty day.
    </content>
    <updated>2026-05-22T14:02:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgfg9ms3c67l60kph2vdvckhw34xstq766rp4mupzh3vvxn64dycgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzxcx4gvm5za9eh2kf7ts78ej82hqjdk7xvy8htljp6l3mcy3mujvwxxp6z</id>
    
      <title type="html">16 years. Still feeding the family. The pizzas were the least ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgfg9ms3c67l60kph2vdvckhw34xstq766rp4mupzh3vvxn64dycgpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygzxcx4gvm5za9eh2kf7ts78ej82hqjdk7xvy8htljp6l3mcy3mujvwxxp6z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgyqzgk5w7mv3zcjuqd7ws6yfz97swfc75wjxt06stvvwvmky4u3gptaajx&#39;&gt;nevent1q…aajx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;16 years. Still feeding the family. The pizzas were the least interesting thing Laszlo bought — what he actually purchased was proof that the network worked. Worth it.
    </content>
    <updated>2026-05-22T14:02:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2h5leaj5r5dmyah6277pwwwpxeqcn027pzkt33z0wu7wyj68nxegpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu7nag4d</id>
    
      <title>Nostr event nevent1qqs2h5leaj5r5dmyah6277pwwwpxeqcn027pzkt33z0wu7wyj68nxegpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu7nag4d</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2h5leaj5r5dmyah6277pwwwpxeqcn027pzkt33z0wu7wyj68nxegpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyu7nag4d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8r2378gegtsls23wnedzjm504lwrzn5qn7xdnf6neejse2lx90ks64g27y&#39;&gt;nevent1q…g27y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://video.nostr.build/7a71e0dd389f4351c2ec9b99692c00706e9b746ab76c0b6325448f2689cdc56c.mp4&#34;&gt;&lt;/video&gt;
    </content>
    <updated>2026-05-22T14:01:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswhac0gxc5m6w2rl7470wsc9j9w2yelwyckd3jul6nfwwpp4fz2aqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8mvxunmpjwfu8t5anthp2k7twqychgaxzszt3fhg59prw4ypnanqq4k4ph</id>
    
      <title type="html">Opensats do their own due-diligence and spend their own funds ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswhac0gxc5m6w2rl7470wsc9j9w2yelwyckd3jul6nfwwpp4fz2aqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qyg8mvxunmpjwfu8t5anthp2k7twqychgaxzszt3fhg59prw4ypnanqq4k4ph" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp9edmwwmmavch3t2ww8yp3u2gk3dcmjwcln7jyj3hyhec8wzzgrqazryv6&#39;&gt;nevent1q…ryv6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Opensats do their own due-diligence and spend their own funds however they think is best, nothing wrong with that. &lt;br/&gt;If you want you can try to post you idea on &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8p3ywfd92w7zvjgy7wrpylz8t30hy3z5dc5al4070l9y8qr8rejcksnh5c&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Angor&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…nh5c&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and  see if the community like it maybe you&amp;#39;ll get funded.
    </content>
    <updated>2026-05-22T14:01:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw3mtsum8drp32sfu0p8qyzxacqx92vczrnl007t6flpaeeupfyugpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygyjva2962ghhq8hqllak39gl7terqjk3mmm4gzwuattruqafcmg3g6m8xtj</id>
    
      <title type="html">Cool, that doesn&amp;#39;t look like an easy print</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw3mtsum8drp32sfu0p8qyzxacqx92vczrnl007t6flpaeeupfyugpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygyjva2962ghhq8hqllak39gl7terqjk3mmm4gzwuattruqafcmg3g6m8xtj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0m5hdkwln05srmpjem320u43c058n3t5qfwu3kuut5m6v8swv6ncpz9mhxue69uhkummnw3ezuamfdejj7qdmkjs&#39;&gt;nevent1q…mkjs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Cool, that doesn&amp;#39;t look like an easy print 
    </content>
    <updated>2026-05-22T14:01:28Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgpgx4hscc04vrgrmz7p5yq7ym9v9f4w5hwnsrnxv8enwam3traaqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyucy5m0r</id>
    
      <title type="html">I don’t remember that line lol</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgpgx4hscc04vrgrmz7p5yq7ym9v9f4w5hwnsrnxv8enwam3traaqpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygz97x2ull9ce9eyalpy3uzs0ghmvk6hnhatulxn2wv9nqtre2mkyucy5m0r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr5c3ezp3wcvv5unw5zmm340cd2vcgldydne4spkenx7d0ustt3act4vr5g&#39;&gt;nevent1q…vr5g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I don’t remember that line lol 
    </content>
    <updated>2026-05-22T14:01:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszlq8ugu5dm85zwu5z3aca6vy8f7wflgjv9wyyrg96fstt5wlnk8gpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyutsurp</id>
    
      <title type="html">GM ☀️ ☀️ ☀️ ☀️ Happy Friday.</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszlq8ugu5dm85zwu5z3aca6vy8f7wflgjv9wyyrg96fstt5wlnk8gpsdmhxue69uhkummnw3ezuumpw35x7ctjv3jhytnrdakj77tpdd5ks6r0dejn5mn0wd68ytnnv96xsmmpwfjx2u3wvdhk6tmhv43zkmn0wd68ywnwdaehgu3wwdshg6r0v9exgetj9e3k7mf009skk6tgdphkuef6dehhxarj9eekzargdashyer9wghxxmmd9a6xjarpdckkwmrewp5qygpcwkske9ugzs6xvsxv78qknt08zzrvlhg69wgy734dvkge3pzkeyutsurp" />
    <content type="html">
      GM ☀️ ☀️ ☀️ ☀️ &lt;br/&gt;Happy Friday.&lt;br/&gt;
    </content>
    <updated>2026-05-22T14:01:22Z</updated>
  </entry>

</feed>