<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Posts tagged: nostr</title>
  <id>https://pype.dev/tags/nostr/atom.xml</id>
  <updated>2025-07-08T08:30:35Z</updated>
  <subtitle>All posts with the tag &#34;nostr&#34;</subtitle>
  <link href="https://pype.dev/tags/nostr/" rel="alternate" type="text/html"></link>
  <link href="https://pype.dev/tags/nostr/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Nic Payne</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>Thoughts To Nostr</title>
    <id>https://pype.dev/thoughts-to-nostr/</id>
    <updated>2025-07-08T08:30:35Z</updated>
    <published>2025-07-08T08:30:35Z</published>
    <link href="https://pype.dev/thoughts-to-nostr/" rel="alternate" type="text/html"></link>
    <summary type="text">I am trying to use temporal at home for running automated pipelines. It&#39;s definitely overkill for my use case but this is America...</summary>
    <content type="html">&lt;p&gt;I am trying to use &lt;a href=&#34;/temporal/&#34; class=&#34;wikilink&#34; data-title=&#34;temporal&#34; data-description=&#34;Temporal is a workflow orchestrator that I&amp;#39;m interested in&#34; data-date=&#34;2025-06-24&#34; data-preview=&#34;Temporal is a workflow orchestrator that I&amp;#39;m interested in&#34;&gt;temporal&lt;/a&gt; at home for running automated pipelines. It&amp;rsquo;s&#xA;definitely overkill for my use case but this is America&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;So my first project is a system that takes my &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;My thoughts are found at my thoughts feed&#34; data-date=&#34;2025-06-09&#34; data-preview=&#34;My thoughts are found at my thoughts feed&#34;&gt;Thoughts&lt;/a&gt; and posts them to&#xA;&lt;a href=&#34;/nostr/&#34; class=&#34;wikilink&#34; data-title=&#34;Nostr&#34; data-description=&#34;???+ note &amp;#34;How to start...&amp;#34;&#34; data-date=&#34;2025-07-02&#34; data-preview=&#34;???+ note &amp;#34;How to start...&amp;#34;&#34;&gt;Nostr&lt;/a&gt; as I briefly discussed in &lt;a href=&#34;/testing-a-postiz-change-locally/&#34; class=&#34;wikilink&#34; data-title=&#34;Testing a Postiz Change Locally (IT WORKS!)&#34; data-description=&#34;I am working on a pipeline at home to integrate my blog with social media a little more. One of the things I want to do is automatically post my-thoughts to...&#34; data-date=&#34;2025-07-06&#34; data-preview=&#34;I am working on a pipeline at home to integrate my blog with social media a little more. One of the things I want to do is automatically post my-thoughts to...&#34;&gt;Testing a Postiz Change Locally (IT WORKS!)&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I have temporal infrastructure setup in homelab-compose and then&#xA;homelab-temporal should probably be homelab-temporal-pipelines or something,&#xA;but it&amp;rsquo;s the app code. I also have a repo homelab-social-media-pipelines -&#xA;which has been consolidated down into homelab-temporal. once that all works I&#xA;can destroy the homelab-social-media-pipelines repo&lt;/p&gt;&#xA;&lt;p&gt;NOTE: everything is moving to homelab-mono&lt;/p&gt;&#xA;&lt;h2 id=&#34;issue-01&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Issue 01&lt;/span&gt; &lt;a href=&#34;#issue-01&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I am currently hitting a stupid python issue:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;nic in homelab-temporal   main    ×2  ×4  ×7 via   v3.12.8(homelab-temporal)   (dev) 󰒄&#xA;⬢ [devbox] ❯ python -c &amp;quot;from homelab_temporal.postiz.postiz_client import PostizClient&amp;quot;&#xA;(homelab-temporal)&#xA;nic in homelab-temporal   main    ×2  ×4  ×7 via   v3.12.8(homelab-temporal)   (dev) 󰒄&#xA;⬢ [devbox] ❯ python scripts/postiz/simple_post.py&#xA;Traceback (most recent call last):&#xA;  File &amp;quot;/home/nic/projects/personal/homelab-temporal/scripts/postiz/simple_post.py&amp;quot;, line 3, in &amp;lt;module&amp;gt;&#xA;    from homelab_temporal.postiz.postiz_client import PostizClient, process_for_nostr, process_for_x&#xA;ModuleNotFoundError: No module named &#39;homelab_temporal&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;very dumb venv problem&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 id=&#34;resolution&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Resolution&lt;/span&gt; &lt;a href=&#34;#resolution&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;need to use &lt;code&gt;python -m&lt;/code&gt; because the script is outside the project root? see &lt;a href=&#34;/2025-07-08-notes/&#34; class=&#34;wikilink&#34; data-title=&#34;2025-07-08 Notes&#34; data-description=&#34;Today I consolidated homelab-social-media-pipelines into homelab-temporal, which is the app repo.&#34; data-date=&#34;2025-07-08&#34; data-preview=&#34;Today I consolidated homelab-social-media-pipelines into homelab-temporal, which is the app repo.&#34;&gt;2025-07-08 Notes&lt;/a&gt; and the chatgpt notes for more on this but it works now&lt;/p&gt;&#xA;&lt;h2 id=&#34;thoughts-order&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Thoughts Order&lt;/span&gt; &lt;a href=&#34;#thoughts-order&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;as of &lt;a href=&#34;/2025-07-11-notes/&#34; class=&#34;wikilink&#34; data-title=&#34;2025-07-11 Notes&#34; data-description=&#34;yesterday 2025-07-10-notes&#34; data-date=&#34;2025-07-11&#34; data-preview=&#34;yesterday 2025-07-10-notes&#34;&gt;2025-07-11 Notes&lt;/a&gt; I have the thoughts ordering correct - we post the oldest thoughts up to the newest ones. Now I want more intros for the notes so they don&amp;rsquo;t get too repetitive&lt;/p&gt;&#xA;&lt;h2 id=&#34;todos&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;TODOs&lt;/span&gt; &lt;a href=&#34;#todos&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;[x] - destroy the homelab-social-media-pipelines repo&lt;/p&gt;&#xA;&lt;p&gt;[] - think about how to structure things more&amp;hellip; monorepo in homelab-temporal might be hard to manage with AI tools due to context management&amp;hellip; unsure though&lt;/p&gt;&#xA;&lt;p&gt;[] - create workflow and activities for thoughts to nostr&amp;hellip; revisit diagram to see what you need to build out in the temporal repo&lt;/p&gt;&#xA;&lt;p&gt;[] - do something like this for github stars and then blog posts&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I need to update my templates for nostr og images using this as fodder&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;&amp;lt;!-- HTML Meta Tags --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;Nostr Design&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A comprehensive resource for designers and developers to build successful nostr products&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;&amp;lt;!-- Facebook Meta Tags --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:url&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://nostrdesign.org&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:type&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;website&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:title&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Nostr Design&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:description&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A comprehensive resource for designers and developers to build successful nostr products&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://nostrdesign.org/img/nostr-cover.jpg&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;&amp;lt;!-- Twitter Meta Tags --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:card&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;summary_large_image&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:domain&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;nostrdesign.org&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:url&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://nostrdesign.org&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:title&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Nostr Design&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:description&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A comprehensive resource for designers and developers to build successful nostr products&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:image&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://nostrdesign.org/img/nostr-cover.jpg&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;dockerizing&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Dockerizing&lt;/span&gt; &lt;a href=&#34;#dockerizing&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I think I wnt to dockerize my workers and workflows&amp;hellip; build them out of the &lt;code&gt;homelab-temporal&lt;/code&gt; repo but then run them in compose stacks&amp;hellip; that can get stitched together better but for now that&amp;rsquo;ll probably be a good target.&#xA;I have things to think about though&amp;hellip; for example the blog builder needs my ssh keys, or an ssh key for a user&amp;hellip; also git is a little mess up anyways&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;temporal &lt;a href=&#34;https://temporal-ui.paynepride.com/namespaces/default/workflows/blog-build-ee488b69-6cdf-4819-bccd-df183cf8ec13/01981101-e48b-712a-96db-328ce720c13c/history&#34;&gt;link&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;temporal&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Temporal&lt;/span&gt; &lt;a href=&#34;#temporal&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I haev temporal workflows and stuff that all seem to work&lt;/p&gt;&#xA;&lt;p&gt;on &lt;a href=&#34;/2025-08-08-notes/&#34; class=&#34;wikilink&#34; data-title=&#34;2025-08-08 Notes&#34; data-description=&#34;yesterday: 2025-08-07-notes&#34; data-date=&#34;2025-08-08&#34; data-preview=&#34;yesterday: 2025-08-07-notes&#34;&gt;2025-08-08 Notes&lt;/a&gt; I had issues with my nostr relay being too public, so I shut it down, reconfigured postiz and stuff and got it workign again, more restricted and in-memory database&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Nostr</title>
    <id>https://pype.dev/nostr/</id>
    <updated>2025-07-02T21:22:03Z</updated>
    <published>2025-07-02T21:22:03Z</published>
    <link href="https://pype.dev/nostr/" rel="alternate" type="text/html"></link>
    <summary type="text">???+ note &#34;How to start...&#34;</summary>
    <content type="html">&lt;details class=&#34;admonition note&#34; open&gt;&#xA;&lt;summary class=&#34;admonition-title&#34;&gt;How to start...&lt;/summary&gt;&#xA;&lt;p&gt;This isn&amp;rsquo;t a getting started with nostr - see [[getting-started-with-nostr]] for that&lt;/p&gt;&#xA;&lt;/details&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://nostr.com/&#34;&gt;The nostr docs&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Nostr is a very intriguing protocol for communication that lends itself to a&#xA;decentrlized social media experience through the use of relays. I would love to&#xA;understand it more fully someday, but I am inclined to be in line with&#xA;almost anything decentrlized, and although the primary content in the&#xA;nostr-verse right now is bitcoin, I am sure that as time goes on, the need for&#xA;a truly free way to communicate will be necessary - and nostr won&amp;rsquo;t solve every&#xA;problem, but I think it&amp;rsquo;ll be a tool in the set of solutions we come up with.&#xA;It&amp;rsquo;s secure, decentralized, actively worked on, and very flexible.&lt;/p&gt;&#xA;&lt;details class=&#34;admonition note&#34; open&gt;&#xA;&lt;summary class=&#34;admonition-title&#34;&gt;NOSTR&lt;/summary&gt;&#xA;&lt;p&gt;Notes and Other Stuff Transmited over Relays&lt;/p&gt;&#xA;&lt;/details&gt;&#xA;&lt;h2 id=&#34;decentralization&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Decentralization&lt;/span&gt; &lt;a href=&#34;#decentralization&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Why does decentralization matter? Put simply - censorship. A founding principal&#xA;of America is free speech and in recent years our right to speak freely has&#xA;been put under severe fire.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve crossed paths with people who very regularly talked about freedom of&#xA;speech but it wasn&amp;rsquo;t until the last several years, mostly with covid that I&#xA;started to pay a little closer attention. I&amp;rsquo;m not turning this post into any&#xA;long rant about anything specific, but I do know that many voices were silenced&#xA;on Facebook, Twitter/X, Insta, etc. Big Tech really threw the hammer down on&#xA;people - a simple example was the Ivermectin stuff&amp;hellip; which in the last 2 years&#xA;has turned out to be a pretty effective treatment for many thousands of people!&lt;/p&gt;&#xA;&lt;p&gt;But why does that matter? It&amp;rsquo;s because the platforms that existed which made it&#xA;possible for anyone to &amp;ldquo;have an audience&amp;rdquo; made harsh judgements about what&#xA;could and couldn&amp;rsquo;t be on their platforms&amp;hellip; There&amp;rsquo;s pros and cons to this, but a&#xA;primary con I see is that the power to limit the spread of information was&#xA;pretty solely concentrated in the departments of these Big Tech firms that&#xA;allowed or disallowed certain things to be said and expressed on their&#xA;platforms.&lt;/p&gt;&#xA;&lt;p&gt;Nostr is different here in that there&amp;rsquo;s no central command, no single data&#xA;center or hub&amp;hellip;. Nostr is a protocol, like HTTP is a protocol&amp;hellip; anyone can&#xA;send &amp;ldquo;Notes and Other Stuff over Relays&amp;rdquo; so developers can build any &lt;a href=&#34;/kind/&#34; class=&#34;glossary-term&#34; title=&#34;kind - kubernetes in docker&#34; data-hover-title=&#34;kind&#34;&gt;kind&lt;/a&gt; of UI&#xA;for it, and you as the user can subscribe to relays that tend to have&#xA;information you care about&amp;hellip; in a sense it&amp;rsquo;s kind of like subreddits but not&#xA;quite as organized (yet)&amp;hellip;. but unlike reddit, there&amp;rsquo;s no central authority.&#xA;The closest it gets is that a relay may go down or someone may choose to close&#xA;one - no big, you just subscribe to other relays, or don&amp;rsquo;t subscribe to relays&#xA;you don&amp;rsquo;t want to see&lt;/p&gt;&#xA;&lt;p&gt;Another friend of mine likened this to RSS - and it&amp;rsquo;s also not UNlike that, but&#xA;there&amp;rsquo;s more to it - the notes are on the relays, there&amp;rsquo;s encryption throughout&#xA;the protocol, and several other standards called NIPS that make nostr unique,&#xA;and I think bulletproof as we go into a future clouded by big government and&#xA;big tech collaboration.&lt;/p&gt;&#xA;&lt;h2 id=&#34;brief-usage&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Brief Usage&lt;/span&gt; &lt;a href=&#34;#brief-usage&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;As for a usage pattern with nostr I think you have to combine the ideas of&#xA;reddit, rss, and twitter&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Some apps like coracle.social have nice support for building &amp;ldquo;feeds&amp;rdquo; and&#xA;&amp;ldquo;lists&amp;rdquo;&amp;hellip; lists are combinations of tags (hashtags) and feeds are combinations&#xA;of lists - at least in the coracle world. This means you can use lists of tags&#xA;to discover content and users, create feeds of things you want to see regularly&#xA;(like your RSS feed subscriptions), follow other users (using their pub keys&#xA;see [## Follow Me]), and curate your social media experience in whatever way&#xA;you want.&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s nostr apps specific to mobile (primal, snort) and desktop&#xA;(coracle.social). They help you set yourself up in different ways and to learn&#xA;more about how I got started then checkout [[getting-started-with-nostr]].&#xA;There&amp;rsquo;s also content-driven nostr apps, for example &lt;a href=&#34;&#34;&gt;fountain&lt;/a&gt; is great for&#xA;music and podcasts that are distributed on the nostrverse, which feels like a&#xA;totally different world than when I use coracle to browse my tech or bible&#xA;related feeds.&lt;/p&gt;&#xA;&lt;h2 id=&#34;end&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;End&lt;/span&gt; &lt;a href=&#34;#end&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Nostr is a pretty cool thing taking shape&amp;hellip; here&amp;rsquo;s some related info&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://tgfb.com/podcasts/thank-god-for-nostr/&#34;&gt;Thank God for nostr podcast&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://nostr.com/&#34;&gt;nostr website&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Note these posts aren&amp;rsquo;t available yet but they will show up on my RSS feed when they&amp;rsquo;re published&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;My post on [[getting-started-with-nostr]]&lt;/p&gt;&#xA;&lt;p&gt;My project on &lt;a href=&#34;/thoughts-to-nostr/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts To Nostr&#34; data-description=&#34;I am trying to use temporal at home for running automated pipelines. It&amp;#39;s definitely overkill for my use case but this is America...&#34; data-date=&#34;2025-07-08&#34; data-preview=&#34;I am trying to use temporal at home for running automated pipelines. It&amp;#39;s definitely overkill for my use case but this is America...&#34;&gt;Thoughts To Nostr&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 id=&#34;follow-me&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Follow Me&lt;/span&gt; &lt;a href=&#34;#follow-me&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;img src=&#34;https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20250705122314_e9fbd0f7.png&#34; alt=&#34;20250705122314_e9fbd0f7.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;details class=&#34;admonition note&#34; open&gt;&#xA;&lt;summary class=&#34;admonition-title&#34;&gt;my public key&lt;/summary&gt;&#xA;&lt;p&gt;npub1q3fsec2vcv99v80ga72dlv90qwkqmuxqcr6mdyumcmpkgudlhrespyurfj&lt;/p&gt;&#xA;&lt;/details&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Nostr hex key</title>
    <id>https://pype.dev/nostr-hex-key/</id>
    <updated>2025-07-02T08:43:32Z</updated>
    <published>2025-07-02T08:43:32Z</published>
    <link href="https://pype.dev/nostr-hex-key/" rel="alternate" type="text/html"></link>
    <summary type="text">you can hexify your nostr key when you need to sometimes which I needed to for postiz (link with a thought I&#39;m sure I have on postiz)</summary>
    <content type="html">&lt;p&gt;you can hexify your &lt;a href=&#34;/nostr/&#34; class=&#34;wikilink&#34; data-title=&#34;Nostr&#34; data-description=&#34;???+ note &amp;#34;How to start...&amp;#34;&#34; data-date=&#34;2025-07-02&#34; data-preview=&#34;???+ note &amp;#34;How to start...&amp;#34;&#34;&gt;Nostr&lt;/a&gt; key when you need to sometimes which I needed to for &lt;a href=&#34;/tags/postiz/&#34; class=&#34;wikilink&#34; data-title=&#34;Posts tagged: postiz&#34; data-description=&#34;All posts with the tag &amp;#34;postiz&amp;#34;&#34; data-preview=&#34;All posts with the tag &amp;#34;postiz&amp;#34;&#34;&gt;Posts tagged: postiz&lt;/a&gt; (link with a thought I&amp;rsquo;m sure I have on postiz)&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# /// script&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# requires-python = &amp;#34;&amp;gt;=3.8&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# dependencies = [&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#     &amp;#34;bech32&amp;#34;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ///&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;bech32&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Set your nsec... key to NOSTR_PRIVATE_KEY or bake it in...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;nsec_key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;NOSTR_PRIVATE_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;decode_nsec&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nsec_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;hrp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bech32&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bech32_decode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nsec_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hrp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;nsec&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Not a valid nsec key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;decoded&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bech32&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convertbits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;decoded&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Example usage&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;raw_hex&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;decode_nsec&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nsec_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Raw hex private key: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_hex&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>The Importance of Nostr According to ChatGPT</title>
    <id>https://pype.dev/the-importance-of-nostr-according-to-chatgpt/</id>
    <updated>2025-01-24T06:38:03Z</updated>
    <published>2025-01-24T06:38:03Z</published>
    <link href="https://pype.dev/the-importance-of-nostr-according-to-chatgpt/" rel="alternate" type="text/html"></link>
    <summary type="text">This was written by ChatGPT with zero oversight from me. There are a few things that are not 100% accurate, but the main idea is there... I am hoping to...</summary>
    <content type="html">&lt;h2 id=&#34;disclaimer&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Disclaimer&lt;/span&gt; &lt;a href=&#34;#disclaimer&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This was written by ChatGPT with zero oversight from me. There are a few things that are not 100% accurate, but the main idea is there&amp;hellip; I am hoping to actually write about my experience with nostr as I get more involved on the platform.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-power-of-the-decentralized-social-media-platform-nostr-a-guide-for-beginners&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The Power of the Decentralized Social Media Platform Nostr: A Guide for Beginners&lt;/span&gt; &lt;a href=&#34;#the-power-of-the-decentralized-social-media-platform-nostr-a-guide-for-beginners&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Social media has become a cornerstone of modern communication, allowing individuals to connect across borders and share ideas instantly. However, traditional platforms have raised concerns about censorship, data privacy, and the monopolistic control of user-generated content. &lt;strong&gt;Nostr (Notes and Other Stuff Transmitted by Relays)&lt;/strong&gt;, a decentralized social media protocol, offers a revolutionary alternative by emphasizing freedom, privacy, and user autonomy. This essay explores the transformative power of Nostr, why it matters, and provides a practical guide for beginners to get started.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;the-power-of-decentralization-why-nostr-matters&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The Power of Decentralization: Why Nostr Matters&lt;/span&gt; &lt;a href=&#34;#the-power-of-decentralization-why-nostr-matters&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;At its core, Nostr is a decentralized protocol designed to enable social media functionality without reliance on centralized servers. Unlike traditional platforms such as Twitter or Facebook, which depend on centralized infrastructure owned by corporations, Nostr operates on a peer-to-peer network facilitated by relays. This structural shift offers several key advantages:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Freedom of Expression&lt;/strong&gt;&lt;br&gt;&#xA;Centralized platforms often act as gatekeepers of content, enforcing moderation policies that can result in censorship. Nostr, on the other hand, allows users to communicate directly without interference from centralized authorities. This makes it particularly valuable for individuals in regions with restrictive speech laws.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Data Ownership&lt;/strong&gt;&lt;br&gt;&#xA;On traditional platforms, users sacrifice ownership of their data, which is often monetized by corporations. Nostr empowers users to retain control over their content and personal information by using cryptographic keys to manage identity.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Resilience Against Shutdowns&lt;/strong&gt;&lt;br&gt;&#xA;Centralized platforms are vulnerable to outages, government intervention, or corporate decisions to deplatform users. Nostr’s decentralized nature ensures that no single entity can shut it down, providing a more resilient communication medium.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open and Transparent Ecosystem&lt;/strong&gt;&lt;br&gt;&#xA;As an open protocol, Nostr allows developers to create interoperable applications and services. This fosters innovation, enabling users to choose from a variety of client applications while maintaining access to the same network.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;how-nostr-works-the-technical-backbone&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;How Nostr Works: The Technical Backbone&lt;/span&gt; &lt;a href=&#34;#how-nostr-works-the-technical-backbone&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Nostr uses a simple yet effective system to transmit messages:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Public and Private Keys&lt;/strong&gt;: Each user generates a pair of cryptographic keys. The private key acts as their identity, while the public key serves as their address on the network.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Relays&lt;/strong&gt;: These are lightweight servers that broadcast messages. Users send notes (messages) to relays, which distribute them to other users.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clients&lt;/strong&gt;: Users access Nostr through client applications, which function as user interfaces. Examples include Damus (for mobile) and Amethyst.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This decentralized architecture eliminates single points of failure and gives users the flexibility to connect via multiple clients.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;a-beginner-s-guide-to-getting-started-with-nostr&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;A Beginner’s Guide to Getting Started with Nostr&lt;/span&gt; &lt;a href=&#34;#a-beginner-s-guide-to-getting-started-with-nostr&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;For those new to Nostr, the decentralized structure might seem intimidating at first. However, with the following step-by-step guide, you’ll be able to join the network and start interacting with others seamlessly.&lt;/p&gt;&#xA;&lt;h4 id=&#34;step-1-generate-your-keys&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Step 1: Generate Your Keys&lt;/span&gt; &lt;a href=&#34;#step-1-generate-your-keys&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;The first step is to create a pair of cryptographic keys:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Private Key&lt;/strong&gt;: This is your unique identifier and must be kept secret. Treat it like a password.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Public Key&lt;/strong&gt;: This is your &amp;ldquo;address&amp;rdquo; on Nostr and can be shared with others.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Most Nostr client applications automatically generate these keys for you upon sign-up. Ensure you securely back up your private key, as losing it means losing access to your account permanently.&lt;/p&gt;&#xA;&lt;h4 id=&#34;step-2-choose-a-nostr-client&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Step 2: Choose a Nostr Client&lt;/span&gt; &lt;a href=&#34;#step-2-choose-a-nostr-client&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Clients are the gateways through which you interact with the Nostr protocol. Popular options include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Damus&lt;/strong&gt; (iOS/Android): User-friendly and feature-rich.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Amethyst&lt;/strong&gt; (Android): Tailored for Android users with a sleek interface.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Web Clients&lt;/strong&gt;: Platforms like &lt;strong&gt;Nostr.guru&lt;/strong&gt; or &lt;strong&gt;Iris&lt;/strong&gt; allow you to access Nostr via a browser.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Install your chosen client and log in using your keys.&lt;/p&gt;&#xA;&lt;h4 id=&#34;step-3-connect-to-relays&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Step 3: Connect to Relays&lt;/span&gt; &lt;a href=&#34;#step-3-connect-to-relays&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Relays are the backbone of the Nostr network, enabling message distribution. Most clients come pre-configured with default relays, but you can add more for better connectivity and reliability. Simply search for &amp;ldquo;Nostr relay services&amp;rdquo; and paste the relay URLs into your client settings.&lt;/p&gt;&#xA;&lt;h4 id=&#34;step-4-explore-and-interact&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Step 4: Explore and Interact&lt;/span&gt; &lt;a href=&#34;#step-4-explore-and-interact&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Once set up, you can start exploring the network:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Follow Users&lt;/strong&gt;: Add public keys of other users to your feed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Post Notes&lt;/strong&gt;: Share your thoughts or updates by creating a note, similar to a tweet.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Engage&lt;/strong&gt;: Interact with others by replying to or liking their notes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;step-5-customize-your-experience&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Step 5: Customize Your Experience&lt;/span&gt; &lt;a href=&#34;#step-5-customize-your-experience&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Choose Relays Carefully&lt;/strong&gt;: Some relays may specialize in certain topics or enforce content moderation policies. Tailor your relay list based on your interests and values.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Backup Your Keys&lt;/strong&gt;: Use secure storage solutions like hardware wallets or encrypted cloud storage to protect your private key.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Experiment with Clients&lt;/strong&gt;: Try multiple clients to find the one that suits your preferences.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;the-broader-implications-of-nostr&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The Broader Implications of Nostr&lt;/span&gt; &lt;a href=&#34;#the-broader-implications-of-nostr&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The emergence of platforms like Nostr signals a broader shift toward decentralization in the digital era. By prioritizing user autonomy and privacy, Nostr challenges the centralized paradigms that have dominated the social media landscape for years. Its open architecture invites developers, activists, and everyday users to co-create a more inclusive and censorship-resistant digital space.&lt;/p&gt;&#xA;&lt;p&gt;Moreover, Nostr&amp;rsquo;s impact extends beyond social media. Its decentralized protocol can be adapted for various purposes, such as secure communication, decentralized marketplaces, or even collaborative work environments. This versatility makes it a foundational building block for the next generation of internet technologies.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Conclusion&lt;/span&gt; &lt;a href=&#34;#conclusion&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Nostr represents a profound evolution in social media, offering a decentralized, user-centric alternative to traditional platforms. By empowering individuals with control over their identity, data, and content, it paves the way for a freer and more resilient online ecosystem. While its decentralized nature may pose a learning curve for beginners, the benefits far outweigh the challenges. By embracing Nostr, we can collectively take a step toward a more open and equitable digital future.&lt;/p&gt;&#xA;&lt;p&gt;For those ready to explore this transformative platform, the journey begins with a simple act: generating your keys and connecting to the network. From there, the power of decentralized communication lies in your hands.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Using my own domain on nostr</title>
    <id>https://pype.dev/using-my-own-domain-on-nostr/</id>
    <updated>2025-01-24T06:28:19Z</updated>
    <published>2025-01-24T06:28:19Z</published>
    <link href="https://pype.dev/using-my-own-domain-on-nostr/" rel="alternate" type="text/html"></link>
    <summary type="text">After generating a keypair on a nostr app (I started with primal) I copied my public key to and put that at the root of my site at .</summary>
    <content type="html">&lt;p&gt;After generating a keypair on a nostr app (I started with primal) I copied my&#xA;public key to &lt;code&gt;/.well-known/nostr.json&lt;/code&gt; and put that at the root of my site at&#xA;&lt;code&gt;https://pype.dev&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The file looks like this:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;err&#34;&gt;“names”:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;“nic”:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;“npub1q3fsec2vcv99v80ga72dlv90qwkqmuxqcr6mdyumcmpkgudlhrespyurfj”&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So now I can use &lt;code&gt;nic@pype.dev&lt;/code&gt; as on nostr because the client will verify the&#xA;pubkey associated with my profile with my domain!&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;big upgrade from &lt;whatever&gt;@primal.net&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
</feed>