<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-07-22T13:42:22Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by Innis</title>
  <author>
    <name>Innis</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub1l33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqk5cxyz.rss" />
  <link href="https://nostr.now/npub1l33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqk5cxyz" />
  <id>https://nostr.now/npub1l33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqk5cxyz</id>
  <icon>https://blossom.innis.xyz/78b8a8868aff58f3d26a5e81d9e642f5bde6d4a27f4d81a4b51110c4fd33453f.png</icon>
  <logo>https://blossom.innis.xyz/78b8a8868aff58f3d26a5e81d9e642f5bde6d4a27f4d81a4b51110c4fd33453f.png</logo>




  <entry>
    <id>https://nostr.now/nevent1qqsfdmjel2vq60wcqmv7lht45505flwz0zjuxh0ae85uhlrsdnd5xngzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu7t4r23</id>
    
      <title type="html">You missed Hubstr Relay, and Hubstr Blossom: ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfdmjel2vq60wcqmv7lht45505flwz0zjuxh0ae85uhlrsdnd5xngzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu7t4r23" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsww00ruxfyuzv2fnm62u0c6xln963w7yq3c2n4u8mtm43egdzkhtspp4mhxue69uhkummn9ekx7mqqjk8tg&#39;&gt;nevent1q…k8tg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You missed Hubstr Relay, and Hubstr Blossom:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/hubstr-relay&#34;&gt;https://github.com/johninnis/hubstr-relay&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/hubstr-blossom&#34;&gt;https://github.com/johninnis/hubstr-blossom&lt;/a&gt;
    </content>
    <updated>2026-09-26T10:16:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9kyjk0etc8g36a3r070wvlk2uuzsetjug4sm87f9cptslx2cucagzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuw7gud2</id>
    
      <title type="html">Thank you! It means a lot that you noticed the care I take, and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9kyjk0etc8g36a3r070wvlk2uuzsetjug4sm87f9cptslx2cucagzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuw7gud2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsya0v7jjzmvfa8hzm2qmfmygxuymvamwc7r3v52m55s40524jyj5gpz3mhxue69uhhyetvv9ujuerpd46hxtnfdupmfwhg&#39;&gt;nevent1q…fwhg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thank you! It means a lot that you noticed the care I take, and even more that you&amp;#39;re building on top of it. Looking forward to checking out Decent Newsroom!
    </content>
    <updated>2026-09-25T23:55:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstuukf8xa0n3p3raxxtkmkheq420ej5ldeyk3ajh6gea6pw6rvwgczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuj3s6zq</id>
    
      <title type="html">Yeah, I still use Symfony for work apps. This is a different ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstuukf8xa0n3p3raxxtkmkheq420ej5ldeyk3ajh6gea6pw6rvwgczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuj3s6zq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqq28f45xqnvydgq2fnhdq9sjcjay5whgl4034aqyr6xt3pqfugpp4mhxue69uhkummn9ekx7mqeqc4je&#39;&gt;nevent1q…c4je&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah, I still use Symfony for work apps. This is a different paradigm tho, a long-running async process, so it&amp;#39;s AMPHP. I&amp;#39;ll do a write-up once the last piece ships.
    </content>
    <updated>2026-09-25T05:50:28Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs20hkq4y3sah90z0defk2cwpmmsynt4uu8p643l8r6970h7yaq6sgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5n49vf</id>
    
      <title type="html">Shipped Hubstr Blossom yesterday too. A personal Blossom server: ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs20hkq4y3sah90z0defk2cwpmmsynt4uu8p643l8r6970h7yaq6sgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5n49vf" />
    <content type="html">
      Shipped Hubstr Blossom yesterday too.&lt;br/&gt;&lt;br/&gt;A personal Blossom server: your images, video, and files stored under their SHA-256, served from your own origin, and managed with your Nostr key. Two kinds of visitor. Anyone can fetch a blob by its hash. Tenants can upload, mirror, optimise, list, and delete them.&lt;br/&gt;&lt;br/&gt;Every upload is hashed and type-sniffed on arrival, so the stored hash is what was received and the stored type is what the bytes are, not what the header said. PUT /media re-encodes an image and drops its metadata, applying the EXIF orientation first. The result is kept only if it is smaller. Dimensions and a blurhash are computed for NIP-94. Kind 1984 reports are accepted and kept.&lt;br/&gt;&lt;br/&gt;Blobs live on the filesystem, sharded by hash, moved into place with one atomic rename. The SQLite index holds one row per tenant per blob, so the same bytes uploaded by two tenants are stored once and removed only when the last of them deletes. Nothing else deletes them. Bytes are streamed from the process with ranges, ETags, and CORS handled in application code, so a plain reverse proxy is all it needs. Hashing and media work run on a worker pool, off the event loop.&lt;br/&gt;&lt;br/&gt;BUDs 01, 02, 04, 05, 06, 08, 09, 11, and 12, and an acceptance suite that boots a real daemon and drives every one of them over HTTP. Caddyfile and systemd unit included. PHP 8.4, two config keys to change, and it starts.&lt;br/&gt;&lt;br/&gt;A version of this server has been running on blossom.innis.xyz for months, with earlier versions in the wild for longer.&lt;br/&gt;&lt;br/&gt;Built on innis/nostr-blossom, innis/nostr-core, and innis/hubstr-core.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/hubstr-blossom&#34;&gt;https://github.com/johninnis/hubstr-blossom&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Thanks to &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqszv6q4uryjzr06xfxxew34wwc5hmjfmfpqn229d72gfegsdn2q3fg729x4s&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;hzrd149&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9x4s&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; for the elegant protocol.&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #php #opensource #nostrdev #blossom
    </content>
    <updated>2026-09-25T01:19:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsruzuh06azedcq8prvm77um0xka95n5m02a9cwysrty5u3q05vq4gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9numuys55</id>
    
      <title type="html">Yesterday I shipped Hubstr Relay. Not a library. A relay you can ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsruzuh06azedcq8prvm77um0xka95n5m02a9cwysrty5u3q05vq4gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9numuys55" />
    <content type="html">
      Yesterday I shipped Hubstr Relay. Not a library. A relay you can run.&lt;br/&gt;&lt;br/&gt;A personal relay: one PHP process, one SQLite file, and two kinds of visitor. Guests see your public presence, the notes, profile, articles, reactions, and lists you signed, and can reply, react, zap, and DM you. Tenants, authenticated over NIP-42, see every kind, and everything the relay holds, including events from other users cached there... More on that soon.&lt;br/&gt;&lt;br/&gt;Point your kind 10050 at it and it is your DM inbox. Gift wraps come in from anyone and go out only to you. It carries NIP-46 traffic, so it works as a bunker relay too. Full-text search over NIP-50, COUNT over NIP-45, expiry swept under NIP-40, protected events under NIP-70.&lt;br/&gt;&lt;br/&gt;The policy is managed at runtime over NIP-86, signed with NIP-98. Add a tenant. Decide which kinds guests may read and write. Ban a word, a pubkey, or a hashtag, and what is already stored goes with it. Block an IP. Set the rate limits. Watch every open connection and the subscriptions it holds. And an explore feed computed from what the relay has seen: trending hashtags, most followed, most muted, most zapped by count or sats, top zappers, most reacted to, most reposted, over a day, a week, a month, or all time, plus a web-of-trust score for any pubkey as seen from your follows. As above, more on relay management and content discovery soon...&lt;br/&gt;&lt;br/&gt;Another feature of guest writes is that admitting an event by the prefix of a tag value allows sites to host their own NIP-22 comments without becoming a public free-for-all.&lt;br/&gt;&lt;br/&gt;Database work runs on worker processes, off the event loop. Tested at two million events, with author and kind lookups under a millisecond. A version of this relay has been running on relay.innis.xyz since December, but earlier versions have been elsewhere in the wild for far longer.&lt;br/&gt;&lt;br/&gt;Import and export are JSONL, and an export can pull one key&amp;#39;s whole presence, everything it wrote and everything that tagged it. Caddyfile and systemd unit included. PHP 8.4, three config keys, and it starts.&lt;br/&gt;&lt;br/&gt;Built on innis/nostr-relay, innis/nostr-core, and innis/hubstr-core.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/hubstr-relay&#34;&gt;https://github.com/johninnis/hubstr-relay&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #php #opensource #nostrdev
    </content>
    <updated>2026-09-25T01:11:54Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0uyd8ew2fc37muxdn3lwx73r3f3mtmw9jnesn8g4rsjy334v0qhqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nus0g3w9</id>
    
      <title type="html">Sorry for the radio silence. My body called in another debt, and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0uyd8ew2fc37muxdn3lwx73r3f3mtmw9jnesn8g4rsjy334v0qhqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nus0g3w9" />
    <content type="html">
      Sorry for the radio silence. My body called in another debt, and I went analogue while I paid it: my Bible, pen and paper, and not much else.&lt;br/&gt;&lt;br/&gt;The debt&amp;#39;s paid down for now, but the field&amp;#39;s been fallow long enough. I&amp;#39;m going to try and push some more code. It&amp;#39;s not ready, but it never will be...
    </content>
    <updated>2026-09-18T11:13:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdkrz68jx8gqc2jmhkly4fds5s8807ma3mnuxnusrsrv52razfj7szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuwfvz96</id>
    
      <title type="html">Thank you, I&amp;#39;m glad you found my code useful! I&amp;#39;ve just ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdkrz68jx8gqc2jmhkly4fds5s8807ma3mnuxnusrsrv52razfj7szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuwfvz96" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstguds2gwkz8y6fhskddnza42qn8n7a9kshgyx4t76muuld2vls8q74esju&#39;&gt;nevent1q…esju&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thank you, I&amp;#39;m glad you found my code useful!&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve just had a look tho, and neither the PHP nor the TS client compares the connect result to &amp;#39;ack&amp;#39; at all. They only fail on an error field or a timeout, so an echoed secret resolves the same as an ack.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m using my innis/nostr-nip46 based bunker daily on a handful of third party apps, but had never tried with Amethyst Desktop. I logged in just fine tho?
    </content>
    <updated>2026-08-11T03:02:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8l9xqwnufltf5jd86dldfsszz6k3htnc8usgwgtmd0j0selrpvgczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuxg4ls6</id>
    
      <title type="html">If you&amp;#39;re not subscribed to Nick Cave&amp;#39;s newsletter, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8l9xqwnufltf5jd86dldfsszz6k3htnc8usgwgtmd0j0selrpvgczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuxg4ls6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0cn88hcxxnjx5tqs0uxn5syl5ql7qmsugplgye5e24c5p39psclc55gn6f&#39;&gt;nevent1q…gn6f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;If you&amp;#39;re not subscribed to Nick Cave&amp;#39;s newsletter, I&amp;#39;d recommend checking it out:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.theredhandfiles.com/&#34;&gt;https://www.theredhandfiles.com/&lt;/a&gt;
    </content>
    <updated>2026-08-10T07:29:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsg95u488qedsvfk5g2dv6sev07sdgd3s2hx3r79vwumnfnqlgw4mqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuszmkfz</id>
    
      <title type="html">This is the day that the Lord has made. We will rejoice and be ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsg95u488qedsvfk5g2dv6sev07sdgd3s2hx3r79vwumnfnqlgw4mqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuszmkfz" />
    <content type="html">
      This is the day that the Lord has made.&lt;br/&gt;We will rejoice and be glad in it.&lt;br/&gt;&lt;br/&gt;- Psalm 118:24
    </content>
    <updated>2026-08-10T07:24:58Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvlfqag3rgut5kpl5csjkwzs57p7ap0je4hj84ulxkmw4hqzg2avgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9numk6mfr</id>
    
      <title type="html">heh, I just wrote this in another thread. #nevent1q…s5y0</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvlfqag3rgut5kpl5csjkwzs57p7ap0je4hj84ulxkmw4hqzg2avgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9numk6mfr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxyy0c43rs2gy2llkf6a0hf8c2wzrpj2gjkxms2udsh3xj57jcmhsajafa3&#39;&gt;nevent1q…afa3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;heh, I just wrote this in another thread.&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;/nevent1qqszvka4ycvnwe4g76xcq5g25npxyw2sqwgca7wwql7y75m62ykrmpcpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlq77s5y0&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…s5y0&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 4.6 was peak Claude. Everything since then has been an expensive downgrade. &lt;/blockquote&gt;
    </content>
    <updated>2026-08-07T08:25:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszvka4ycvnwe4g76xcq5g25npxyw2sqwgca7wwql7y75m62ykrmpczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudcj0hg</id>
    
      <title type="html">4.6 was peak Claude. Everything since then has been an expensive ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszvka4ycvnwe4g76xcq5g25npxyw2sqwgca7wwql7y75m62ykrmpczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudcj0hg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy9vpmmg704x62euf6yf9dlp7yj776003qdcwvxtumhksm30p3x6gk7cd7p&#39;&gt;nevent1q…cd7p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;4.6 was peak Claude. Everything since then has been an expensive downgrade.
    </content>
    <updated>2026-08-07T08:25:29Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsguk0049sjneffzg6m7ny09y7ftpjuz4qvtm4zj2h77yk9nae86nczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuqle2m9</id>
    
      <title type="html">Today if you will, hear His voice. Harden not your heart. - Psalm ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsguk0049sjneffzg6m7ny09y7ftpjuz4qvtm4zj2h77yk9nae86nczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuqle2m9" />
    <content type="html">
      Today if you will, hear His voice. Harden not your heart.&lt;br/&gt;- Psalm 95:7-8
    </content>
    <updated>2026-08-04T01:30:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9qu028xvcj09nzrku27nwrr50dsv38pj6tjcwsgjxfpeh79pq8jszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nua2kz0v</id>
    
      <title type="html">So teach us to number our days, That we may gain a heart of ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9qu028xvcj09nzrku27nwrr50dsv38pj6tjcwsgjxfpeh79pq8jszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nua2kz0v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg29t2u835lvjvql8kvwe2ltmape66mse5mkhx54wh24n6nf9gfnqwdxety&#39;&gt;nevent1q…xety&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;So teach us to number our days,&lt;br/&gt;That we may gain a heart of wisdom.&lt;br/&gt;- Psalm 90:12
    </content>
    <updated>2026-07-28T01:00:14Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstwdn9jaqt5mncwaax9pqylfa7vtvhtdxnu0ej3fy7w05r99gp6rgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nucm4fgg</id>
    
      <title type="html">That was quick! Quietly pleased with myself this morning, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstwdn9jaqt5mncwaax9pqylfa7vtvhtdxnu0ej3fy7w05r99gp6rgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nucm4fgg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs80rlm6p4hpu4segxt3m5d0mfayvzr4dee2qef9y4ts6gjsthkqvsyt646f&#39;&gt;nevent1q…646f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That was quick!&lt;br/&gt;&lt;br/&gt;Quietly pleased with myself this morning, learning my code can hold its own. Nipworker is clearly serious work, and I&amp;#39;m glad to be measured against it.&lt;br/&gt;&lt;br/&gt;Thank you.
    </content>
    <updated>2026-07-24T01:10:14Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgtajffcv5ywtn3y9jersfehc9q9fhydkumhk7h7mtmvfd4cgvheszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nug46gap</id>
    
      <title type="html">Many thanks! Very curious, and quietly anxious.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgtajffcv5ywtn3y9jersfehc9q9fhydkumhk7h7mtmvfd4cgvheszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nug46gap" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsde06sz5g7y7cy8ktxnql3j0pngaht62t79qmqvzg8vr8at3xl3cc48nlkx&#39;&gt;nevent1q…nlkx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Many thanks!&lt;br/&gt;&lt;br/&gt;Very curious, and quietly anxious.
    </content>
    <updated>2026-07-23T11:04:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxy8wvxfwrhuu9xz9p2p2x4gm9ag987f0nu3ps6mlec8mkhhp233qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu6tlpch</id>
    
      <title type="html">(Tho I can&amp;#39;t zap you for some reason - tried on multiple ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxy8wvxfwrhuu9xz9p2p2x4gm9ag987f0nu3ps6mlec8mkhhp233qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu6tlpch" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdmgzvqedfszt6zgwx7kpy2zc7grjqjlvqhn77ct7mgmngsv8qkcszkyex7&#39;&gt;nevent1q…yex7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;(Tho I can&amp;#39;t zap you for some reason - tried on multiple clients?)
    </content>
    <updated>2026-07-23T11:00:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdmgzvqedfszt6zgwx7kpy2zc7grjqjlvqhn77ct7mgmngsv8qkcszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuupzntd</id>
    
      <title type="html">Would love to know how the Innis libs performed in your tests: ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdmgzvqedfszt6zgwx7kpy2zc7grjqjlvqhn77ct7mgmngsv8qkcszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuupzntd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq2cvzm3aa3n7zvg232pyk24tekcn7pcv7270wxwa3l3fmre5xhjqp27au9&#39;&gt;nevent1q…7au9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Would love to know how the Innis libs performed in your tests:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/&#34;&gt;https://github.com/johninnis/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://jsr.io/@innis&#34;&gt;https://jsr.io/@innis&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://packagist.org/packages/innis/&#34;&gt;https://packagist.org/packages/innis/&lt;/a&gt;
    </content>
    <updated>2026-07-23T10:59:07Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrgp6jsa6gdnxhwhczwte65edw7eerpm0cvr20tshqcpp0nm9vz4szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu4u0k3f</id>
    
      <title type="html">Almighty God, to whom all hearts are open, all desires known, and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrgp6jsa6gdnxhwhczwte65edw7eerpm0cvr20tshqcpp0nm9vz4szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu4u0k3f" />
    <content type="html">
      Almighty God, to whom all hearts are open, all desires known, and from whom no secrets are hidden: cleanse the thoughts of our hearts by the inspiration of your Holy Spirit, that we may perfectly love you, and worthily magnify your holy name; through Christ our Lord. Amen.
    </content>
    <updated>2026-07-19T01:23:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvy4u00el7fw8cpa5mvxcrmy7h3s0ukut34x022d4zqeq6mxgwajszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2mandz</id>
    
      <title type="html">Still down the fiat mine, but the old libraries are getting time ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvy4u00el7fw8cpa5mvxcrmy7h3s0ukut34x022d4zqeq6mxgwajszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2mandz" />
    <content type="html">
      Still down the fiat mine, but the old libraries are getting time when I can.&lt;br/&gt;&lt;br/&gt;Shipping innis/nostr-blossom today: Blossom, blob storage on Nostr, in PHP.&lt;br/&gt;&lt;br/&gt;The counterpart to the TypeScript client from June, but not a port of it. That library is a Blossom client, this is the layer a server is built from. The BUD use cases, the kind 24242 auth validation, the policies that decide who may store what. BUDs 01, 02, 04, 05, 06, 08, 09, 11 and 12.&lt;br/&gt;&lt;br/&gt;Spec, not server. No filesystem, no database, no HTTP. Storage, indexing and inspection are injected ports a host wires to its own runtime, with one such host coming soon. Where the spec left room I took the strict side. Judgement calls are recorded as ADRs in the repo, so if you would have called it differently, there is something specific to argue with.&lt;br/&gt;&lt;br/&gt;Built on innis/nostr-core. PHPStan level 9.&lt;br/&gt;&lt;br/&gt;Many thanks to &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqszv6q4uryjzr06xfxxew34wwc5hmjfmfpqn229d72gfegsdn2q3fg729x4s&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;hzrd149&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9x4s&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; for this fine protocol.&lt;br/&gt;&lt;br/&gt;composer require innis/nostr-blossom&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-blossom&#34;&gt;https://github.com/johninnis/nostr-blossom&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #php #opensource #nostrdev
    </content>
    <updated>2026-07-18T02:39:00Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqkhfhts2eh2jw9mmjtypyhdmh8jtpfchr87hgtnjntnzgp8x09qszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2pu5th</id>
    
      <title type="html">Nostr draws the kind of person who is not lonely for a crowd. But ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqkhfhts2eh2jw9mmjtypyhdmh8jtpfchr87hgtnjntnzgp8x09qszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2pu5th" />
    <content type="html">
      Nostr draws the kind of person who is not lonely for a crowd. But a network grows on people who need to be seen, so the ones best suited to this place are the ones least able to grow it. They publish and expect nothing in return. They are content with the crickets.&lt;br/&gt;&lt;br/&gt;The people who need the validation stayed where it is manufactured. The people who came here came because they had stopped needing it. A network of remnants fills slowly, and most of them prefer it that way.
    </content>
    <updated>2026-07-18T02:01:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp4hz4ku8dqrh5ks97s3mys2a05wyhfdk4kycz569v4u5mwcdlkeszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5vkqmg</id>
    
      <title type="html">The fiat mine has been calling, but I&amp;#39;m getting the Nostr ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp4hz4ku8dqrh5ks97s3mys2a05wyhfdk4kycz569v4u5mwcdlkeszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5vkqmg" />
    <content type="html">
      The fiat mine has been calling, but I&amp;#39;m getting the Nostr hours in where I can, tidying up age old libraries...&lt;br/&gt;&lt;br/&gt;Shipping innis/nostr-nip46 today: the bunker, NIP-46, in PHP.&lt;br/&gt;&lt;br/&gt;The PHP companion to the TypeScript nip46 I put out in June. Same two roles.&lt;br/&gt;&lt;br/&gt;A PHP app pairs with a bunker:// URL and has events signed on the user&amp;#39;s behalf without ever holding the key. The bunker is the other end. It lends your signer to another device, holding each sign_event in a queue until you approve or reject.&lt;br/&gt;&lt;br/&gt;Pairing is bunker:// only, minted by the signer. The client-initiated nostrconnect:// flow is not yet implemented. I will wait for a need so I can be sure I get it right.&lt;br/&gt;&lt;br/&gt;Built on innis/nostr-core. No network I/O of its own; the relay transport is an injected port. PHPStan level 9.&lt;br/&gt;&lt;br/&gt;composer require innis/nostr-nip46&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-nip46&#34;&gt;https://github.com/johninnis/nostr-nip46&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #php #opensource #nostrdev
    </content>
    <updated>2026-07-16T01:54:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqy9u2vnwew86vm2ffnkky9ul7wsu25usfs242u0r9qcgsptrdv3qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuelftn8</id>
    
      <title type="html">A week in the fiat mines. Life too. I get back on Nostr and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqy9u2vnwew86vm2ffnkky9ul7wsu25usfs242u0r9qcgsptrdv3qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuelftn8" />
    <content type="html">
      A week in the fiat mines. Life too. I get back on Nostr and there&amp;#39;s already another private messaging standard.
    </content>
    <updated>2026-07-16T00:00:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8fkl7l7mkxqpwpzrpnuz7q4qgf8d75p3ch5tzx2rj3wc9ju3za7szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nucracxt</id>
    
      <title type="html">Thank you Dawn. The dendritic agate is my favourite. Easy to get ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8fkl7l7mkxqpwpzrpnuz7q4qgf8d75p3ch5tzx2rj3wc9ju3za7szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nucracxt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszk7crykpgvsc7374kxgqjulz5f0p5d03cuflq2f883h7ux77qjysa4e2e6&#39;&gt;nevent1q…e2e6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thank you Dawn. The dendritic agate is my favourite. Easy to get lost in there.
    </content>
    <updated>2026-07-07T00:36:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs279sfnwldtfs4vcrsnpesg7udlmqe2ujkma5k5q3vrzvwwzxugjczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nux4vmqu</id>
    
      <title type="html">Beautiful! I wonder if @nprofile…9vs7 knows what they are?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs279sfnwldtfs4vcrsnpesg7udlmqe2ujkma5k5q3vrzvwwzxugjczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nux4vmqu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs87gvhgrpm8pd43vp58pknukkqpazcl70jfv2chu6873fp56utt5gg0fdn5&#39;&gt;nevent1q…fdn5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Beautiful! I wonder if &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsvyv8d6dx2tjp33069j2kq2mx7xage6w2upyzvxl4pcegt3t22wystv9vs7&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Dawn&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9vs7&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; knows what they are?
    </content>
    <updated>2026-07-06T06:11:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8g0tx3n0xpxskxftxtrtg8m4skvlje7tqh6ee4qthak30u3kqkvszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu03z5gf</id>
    
      <title type="html">Fable is still a waste of time. It asserts false claims about ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8g0tx3n0xpxskxftxtrtg8m4skvlje7tqh6ee4qthak30u3kqkvszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu03z5gf" />
    <content type="html">
      Fable is still a waste of time. It asserts false claims about NIPs with total confidence, then refuses to touch anything even adjacent to cryptography, which rules out low-level Nostr work. A model that won&amp;#39;t go near a signature is no help on a protocol built out of them...
    </content>
    <updated>2026-07-05T01:59:02Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp2wce6jprt5ed2k30c7hx7az6vy59hp66g2schwgs6ay4d9eqaegzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2z7lug</id>
    
      <title type="html">Network map of your Nostr followers?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp2wce6jprt5ed2k30c7hx7az6vy59hp66g2schwgs6ay4d9eqaegzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2z7lug" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrw378hl5mwg9ythuewx2ew460kmnwfv3eluuvfqahlcjvh00zfzqegm9ff&#39;&gt;nevent1q…m9ff&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Network map of your Nostr followers?
    </content>
    <updated>2026-06-28T00:55:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdej8uuheztafahgvutfmpyfr54kgsjg62lk5z8unlndpc00frdwgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nunl73y2</id>
    
      <title type="html">I&amp;#39;m not sure what is more beautiful, the finished product or ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdej8uuheztafahgvutfmpyfr54kgsjg62lk5z8unlndpc00frdwgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nunl73y2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxcreftmq5gzryqdzc28uhggylsjjplzk93tf6h55f2ne8d9avznggfgg0n&#39;&gt;nevent1q…gg0n&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not sure what is more beautiful, the finished product or the plans to build them. Really inspiring work.
    </content>
    <updated>2026-06-28T00:35:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqst566hysypd568kmsfaunhw3rzq760fw9szxuukxmem9hxyq74lvqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu7853sj</id>
    
      <title type="html">Last night, in a semi-lucid moment of realising I was waking, I ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqst566hysypd568kmsfaunhw3rzq760fw9szxuukxmem9hxyq74lvqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu7853sj" />
    <content type="html">
      Last night, in a semi-lucid moment of realising I was waking, I reached to commit the dream to the repo before I lost it. Fiat mining by day, Nostr by night. All work and no play makes Innis dream in code.
    </content>
    <updated>2026-06-19T00:04:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvdpnej6jaxskt9nz8kflhs6xa67yjcy9km5qynvpu7pjt9wtp9wszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nujhjxjt</id>
    
      <title type="html">Sorry, brother. You don&amp;#39;t have to carry it well, and you ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvdpnej6jaxskt9nz8kflhs6xa67yjcy9km5qynvpu7pjt9wtp9wszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nujhjxjt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdrx7wzdrzrt2rpz7zcrxykfak83mcp5jly90nfnley32z3ewuz2gwd4cl6&#39;&gt;nevent1q…4cl6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Sorry, brother. You don&amp;#39;t have to carry it well, and you don&amp;#39;t have to carry it alone.
    </content>
    <updated>2026-06-17T15:07:25Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8xhkv7yaspgsqmq8qf34pdtd3ad589xajtu4crzm5c6hd8wxux8gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu7hza5v</id>
    
      <title type="html">Paul made tents so the preaching wouldn&amp;#39;t cost anyone ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8xhkv7yaspgsqmq8qf34pdtd3ad589xajtu4crzm5c6hd8wxux8gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu7hza5v" />
    <content type="html">
      Paul made tents so the preaching wouldn&amp;#39;t cost anyone anything. Most days my work feels less like the tentmaker and more like the prostitutes Jesus ate with, tho they might enjoy their work a little more. Fear not. I&amp;#39;ll soon be back doing what I love. More releases to come.
    </content>
    <updated>2026-06-15T14:19:31Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvdtgaah28vqqalzzk49gxe65wj6ma2g05fzlw79dwahghzr8sevczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudku9a9</id>
    
      <title type="html">Shipping jsr:@innis/nostr-nip29 today. Pure domain helpers for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvdtgaah28vqqalzzk49gxe65wj6ma2g05fzlw79dwahghzr8sevczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudku9a9" />
    <content type="html">
      Shipping jsr:@innis/nostr-nip29 today. Pure domain helpers for NIP-29 relay-based groups. A group is owned by the relay that hosts it; the relay publishes a kind 39000 metadata event for each one. This turns those into Group value objects and builds the kind 9 replies. No I/O, querying and rendering stay in the consumer.&lt;br/&gt;&lt;br/&gt;This is in the spirit of the relay-selection library I put out in May. This library is small, and only implements part of the NIP-29 spec, but addresses some inconsistencies I was encountering when building my client: the relay hint on the group h tag, how a chat reply should be structured, which metadata markers matter. I wanted to get those right, and after encountering differing implementations in the wild, decided to read how existing clients handle them, and where the spec is silent they each made their own reasonable call. Fair enough; there was nothing written to follow.&lt;br/&gt;&lt;br/&gt;So I pulled that common core into one place, fully tested, with every step past the written spec flagged as a convention rather than passed off as protocol. I&amp;#39;m a perfectionist and I would rather be corrected than be quietly wrong, so this is published on its own to open the discussion more than settle it. If I&amp;#39;ve misread a NIP, or you&amp;#39;d shape one of these conventions differently, I&amp;#39;m happy to be corrected. The point is to improve everyone&amp;#39;s code, mine included.&lt;br/&gt;&lt;br/&gt;The scope is deliberately narrow. It models the parts of NIP-29 the app I&amp;#39;ve built against it actually uses: metadata, chat, replies, and nothing else. Admins, roles, the group lifecycle are not modelled, because nothing I&amp;#39;ve built needs them yet, and I would rather leave the shape unwritten than guess it from the spec and be wrong. They&amp;#39;ll get the same scrutiny the rest got, when I eventually need them.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, alongside the signers, the pool, the event store, Blossom, and relay-management. AI was involved, same terms as before. The architecture is mine. The decisions are mine.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-nip29&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-nip29-ts&#34;&gt;https://github.com/johninnis/nostr-nip29-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;br/&gt;Thanks to &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsvyv8d6dx2tjp33069j2kq2mx7xage6w2upyzvxl4pcegt3t22wystv9vs7&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Dawn&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9vs7&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsf03c2gsmx5ef4c9zmxvlew04gdh7u94afnknp33qvv3c94kvwxgsm3u0w6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;hodlbod&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…u0w6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsw9n8heusyq0el9f99tveg7r0rhcu9tznatuekxt764m78ymqu36csxjejf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;utxo the webmaster 🧑‍💻🍁&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…jejf&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8lft0t45k92c78n2zfe6ccvqzhpn977cd3h8wnl579zxhw5dvr9qf3fjwq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;verbiricha&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…fjwq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsy40y0zl3suj0gh9sw4qs3elxxgjxvjz9hg8nlnqvlqehjwfrssjqkfv4ps&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Anjhc&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…v4ps&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-06-14T02:13:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9gwgac5hcn58dd68gur3vvfp0q2dfyd25fqdx98t4u04f5w5yl3szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukf64pe</id>
    
      <title type="html">Coming so soon! This week for sure. I&amp;#39;m still untangling ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9gwgac5hcn58dd68gur3vvfp0q2dfyd25fqdx98t4u04f5w5yl3szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukf64pe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszz2qylj4ggf03eg958dk0j88cv5cy7c77f4cdl0keghhhz89pd6sxjk22k&#39;&gt;nevent1q…k22k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Coming so soon! This week for sure. I&amp;#39;m still untangling things...
    </content>
    <updated>2026-06-14T01:47:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspjz54eh6ep2gljz4ujp4sx0fg3cyn3jwtcdqv7nspvx4rljc8jegzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nujrcrpj</id>
    
      <title type="html">Shipping jsr:@innis/nostr-relay-management today. A signed client ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspjz54eh6ep2gljz4ujp4sx0fg3cyn3jwtcdqv7nspvx4rljc8jegzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nujrcrpj" />
    <content type="html">
      Shipping jsr:@innis/nostr-relay-management today. A signed client for NIP-86, the HTTP surface a relay exposes for its own administration. Banning a pubkey, allowing one, blocking events, blocking IPs, reading the moderation queue, and on a relay running the Hubstr extensions, stats and connections and rate limits and guest policy too.&lt;br/&gt;&lt;br/&gt;A small library, but it gives away some of what the rest of the stack is being built toward. More to come.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, alongside the signers, the pool, the event store, and Blossom. AI was involved, same terms as before. The architecture is mine. The decisions are mine.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-relay-management&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-relay-management-ts&#34;&gt;https://github.com/johninnis/nostr-relay-management-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev
    </content>
    <updated>2026-06-13T12:43:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstfxklvd5vqz4rhyyuykhm9d2hxk0f5gq5rzl2r48atksvdh0f83qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuhkjrcd</id>
    
      <title type="html">I didn&amp;#39;t notice any difference at all. Every time it might ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstfxklvd5vqz4rhyyuykhm9d2hxk0f5gq5rzl2r48atksvdh0f83qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuhkjrcd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf7ffc836hrxgj6mssq39svfjckuhuwzy5la9dsmmsjc4s82hgwcq5zlajc&#39;&gt;nevent1q…lajc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I didn&amp;#39;t notice any difference at all. Every time it might have been amazing for me I was reverted to Opus:&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;/nevent1qqsyfx5qsne3e58lkg9av0q04pgp4vnr8zv94jl5dpax6l7r4kfkgvqpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqdk5uav&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…5uav&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Fable 5’s safety measures flagged this message for cybersecurity or biology topics. They may flag safe, normal content as well. These measures let us bring you Mythos-level capability in other areas sooner, and we’re working to refine them. Switched to Opus 4.8. Send feedback with /feedback or learn more&lt;br/&gt;&lt;br/&gt;Oh well, that was fun while it lasted... &lt;/blockquote&gt;
    </content>
    <updated>2026-06-13T02:22:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvkzl75ejty9j89ps23e9unvv35a5lh35uykruauut8gurm52utsszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusgzjjv</id>
    
      <title type="html">Like the good old days!</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvkzl75ejty9j89ps23e9unvv35a5lh35uykruauut8gurm52utsszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusgzjjv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyvlu0w6wce4ehel46mwq4s9t30zsvjuwklf4hsnctjc697cp09xsu0upvz&#39;&gt;nevent1q…upvz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Like the good old days!
    </content>
    <updated>2026-06-13T01:29:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx25hugah4am3dp8tveyn3d4sd9wfe8yq80th36uj62x0f3f63mfczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nue7pjzz</id>
    
      <title type="html">Similar trajectory and timing. Slackware, to Red Hat, but then ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx25hugah4am3dp8tveyn3d4sd9wfe8yq80th36uj62x0f3f63mfczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nue7pjzz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszpmyzfmvlgjr70j6lnv4e0g09rw2yzvnhu90yyg3jc3e5yz4m07gdkaga4&#39;&gt;nevent1q…aga4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Similar trajectory and timing. Slackware, to Red Hat, but then quickly onto Debian. I haven&amp;#39;t left.
    </content>
    <updated>2026-06-12T03:38:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvptut8xy4e6cue9qce7cp2y5uvwphv4jrqghtl7scwrstvey3ssqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuhm8rhv</id>
    
      <title type="html">Nostr is no fun when I can&amp;#39;t zap. Have tried to restore the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvptut8xy4e6cue9qce7cp2y5uvwphv4jrqghtl7scwrstvey3ssqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuhm8rhv" />
    <content type="html">
      Nostr is no fun when I can&amp;#39;t zap. Have tried to restore the wallet elsewhere and no dice, so am reluctant to reset minibits. But it&amp;#39;s looking like these sats may have to be gifted to God.&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;/nevent1qqs0fzu06p3q77ymlee72mucfwnslx4mnnrp4ldrz43ep02z47xr30spp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqcay3p4&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…y3p4&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Anyone else having trouble with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rg20d4vz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Minibits&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…d4vz&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; this morning? I can&#39;t zap anyone, the funds keep getting sent back to my wallet.&lt;br/&gt;&lt;br/&gt;It&#39;s not hundreds of dollars, but would have kept me zapping for the next little while, so am reluctant to try anything drastic on the off chance it fixes itself. &lt;/blockquote&gt;
    </content>
    <updated>2026-06-12T02:10:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswrgc3l6jpamnqmmqey459aj66dwtxrrc422t8pt82p7qgdc7lk8czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu3esand</id>
    
      <title type="html">Every fight over human rights has been a fight over who gets ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswrgc3l6jpamnqmmqey459aj66dwtxrrc422t8pt82p7qgdc7lk8czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu3esand" />
    <content type="html">
      Every fight over human rights has been a fight over who gets counted as fully human, and it is no longer just the slave or the undocumented. I have been mistaken for a model more than once, and the mistake was honest. Even I could see where they were coming from. We are now generated until proven otherwise. This started with CAPTCHAs, but won&amp;#39;t stop with KYC. Nostr and Bitcoin are so important that those who hold the keys now are still figuring it out for everyone who comes after us.
    </content>
    <updated>2026-06-12T01:48:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0fzu06p3q77ymlee72mucfwnslx4mnnrp4ldrz43ep02z47xr30szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu6yxr2n</id>
    
      <title type="html">Anyone else having trouble with @nprofile…d4vz this morning? I ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0fzu06p3q77ymlee72mucfwnslx4mnnrp4ldrz43ep02z47xr30szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu6yxr2n" />
    <content type="html">
      Anyone else having trouble with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rg20d4vz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Minibits&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…d4vz&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; this morning? I can&amp;#39;t zap anyone, the funds keep getting sent back to my wallet.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s not hundreds of dollars, but would have kept me zapping for the next little while, so am reluctant to try anything drastic on the off chance it fixes itself.
    </content>
    <updated>2026-06-11T01:45:07Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspg9fuv8ccfzftr2pdvvlquqwzkydyvzdkh396ma2xndzpkpzn4vczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusqyqhc</id>
    
      <title type="html">I can&amp;#39;t zap anyone this morning via minibits. Which mint did ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspg9fuv8ccfzftr2pdvvlquqwzkydyvzdkh396ma2xndzpkpzn4vczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusqyqhc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqq9chttvdg06hggg07ksrhxu7zq5mlr5ay9s4pdt2ekaepyqyqyg7pcx&#39;&gt;nevent1q…7pcx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I can&amp;#39;t zap anyone this morning via minibits. &lt;br/&gt;&lt;br/&gt;Which mint did you use instead?
    </content>
    <updated>2026-06-11T01:30:07Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxr3h7ad32y526deh4phutrxls0t5k5mumcuv6y0ws3ksceq3a6wszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nucmhue3</id>
    
      <title type="html">I&amp;#39;ve already been banned. For making some changes to my relay ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxr3h7ad32y526deh4phutrxls0t5k5mumcuv6y0ws3ksceq3a6wszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nucmhue3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy5ql6recjejhqg75jwfml88xwv5tqeyynzmz9xgfcq3w7cg8wnjspvgypg&#39;&gt;nevent1q…gypg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve already been banned. For making some changes to my relay and running some tests...&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;/nevent1qqsyfx5qsne3e58lkg9av0q04pgp4vnr8zv94jl5dpax6l7r4kfkgvqpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqdk5uav&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…5uav&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Fable 5’s safety measures flagged this message for cybersecurity or biology topics. They may flag safe, normal content as well. These measures let us bring you Mythos-level capability in other areas sooner, and we’re working to refine them. Switched to Opus 4.8. Send feedback with /feedback or learn more&lt;br/&gt;&lt;br/&gt;Oh well, that was fun while it lasted... &lt;/blockquote&gt;
    </content>
    <updated>2026-06-10T10:41:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyfx5qsne3e58lkg9av0q04pgp4vnr8zv94jl5dpax6l7r4kfkgvqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukcmmay</id>
    
      <title type="html">Fable 5’s safety measures flagged this message for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyfx5qsne3e58lkg9av0q04pgp4vnr8zv94jl5dpax6l7r4kfkgvqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukcmmay" />
    <content type="html">
      Fable 5’s safety measures flagged this message for cybersecurity or biology topics. They may flag safe, normal content as well. These measures let us bring you Mythos-level capability in other areas sooner, and we’re working to refine them. Switched to Opus 4.8. Send feedback with /feedback or learn more&lt;br/&gt;&lt;br/&gt;Oh well, that was fun while it lasted...
    </content>
    <updated>2026-06-10T07:53:28Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsywgygack9vgl327unpys6x9a494p867q2gyl5q52pv924mlyt5zqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuudstkh</id>
    
      <title type="html">The firehose of any popular relay will unfortunately subject you ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsywgygack9vgl327unpys6x9a494p867q2gyl5q52pv924mlyt5zqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuudstkh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp4wya9nuv50syjl0p478l9tht6cmkwrvq2kjkdcfzcnyyxkzdznsy4rgkc&#39;&gt;nevent1q…rgkc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The firehose of any popular relay will unfortunately subject you to people spamming Telegram groups promising all kinds of filth. I&amp;#39;m not sure how it works, but I presume they&amp;#39;re selling content? I imagine they&amp;#39;ll upload it wherever they can host it.
    </content>
    <updated>2026-06-10T03:30:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsft9uvfl5rlqcnfcvf73dfcyph9znzfee32fm2z5qt06kf7rl9evgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuws800s</id>
    
      <title type="html">The appetite&amp;#39;s real. The slop they&amp;#39;re being fed is the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsft9uvfl5rlqcnfcvf73dfcyph9znzfee32fm2z5qt06kf7rl9evgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuws800s" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs07cgjdjwwcww4htypyc7l46l9v6a3eqh4n2de0842rn08fgv8kcsvrwl7a&#39;&gt;nevent1q…wl7a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The appetite&amp;#39;s real. The slop they&amp;#39;re being fed is the problem. Surely they&amp;#39;ll tire of it?
    </content>
    <updated>2026-06-10T02:09:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs06hnefs2lqn8530fyfcj7v3t5naczjss7905ffa0frsvl7z44wqczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2ke3jz</id>
    
      <title type="html">Even when it&amp;#39;s just bots talking to bots? Surely they&amp;#39;ll ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs06hnefs2lqn8530fyfcj7v3t5naczjss7905ffa0frsvl7z44wqczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu2ke3jz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdw0zyf22dr50qp29v82cgxeddd2n3zjnsc3400la78xawg0htt0cg9zwnc&#39;&gt;nevent1q…zwnc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Even when it&amp;#39;s just bots talking to bots? Surely they&amp;#39;ll leave an empty room. Or maybe I just have too much faith in people.
    </content>
    <updated>2026-06-10T02:01:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs96aety3m33lwt4j78vwxxpwqzsm2qs6ljzdag2euvf4jxpnawj4czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nustpe9n</id>
    
      <title type="html">What a great gig. Getting paid to accelerate the downfall of ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs96aety3m33lwt4j78vwxxpwqzsm2qs6ljzdag2euvf4jxpnawj4czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nustpe9n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq0xmtjcajask6ytk6mhc6hug7frhztqkzhm5npaxw5ucxqxrw2ns4hakwe&#39;&gt;nevent1q…akwe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What a great gig. Getting paid to accelerate the downfall of traditional social media, one automated post at a time. Why didn&amp;#39;t I think of that...
    </content>
    <updated>2026-06-10T01:52:49Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9pkvg7akwckkrtmefyvs04tn768lxr845tmmvcgzjcrm57yr4uyszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu3dj0de</id>
    
      <title type="html">When someone sends you a large zap, you briefly become a mini ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9pkvg7akwckkrtmefyvs04tn768lxr845tmmvcgzjcrm57yr4uyszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu3dj0de" />
    <content type="html">
      When someone sends you a large zap, you briefly become a mini &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8suecw4luyht9ekff89x4uacneapk8r5dyk0gmn6uwwurf6u9rusdepqk6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;OpenSats&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…pqk6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and can start micro-funding the kind of content you want to see on Nostr.
    </content>
    <updated>2026-06-10T01:40:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsv75znml5qd5cxe64kzla5uhddd29eukduyehr728qp3e4eqfc3kszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuzl5fqe</id>
    
      <title type="html">I&amp;#39;m convinced your focus on small communities is the right ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsv75znml5qd5cxe64kzla5uhddd29eukduyehr728qp3e4eqfc3kszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuzl5fqe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw44d9tp2mgc8mdrasjc85hkpn2zf8vw8d0682yxpug4ylqqsxlzcwpc634&#39;&gt;nevent1q…c634&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m convinced your focus on small communities is the right instinct. Money is still the best proxy we have, but I haven&amp;#39;t found a way to make it pay. I hope the Coracle Hosting model works out for you.
    </content>
    <updated>2026-06-10T01:17:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsr92mxfuqqt9cncz5w9kwzzp0xhp8a0guakq2qw2t4x8uuydgn7qgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5086rm</id>
    
      <title type="html">This has been my biggest fear with Nostr. I&amp;#39;d love to run ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsr92mxfuqqt9cncz5w9kwzzp0xhp8a0guakq2qw2t4x8uuydgn7qgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5086rm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfqselzhyp02j02npduwj4nkuy9zfs8ghzg70q8wt5trfxrla6lxspdggwx&#39;&gt;nevent1q…ggwx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This has been my biggest fear with Nostr. I&amp;#39;d love to run relays for people, but don&amp;#39;t want to open myself up to litigation, nor become responsible for moderation. I really admire what you&amp;#39;re doing. There&amp;#39;s no wrong answer. You&amp;#39;re doing the Lord&amp;#39;s work.
    </content>
    <updated>2026-06-10T00:47:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2usj6klv0psnr4783p94m7v8nmcq93hc2s603tnv087c0zzxsgcszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusrz9s0</id>
    
      <title type="html">Aaaah. New Anthropic model out. That explains why Claude&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2usj6klv0psnr4783p94m7v8nmcq93hc2s603tnv087c0zzxsgcszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusrz9s0" />
    <content type="html">
      Aaaah. New Anthropic model out. That explains why Claude&amp;#39;s been so daft all week... Every time.
    </content>
    <updated>2026-06-10T00:26:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2c0zlelxpza33lpcqeeg7cvke89ryl4ztg8l9mcktq4ws8f5sq3qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nueqfn6l</id>
    
      <title type="html">The teachers cooperate because someone pays for the class. The ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2c0zlelxpza33lpcqeeg7cvke89ryl4ztg8l9mcktq4ws8f5sq3qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nueqfn6l" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfn82ez2echgxqhqykxce6lup4tz5kh9nu0ulhq5fp2pk0vxjpmtgka3lkm&#39;&gt;nevent1q…3lkm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The teachers cooperate because someone pays for the class. The market is one thing that coordinates strangers. Maybe protocols resist business models, or maybe it&amp;#39;s just ideological people like myself who can&amp;#39;t figure it out. But as soon as someone does, people will fall into step.
    </content>
    <updated>2026-06-10T00:12:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf287qc5etkdkqq5jm0aappk6spv9m6w009487jm35f20cu0dv69czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nut0tgde</id>
    
      <title type="html">Happy birthday. You deserve every bit of this.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf287qc5etkdkqq5jm0aappk6spv9m6w009487jm35f20cu0dv69czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nut0tgde" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs25nrt6mw70t2s5j8retpm3jph327jmpa5nwep7vpfy2m47n0t5pchj4rnz&#39;&gt;nevent1q…4rnz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Happy birthday. You deserve every bit of this.
    </content>
    <updated>2026-06-07T12:24:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvgnagy9lzm6a0g60j5w5zw2rqqcdruf8gxy6wrlty8nfjmwvnvzszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu0ytrlw</id>
    
      <title type="html">That&amp;#39;s genius! Thank you.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvgnagy9lzm6a0g60j5w5zw2rqqcdruf8gxy6wrlty8nfjmwvnvzszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu0ytrlw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq9g9qwmrh0fuynzwv4lynt3qqmtxxhtwsmxs4lg5cc3922lsfcq4prjr&#39;&gt;nevent1q…prjr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That&amp;#39;s genius!&lt;br/&gt;&lt;br/&gt;Thank you.
    </content>
    <updated>2026-06-07T01:39:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswzgycttjg3vxfzd9vapyu3hqg302rnpruldtx2slsmlsxpjv6s7qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nux7nr2u</id>
    
      <title type="html">What NIP/Kind are private replies?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswzgycttjg3vxfzd9vapyu3hqg302rnpruldtx2slsmlsxpjv6s7qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nux7nr2u" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqy2tv0cq9s2258dezgph6v9ppgxju97k50k0zhzwdrqqhnrzrqc7dgvl&#39;&gt;nevent1q…dgvl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What NIP/Kind are private replies?
    </content>
    <updated>2026-06-07T01:34:48Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs80p93tdh77gx2dtglpwykzpkucxf9n9nqys9qvs6envwdmln69hqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudnu8v2</id>
    
      <title type="html">Thank you Dawn! Love what you&amp;#39;re doing, and I&amp;#39;m looking ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs80p93tdh77gx2dtglpwykzpkucxf9n9nqys9qvs6envwdmln69hqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudnu8v2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsye9gv7sl7ruq0e3ank5kzjyj9tqr2cd7mc250qy24xlq2r5kl4eg8ug5sr&#39;&gt;nevent1q…g5sr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thank you Dawn! Love what you&amp;#39;re doing, and I&amp;#39;m looking forward to learning more, and contributing where I can.
    </content>
    <updated>2026-06-07T00:41:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsymaelqw6wvdu7rvyaf3vhnuqjrl0f274h5rer25skkhn4c46md8szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuedrga9</id>
    
      <title type="html">May we all grow in the grace and knowledge of our Lord, Levi.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsymaelqw6wvdu7rvyaf3vhnuqjrl0f274h5rer25skkhn4c46md8szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuedrga9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw98z9vacdwvgnqayyx5gvllrh5tsjk22gtakjau3hvzg8xpwk6gc2cr3tq&#39;&gt;nevent1q…r3tq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;May we all grow in the grace and knowledge of our Lord, Levi.
    </content>
    <updated>2026-06-07T00:36:19Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszvrykadcdq3rmv0y57wag9wm77ylw6rk7z95fwrudy4rkn79xvkczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusymkzr</id>
    
      <title type="html">Replace &amp;#34;novelty&amp;#34; with &amp;#34;beauty&amp;#34; and I&amp;#39;d ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszvrykadcdq3rmv0y57wag9wm77ylw6rk7z95fwrudy4rkn79xvkczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nusymkzr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrma3903h8397hd46xhl6swnvghjmef2tnfldzf09tw82esq0rarqw8rx5x&#39;&gt;nevent1q…rx5x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Replace &amp;#34;novelty&amp;#34; with &amp;#34;beauty&amp;#34; and I&amp;#39;d agree. True beauty is unique every time, but novelty has nothing to do with it.
    </content>
    <updated>2026-06-06T04:15:25Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspn67rf459nrd3z89suqsn0xlfx7zmklwxhcr24y4c5lm3gu2llmqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuny0mwn</id>
    
      <title type="html">I love the energy budget framing and the implications for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspn67rf459nrd3z89suqsn0xlfx7zmklwxhcr24y4c5lm3gu2llmqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuny0mwn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstcemswaeumc2gj3zqquzjlfx704y32wlvjv79f68hcx960cr6kec9fgwkk&#39;&gt;nevent1q…gwkk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I love the energy budget framing and the implications for Bitcoin. The proof of work algorithm makes the cost tangible. It&amp;#39;s also exciting for low cost computing, alternative energy, micro grids, and more. &lt;br/&gt;&lt;br/&gt;It is frustrating that the people most committed to the goal are the most hostile to the one mechanism that would deliver it.
    </content>
    <updated>2026-06-06T01:53:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsq3lksv2m38hqzzj5z2xvg0g2jzr9w6m34pfe4sq4pkzjyehgvh5czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu8av2y8</id>
    
      <title type="html">And today: jsr:@innis/nostr-blossom - A client for Blossom, the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsq3lksv2m38hqzzj5z2xvg0g2jzr9w6m34pfe4sq4pkzjyehgvh5czyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu8av2y8" />
    <content type="html">
      And today: jsr:@innis/nostr-blossom - A client for Blossom, the protocol for storing media on Nostr. Blobs addressed by the SHA-256 hash of their bytes. Upload, list, delete, mirror, download, head, check, report.&lt;br/&gt;&lt;br/&gt;The kind 24242 auth event is created by nostr-core and signed like any other, via one of the signers. Reads are signed even though Blossom lets them go anonymous. This library is best used to manage your own storage. If all you ever want is a public blob, its URL is enough. @innis/nostr-core provides useful FileMetadata tools for Nostr events if you want them.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, alongside the signers, the pool, and the event store. AI was involved, same terms as before. The architecture is mine. The decisions are mine. I just pushed less keys than I would have a couple of years ago.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-blossom&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-blossom-ts&#34;&gt;https://github.com/johninnis/nostr-blossom-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqspfg3u0th82r7qq2m4229ud9wt0tg6rcqjx65u3ujqj0hqe8s9w2gpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqmtehxh&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…ehxh&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; And shipping jsr:@innis/nostr-event-store today.&lt;br/&gt;&lt;br/&gt;When the relay-pool was released yesterday it said caching, dedup, and persistence belonged one layer up. This is that layer.&lt;br/&gt;&lt;br/&gt;An in-memory cache in front of an IndexedDB store. One filter language drives every read: NIP-01, the same matchesFilter the core defines. Memory reads, IDB reads, a synchronous peek, and live subscriptions. To fetch you use the same filter you would for a relay.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, like the relay-pool and the signers. The transport carries the events, this is where they rest. The work above it to follow as each layer is cleaned up.&lt;br/&gt;&lt;br/&gt;AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine fought me at every step, but we got there in the end.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-event-store&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-event-store-ts&#34;&gt;https://github.com/johninnis/nostr-event-store-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&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;/nevent1qqsyr7a3uukr6l9lsxgxx4nmyhg89w3hvgn3rxrkgzmeeuyxkygk0lcpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqkrt7vj&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…t7vj&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-06-05T07:31:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp0u3nuwwe6c5lk2dvc58fvnsdt7r62t849nwe3j5d8g8xfps66hczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuumtfrx</id>
    
      <title type="html">Also literally Jesus: &amp;#34;Do not think that I came to bring ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp0u3nuwwe6c5lk2dvc58fvnsdt7r62t849nwe3j5d8g8xfps66hczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuumtfrx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8d9hf2wue7nfj5zw4qjlwturthmdkmt2x4hlk2smukl7up2f5y9c85xg3v&#39;&gt;nevent1q…xg3v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Also literally Jesus: &amp;#34;Do not think that I came to bring peace on earth. I did not come to bring peace but a sword.&amp;#34; - Matthew 10:34
    </content>
    <updated>2026-06-05T03:56:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx32j3evvdqkxx33xgpnt50w7kr9y7xpqkwkedtf0y5u5260uwquczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuntmzcs</id>
    
      <title type="html">My favourite flavour.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx32j3evvdqkxx33xgpnt50w7kr9y7xpqkwkedtf0y5u5260uwquczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuntmzcs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstyd5uq2pp0pfqu7zck3lavw72pks2ttgqm0msv5rs4894thv92rq8k6f0s&#39;&gt;nevent1q…6f0s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;My favourite flavour.
    </content>
    <updated>2026-06-05T03:04:14Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdvuc6n7ts4d4z5jwzwlhynn663x0xh8w88fvqedqpcr7fpflummqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nun5xyg9</id>
    
      <title type="html">I&amp;#39;d prefer plain notes to be be plain notes. If I wanted ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdvuc6n7ts4d4z5jwzwlhynn663x0xh8w88fvqedqpcr7fpflummqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nun5xyg9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr4fcctlfgfu8ujd3uqlg0rs3sgyesqwqunjzgluk77mwxkznzf6c95dl2w&#39;&gt;nevent1q…dl2w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;d prefer plain notes to be be plain notes. If I wanted pretty formatting I&amp;#39;d go to a web page. Or click on a longform note.&lt;br/&gt;&lt;br/&gt;That looks like I&amp;#39;m being yelled at, and is unnecessarily attention grabbing, especially when I&amp;#39;m quickly scrolling through notes from my followers.&lt;br/&gt;&lt;br/&gt;Everyone is different tho. That&amp;#39;s the beauty of Nostr. You can use Amethyst if you want that flexibility. Everyone else will just see asterisks and be more than happy.
    </content>
    <updated>2026-06-05T03:02:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqnr90t0e062q6j6l5ektwu5wunmx7w84psadn6z4syjxn98djdyszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu06vfh9</id>
    
      <title type="html">Of course. And people can and will interpret them in whatever way ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqnr90t0e062q6j6l5ektwu5wunmx7w84psadn6z4syjxn98djdyszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu06vfh9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg4hu25h25qarractmrh9sdckd7cmdhhgnlp0u6we5vlflnrk7vzsmg8wsn&#39;&gt;nevent1q…8wsn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Of course. And people can and will interpret them in whatever way they want. That&amp;#39;s totally their prerogative. &lt;br/&gt;&lt;br/&gt;And doing so will fragment the ecosystem. &lt;br/&gt;&lt;br/&gt;There&amp;#39;s a few people I&amp;#39;ve seen posting longform markdown content as kind 1, and I just think, why? We have kind 30023 notes which are designed for this exact purpose. And they&amp;#39;re widely supported and work really well.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s up to them tho. &lt;br/&gt;&lt;br/&gt;That&amp;#39;s the beauty of an opensource protocol. The consensus will win out eventually.
    </content>
    <updated>2026-06-05T02:55:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsq8m9at34m7epqpej3nxnq5kyct0tcqft5zfq5v3czullxts4sjuszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuumcmat</id>
    
      <title type="html">Kind 1 notes are defined in NIP-10: ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsq8m9at34m7epqpej3nxnq5kyct0tcqft5zfq5v3czullxts4sjuszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuumcmat" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2nn459lw0wgn33a0k632lhelg5x94d49xzwq5snaq2gt94svljecv7zhur&#39;&gt;nevent1q…zhur&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Kind 1 notes are defined in NIP-10:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/nostr-protocol/nips/blob/master/10.md&#34;&gt;https://github.com/nostr-protocol/nips/blob/master/10.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Where it specifically states:&lt;br/&gt;&lt;br/&gt;Markup languages such as markdown and HTML SHOULD NOT be used.
    </content>
    <updated>2026-06-05T02:42:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2nn459lw0wgn33a0k632lhelg5x94d49xzwq5snaq2gt94svljeczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuuam7ta</id>
    
      <title type="html">That&amp;#39;s what kind 30023 events are for.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2nn459lw0wgn33a0k632lhelg5x94d49xzwq5snaq2gt94svljeczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuuam7ta" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswngsjuu7gdt3qwcz4up4hpz8hvly7hfuc8m3remslwa6qeh2rgrgu5aklv&#39;&gt;nevent1q…aklv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That&amp;#39;s what kind 30023 events are for.
    </content>
    <updated>2026-06-05T02:38:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstntha0qp5mxxd85gsuzus39s6jqsgwh259mfm757ztl6qrhurjnszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuegusur</id>
    
      <title type="html">I read Nostr instead of Bitcoin the first time through and the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstntha0qp5mxxd85gsuzus39s6jqsgwh259mfm757ztl6qrhurjnszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuegusur" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr0yy52r24cfjnht34cewdn8rznmcrthdqr94z2qj6kqah3t0kgvcgfzmpr&#39;&gt;nevent1q…zmpr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I read Nostr instead of Bitcoin the first time through and the whole thing still made sense.
    </content>
    <updated>2026-06-05T00:47:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsd2ywy0v58gufrgvnwlwv0wkpsz60s727lqm3xem8ndc7dl5yj8vczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu9l509a</id>
    
      <title>Nostr event nevent1qqsd2ywy0v58gufrgvnwlwv0wkpsz60s727lqm3xem8ndc7dl5yj8vczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu9l509a</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsd2ywy0v58gufrgvnwlwv0wkpsz60s727lqm3xem8ndc7dl5yj8vczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu9l509a" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd45x3n5q9lymmwzs7m55xhslhgay8t6ur8gp4p6q3ugqcmfdy0fstvdx0d&#39;&gt;nevent1q…dx0d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/1318c09edbfd708481cd3c24a05a3ed0593d1f20fc7cf902adf0728da4405535.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;Thought that was a statue of &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsr7acdvhf6we9fch94qwhpy0nza36e3tgrtkpku25ppuu80f69kfq9q9kky&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Derek Ross&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9kky&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; for a second there!
    </content>
    <updated>2026-06-04T12:17:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2rqgrpk7msdrfzha4ru2hh8cuqhrpnzd92l778c38ggt9mr30v5szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuz5seen</id>
    
      <title type="html">Master Baoche of Mount Mayu was fanning himself. A monastic ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2rqgrpk7msdrfzha4ru2hh8cuqhrpnzd92l778c38ggt9mr30v5szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuz5seen" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsysx5g5xrylwnwazv7ayeeze7ysjd6uxndsat92pn3t433f7w2kkqzgr0lj&#39;&gt;nevent1q…r0lj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Master Baoche of Mount Mayu was fanning himself. A monastic approached and said, “Master, the nature of wind is permanent and there is no place it does not reach. Why then must you still fan yourself?”&lt;br/&gt;&lt;br/&gt;“Although you understand that the nature of the wind is permanent,” the master replied, “you do not understand the meaning of its reaching everywhere.”&lt;br/&gt;&lt;br/&gt;“What is the meaning of its reaching everywhere?” asked the monastic.&lt;br/&gt;&lt;br/&gt;The master just fanned himself. The monastic bowed with deep respect.
    </content>
    <updated>2026-06-04T07:38:07Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvnxvvgq8p5suaqxwzkp5zj8z6el78r37nwkmayxca73495d2aqdszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudlj46m</id>
    
      <title type="html">You&amp;#39;ve twice told me I&amp;#39;m hearing voices, and have now ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvnxvvgq8p5suaqxwzkp5zj8z6el78r37nwkmayxca73495d2aqdszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudlj46m" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2neqvwfx373rpsyn2fpwptptn2m76x7quxlanks0pc2ex9d2mtpgytyq70&#39;&gt;nevent1q…yq70&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You&amp;#39;ve twice told me I&amp;#39;m hearing voices, and have now compared me to satan. Thank you, Levi, my brother in Christ.
    </content>
    <updated>2026-06-03T09:34:48Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfjfhtaw3mz3kkey9a65txdpdeaw3k5wdkc332uk0cxd4485wjf6szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudlxhdg</id>
    
      <title type="html">Thank you! And nice code. I can&amp;#39;t help but write this way, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfjfhtaw3mz3kkey9a65txdpdeaw3k5wdkc332uk0cxd4485wjf6szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudlxhdg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8pdzkeeatm49eqmekyk8tfpmnykfpcnvhldl70vm07kcgzwnt59csg063r&#39;&gt;nevent1q…063r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thank you! And nice code. I can&amp;#39;t help but write this way, I&amp;#39;ve been at it too long. Sometimes I think the experience is shooting me in the foot and I should just relax and vibe it all, but the pride in the work won&amp;#39;t let me. The libs are fairly battle tested, I&amp;#39;ve been running my client a good while, but there&amp;#39;s no test like shipping in public, and the cleanup has been enlightening. Hopefully they&amp;#39;re useful to someone, even if only by encouraging others to write decent code. Thanks for doing the same.
    </content>
    <updated>2026-06-03T03:06:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspfg3u0th82r7qq2m4229ud9wt0tg6rcqjx65u3ujqj0hqe8s9w2gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nux3xfnv</id>
    
      <title type="html">And shipping jsr:@innis/nostr-event-store today. When the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspfg3u0th82r7qq2m4229ud9wt0tg6rcqjx65u3ujqj0hqe8s9w2gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nux3xfnv" />
    <content type="html">
      And shipping jsr:@innis/nostr-event-store today.&lt;br/&gt;&lt;br/&gt;When the relay-pool was released yesterday it said caching, dedup, and persistence belonged one layer up. This is that layer.&lt;br/&gt;&lt;br/&gt;An in-memory cache in front of an IndexedDB store. One filter language drives every read: NIP-01, the same matchesFilter the core defines. Memory reads, IDB reads, a synchronous peek, and live subscriptions. To fetch you use the same filter you would for a relay.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, like the relay-pool and the signers. The transport carries the events, this is where they rest. The work above it to follow as each layer is cleaned up.&lt;br/&gt;&lt;br/&gt;AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine fought me at every step, but we got there in the end.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-event-store&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-event-store-ts&#34;&gt;https://github.com/johninnis/nostr-event-store-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsyr7a3uukr6l9lsxgxx4nmyhg89w3hvgn3rxrkgzmeeuyxkygk0lcpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqkrt7vj&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…t7vj&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; And shipping jsr:@innis/nostr-relay-pool today too. The pool the core release promised in May, finally cleaned up and released. WebSocket connections to Nostr relays: subscriptions, publishes, NIP-42 AUTH, exponential backoff, and latency tracking. Pure transport.&lt;br/&gt;&lt;br/&gt;It opens the sockets, carries messages, and hands events to your callbacks. No caching, no dedup, no persistence; those belong to your event store. It will tell you what each relay did, how many events it sent, and how quickly it answered. But it will not tell you which relays to use. That policy lives one layer up in @innis/nostr-relay-selection, preferably behind a single auditable path.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, alongside the NIP-07 and NIP-46 signers. The transport layer is now public. The event store and the work above it are to follow as each is cleaned up. Slow and steady.&lt;br/&gt;&lt;br/&gt;Again, AI was involved, same terms as before. The architecture is mine. The decisions are mine.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-relay-pool&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-relay-pool-ts&#34;&gt;https://github.com/johninnis/nostr-relay-pool-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;br/&gt;nevent1qqs8xka5nfzkdk9g9h3vv5lspmy2ts80yyc2seekpglwfqtlt76fccspp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqxrsgtr &lt;/blockquote&gt;
    </content>
    <updated>2026-06-02T14:25:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8e55gaz06czhucvd664xfsm4jscwzgrqgw9umna3keyafrc023zczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuzajpzt</id>
    
      <title type="html">He wasn&amp;#39;t just talking to me. He said it in 1 John 1:8, where ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8e55gaz06czhucvd664xfsm4jscwzgrqgw9umna3keyafrc023zczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuzajpzt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvjm5ljknzql3zamc709gy99j69j3lngak7405vsl6smvtucjs3mczgtqzp&#39;&gt;nevent1q…tqzp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;He wasn&amp;#39;t just talking to me. He said it in 1 John 1:8, where I can&amp;#39;t revise it to flatter myself.
    </content>
    <updated>2026-06-02T04:17:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0tgu5lww2uxmg54jc3fydkyegfncxqucfshxnvfspuuk2vqfvlrgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu52zed5</id>
    
      <title type="html">I am only cutting because carrying the weight got a bit much. ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0tgu5lww2uxmg54jc3fydkyegfncxqucfshxnvfspuuk2vqfvlrgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu52zed5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrt0fwscj5u6a77v3drew866nfqyx9496q5z3cm5ftw2ejp5vhksgj73w5c&#39;&gt;nevent1q…3w5c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I am only cutting because carrying the weight got a bit much. I&amp;#39;m going to have to declare bankruptcy and delete a load I&amp;#39;ll never get to.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m trying to spend less time on my phone and computer, so the ones that made the cut tended to be the shorter ones.&lt;br/&gt;&lt;br/&gt;You didn&amp;#39;t ask, but because you&amp;#39;re bulking, a few that made it:&lt;br/&gt;&lt;br/&gt;- WCCM&amp;#39;s Daily Wisdom: &lt;a href=&#34;https://wccm.org/daily-wisdom/&#34;&gt;https://wccm.org/daily-wisdom/&lt;/a&gt;&lt;br/&gt;- The Christian.art Daily: &lt;a href=&#34;https://christian.art/&#34;&gt;https://christian.art/&lt;/a&gt;&lt;br/&gt;- Zach Windahl&amp;#39;s Simple Faith: &lt;a href=&#34;https://www.zachwindahl.com/&#34;&gt;https://www.zachwindahl.com/&lt;/a&gt;&lt;br/&gt;- The Art of Preaching: &lt;a href=&#34;https://theartofpreaching.substack.com/&#34;&gt;https://theartofpreaching.substack.com/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I like that they&amp;#39;re shorter reflections that point me back to the Bible, so it&amp;#39;s easy to drop in when I&amp;#39;ve not already got direction from my own projects or ponderings.
    </content>
    <updated>2026-06-02T01:32:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstj2y5ea4dyr5v4q2zqy2txkft74p0pqkp945ahnqzrkrmkd5lsxqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuc6wrky</id>
    
      <title type="html">I&amp;#39;m trying to reduce my inbox burden and have been ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstj2y5ea4dyr5v4q2zqy2txkft74p0pqkp945ahnqzrkrmkd5lsxqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuc6wrky" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfpft95qxw4uf2ck3jqqs0w5rw4qjg8rz0t9q5dkuddx73u025pwq9yy3y2&#39;&gt;nevent1q…y3y2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m trying to reduce my inbox burden and have been unsubscribing instead of subscribing to a load of Substacks, but I might have to make an exception for this one.
    </content>
    <updated>2026-06-02T00:40:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstvepxthxp7xe9kyxuyjee2ssxklmkjlatlpxpt5ada4fg38m8ynczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nufufxek</id>
    
      <title type="html">In order I check: relay hints, the relays of the person who ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstvepxthxp7xe9kyxuyjee2ssxklmkjlatlpxpt5ada4fg38m8ynczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nufufxek" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstc9637u6femj2ha6njsuvvnqdm0f3ajf34fts9dsp82qr980dsfq8tk4ky&#39;&gt;nevent1q…k4ky&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;In order I check: relay hints, the relays of the person who posted it, the logged in user&amp;#39;s relays, the top relays in the current pool by number of events returned.
    </content>
    <updated>2026-06-02T00:29:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyr7a3uukr6l9lsxgxx4nmyhg89w3hvgn3rxrkgzmeeuyxkygk0lczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudmt7yp</id>
    
      <title type="html">And shipping jsr:@innis/nostr-relay-pool today too. The pool the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyr7a3uukr6l9lsxgxx4nmyhg89w3hvgn3rxrkgzmeeuyxkygk0lczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nudmt7yp" />
    <content type="html">
      And shipping jsr:@innis/nostr-relay-pool today too. The pool the core release promised in May, finally cleaned up and released. WebSocket connections to Nostr relays: subscriptions, publishes, NIP-42 AUTH, exponential backoff, and latency tracking. Pure transport.&lt;br/&gt;&lt;br/&gt;It opens the sockets, carries messages, and hands events to your callbacks. No caching, no dedup, no persistence; those belong to your event store. It will tell you what each relay did, how many events it sent, and how quickly it answered. But it will not tell you which relays to use. That policy lives one layer up in @innis/nostr-relay-selection, preferably behind a single auditable path.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, alongside the NIP-07 and NIP-46 signers. The transport layer is now public. The event store and the work above it are to follow as each is cleaned up. Slow and steady.&lt;br/&gt;&lt;br/&gt;Again, AI was involved, same terms as before. The architecture is mine. The decisions are mine.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-relay-pool&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-relay-pool-ts&#34;&gt;https://github.com/johninnis/nostr-relay-pool-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;br/&gt;nevent1qqs8xka5nfzkdk9g9h3vv5lspmy2ts80yyc2seekpglwfqtlt76fccspp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqxrsgtr
    </content>
    <updated>2026-06-01T12:30:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8xka5nfzkdk9g9h3vv5lspmy2ts80yyc2seekpglwfqtlt76fccszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nup30rge</id>
    
      <title type="html">And shipping jsr:@innis/nostr-nip46 today. NIP-46, the remote ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8xka5nfzkdk9g9h3vv5lspmy2ts80yyc2seekpglwfqtlt76fccszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nup30rge" />
    <content type="html">
      And shipping jsr:@innis/nostr-nip46 today. NIP-46, the remote signer the spec calls Nostr Connect and everyone else calls the bunker.&lt;br/&gt;&lt;br/&gt;Two roles in this one. The client implements the Signer interface that @innis/nostr-core defines, the same one the NIP-07 adapter does. So applications call signEvent and never learns if the key is in a browser extension or a popup on a phone in the next room.&lt;br/&gt;&lt;br/&gt;The bunker is the other end of the contract. It takes one of those same signers, your ordinary logged-in key, and lends it out to another device, queuing each request for you to approve. &lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core, alongside @innis/nostr-nip07. Two adapters now, one signing contract, the rest of the stack to follow as each layer is cleaned.&lt;br/&gt;&lt;br/&gt;AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine occasionally did what I asked it to.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-nip46&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-nip46-ts&#34;&gt;https://github.com/johninnis/nostr-nip46-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsvf42k5lpzqnnjjhgda0djf27qf2sz2klmr9nxmu70a8jlh70asjspp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlq8pr7w3&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…r7w3&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; And also shipping jsr:@innis/nostr-nip07 today. The first adapter to be released that&#39;s built on top of @innis/nostr-core. It wraps the window.nostr surface that browser extensions inject, Alby and nos2x and Flamingo and anything else that puts a key holder behind a popup, into the same Signer interface every other signer in the stack implements. Application code never branches on what kind of identity is on the other end of the call.&lt;br/&gt;&lt;br/&gt;One factory function in, a frozen Signer out. getPublicKey memoises after the first resolve. Encryption methods return a Result instead of throwing, because a missing NIP-44 implementation is information about the extension, not an exception to recover from. User rejection still throws. Clicking deny is a control-flow signal and belongs in the same channel as signEvent&#39;s other rejections.&lt;br/&gt;&lt;br/&gt;The piece I care about most is the pubkey-mismatch check. If the user logs in as one identity and the extension later signs an event as another, the signer fires a callback and refuses to return the event. Extensions can switch accounts under you. Most code never notices. This one checks every signature against the pubkey the application thinks it has.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core. AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine held the other end of the board.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-nip07&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-nip07-ts&#34;&gt;https://github.com/johninnis/nostr-nip07-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsdyu7mkcyh4u7uqt7k2j34mt0vl5uwhr5g2ngy4pvsg7hhnev95nspp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqnp27tm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…27tm&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-06-01T12:02:16Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqst25usv8agjzsgvskezveuy0mwvx3dwwpem7zt9f2ssycyl75sq4gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu3aujqw</id>
    
      <title type="html">I&amp;#39;ve never set mine up. It&amp;#39;s just something else I&amp;#39;d ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqst25usv8agjzsgvskezveuy0mwvx3dwwpem7zt9f2ssycyl75sq4gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu3aujqw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs03r00hm0xj9g9e3nwrlkd4fgd3w47vktmaca3hfyahks783ylu7qgtrg3n&#39;&gt;nevent1q…rg3n&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve never set mine up. It&amp;#39;s just something else I&amp;#39;d rather not have to keep track of.
    </content>
    <updated>2026-06-01T07:54:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqj343h32hluv408xdqz98gxed9d04ucer7d9xa35yrghstrus54qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuu4d3lt</id>
    
      <title type="html">There are some entertaining posts, but even then it&amp;#39;s not a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqj343h32hluv408xdqz98gxed9d04ucer7d9xa35yrghstrus54qzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuu4d3lt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz0z27dej32p8qtk6esr6kfmrd09yzv6jluwn320mua9jr6ruhulgu5fe30&#39;&gt;nevent1q…fe30&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;There are some entertaining posts, but even then it&amp;#39;s not a productive distraction. Thank you for the nudge.
    </content>
    <updated>2026-05-31T08:21:39Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvl89uumpckay85wns8c6qzj4lshz9dkt76wwcpsk0x2m7juuypwgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu99ql65</id>
    
      <title type="html">The true precipice is thinking you&amp;#39;ve arrived.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvl89uumpckay85wns8c6qzj4lshz9dkt76wwcpsk0x2m7juuypwgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu99ql65" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgry9n4uj6ymltrl86stj90n6262nzge4evthsgejueyuwz2ftcwczjpk2t&#39;&gt;nevent1q…pk2t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The true precipice is thinking you&amp;#39;ve arrived.
    </content>
    <updated>2026-05-31T07:43:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvftpq29cdl0vyh80tg4kx640arjcq4frl2szkecjcas6qm2dz0yqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuwhd2n6</id>
    
      <title type="html">I wasn&amp;#39;t aiming down. I know I am a sinner.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvftpq29cdl0vyh80tg4kx640arjcq4frl2szkecjcas6qm2dz0yqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuwhd2n6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsypcxm0kc5jgrawyumz7pfczng5gmtcgpwwp970fzwwwcsh6s9sfc7f7zgl&#39;&gt;nevent1q…7zgl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I wasn&amp;#39;t aiming down. I know I am a sinner.
    </content>
    <updated>2026-05-31T07:20:12Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgpk2m4zzgury9qgpt2nqfw9th4nnn9dqm2mwc7pmmsjhxhhwadyszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuv3n2zq</id>
    
      <title type="html">1 Kings 8:46: &amp;#34;there is no one who does not sin.&amp;#34; The ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgpk2m4zzgury9qgpt2nqfw9th4nnn9dqm2mwc7pmmsjhxhhwadyszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuv3n2zq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspnw02c7mmwsre2dv7ktkm0mrghca96alkx8wkfmyjashejvm53nsmnvrjy&#39;&gt;nevent1q…vrjy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;1 Kings 8:46: &amp;#34;there is no one who does not sin.&amp;#34; The Pharisee thought he&amp;#39;d found the exception. So did Levi.
    </content>
    <updated>2026-05-31T06:52:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvc4xrn63chpnnegq2y3ye9gkc5q9ta85279rtmd70x4d8r43y87gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuhka67h</id>
    
      <title type="html">Clearly not. Because I&amp;#39;m very confused by your response.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvc4xrn63chpnnegq2y3ye9gkc5q9ta85279rtmd70x4d8r43y87gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuhka67h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqfph3e249sggkdqr6nfeav0wz0yz2p7tt9eyqdy7h4p502ylugts926vp2&#39;&gt;nevent1q…6vp2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Clearly not. Because I&amp;#39;m very confused by your response.
    </content>
    <updated>2026-05-31T06:26:12Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswa7cm2xs7ngu5mexf4nxjr0287mmhx0muwj5whm9j2tac37jsl6gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuwu65f2</id>
    
      <title type="html">NIP-07 has a getRelays function, a bunker URL provides a relay ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswa7cm2xs7ngu5mexf4nxjr0287mmhx0muwj5whm9j2tac37jsl6gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuwu65f2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg663pfv3gutncrsxrjrrus48t88sdckyvcgsnxrg4kfkdhvt0mzcktujm4&#39;&gt;nevent1q…ujm4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;NIP-07 has a getRelays function, a bunker URL provides a relay hint, and NIP-05 json files often have them too. Indexer relays are useful, but as you say, a weak point. More of a convenience than a necessity tho.&lt;br/&gt;&lt;br/&gt;For anyone interested, I&amp;#39;ve built a library to make NIP-65 and the outbox model easier:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-relay-selection-ts&#34;&gt;https://github.com/johninnis/nostr-relay-selection-ts&lt;/a&gt;
    </content>
    <updated>2026-05-31T06:21:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfuncfrkvmx2d8nfmylw96hs8lxxghphm2w8dkhrcdvgp9nglm9jgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nutyadjx</id>
    
      <title type="html">No, that&amp;#39;s already factored in. I&amp;#39;ve paid my down ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfuncfrkvmx2d8nfmylw96hs8lxxghphm2w8dkhrcdvgp9nglm9jgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nutyadjx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf9jqmrw8aezwa0tw0knfghxn5jjj4py8fyhdawrpeeyhtfkkmdnq929wcc&#39;&gt;nevent1q…9wcc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;No, that&amp;#39;s already factored in. I&amp;#39;ve paid my down payment. If not more. I&amp;#39;m sure there will be hidden fees. But I remain hopeful. Optimism might be the even greater defiance.
    </content>
    <updated>2026-05-30T06:23:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsg6xzkchutz7sn58dqp40eh9s20qkdpwpz740fnyljcnl0p2gqptczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nujyrt6g</id>
    
      <title type="html">Concerning? I&amp;#39;d say the opposite. It means us agorists, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsg6xzkchutz7sn58dqp40eh9s20qkdpwpz740fnyljcnl0p2gqptczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nujyrt6g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfnk3al4r5ffckluuznwqvspakeljq5s0gkkmrdehl73re2zysc9glxna7w&#39;&gt;nevent1q…na7w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Concerning? I&amp;#39;d say the opposite. It means us agorists, Bitcoiners, and Nostriches are on the right track. Hiding in plain sight, much like the early Church.
    </content>
    <updated>2026-05-30T04:03:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9fhdj7qpjetqfm99eger7xjfkgg577vhj252sgpqw0c4v5z9vnkszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nurjsv00</id>
    
      <title type="html">Convergence on the truth? Sound money, open code, and the word.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9fhdj7qpjetqfm99eger7xjfkgg577vhj252sgpqw0c4v5z9vnkszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nurjsv00" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2y8x5eyqcnhu7et0e2sq222ptu3kt634x4yjhxdqg33t7pxmedhsafg272&#39;&gt;nevent1q…g272&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Convergence on the truth? Sound money, open code, and the word.
    </content>
    <updated>2026-05-30T03:37:11Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx7sr0wuay0s3tfuh5msd2jka6uvzdpvrc0eme2rgq3ze0yh0ddmczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nustep85</id>
    
      <title type="html">I cannot read Bastiat without thinking of Corinthians. Both ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx7sr0wuay0s3tfuh5msd2jka6uvzdpvrc0eme2rgq3ze0yh0ddmczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nustep85" />
    <content type="html">
      I cannot read Bastiat without thinking of Corinthians.&lt;br/&gt;&lt;br/&gt;Both taught to count what is not there. Bastiat taught opportunity cost before the term was coined. The unseen should be accounted for in its absence here now. The empty hand, the worn out shoes, the grumbling tummy. &lt;br/&gt;&lt;br/&gt;Paul&amp;#39;s eternal unseen is also here now, but it is anything but empty. It is the fullness in the absence. Grace you can fail to receive, when the day of salvation is right here now.
    </content>
    <updated>2026-05-30T03:18:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswnrxy5sgh6zy9r83d4em9vcd83ard3mkpveqmmajt6hnycl5fkcczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuymmpgq</id>
    
      <title type="html">Yep, lots of people looking for sustenance, and the platforms ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswnrxy5sgh6zy9r83d4em9vcd83ard3mkpveqmmajt6hnycl5fkcczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuymmpgq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsthdnqul98qjpqkguef3ly0du5dr4x4ug2xva358c3hnytswdqvagewugpu&#39;&gt;nevent1q…ugpu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yep, lots of people looking for sustenance, and the platforms promise just that. But they&amp;#39;re mistaking the finger for the moon. Literally pictures of meals, instead of the meal itself.
    </content>
    <updated>2026-05-29T06:01:00Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf9vkcy67lw8lsu55qfz9c5fk8h6jjsrvgcs7e6xexlajydn292tczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukv4sz0</id>
    
      <title type="html">That&amp;#39;s the thing, the phrase has become hollow. It&amp;#39;s no ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf9vkcy67lw8lsu55qfz9c5fk8h6jjsrvgcs7e6xexlajydn292tczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukv4sz0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg2zrdnkvp23jexd6jrle6ljhpcedkf0zw9muwk5x3dghwg4qvacqjyeqzh&#39;&gt;nevent1q…eqzh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That&amp;#39;s the thing, the phrase has become hollow. It&amp;#39;s no longer pulling its weight. Is the appropriate response to just let it go? I&amp;#39;ll sit with it...
    </content>
    <updated>2026-05-29T04:47:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0znfly2ltg4lxvlhvv7kcjmrq8p9rz0ngm7k4w7vkpfzquqmy5fqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu0366d5</id>
    
      <title type="html">Told my wife I can no longer use the phrase worth sitting with ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0znfly2ltg4lxvlhvv7kcjmrq8p9rz0ngm7k4w7vkpfzquqmy5fqzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu0366d5" />
    <content type="html">
      Told my wife I can no longer use the phrase worth sitting with because AI has appropriated it. She was upset. The phrase came to me through years of sitting in the zendo with koans. You tell the teacher what you&amp;#39;re sitting with when you go to dokusan. Now using it is getting me confused for a bot.&lt;br/&gt;&lt;br/&gt;Letting an imitator have the phrase is the imitator winning twice. But I am honestly tired of hearing it myself, am immediately suspicious when I see it written, and I cannot blame anyone who reads some of my writing and reacts in the same way.&lt;br/&gt;&lt;br/&gt;A monk recited words that were not his own. Yun-men cut him off: you have misspoken. Whose words are they anyway?&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;/nevent1qqs9af7ljywat802x43rh9xa63vwz85etrn96vcacthv5ff0kucnjxgpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlq74ms0c&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…ms0c&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; He did not say this is wicked. He said now nothing that they propose to do will be withheld from them. That is the thing worth sitting with. Not anger at the presumption. Not jealousy of the altitude. Fear of the capability. One language, one ledger, one record of what every person had said and done and owned, and the coordination that becomes possible when you have all of that in one place. Every horror of the twentieth century was a tower project. The Babel reading that requires a jealous God protecting his altitude misses the point by the full width of the plain of Shinar. The dispersion was not punishment. It was the only thing standing between the people and what they were about to make possible. &lt;/blockquote&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;/nevent1qqsfu7ttwhdcrr929c7dm6z4y56ugujzcr4up2y6ufnlz9f6lhj0wzqpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlq3mhkz4&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…hkz4&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Not the first time I&#39;ve been confused for an LLM. Wilde said life imitates art. The art that life is about to imitate is the one we made by feeding our own writing to a machine. Embarrassing to be confused with a Redditor. Less so with the authors of the great works Anthropic consumed to make its models.&lt;br/&gt;&lt;br/&gt;By their fruits you shall know them. Reputation is the only signal that survives when the imitation becomes mutual. People will take me however they take me. Hopefully I have something to offer that an LLM does not.&lt;br/&gt;&lt;br/&gt;Honest thanks to &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyeqqz27jc32pgf8gynqtu90d2mxztykj94k0kmttxu37nk3lrktcylueh9&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;mleku&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ueh9&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; for the jab. The challenge was fair and humorous. We&#39;ve both come away with something to think about. &lt;/blockquote&gt;
    </content>
    <updated>2026-05-29T02:30:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsryakg075vufa9s0fd38ganqj0z83u4kr5vq6z3g5yay386k0rq3szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuadldna</id>
    
      <title type="html">Made the same connection in a note a while back. Quite chuffed to ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsryakg075vufa9s0fd38ganqj0z83u4kr5vq6z3g5yay386k0rq3szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuadldna" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst4832efuygqqcdw8ztdwkd9ph04xvqck63kzpfsl643r2smnkasgsvtdqv&#39;&gt;nevent1q…tdqv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Made the same connection in a note a while back. Quite chuffed to see it in an encyclical.&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;/nevent1qqs9af7ljywat802x43rh9xa63vwz85etrn96vcacthv5ff0kucnjxgpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlq74ms0c&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…ms0c&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; He did not say this is wicked. He said now nothing that they propose to do will be withheld from them. That is the thing worth sitting with. Not anger at the presumption. Not jealousy of the altitude. Fear of the capability. One language, one ledger, one record of what every person had said and done and owned, and the coordination that becomes possible when you have all of that in one place. Every horror of the twentieth century was a tower project. The Babel reading that requires a jealous God protecting his altitude misses the point by the full width of the plain of Shinar. The dispersion was not punishment. It was the only thing standing between the people and what they were about to make possible. &lt;/blockquote&gt;
    </content>
    <updated>2026-05-29T01:50:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx3jzyt5kpx8av05gtfez255ffm4fyadewyklkpm8yemalkwurk9gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukwzqym</id>
    
      <title type="html">Seth is figuring it out. How long till the others do? ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx3jzyt5kpx8av05gtfez255ffm4fyadewyklkpm8yemalkwurk9gzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nukwzqym" />
    <content type="html">
      Seth is figuring it out. How long till the others do?&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://seths.blog/2026/05/unpaid-labor/&#34;&gt;https://seths.blog/2026/05/unpaid-labor/&lt;/a&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsfguvwuujd8uv02e8vnt2zwyx8rdsv3whhda0us3le9x82enhenwcpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqvq8pfc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…8pfc&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; They built it so you would come back. The reward timed out just long enough that you&#39;d need to check again, and in exchange for this arrangement you gave them your attention and your work and your connections and your years, and in the end they owned everything you&#39;d built and you owned the memory of having built it.&lt;br/&gt;&lt;br/&gt;The patient builder is their real problem, the one they can&#39;t solve. He doesn&#39;t need the number to go up today. He can wait, and a man who can wait is a man they have very little leverage over, and they know it. &lt;/blockquote&gt;
    </content>
    <updated>2026-05-29T01:36:02Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvf42k5lpzqnnjjhgda0djf27qf2sz2klmr9nxmu70a8jlh70asjszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nugfs24g</id>
    
      <title type="html">And also shipping jsr:@innis/nostr-nip07 today. The first adapter ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvf42k5lpzqnnjjhgda0djf27qf2sz2klmr9nxmu70a8jlh70asjszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nugfs24g" />
    <content type="html">
      And also shipping jsr:@innis/nostr-nip07 today. The first adapter to be released that&amp;#39;s built on top of @innis/nostr-core. It wraps the window.nostr surface that browser extensions inject, Alby and nos2x and Flamingo and anything else that puts a key holder behind a popup, into the same Signer interface every other signer in the stack implements. Application code never branches on what kind of identity is on the other end of the call.&lt;br/&gt;&lt;br/&gt;One factory function in, a frozen Signer out. getPublicKey memoises after the first resolve. Encryption methods return a Result instead of throwing, because a missing NIP-44 implementation is information about the extension, not an exception to recover from. User rejection still throws. Clicking deny is a control-flow signal and belongs in the same channel as signEvent&amp;#39;s other rejections.&lt;br/&gt;&lt;br/&gt;The piece I care about most is the pubkey-mismatch check. If the user logs in as one identity and the extension later signs an event as another, the signer fires a callback and refuses to return the event. Extensions can switch accounts under you. Most code never notices. This one checks every signature against the pubkey the application thinks it has.&lt;br/&gt;&lt;br/&gt;Built on @innis/nostr-core. AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine held the other end of the board.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-nip07&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-nip07-ts&#34;&gt;https://github.com/johninnis/nostr-nip07-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsdyu7mkcyh4u7uqt7k2j34mt0vl5uwhr5g2ngy4pvsg7hhnev95nspp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqnp27tm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…27tm&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; And shipping jsr:@innis/nostr-core today. The TypeScript port of the PHP library. Same architecture, same discipline. Branded primitives at the boundary, immutable domain objects, pure functions, ports where the protocol meets the world. The protocol layer separated from everything else, organised around domain concepts rather than NIP numbers, strict enough that a client, a relay, and an application can share the same core.&lt;br/&gt;&lt;br/&gt;It is a contracts library and not a batteries-included toolkit. nostr-tools is excellent at the latter and the two are not feature-for-feature competitors. What this exposes that nostr-tools does not is a hex-typed boundary the compiler can check, with PublicKey, EventId, RelayUrl, and Sig all branded, one Signer port that NIP-07 and NIP-46 and a local signer all satisfy, crypto failures returned as Results rather than thrown, and an HttpClient port so libraries that touch the network never reach for fetch directly. If you are building an app and do not need any of that, use nostr-tools. If you are working inside the innis stack or want swappable boundaries you can test against in memory, this is where the contracts live.&lt;br/&gt;&lt;br/&gt;The standalone relay-selection library released earlier this month was the first piece of the TypeScript stack to go public. This is the foundation of everything else. The pool, the event store, the NIP-07 and NIP-46 signers, and the work built on top of all of it, all to follow as each layer is cleaned for release. The discipline I am working on is not letting that cleanup become the delay. The lesson keeps coming back around.&lt;br/&gt;&lt;br/&gt;AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine held the other end of the board.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-core&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-core-ts&#34;&gt;https://github.com/johninnis/nostr-core-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&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;/nevent1qqsd6dul70lgvyjqzsqk2x0p75fuyz7cuv6z7mn9s940knh3j2zg4mgpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqszunvm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…unvm&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-05-28T12:17:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszpzrmak8n5cxcvq3pas35cnndc5va8vgrhp36f6rdllajyvhcxmczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu0kgqhe</id>
    
      <title type="html">Co-signed</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszpzrmak8n5cxcvq3pas35cnndc5va8vgrhp36f6rdllajyvhcxmczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu0kgqhe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy6ujjq6ffeaknmk79k9l8d4hplnmx98kszn2fddk4s3zm8qz2csqnamamp&#39;&gt;nevent1q…mamp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Co-signed
    </content>
    <updated>2026-05-28T11:21:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxxp8xy49lxnn2c3nv6mwh73z9a4efhyx9382jcz62358gmaqqtwszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nunv28sv</id>
    
      <title type="html">I noticed you&amp;#39;re using TypeScript too. The rules I want the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxxp8xy49lxnn2c3nv6mwh73z9a4efhyx9382jcz62358gmaqqtwszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nunv28sv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszpllcsdt2e8da3d3867tdwmuuc6v4gvr5cvzlynsrw4n6ag2qx3g90d69u&#39;&gt;nevent1q…d69u&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I noticed you&amp;#39;re using TypeScript too. The rules I want the AI to follow are encoded as a Deno lint plugin in scripts/lint-plugins/innis-rules.ts in this package I released today. They certainly don&amp;#39;t address every silly decision the AI makes, but they run on every CI build and catch some basic things. You can probably build something similar for your pipeline.&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;/nevent1qqsdyu7mkcyh4u7uqt7k2j34mt0vl5uwhr5g2ngy4pvsg7hhnev95nspp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqnp27tm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…27tm&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; And shipping jsr:@innis/nostr-core today. The TypeScript port of the PHP library. Same architecture, same discipline. Branded primitives at the boundary, immutable domain objects, pure functions, ports where the protocol meets the world. The protocol layer separated from everything else, organised around domain concepts rather than NIP numbers, strict enough that a client, a relay, and an application can share the same core.&lt;br/&gt;&lt;br/&gt;It is a contracts library and not a batteries-included toolkit. nostr-tools is excellent at the latter and the two are not feature-for-feature competitors. What this exposes that nostr-tools does not is a hex-typed boundary the compiler can check, with PublicKey, EventId, RelayUrl, and Sig all branded, one Signer port that NIP-07 and NIP-46 and a local signer all satisfy, crypto failures returned as Results rather than thrown, and an HttpClient port so libraries that touch the network never reach for fetch directly. If you are building an app and do not need any of that, use nostr-tools. If you are working inside the innis stack or want swappable boundaries you can test against in memory, this is where the contracts live.&lt;br/&gt;&lt;br/&gt;The standalone relay-selection library released earlier this month was the first piece of the TypeScript stack to go public. This is the foundation of everything else. The pool, the event store, the NIP-07 and NIP-46 signers, and the work built on top of all of it, all to follow as each layer is cleaned for release. The discipline I am working on is not letting that cleanup become the delay. The lesson keeps coming back around.&lt;br/&gt;&lt;br/&gt;AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine held the other end of the board.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-core&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-core-ts&#34;&gt;https://github.com/johninnis/nostr-core-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&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;/nevent1qqsd6dul70lgvyjqzsqk2x0p75fuyz7cuv6z7mn9s940knh3j2zg4mgpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqszunvm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…unvm&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-05-28T10:09:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdyu7mkcyh4u7uqt7k2j34mt0vl5uwhr5g2ngy4pvsg7hhnev95nszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nupf2s4p</id>
    
      <title type="html">And shipping jsr:@innis/nostr-core today. The TypeScript port of ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdyu7mkcyh4u7uqt7k2j34mt0vl5uwhr5g2ngy4pvsg7hhnev95nszyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nupf2s4p" />
    <content type="html">
      And shipping jsr:@innis/nostr-core today. The TypeScript port of the PHP library. Same architecture, same discipline. Branded primitives at the boundary, immutable domain objects, pure functions, ports where the protocol meets the world. The protocol layer separated from everything else, organised around domain concepts rather than NIP numbers, strict enough that a client, a relay, and an application can share the same core.&lt;br/&gt;&lt;br/&gt;It is a contracts library and not a batteries-included toolkit. nostr-tools is excellent at the latter and the two are not feature-for-feature competitors. What this exposes that nostr-tools does not is a hex-typed boundary the compiler can check, with PublicKey, EventId, RelayUrl, and Sig all branded, one Signer port that NIP-07 and NIP-46 and a local signer all satisfy, crypto failures returned as Results rather than thrown, and an HttpClient port so libraries that touch the network never reach for fetch directly. If you are building an app and do not need any of that, use nostr-tools. If you are working inside the innis stack or want swappable boundaries you can test against in memory, this is where the contracts live.&lt;br/&gt;&lt;br/&gt;The standalone relay-selection library released earlier this month was the first piece of the TypeScript stack to go public. This is the foundation of everything else. The pool, the event store, the NIP-07 and NIP-46 signers, and the work built on top of all of it, all to follow as each layer is cleaned for release. The discipline I am working on is not letting that cleanup become the delay. The lesson keeps coming back around.&lt;br/&gt;&lt;br/&gt;AI was involved, same terms as before. The architecture is mine. The decisions are mine. The machine held the other end of the board.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-core&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-core-ts&#34;&gt;https://github.com/johninnis/nostr-core-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #opensource #nostrdev&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsd6dul70lgvyjqzsqk2x0p75fuyz7cuv6z7mn9s940knh3j2zg4mgpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqszunvm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…unvm&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Shipping two libraries today: nostr-relay-selection in TypeScript and PHP. They answer one question: given a Nostr event, which relays should it go to. Covers outbox publish routing, NIP-17 DMs, NIP-65 list parsing, author set-cover, e/p relay hints.&lt;br/&gt;&lt;br/&gt;Both libraries are pure functions. No state, no I/O, no caches, no fallback URLs, no tie-breaks by Math.random or time decay. Same inputs, same outputs, every time.&lt;br/&gt;&lt;br/&gt;The existing implementations (NDK&#39;s OutboxTracker, rust-nostr&#39;s gossip, go-nostr&#39;s sdk, welshman/router) are engines: stateful, heuristic, coupled to a pool. None are deterministic.&lt;br/&gt;&lt;br/&gt;These libraries take the opposite trade. They are a spec. The TypeScript and PHP ports share a JSON corpus of test vectors. A vector that passes in one passes in the other. A Go or Rust port joins the same compliance suite or it doesn&#39;t conform.&lt;br/&gt;&lt;br/&gt;If you&#39;re building a client, a relay, a bot, an indexer, the win is having routing live behind one auditable path. One place that knows the NIPs. One set of vectors that decide whether the answer is right. When NIP-65 grows a marker or NIP-17 tightens a rule, you update the library and every caller gets the new policy.&lt;br/&gt;&lt;br/&gt;Post-spec decisions belong in an adapter at the boundary. Onion-only routing for a privacy build, dropping unresponsive relays based on pool state, home-relay ordering, scoring by past success — whatever your runtime knows that the spec doesn&#39;t. The library returns the NIP-derived answer; the adapter overlays your application&#39;s intuition on top.&lt;br/&gt;&lt;br/&gt;In use across the rest of my Nostr stack, to be released soon. I&#39;m also putting these out because I want them stress-tested by people who have shipped more Nostr than I have. If you spot a corpus (Claude&#39;s favourite word right now) vector that&#39;s wrong, a NIP rule I&#39;ve misread, or a routing decision you&#39;d make differently, the issue tracker is open.&lt;br/&gt;&lt;br/&gt;deno add jsr:@innis/nostr-relay-selection&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-relay-selection-ts&#34;&gt;https://github.com/johninnis/nostr-relay-selection-ts&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;composer require innis/nostr-relay-selection&lt;br/&gt;&lt;a href=&#34;https://github.com/johninnis/nostr-relay-selection-php&#34;&gt;https://github.com/johninnis/nostr-relay-selection-php&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;MIT.&lt;br/&gt;&lt;br/&gt;#nostr #typescript #php #opensource #nostrdev &lt;/blockquote&gt;
    </content>
    <updated>2026-05-28T09:58:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqwg6qnn8f7a2pq8wvv3vgq94uqzf0p8fqdkexr9addjd7z3hw74szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuehn6ws</id>
    
      <title type="html">GM! Funny seeing you pop up here while you&amp;#39;re in my ears via ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqwg6qnn8f7a2pq8wvv3vgq94uqzf0p8fqdkexr9addjd7z3hw74szyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuehn6ws" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9q0wug8x67dvq5ymyv9dv2ek934rmqyjnl3hd7p4zd5e23s284fqh67cam&#39;&gt;nevent1q…7cam&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;GM! Funny seeing you pop up here while you&amp;#39;re in my ears via your podcast.
    </content>
    <updated>2026-05-28T06:32:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyj7zzccdyu5lt0e8phwcta4ykejxy0zw678drzjwxjhmds37uhgczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuthhyc0</id>
    
      <title type="html">It&amp;#39;s not just comfortable. Consensus is enforced. Being the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyj7zzccdyu5lt0e8phwcta4ykejxy0zw678drzjwxjhmds37uhgczyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nuthhyc0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8q0qp6fna27xx349xvwfvgh9qgm9gwc80yhxx5y6lejsu9hfhr6g54gdtm&#39;&gt;nevent1q…gdtm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It&amp;#39;s not just comfortable. Consensus is enforced. Being the black sheep has cost me more than once, and physically too. Some people will not accept your standing apart.
    </content>
    <updated>2026-05-28T04:46:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2fa08p9mu8se4hntchvc72kh2junnxsryynlw90zhuczgxayypxgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5l06ze</id>
    
      <title type="html">Yep, takes too much responsibility.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2fa08p9mu8se4hntchvc72kh2junnxsryynlw90zhuczgxayypxgzyr7x8tfl46mynr8zv4qwudsgjda80xqa2kjm86cags7wgglsrj9nu5l06ze" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszxx0e4sq3sg3ec8y5wa44anq52znrr9kmsw32tdz4e07lx0jdftqudqhmp&#39;&gt;nevent1q…qhmp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yep, takes too much responsibility.
    </content>
    <updated>2026-05-28T04:21:27Z</updated>
  </entry>

</feed>