<feed xmlns="http://www.w3.org/2005/Atom" xmlns:hypergraph="https://hypergraph.network/xmlns">
	<title>@calebhailey.com</title>
	<id>https://calebhailey.com/</id>
	<link rel="alternate" href="https://calebhailey.com/" type="text/html"></link>
	<link rel="self" href="https://calebhailey.com/atom.xml" type="application/atom+xml"></link>
	<updated>2025-08-25T21:42:14Z</updated>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1756158134000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1756158134000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1756158134000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1756158134000" type="text/html"></link>
		<published>2025-08-25T21:42:14Z</published>
		<updated>2025-08-25T21:42:14Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Just wrapping up day 1 of a &lt;a href=&#34;https://hypertemplates.net&#34; data-hyper-mention&gt;@hypertemplates.net&lt;/a&gt; hack week with &lt;a href=&#34;https://blog.thoward.me&#34; data-hyper-mention&gt;@blog.thoward.me&lt;/a&gt;! 💥&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Just wrapping up day 1 of a &lt;a href=&#34;https://hypertemplates.net&#34; data-hyper-mention&gt;@hypertemplates.net&lt;/a&gt; hack week with &lt;a href=&#34;https://blog.thoward.me&#34; data-hyper-mention&gt;@blog.thoward.me&lt;/a&gt;! 💥&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1755888038000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1755888038000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1755888038000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1755888038000" type="text/html"></link>
		<published>2025-08-22T18:40:38Z</published>
		<updated>2025-08-22T18:40:38Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Been meaning to post about this. Google keeps promoting YouTube as a closed alternative to standards-based podcasting amid never-ending rumors about the death of podcasting. Meanwhile Apple continues to promote traditional podcasting!&lt;/p&gt;&#xA;&lt;p&gt;Now if only Apple could wield its cultural influence (via the iPhone) by shifting Apple News more towards &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt;. Brand it as webcasting or &lt;a href=&#34;https://textcasting.org&#34; data-hyper-mention&gt;@textcasting.org&lt;/a&gt; if necessary.&lt;/p&gt;&#xA;&lt;p&gt;Apple has the ability to make &amp;quot;Wherever you follow websites&amp;quot; a thing™ &lt;a href=&#34;https://www.anildash.com/2024/02/06/wherever_you_get_podcasts/&#34;&gt;like it did for podcasting&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;A boy can dream!&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Been meaning to post about this. Google keeps promoting YouTube as a closed alternative to standards-based podcasting amid never-ending rumors about the death of podcasting. Meanwhile Apple continues to promote traditional podcasting!&lt;/p&gt;&#xA;&lt;p&gt;Now if only Apple could wield its cultural influence (via the iPhone) by shifting Apple News more towards &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt;. Brand it as webcasting or &lt;a href=&#34;https://textcasting.org&#34; data-hyper-mention&gt;@textcasting.org&lt;/a&gt; if necessary.&lt;/p&gt;&#xA;&lt;p&gt;Apple has the ability to make &amp;quot;Wherever you follow websites&amp;quot; a thing™ &lt;a href=&#34;https://www.anildash.com/2024/02/06/wherever_you_get_podcasts/&#34;&gt;like it did for podcasting&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;A boy can dream!&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1752268731000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1752268731000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1752268731000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1752268731000" type="text/html"></link>
		<published>2025-07-11T21:18:51Z</published>
		<updated>2025-07-11T21:18:51Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;I want so badly for this game to exist. The world needs a proper NBA Street Vol.2 successor! 🏀&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;I want so badly for this game to exist. The world needs a proper NBA Street Vol.2 successor! 🏀&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1752267696000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1752267696000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1752267696000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1752267696000" type="text/html"></link>
		<published>2025-07-11T21:01:36Z</published>
		<updated>2025-07-11T21:01:36Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Finally ready to outsource bookkeeping for &lt;a href=&#34;https://herd.works&#34; data-hyper-mention&gt;@herd.works&lt;/a&gt; 🎉&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/startups/&#34; data-hyper-mention&gt;#startups&lt;/a&gt; &lt;a href=&#34;/tags/achievementunlocked/&#34; data-hyper-mention&gt;#AchievementUnlocked&lt;/a&gt;&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Finally ready to outsource bookkeeping for &lt;a href=&#34;https://herd.works&#34; data-hyper-mention&gt;@herd.works&lt;/a&gt; 🎉&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/startups/&#34; data-hyper-mention&gt;#startups&lt;/a&gt; &lt;a href=&#34;/tags/achievementunlocked/&#34; data-hyper-mention&gt;#AchievementUnlocked&lt;/a&gt;&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1752191368000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1752191368000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1752191368000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1752191368000" type="text/html"></link>
		<published>2025-07-10T23:49:28Z</published>
		<updated>2025-07-10T23:49:28Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Scored some sweet deals on the Prime Sale this year after mostly ignoring it for the past few years. I had my eye on this charger for a while and noticed it was $60 off, so I snagged one of these and massively simplified the device charging setup in my home office. This thing is an absolute beast.&lt;/p&gt;&#xA;&lt;p&gt;PS - this is not an affiliate link. I’m just sharing out of the goodness of my nerdy little heart. 🤓&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Scored some sweet deals on the Prime Sale this year after mostly ignoring it for the past few years. I had my eye on this charger for a while and noticed it was $60 off, so I snagged one of these and massively simplified the device charging setup in my home office. This thing is an absolute beast.&lt;/p&gt;&#xA;&lt;p&gt;PS - this is not an affiliate link. I’m just sharing out of the goodness of my nerdy little heart. 🤓&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1752190692000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1752190692000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1752190692000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1752190692000" type="text/html"></link>
		<published>2025-07-10T23:38:12Z</published>
		<updated>2025-07-10T23:38:12Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Is this thing on?!&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Is this thing on?!&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1746743939000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1746743939000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1746743939000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1746743939000" type="text/html"></link>
		<published>2025-05-08T22:38:59Z</published>
		<updated>2025-05-08T22:38:59Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;I noticed my &lt;a href=&#34;/?tab=Following&#34;&gt;following&lt;/a&gt; feed was broken earlier this week. It turns out it&#39;s been broken since the updated site went live at the beginning of the year. Whoops! 😅&lt;/p&gt;&#xA;&lt;p&gt;The issue was with my static site generator and how it was parsing OPML data files. With that fixed I can now drop a lightly modified OPML file (with paywalled &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt; feeds removed) into a data folder and get an auto-generated &lt;a href=&#34;/?tab=Following&#34;&gt;following&lt;/a&gt; page. 🤌🏽&lt;/p&gt;&#xA;&lt;p&gt;This whole idea was inspired by this &lt;a href=&#34;https://anildash.com&#34; data-hyper-mention&gt;@anildash.com&lt;/a&gt; blog post that I think about way too often.&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;I noticed my &lt;a href=&#34;/?tab=Following&#34;&gt;following&lt;/a&gt; feed was broken earlier this week. It turns out it&#39;s been broken since the updated site went live at the beginning of the year. Whoops! 😅&lt;/p&gt;&#xA;&lt;p&gt;The issue was with my static site generator and how it was parsing OPML data files. With that fixed I can now drop a lightly modified OPML file (with paywalled &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt; feeds removed) into a data folder and get an auto-generated &lt;a href=&#34;/?tab=Following&#34;&gt;following&lt;/a&gt; page. 🤌🏽&lt;/p&gt;&#xA;&lt;p&gt;This whole idea was inspired by this &lt;a href=&#34;https://anildash.com&#34; data-hyper-mention&gt;@anildash.com&lt;/a&gt; blog post that I think about way too often.&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1746512481000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1746512481000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1746512481000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1746512481000" type="text/html"></link>
		<published>2025-05-06T06:21:21Z</published>
		<updated>2025-05-06T06:21:21Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Office productivity is going to take a slight hit this week. ⚽️😅📉&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Office productivity is going to take a slight hit this week. ⚽️😅📉&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1746387256000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1746387256000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1746387256000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1746387256000" type="text/html"></link>
		<published>2025-05-04T19:34:16Z</published>
		<updated>2025-05-04T19:47:16Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;The web needs more experimentation like this from &lt;a href=&#34;https://eieio.games&#34; data-hyper-mention&gt;@eieio.games&lt;/a&gt;. 👏👏👏&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;The web needs more experimentation like this from &lt;a href=&#34;https://eieio.games&#34; data-hyper-mention&gt;@eieio.games&lt;/a&gt;. 👏👏👏&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Steve Jobs&#39; talk at the 1983 International Design Conference in Aspen</title>
		<id>https://calebhailey.com/links/steve-jobs-talk-at-the-1983-international-design-conference-in-aspen</id>
		<link rel="alternate" href="https://stevejobsarchive.com/exhibits/objects-of-our-life" type="text/html"></link>
		<link rel="via" href="https://stevejobsarchive.com/exhibits/objects-of-our-life" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/links/steve-jobs-talk-at-the-1983-international-design-conference-in-aspen" type="text/html"></link>
		<published>2025-05-04T18:50:52Z</published>
		<updated>2025-05-04T18:50:52Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>Steve Jobs Archive</name>
			<uri>https://stevejobsarchive.com/</uri>
			<hypergraph:username>@stevejobsarchive.com</hypergraph:username>
			<hypergraph:favicon>https://stevejobsarchive.com/apple-touch-icon.png</hypergraph:favicon>
		</contributor>
		<summary type="html">Link to https://stevejobsarchive.com/exhibits/objects-of-our-life</summary>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1746223784000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1746223784000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1746223784000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1746223784000" type="text/html"></link>
		<published>2025-05-02T22:09:44Z</published>
		<updated>2025-05-02T22:09:44Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Cool to see &lt;a href=&#34;https://stripe.com&#34; data-hyper-mention&gt;@stripe.com&lt;/a&gt; jump in! Competition for payments on iOS?!&lt;/p&gt;&#xA;&lt;p&gt;The comments on &lt;a href=&#34;https://x.com/AzianMike/status/1917830346332332329&#34;&gt;this Twitter thread from Stripe Product Manager Michael Lou&lt;/a&gt; are amazing. It reads like an FAQ, haha.&lt;/p&gt;&#xA;&lt;p&gt;One &lt;a href=&#34;https://x.com/ntelas_/status/1917934277557211168&#34;&gt;comment&lt;/a&gt; replies &amp;quot;But using Apple Pay makes purchasing something way more likely for me.&amp;quot; Lou &lt;a href=&#34;https://x.com/AzianMike/status/1917934617291796939&#34;&gt;responds&lt;/a&gt; &amp;quot;You can use Apple pay via Stripe!&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Another &lt;a href=&#34;https://x.com/irishnick23/status/1918124789895516639&#34;&gt;comment&lt;/a&gt; asks &amp;quot;Do users return to the app automatically after successful completion or is an action required?&amp;quot; Lou &lt;a href=&#34;https://x.com/AzianMike/status/1918127289596035231&#34;&gt;responds&lt;/a&gt; &amp;quot;They return automatically if [the developer has] Universal Links enabled&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;🍿&lt;/p&gt;&#xA;&lt;!-- Links --&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Cool to see &lt;a href=&#34;https://stripe.com&#34; data-hyper-mention&gt;@stripe.com&lt;/a&gt; jump in! Competition for payments on iOS?!&lt;/p&gt;&#xA;&lt;p&gt;The comments on &lt;a href=&#34;https://x.com/AzianMike/status/1917830346332332329&#34;&gt;this Twitter thread from Stripe Product Manager Michael Lou&lt;/a&gt; are amazing. It reads like an FAQ, haha.&lt;/p&gt;&#xA;&lt;p&gt;One &lt;a href=&#34;https://x.com/ntelas_/status/1917934277557211168&#34;&gt;comment&lt;/a&gt; replies &amp;quot;But using Apple Pay makes purchasing something way more likely for me.&amp;quot; Lou &lt;a href=&#34;https://x.com/AzianMike/status/1917934617291796939&#34;&gt;responds&lt;/a&gt; &amp;quot;You can use Apple pay via Stripe!&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Another &lt;a href=&#34;https://x.com/irishnick23/status/1918124789895516639&#34;&gt;comment&lt;/a&gt; asks &amp;quot;Do users return to the app automatically after successful completion or is an action required?&amp;quot; Lou &lt;a href=&#34;https://x.com/AzianMike/status/1918127289596035231&#34;&gt;responds&lt;/a&gt; &amp;quot;They return automatically if [the developer has] Universal Links enabled&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;🍿&lt;/p&gt;&#xA;&lt;!-- Links --&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1746217881000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1746217881000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1746217881000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1746217881000" type="text/html"></link>
		<published>2025-05-02T20:31:21Z</published>
		<updated>2025-05-02T20:31:21Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;I knew today was gonna be an exceptional Daily Update on &lt;a href=&#34;https://stratechery.com&#34; data-hyper-mention&gt;@stratechery.com&lt;/a&gt; and I was not disappointed! 🔥&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;I knew today was gonna be an exceptional Daily Update on &lt;a href=&#34;https://stratechery.com&#34; data-hyper-mention&gt;@stratechery.com&lt;/a&gt; and I was not disappointed! 🔥&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Three meaningful changes to App Review guidelines</title>
		<id>https://calebhailey.com/posts/1746162218000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1746162218000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1746162218000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1746162218000" type="text/html"></link>
		<published>2025-05-02T05:03:38Z</published>
		<updated>2025-05-02T05:03:38Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;These might be the three most meaningful paragraphs of policy/legal &lt;a href=&#34;https://youtu.be/jIveQ4O9Tnw&#34;&gt;mumbo jumbo&lt;/a&gt; I&#39;ve experienced in my professional career.&lt;/p&gt;&#xA;&lt;p&gt;From an inconspicuously titled &lt;a href=&#34;https://developer.apple.com/news/?id=9txfddzf&#34;&gt;&amp;quot;Updated guidelines now available&amp;quot;&lt;/a&gt; from &lt;a href=&#34;https://developer.apple.com&#34; data-hyper-mention&gt;@developer.apple.com&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;3.1.1(a): On the United States storefront, there is no prohibition on an app including buttons, external links, or other calls to action, and no entitlement is required to do so.&lt;/p&gt;&#xA;&lt;p&gt;3.1.3: The prohibition on encouraging users to use a purchasing method other than in-app purchase does not apply on the United States storefront.&lt;/p&gt;&#xA;&lt;p&gt;3.1.3(a): The External Link Account entitlement is not required for apps on the United States storefront to include buttons, external links, or other calls to action.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The email opened with an acknowledgement of &lt;a href=&#34;https://daringfireball.net/2025/04/gonzales_rogers_apple_app_store_ruling&#34;&gt;this week&#39;s monumental legal mandate&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The App Review Guidelines have been updated for compliance with a United States court decision regarding buttons, external links, and other calls to action in apps. These changes affect apps distributed on the United States storefront of the App Store&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Three cheers for regulation?! 👩‍⚖️&lt;/p&gt;&#xA;&lt;p&gt;The most exciting thing about this to me personally is how &lt;a href=&#34;https://apple.com&#34; data-hyper-mention&gt;@apple.com&lt;/a&gt; itself might respond to these changes by &lt;em&gt;actually competing&lt;/em&gt; for developers&#39; business in an area where it hasn&#39;t had to in the past.&lt;/p&gt;&#xA;&lt;p&gt;It&#39;s gonna be a fun &lt;a href=&#34;/tags/wwdc/&#34; data-hyper-mention&gt;#WWDC&lt;/a&gt; &amp;amp; summer! 🙌🏽&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;These might be the three most meaningful paragraphs of policy/legal &lt;a href=&#34;https://youtu.be/jIveQ4O9Tnw&#34;&gt;mumbo jumbo&lt;/a&gt; I&#39;ve experienced in my professional career.&lt;/p&gt;&#xA;&lt;p&gt;From an inconspicuously titled &lt;a href=&#34;https://developer.apple.com/news/?id=9txfddzf&#34;&gt;&amp;quot;Updated guidelines now available&amp;quot;&lt;/a&gt; from &lt;a href=&#34;https://developer.apple.com&#34; data-hyper-mention&gt;@developer.apple.com&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;3.1.1(a): On the United States storefront, there is no prohibition on an app including buttons, external links, or other calls to action, and no entitlement is required to do so.&lt;/p&gt;&#xA;&lt;p&gt;3.1.3: The prohibition on encouraging users to use a purchasing method other than in-app purchase does not apply on the United States storefront.&lt;/p&gt;&#xA;&lt;p&gt;3.1.3(a): The External Link Account entitlement is not required for apps on the United States storefront to include buttons, external links, or other calls to action.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The email opened with an acknowledgement of &lt;a href=&#34;https://daringfireball.net/2025/04/gonzales_rogers_apple_app_store_ruling&#34;&gt;this week&#39;s monumental legal mandate&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The App Review Guidelines have been updated for compliance with a United States court decision regarding buttons, external links, and other calls to action in apps. These changes affect apps distributed on the United States storefront of the App Store&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Three cheers for regulation?! 👩‍⚖️&lt;/p&gt;&#xA;&lt;p&gt;The most exciting thing about this to me personally is how &lt;a href=&#34;https://apple.com&#34; data-hyper-mention&gt;@apple.com&lt;/a&gt; itself might respond to these changes by &lt;em&gt;actually competing&lt;/em&gt; for developers&#39; business in an area where it hasn&#39;t had to in the past.&lt;/p&gt;&#xA;&lt;p&gt;It&#39;s gonna be a fun &lt;a href=&#34;/tags/wwdc/&#34; data-hyper-mention&gt;#WWDC&lt;/a&gt; &amp;amp; summer! 🙌🏽&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>A Janky Experience</title>
		<id>https://calebhailey.com/posts/a-janky-experience</id>
		<link rel="alternate" href="https://calebhailey.com/posts/a-janky-experience" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/a-janky-experience" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/a-janky-experience" type="text/html"></link>
		<published>2025-04-22T23:30:08Z</published>
		<updated>2025-04-22T23:30:08Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;While asking &lt;a href=&#34;https://chatgpt.com&#34; data-hyper-mention&gt;@chatgpt.com&lt;/a&gt; to help me debug a SwiftUI issue, it offered a solution and then said &amp;quot;but that results in a janky experience&amp;quot;!&lt;/p&gt;&#xA;&lt;p&gt;The AI has become self-aware! 😅&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;While asking &lt;a href=&#34;https://chatgpt.com&#34; data-hyper-mention&gt;@chatgpt.com&lt;/a&gt; to help me debug a SwiftUI issue, it offered a solution and then said &amp;quot;but that results in a janky experience&amp;quot;!&lt;/p&gt;&#xA;&lt;p&gt;The AI has become self-aware! 😅&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1745351056000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1745351056000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1745351056000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1745351056000" type="text/html"></link>
		<published>2025-04-22T19:44:16Z</published>
		<updated>2025-04-22T19:44:16Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Looks like the &lt;a href=&#34;https://gohugo.io&#34; data-hyper-mention&gt;@gohugo.io&lt;/a&gt; website got a refresh. 👌&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Looks like the &lt;a href=&#34;https://gohugo.io&#34; data-hyper-mention&gt;@gohugo.io&lt;/a&gt; website got a refresh. 👌&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/links/1745349481000</id>
		<link rel="alternate" href="https://calebhailey.com/links/1745349481000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/links/1745349481000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/links/1745349481000" type="text/html"></link>
		<published>2025-04-22T19:18:01Z</published>
		<updated>2025-04-22T19:18:01Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Markdown: this is the way. 🤌&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Markdown: this is the way. 🤌&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/links/1745281070000</id>
		<link rel="alternate" href="https://calebhailey.com/links/1745281070000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/links/1745281070000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/links/1745281070000" type="text/html"></link>
		<published>2025-04-22T00:17:50Z</published>
		<updated>2025-04-22T00:17:50Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;The web never rests. I love seeing stuff like this from &lt;a href=&#34;https://webkit.org&#34; data-hyper-mention&gt;@webkit.org&lt;/a&gt; in the roadmap! &lt;a href=&#34;/tags/html/&#34; data-hyper-mention&gt;#HTML&lt;/a&gt;&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;The web never rests. I love seeing stuff like this from &lt;a href=&#34;https://webkit.org&#34; data-hyper-mention&gt;@webkit.org&lt;/a&gt; in the roadmap! &lt;a href=&#34;/tags/html/&#34; data-hyper-mention&gt;#HTML&lt;/a&gt;&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1743796578000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1743796578000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1743796578000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1743796578000" type="text/html"></link>
		<published>2025-04-04T19:56:18Z</published>
		<updated>2025-04-04T19:56:18Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Just got a Freshboi 💈&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Just got a Freshboi 💈&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1743788523000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1743788523000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1743788523000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1743788523000" type="text/html"></link>
		<published>2025-04-04T17:42:03Z</published>
		<updated>2025-04-04T17:42:03Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Setting up my HyperTexting… 🤌&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Setting up my HyperTexting… 🤌&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1743637686000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1743637686000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1743637686000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1743637686000" type="text/html"></link>
		<published>2025-04-02T23:48:06Z</published>
		<updated>2025-04-02T23:48:06Z</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;is experimenting… 👨🏽‍🔬&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;is experimenting… 👨🏽‍🔬&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>New page</title>
		<id>https://calebhailey.com/posts/1743053292166</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1743053292166" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1743053292166" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1743053292166" type="text/html"></link>
		<published>2025-03-26T22:28:12-07:00</published>
		<updated>2025-03-26T22:28:12-07:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;It&#39;s happening!! 😱&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;It&#39;s happening!! 😱&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>New page</title>
		<id>https://calebhailey.com/posts/1743051854058</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1743051854058" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1743051854058" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1743051854058" type="text/html"></link>
		<published>2025-03-26T22:04:14-07:00</published>
		<updated>2025-03-26T22:04:14-07:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Whoa! 🤯&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Whoa! 🤯&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>New page</title>
		<id>https://calebhailey.com/posts/1743051775653</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1743051775653" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1743051775653" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1743051775653" type="text/html"></link>
		<published>2025-03-26T22:02:55-07:00</published>
		<updated>2025-03-26T22:02:55-07:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Test post from a new tool I&#39;ve been working on. I hope this works!&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Test post from a new tool I&#39;ve been working on. I hope this works!&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>customElements.apply()</title>
		<id>https://calebhailey.com/posts/customelements-apply</id>
		<link rel="alternate" href="https://calebhailey.com/posts/customelements-apply" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/customelements-apply" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/customelements-apply" type="text/html"></link>
		<published>2025-02-12T11:00:00-08:00</published>
		<updated>2025-02-12T11:00:00-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;h2 id=&#34;customelementsapply&#34;&gt;&lt;code&gt;customElements.apply()&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;A (naive?) approach to workaround &lt;code&gt;customElements.define()&lt;/code&gt; &amp;quot;same tag name&amp;quot; errors.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Web components have completely changed the way I write vanilla JavaScript.&#xA;It turns out classes are quite useful for encapsulation (who knew?)!&#xA;Complementary approaches like &lt;a href=&#34;https://adactio.com/journal/20618&#34;&gt;HTML web components&lt;/a&gt; (and &lt;a href=&#34;https://hawkticehurst.com/2024/11/css-web-components-for-marketing-sites/&#34;&gt;CSS web components&lt;/a&gt;) have &lt;em&gt;reduced&lt;/em&gt; the amount of JavaScript I&#39;m writing by about 95%.&#xA;These ideas from &lt;a href=&#34;https://adactio.com&#34; data-hyper-mention&gt;@adactio.com&lt;/a&gt; and &lt;a href=&#34;https://hawkticehurst.com&#34; data-hyper-mention&gt;@hawkticehurst.com&lt;/a&gt; together with a steady stream of web component content from &lt;a href=&#34;https://gomakethings.com&#34; data-hyper-mention&gt;@gomakethings.com&lt;/a&gt; have revived my interest in modern web development.&lt;/p&gt;&#xA;&lt;p&gt;But recently I started running into a little speed bump.&#xA;I&#39;ve been exploring HTML templating workflows that enable me to compose sections and entire pages from a collection of layout &amp;quot;partials&amp;quot; (ala &lt;a href=&#34;https://en.wikipedia.org/wiki/Server_Side_Includes&#34;&gt;server side includes&lt;/a&gt;).&#xA;This sometimes causes multiple &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags to be added for a given web component, resulting in redundant calls to &lt;code&gt;customElements.define()&lt;/code&gt; and a &lt;em&gt;&amp;quot;cannot define multiple custom elements with the same tag name&amp;quot;&lt;/em&gt; error.&lt;/p&gt;&#xA;&lt;alert-quote ht-element danger&gt;&#xA;&lt;p&gt;&lt;strong&gt;NotSupportedError:&lt;/strong&gt; Cannot define multiple custom elements with the same tag name.&lt;/p&gt;&#xA;&lt;/alert-quote&gt;&#xA;&lt;p&gt;My initial reaction to this was to move all &lt;code&gt;&amp;lt;script src&amp;gt;&lt;/code&gt; tags into the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, but this inevitably resulted in failing to load a component&#39;s JavaScript on certain pages (dependency management fail).&#xA;Then I read &lt;a href=&#34;https://jakelazaroff.com&#34; data-hyper-mention&gt;@jakelazaroff.com&lt;/a&gt;&#39;s excellent &lt;a href=&#34;https://til.jakelazaroff.com/html/define-a-custom-element/&#34;&gt;Define a custom element&lt;/a&gt; blog post and it opened my eyes to the many different approaches to managing custom elements.&#xA;But I also felt like my challenge might have been slightly different than the problem Jake was solving.&#xA;So I tried something different that has been working really well for me.&lt;/p&gt;&#xA;&lt;p&gt;It started with reviewing the &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry&#34;&gt;&lt;code&gt;CustomElementsRegistry&lt;/code&gt;&lt;/a&gt; reference documentation and discovering that &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/get&#34;&gt;&lt;code&gt;get()&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/getName&#34;&gt;&lt;code&gt;getName()&lt;/code&gt;&lt;/a&gt; methods already existed.&#xA;All that was needed was an idempotent method for registering custom elements.&#xA;It turns out this was trivial to implement.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;CustomElementRegistry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;prototype&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;apply&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&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;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!!&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;constructor&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;toString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;substring&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&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;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;class&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// guard&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// lookup by tag name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// lookup by component class&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;define&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;catch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&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;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;debug&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`component &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt; already registered as &amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;&amp;gt;`&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;ln&#34;&gt;7&lt;/span&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;ln&#34;&gt;8&lt;/span&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;/code&gt;&lt;/pre&gt;&lt;p&gt;This is already working so well for me that it&#39;s just about the only JavaScript I keep in &lt;code&gt;main.js&lt;/code&gt; for new projects.&#xA;I&#39;m replacing calls to &lt;code&gt;customElements.define&lt;/code&gt; with &lt;code&gt;customElements.apply&lt;/code&gt; in all of my web component JavaScript.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;customElements&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;apply&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;my-element&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;MyElement&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;extends&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;HTMLElement&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;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// this is where the magic happens 🪄&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&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;&lt;p&gt;In doing so, I can add &lt;code&gt;&amp;lt;script src=&#39;/js/my-component.js&#39;&amp;gt;&lt;/code&gt; tags in any layout partial without worrying about &amp;quot;same tag name&amp;quot; errors.&lt;/p&gt;&#xA;&lt;p&gt;Do you find this helpful?&#xA;Or is this a horrible idea? &amp;#x1f605;&#xA;Send me an email and let me know what you think: &lt;strong&gt;hello [at] calebhailey.com&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;!-- Links --&gt;&#xA;</summary>
		<content type="html">&lt;h2 id=&#34;customelementsapply&#34;&gt;&lt;code&gt;customElements.apply()&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;A (naive?) approach to workaround &lt;code&gt;customElements.define()&lt;/code&gt; &amp;quot;same tag name&amp;quot; errors.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Web components have completely changed the way I write vanilla JavaScript.&#xA;It turns out classes are quite useful for encapsulation (who knew?)!&#xA;Complementary approaches like &lt;a href=&#34;https://adactio.com/journal/20618&#34;&gt;HTML web components&lt;/a&gt; (and &lt;a href=&#34;https://hawkticehurst.com/2024/11/css-web-components-for-marketing-sites/&#34;&gt;CSS web components&lt;/a&gt;) have &lt;em&gt;reduced&lt;/em&gt; the amount of JavaScript I&#39;m writing by about 95%.&#xA;These ideas from &lt;a href=&#34;https://adactio.com&#34; data-hyper-mention&gt;@adactio.com&lt;/a&gt; and &lt;a href=&#34;https://hawkticehurst.com&#34; data-hyper-mention&gt;@hawkticehurst.com&lt;/a&gt; together with a steady stream of web component content from &lt;a href=&#34;https://gomakethings.com&#34; data-hyper-mention&gt;@gomakethings.com&lt;/a&gt; have revived my interest in modern web development.&lt;/p&gt;&#xA;&lt;p&gt;But recently I started running into a little speed bump.&#xA;I&#39;ve been exploring HTML templating workflows that enable me to compose sections and entire pages from a collection of layout &amp;quot;partials&amp;quot; (ala &lt;a href=&#34;https://en.wikipedia.org/wiki/Server_Side_Includes&#34;&gt;server side includes&lt;/a&gt;).&#xA;This sometimes causes multiple &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags to be added for a given web component, resulting in redundant calls to &lt;code&gt;customElements.define()&lt;/code&gt; and a &lt;em&gt;&amp;quot;cannot define multiple custom elements with the same tag name&amp;quot;&lt;/em&gt; error.&lt;/p&gt;&#xA;&lt;alert-quote ht-element danger&gt;&#xA;&lt;p&gt;&lt;strong&gt;NotSupportedError:&lt;/strong&gt; Cannot define multiple custom elements with the same tag name.&lt;/p&gt;&#xA;&lt;/alert-quote&gt;&#xA;&lt;p&gt;My initial reaction to this was to move all &lt;code&gt;&amp;lt;script src&amp;gt;&lt;/code&gt; tags into the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, but this inevitably resulted in failing to load a component&#39;s JavaScript on certain pages (dependency management fail).&#xA;Then I read &lt;a href=&#34;https://jakelazaroff.com&#34; data-hyper-mention&gt;@jakelazaroff.com&lt;/a&gt;&#39;s excellent &lt;a href=&#34;https://til.jakelazaroff.com/html/define-a-custom-element/&#34;&gt;Define a custom element&lt;/a&gt; blog post and it opened my eyes to the many different approaches to managing custom elements.&#xA;But I also felt like my challenge might have been slightly different than the problem Jake was solving.&#xA;So I tried something different that has been working really well for me.&lt;/p&gt;&#xA;&lt;p&gt;It started with reviewing the &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry&#34;&gt;&lt;code&gt;CustomElementsRegistry&lt;/code&gt;&lt;/a&gt; reference documentation and discovering that &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/get&#34;&gt;&lt;code&gt;get()&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/getName&#34;&gt;&lt;code&gt;getName()&lt;/code&gt;&lt;/a&gt; methods already existed.&#xA;All that was needed was an idempotent method for registering custom elements.&#xA;It turns out this was trivial to implement.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;CustomElementRegistry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;prototype&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;apply&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&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;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!!&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;constructor&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;toString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;substring&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&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;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;class&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// guard&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// lookup by tag name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// lookup by component class&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;define&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;catch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&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;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;debug&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`component &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt; already registered as &amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;&amp;gt;`&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;ln&#34;&gt;7&lt;/span&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;ln&#34;&gt;8&lt;/span&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;/code&gt;&lt;/pre&gt;&lt;p&gt;This is already working so well for me that it&#39;s just about the only JavaScript I keep in &lt;code&gt;main.js&lt;/code&gt; for new projects.&#xA;I&#39;m replacing calls to &lt;code&gt;customElements.define&lt;/code&gt; with &lt;code&gt;customElements.apply&lt;/code&gt; in all of my web component JavaScript.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;customElements&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;apply&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;my-element&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;MyElement&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;extends&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;HTMLElement&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;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// this is where the magic happens 🪄&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&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;&lt;p&gt;In doing so, I can add &lt;code&gt;&amp;lt;script src=&#39;/js/my-component.js&#39;&amp;gt;&lt;/code&gt; tags in any layout partial without worrying about &amp;quot;same tag name&amp;quot; errors.&lt;/p&gt;&#xA;&lt;p&gt;Do you find this helpful?&#xA;Or is this a horrible idea? &amp;#x1f605;&#xA;Send me an email and let me know what you think: &lt;strong&gt;hello [at] calebhailey.com&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;!-- Links --&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/the-only-intuitive-interface</id>
		<link rel="alternate" href="https://calebhailey.com/posts/the-only-intuitive-interface" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/the-only-intuitive-interface" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/the-only-intuitive-interface" type="text/html"></link>
		<published>2025-01-24T09:05:27-08:00</published>
		<updated>2025-01-24T09:05:27-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>iA</name>
			<uri>https://ia.net/</uri>
			<hypergraph:username>@ia.net</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/img/ia.net/apple-touch-icon.png</hypergraph:favicon>
		</contributor>
		<summary type="html">&lt;p&gt;This post by &lt;a href=&#34;https://ia.net&#34; data-hyper-mention&gt;@ia.net&lt;/a&gt; reminds me of a quote I used to have permanently written on the top of the whiteboard in my office:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The only intuitive interface is the nipple.&#xA;Everything else is learned.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;— Bruce &amp;quot;Tog&amp;quot; Tognazzini&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;!-- https://asktog.com/atc/about-bruce-tognazzini/ --&gt;&#xA;&lt;!-- https://en.wikipedia.org/wiki/Bruce_Tognazzini --&gt;&#xA;&lt;p&gt;My favorite quote from the interview is:&lt;/p&gt;&#xA;&lt;pull-quote ht-element&gt;&#xA;&lt;p&gt;Design requires a willingness to make a fool of yourself by asking outrageous and offensive questions and to be amazed at things that seem perfectly normal to other people.&lt;/p&gt;&#xA;&lt;/pull-quote&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;This post by &lt;a href=&#34;https://ia.net&#34; data-hyper-mention&gt;@ia.net&lt;/a&gt; reminds me of a quote I used to have permanently written on the top of the whiteboard in my office:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The only intuitive interface is the nipple.&#xA;Everything else is learned.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;— Bruce &amp;quot;Tog&amp;quot; Tognazzini&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;!-- https://asktog.com/atc/about-bruce-tognazzini/ --&gt;&#xA;&lt;!-- https://en.wikipedia.org/wiki/Bruce_Tognazzini --&gt;&#xA;&lt;p&gt;My favorite quote from the interview is:&lt;/p&gt;&#xA;&lt;pull-quote ht-element&gt;&#xA;&lt;p&gt;Design requires a willingness to make a fool of yourself by asking outrageous and offensive questions and to be amazed at things that seem perfectly normal to other people.&lt;/p&gt;&#xA;&lt;/pull-quote&gt;&#xA;</content>
	</entry>
	<entry>
		<title>&#39;Wherever you get your podcasts&#39; is a radical statement.</title>
		<id>https://calebhailey.com/posts/1737586048096</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1737586048096" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1737586048096" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1737586048096" type="text/html"></link>
		<published>2025-01-22T14:47:28-08:00</published>
		<updated>2025-01-22T14:47:28-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>Anil Dash</name>
			<uri>https://www.anildash.com/</uri>
			<hypergraph:username>@anildash.com</hypergraph:username>
			<hypergraph:favicon>https://cdn.glitch.global/d45aff89-36ba-46db-8c7c-3da7c8a93931/microphone-pandelache.jpg?v=1706588470713</hypergraph:favicon>
		</contributor>
		<summary type="html">&lt;p&gt;Speaking of &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt;, I love this piece by &lt;a href=&#34;https://anildash.com&#34; data-hyper-mention&gt;@anildash.com&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve always wondered if one of the biggest differences &lt;em&gt;in adoption&lt;/em&gt; between podcasts and text-based RSS feeds is that &amp;quot;podcast&amp;quot; has a catchy ring to it, and &amp;quot;really simple sindication&amp;quot; does not.&#xA;Neither does &lt;a href=&#34;https://en.wikipedia.org/wiki/RSS&#34;&gt;&amp;quot;RDF site summary&amp;quot;&lt;/a&gt;.&#xA;It makes me further wonder if &lt;a href=&#34;https://textcasting.org&#34; data-hyper-mention&gt;@textcasting.org&lt;/a&gt; (by &lt;a href=&#34;https://scripting.com&#34; data-hyper-mention&gt;@scripting.com&lt;/a&gt;) is more important as (re-)branding for text-based RSS feeds than it is as an actual new standard.&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Speaking of &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt;, I love this piece by &lt;a href=&#34;https://anildash.com&#34; data-hyper-mention&gt;@anildash.com&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve always wondered if one of the biggest differences &lt;em&gt;in adoption&lt;/em&gt; between podcasts and text-based RSS feeds is that &amp;quot;podcast&amp;quot; has a catchy ring to it, and &amp;quot;really simple sindication&amp;quot; does not.&#xA;Neither does &lt;a href=&#34;https://en.wikipedia.org/wiki/RSS&#34;&gt;&amp;quot;RDF site summary&amp;quot;&lt;/a&gt;.&#xA;It makes me further wonder if &lt;a href=&#34;https://textcasting.org&#34; data-hyper-mention&gt;@textcasting.org&lt;/a&gt; (by &lt;a href=&#34;https://scripting.com&#34; data-hyper-mention&gt;@scripting.com&lt;/a&gt;) is more important as (re-)branding for text-based RSS feeds than it is as an actual new standard.&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1737483314095</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1737483314095" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1737483314095" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1737483314095" type="text/html"></link>
		<published>2025-01-21T10:15:14-08:00</published>
		<updated>2025-01-21T10:15:14-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>About Feeds</name>
			<uri>https://aboutfeeds.com/</uri>
			<hypergraph:username>@aboutfeeds.com</hypergraph:username>
			<hypergraph:favicon>https://aboutfeeds.com/favicon.ico</hypergraph:favicon>
		</contributor>
		<summary type="html">&lt;p&gt;I&#39;ve been looking for good resources to introduce people to &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt; and this looks like a great one by &lt;a href=&#34;https://interconnected.org&#34; data-hyper-mention&gt;@interconnected.org&lt;/a&gt;!&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;I&#39;ve been looking for good resources to introduce people to &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt; and this looks like a great one by &lt;a href=&#34;https://interconnected.org&#34; data-hyper-mention&gt;@interconnected.org&lt;/a&gt;!&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>How To Market A Game (@howtomarketagame.com)</title>
		<id>https://calebhailey.com/posts/1737483277370</id>
		<link rel="alternate" href="https://howtomarketagame.com/2021/11/01/dont-build-your-castle-in-other-peoples-kingdoms/" type="text/html"></link>
		<link rel="via" href="https://howtomarketagame.com/2021/11/01/dont-build-your-castle-in-other-peoples-kingdoms/" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1737483277370" type="text/html"></link>
		<published>2025-01-21T10:14:37-08:00</published>
		<updated>2025-01-21T10:14:37-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>How To Market A Game</name>
			<uri>https://howtomarketagame.com/</uri>
			<hypergraph:username>@howtomarketagame.com</hypergraph:username>
			<hypergraph:favicon>https://howtomarketagame.com/wp-content/uploads/2020/01/cropped-small_logo512x512-1-180x180.png</hypergraph:favicon>
		</contributor>
		<summary type="html">Tuesday, January 21, 2025</summary>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1736910338434</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1736910338434" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1736910338434" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1736910338434" type="text/html"></link>
		<published>2025-01-14T19:05:38-08:00</published>
		<updated>2025-01-14T19:05:38-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>Steph Ango</name>
			<uri>https://stephango.com/</uri>
			<hypergraph:username>@stephango.com</hypergraph:username>
			<hypergraph:favicon>https://stephango.com/apple-touch-icon.png</hypergraph:favicon>
		</contributor>
		<summary type="html">&lt;p&gt;I&#39;ve thought about this &lt;a href=&#34;https://stephango.com&#34; data-hyper-mention&gt;@stephango.com&lt;/a&gt; blog post at least once per week for the last ~18 months.&lt;/p&gt;&#xA;&lt;p&gt;Just added this to my &lt;a href=&#34;/inspired-by&#34;&gt;inspired by&lt;/a&gt; hall of fame.&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;I&#39;ve thought about this &lt;a href=&#34;https://stephango.com&#34; data-hyper-mention&gt;@stephango.com&lt;/a&gt; blog post at least once per week for the last ~18 months.&lt;/p&gt;&#xA;&lt;p&gt;Just added this to my &lt;a href=&#34;/inspired-by&#34;&gt;inspired by&lt;/a&gt; hall of fame.&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Daring Fireball (@daringfireball.net)</title>
		<id>https://calebhailey.com/posts/1736404743546</id>
		<link rel="alternate" href="https://daringfireball.net/linked/2025/01/07/beta-is-not-an-excuse-archive" type="text/html"></link>
		<link rel="via" href="https://daringfireball.net/linked/2025/01/07/beta-is-not-an-excuse-archive" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1736404743546" type="text/html"></link>
		<published>2025-01-08T22:39:03-08:00</published>
		<updated>2025-01-08T22:39:03-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>Daring Fireball</name>
			<uri>https://daringfireball.net/</uri>
			<hypergraph:username>@daringfireball.net</hypergraph:username>
			<hypergraph:favicon>https://daringfireball.net/graphics/apple-touch-icon.png</hypergraph:favicon>
		</contributor>
		<summary type="html">Wednesday, January 8, 2025</summary>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1736282628377</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1736282628377" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1736282628377" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1736282628377" type="text/html"></link>
		<published>2025-01-07T12:43:48-08:00</published>
		<updated>2025-01-07T12:43:48-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;I still haven&#39;t used &lt;a href=&#34;https://htmx.org&#34; data-hyper-mention&gt;@htmx.org&lt;/a&gt;, but I&#39;ve read the &lt;a href=&#34;/tags/hypermedia/&#34; data-hyper-mention&gt;#HyperMedia&lt;/a&gt; book and I&#39;m a big fan of their ideas and where the project is headed overall. 🚀&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/html/&#34; data-hyper-mention&gt;#html&lt;/a&gt; &lt;a href=&#34;/tags/htmx/&#34; data-hyper-mention&gt;#htmx&lt;/a&gt; &lt;a href=&#34;/tags/javascript/&#34; data-hyper-mention&gt;#javascript&lt;/a&gt;&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;I still haven&#39;t used &lt;a href=&#34;https://htmx.org&#34; data-hyper-mention&gt;@htmx.org&lt;/a&gt;, but I&#39;ve read the &lt;a href=&#34;/tags/hypermedia/&#34; data-hyper-mention&gt;#HyperMedia&lt;/a&gt; book and I&#39;m a big fan of their ideas and where the project is headed overall. 🚀&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/html/&#34; data-hyper-mention&gt;#html&lt;/a&gt; &lt;a href=&#34;/tags/htmx/&#34; data-hyper-mention&gt;#htmx&lt;/a&gt; &lt;a href=&#34;/tags/javascript/&#34; data-hyper-mention&gt;#javascript&lt;/a&gt;&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1735957697150</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1735957697150" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1735957697150" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1735957697150" type="text/html"></link>
		<published>2025-01-03T18:28:17-08:00</published>
		<updated>2025-01-03T18:28:17-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">This is hands-down my favorite craft cocktail website. 🍹&#xA;</summary>
		<content type="html">This is hands-down my favorite craft cocktail website. 🍹&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1735944025063</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1735944025063" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1735944025063" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1735944025063" type="text/html"></link>
		<published>2025-01-03T14:40:25-08:00</published>
		<updated>2025-01-03T14:40:25-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;I&#39;m loving the new &lt;a href=&#34;https://vw.com&#34; data-hyper-mention&gt;@vw.com&lt;/a&gt; ID Buzz.&lt;/p&gt;&#xA;&lt;p&gt;And my new scrolling image gallery. 😎&lt;/p&gt;&#xA;&lt;p&gt;👈🏽 Swipe 👉🏽&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;I&#39;m loving the new &lt;a href=&#34;https://vw.com&#34; data-hyper-mention&gt;@vw.com&lt;/a&gt; ID Buzz.&lt;/p&gt;&#xA;&lt;p&gt;And my new scrolling image gallery. 😎&lt;/p&gt;&#xA;&lt;p&gt;👈🏽 Swipe 👉🏽&lt;/p&gt;&#xA;&lt;!--more--&gt;&#xA;&lt;p&gt;Pretty cool, right?!&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/links/1735863820561</id>
		<link rel="alternate" href="https://calebhailey.com/links/1735863820561" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/links/1735863820561" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/links/1735863820561" type="text/html"></link>
		<published>2025-01-02T16:23:40-08:00</published>
		<updated>2025-01-02T16:23:40-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">More like fast trashion, amirite? :sweat_smile:&#xA;</summary>
		<content type="html">More like fast trashion, amirite? :sweat_smile:&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1734564951607</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1734564951607" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1734564951607" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1734564951607" type="text/html"></link>
		<published>2024-12-18T15:35:51-08:00</published>
		<updated>2024-12-18T15:35:51-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;h2 id=&#34;keep-it-on-the-markdown-low&#34;&gt;Keep it on the markdown-low&lt;/h2&gt;&#xA;&lt;p&gt;First post with my custom &lt;a href=&#34;/tags/markdown/&#34; data-hyper-mention&gt;#markdown&lt;/a&gt; parser.&lt;/p&gt;&#xA;&lt;p&gt;Here&#39;s a little sample code block to show off the &lt;code&gt;&amp;lt;code&amp;gt;&lt;/code&gt; syntax highlighting.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&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;html&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;lang&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;en-US&amp;#39;&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;ln&#34;&gt; 3&lt;/span&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;head&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;ln&#34;&gt; 4&lt;/span&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;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/head.html&amp;#39;&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;ln&#34;&gt; 5&lt;/span&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;itemprop&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;template.name&amp;#39;&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;#39;default&amp;#39;&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;ln&#34;&gt; 6&lt;/span&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;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;c&#34;&gt;&amp;lt;!-- Web Components --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&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;script&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;/js/components/relative-time.js&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;script&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;ln&#34;&gt; 9&lt;/span&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;head&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;ln&#34;&gt;10&lt;/span&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;body&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;ln&#34;&gt;11&lt;/span&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;nav&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/nav.html&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;nav&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;ln&#34;&gt;12&lt;/span&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;content-whitespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;content-whitespace&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;ln&#34;&gt;13&lt;/span&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;section&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;post&amp;#39;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;data-color-scheme&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;light&amp;#39;&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;ln&#34;&gt;14&lt;/span&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;article&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/post-article&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;article&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;ln&#34;&gt;15&lt;/span&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;section&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;ln&#34;&gt;16&lt;/span&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;content-whitespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;content-whitespace&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;ln&#34;&gt;17&lt;/span&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;footer&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/footer.html&amp;#39;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;data-color-scheme&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;dark&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;footer&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;ln&#34;&gt;18&lt;/span&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;section&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/tail.html&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;section&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;ln&#34;&gt;19&lt;/span&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;body&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;ln&#34;&gt;20&lt;/span&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;html&lt;/span&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;p&gt;This is all table stakes stuff, but I&#39;m pumped to get it all wired up!&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;h2 id=&#34;keep-it-on-the-markdown-low&#34;&gt;Keep it on the markdown-low&lt;/h2&gt;&#xA;&lt;p&gt;First post with my custom &lt;a href=&#34;/tags/markdown/&#34; data-hyper-mention&gt;#markdown&lt;/a&gt; parser.&lt;/p&gt;&#xA;&lt;p&gt;Here&#39;s a little sample code block to show off the &lt;code&gt;&amp;lt;code&amp;gt;&lt;/code&gt; syntax highlighting.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&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;html&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;lang&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;en-US&amp;#39;&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;ln&#34;&gt; 3&lt;/span&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;head&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;ln&#34;&gt; 4&lt;/span&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;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/head.html&amp;#39;&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;ln&#34;&gt; 5&lt;/span&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;itemprop&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;template.name&amp;#39;&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;#39;default&amp;#39;&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;ln&#34;&gt; 6&lt;/span&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;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;c&#34;&gt;&amp;lt;!-- Web Components --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&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;script&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;/js/components/relative-time.js&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;script&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;ln&#34;&gt; 9&lt;/span&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;head&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;ln&#34;&gt;10&lt;/span&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;body&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;ln&#34;&gt;11&lt;/span&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;nav&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/nav.html&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;nav&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;ln&#34;&gt;12&lt;/span&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;content-whitespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;content-whitespace&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;ln&#34;&gt;13&lt;/span&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;section&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;post&amp;#39;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;data-color-scheme&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;light&amp;#39;&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;ln&#34;&gt;14&lt;/span&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;article&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/post-article&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;article&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;ln&#34;&gt;15&lt;/span&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;section&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;ln&#34;&gt;16&lt;/span&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;content-whitespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;content-whitespace&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;ln&#34;&gt;17&lt;/span&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;footer&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/footer.html&amp;#39;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;data-color-scheme&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;dark&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;footer&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;ln&#34;&gt;18&lt;/span&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;section&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ht-include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;partials/tail.html&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;section&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;ln&#34;&gt;19&lt;/span&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;body&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;ln&#34;&gt;20&lt;/span&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;html&lt;/span&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;p&gt;This is all table stakes stuff, but I&#39;m pumped to get it all wired up!&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1710964320000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1710964320000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1710964320000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1710964320000" type="text/html"></link>
		<published>2024-03-20T12:52:00-07:00</published>
		<updated>2024-03-20T12:52:00-07:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Just started reading &amp;quot;Filterworld&amp;quot;, by &lt;a href=&#34;https://kylechayka.com&#34; data-hyper-mention&gt;@kylechayka.com&lt;/a&gt;, and it starts with a picture from &lt;a href=&#34;https://en.wikipedia.org/wiki/Mechanical_Turk&#34;&gt;one of my favorite Wikipedia pages&lt;/a&gt; of all time.&#xA;I think I&#39;m gonna like this book!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/nowreading/&#34; data-hyper-mention&gt;#NowReading&lt;/a&gt;&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Just started reading &amp;quot;Filterworld&amp;quot;, by &lt;a href=&#34;https://kylechayka.com&#34; data-hyper-mention&gt;@kylechayka.com&lt;/a&gt;, and it starts with a picture from &lt;a href=&#34;https://en.wikipedia.org/wiki/Mechanical_Turk&#34;&gt;one of my favorite Wikipedia pages&lt;/a&gt; of all time.&#xA;I think I&#39;m gonna like this book!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/nowreading/&#34; data-hyper-mention&gt;#NowReading&lt;/a&gt;&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Caleb Hailey (@calebhailey.com)</title>
		<id>https://calebhailey.com/posts/1710625680000</id>
		<link rel="alternate" href="https://calebhailey.com/posts/1710625680000" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/1710625680000" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1710625680000" type="text/html"></link>
		<published>2024-03-16T13:48:00-08:00</published>
		<updated>2024-03-16T13:48:00-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;TIL about the &lt;a href=&#34;/tags/html/&#34; data-hyper-mention&gt;#HTML&lt;/a&gt; &lt;code&gt;&amp;lt;base&amp;gt;&lt;/code&gt; element!&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;TIL about the &lt;a href=&#34;/tags/html/&#34; data-hyper-mention&gt;#HTML&lt;/a&gt; &lt;code&gt;&amp;lt;base&amp;gt;&lt;/code&gt; element!&lt;/p&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Herd Works (@herd.works)</title>
		<id>https://calebhailey.com/posts/1676408460000</id>
		<link rel="alternate" href="https://herd.works/blog/introducing-the-magic-highlighter/" type="text/html"></link>
		<link rel="via" href="https://herd.works/blog/introducing-the-magic-highlighter/" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/1676408460000" type="text/html"></link>
		<published>2023-02-14T13:01:00-08:00</published>
		<updated>2023-02-14T13:01:00-08:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>Herd Works</name>
			<uri>https://herd.works/</uri>
			<hypergraph:username>@herd.works</hypergraph:username>
			<hypergraph:favicon>https://herd.works/apple-touch-icon-57x57.png?v=1</hypergraph:favicon>
		</contributor>
		<summary type="html">Tuesday, February 14, 2023</summary>
	</entry>
	<entry>
		<title>The Best Chef in the World</title>
		<id>https://calebhailey.com/posts/sally-schmidt</id>
		<link rel="alternate" href="https://calebhailey.com/posts/sally-schmidt" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/sally-schmidt" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/sally-schmidt" type="text/html"></link>
		<published>2022-10-08T14:30:00-07:00</published>
		<updated>2022-10-08T14:30:00-07:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<contributor>
			<name>YouTube</name>
			<uri>https://www.youtube.com/</uri>
			<hypergraph:username>@youtube.com</hypergraph:username>
			<hypergraph:favicon>https://www.youtube.com/s/desktop/648a021a/img/logos/favicon_144x144.png</hypergraph:favicon>
		</contributor>
		<summary type="html">&lt;blockquote&gt;&#xA;&lt;p&gt;Originally posted on &lt;a href=&#34;https://sheesh.blog&#34; data-hyper-mention&gt;@sheesh.blog&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;As soon as you have 20 minutes to spare, I encourage you to go watch this short film about &lt;a href=&#34;https://www.nytimes.com/2022/09/13/opinion/sally-schmitt-french-laundry.html&#34;&gt;Sally Schmidt&lt;/a&gt;, produced by Oscar® award winning documentary filmmaker &lt;a href=&#34;https://twitter.com/bgproudfoot&#34;&gt;Ben Proudfoot&lt;/a&gt;, for the &lt;a href=&#34;https://nytimes.com&#34; data-hyper-mention&gt;@nytimes.com&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Speaking of &lt;a href=&#34;https://sheesh.blog/posts/popup-restaurant-theory&#34;&gt;restaurants&lt;/a&gt;, Sally started a little establishment you might have heard of called &lt;a href=&#34;https://www.thomaskeller.com/early-history&#34;&gt;The French Laundry&lt;/a&gt;. &amp;#x1f90c;&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;blockquote&gt;&#xA;&lt;p&gt;Originally posted on &lt;a href=&#34;https://sheesh.blog&#34; data-hyper-mention&gt;@sheesh.blog&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;As soon as you have 20 minutes to spare, I encourage you to go watch this short film about &lt;a href=&#34;https://www.nytimes.com/2022/09/13/opinion/sally-schmitt-french-laundry.html&#34;&gt;Sally Schmidt&lt;/a&gt;, produced by Oscar® award winning documentary filmmaker &lt;a href=&#34;https://twitter.com/bgproudfoot&#34;&gt;Ben Proudfoot&lt;/a&gt;, for the &lt;a href=&#34;https://nytimes.com&#34; data-hyper-mention&gt;@nytimes.com&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Speaking of &lt;a href=&#34;https://sheesh.blog/posts/popup-restaurant-theory&#34;&gt;restaurants&lt;/a&gt;, Sally started a little establishment you might have heard of called &lt;a href=&#34;https://www.thomaskeller.com/early-history&#34;&gt;The French Laundry&lt;/a&gt;. &amp;#x1f90c;&lt;/p&gt;&#xA;&lt;!--more--&gt;&#xA;&lt;p&gt;I particularly like this comment in the accompanying article:&lt;/p&gt;&#xA;&lt;pull-quote ht-element cite=&#39;Ben Proudfoot&#39; href=&#39;https://www.nytimes.com/2022/09/13/opinion/sally-schmitt-french-laundry.html&#39;&gt;&#xA;&lt;p&gt;Talking to Ms. Schmitt that morning, I learned she held a different kind of wisdom: that success may have other definitions.&lt;/p&gt;&#xA;&lt;/pull-quote&gt;&#xA;&lt;p&gt;Now that&#39;s what I call &lt;a href=&#34;https://sheesh.blog/posts/life-work-balance&#34;&gt;life-work &lt;em&gt;balance&lt;/em&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;!-- Footnotes --&gt;&#xA;&lt;!-- Links --&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr /&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.nytimes.com/column/op-docs&#34;&gt;Op-Docs&lt;/a&gt; is a New York Times production of &amp;quot;Oscar-winning series of short documentaries by independent filmmakers&amp;quot;.&#xA;This might be one of my new favorite places on the internet.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Long time listener, first time caller</title>
		<id>https://calebhailey.com/posts/long-time-listener</id>
		<link rel="alternate" href="https://calebhailey.com/posts/long-time-listener" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/long-time-listener" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/long-time-listener" type="text/html"></link>
		<published>2022-04-24T20:26:18-07:00</published>
		<updated>2022-04-24T20:26:18-07:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;blockquote&gt;&#xA;&lt;p&gt;Originally posted on &lt;a href=&#34;https://sheesh.blog&#34; data-hyper-mention&gt;@sheesh.blog&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;long-time-listener-first-time-caller&#34;&gt;Long time listener, first time caller&lt;/h2&gt;&#xA;&lt;p&gt;I can&#39;t remember the last time I read a book from front to back&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, but I am a voracious reader.&#xA;The thing is, I prefer to read &amp;quot;the internet&amp;quot; instead of books.&lt;/p&gt;&#xA;&lt;p&gt;At some point early on in my internet journey I discovered &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt; and I immediately fell in love&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&#xA;My RSS feed became like my own personal newspaper, where I was the curator.&#xA;I could add and remove &lt;del&gt;columnists&lt;/del&gt; blog feeds as my &lt;a href=&#34;/about#interest-graph&#34;&gt;interest graph&lt;/a&gt; would change over time.&#xA;I was one of the many&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; who decried the death of Google Reader.&#xA;RSS lives on, but it&#39;s not as ubiquitious as it once was.&lt;/p&gt;&#xA;&lt;p&gt;For some years my feed shifted from RSS to social media — almost exclusively Twitter, and mostly via Twitter Lists — but a few trends in recent years have brought me back to RSS:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;RSS services are great again&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;&#xA;&lt;li&gt;RSS apps are &lt;a href=&#34;https://www.macstories.net/reviews/netnewswire-review-the-mac-rss-client-rebooted-with-a-solid-foundation-for-the-future/&#34;&gt;making&lt;/a&gt; &lt;a href=&#34;https://thesweetsetup.com/netnewswire-5-0-relaunches-as-an-open-source-rss-reader-for-the-mac/&#34;&gt;a&lt;/a&gt; &lt;a href=&#34;https://daringfireball.net/linked/2019/08/29/netnewswire-5&#34;&gt;comeback&lt;/a&gt;!&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;Doomscrolling&amp;quot; became a thing™️, prompting a renewed need to curate my feed.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;With my newfound replacement for Google Reader&#39;s service (&lt;a href=&#34;https://feedbin.com&#34;&gt;Feedbin.com&lt;/a&gt;), and my favorite old RSS reader app making a glorious (and &lt;a href=&#34;https://github.com/Ranchero-Software/NetNewsWire&#34;&gt;open source&lt;/a&gt;!!) comeback, I decided to start the curation process from scratch.&#xA;I created folders for &amp;quot;News&amp;quot;, &amp;quot;People&amp;quot;, &amp;quot;Portland&amp;quot; (my local happenings), &amp;quot;Products&amp;quot;, &amp;quot;Startups&amp;quot;, and &amp;quot;Tech&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;And then I started subscribing.&#xA;And I discovered that the very first feeds I added were the very same feeds I&#39;ve been reading all along.&#xA;A combination of overlapping &lt;a href=&#34;/about#interest-graph&#34;&gt;interest graphs&lt;/a&gt; (I&#39;m assuming) and writing styles have kept me reading certain blogs for over a decade now.&#xA;These are the bloggers who&#39;s writing has both intimidated me – because I hold them in high esteem – and inspired me to start this blog.&lt;/p&gt;&#xA;&lt;p&gt;I have feared that if I ever started a blog I would appear as a copy cat, a cheap imitation of these now-veterans who probably started like I am starting right now.&#xA;But I decided that instead of shying away from writing, I should lean into it.&#xA;Give credit where credit is due.&#xA;Start my blog, in my own voice (however heavily &amp;quot;inspired by&amp;quot; it may be), and acknowledge those who went before me.&lt;/p&gt;&#xA;&lt;p&gt;Starting a blog is easy.&#xA;Buy a domain ✅ write an &lt;a href=&#34;/about&#34;&gt;/about&lt;/a&gt; page ✅ write a &lt;a href=&#34;https://sheesh.blog/posts/helloworld&#34;&gt;&amp;quot;hello, world&amp;quot;&lt;/a&gt; ✅  smash the publish button. 💥&#xA;But for me, I could not have started this blog without acknowledging who this blog was &lt;a href=&#34;/inspired-by&#34;&gt;inspired by&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;✌️&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr /&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;I mean, I do remember the last book I read, but it&#39;s embarrasing. 😅&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;FUN FACT: fast forward many years later and I somehow had the privilege of working with &lt;a href=&#34;https://www.linkedin.com/in/mshobe/&#34;&gt;Matt Shobe&lt;/a&gt; – one of the co-founders of Feedburner (&lt;a href=&#34;https://techcrunch.com/2007/05/23/100-million-payday-for-feedburner-this-deal-is-confirmed/&#34;&gt;acquired by Google&lt;/a&gt; in 2007).&#xA;And by &amp;quot;working with&amp;quot; I mean he became an angel investor in my first company, and a critical advisor in our early stages.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;Or &lt;em&gt;few&lt;/em&gt;, I guess. Otherwise we would still have Google Reader?&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;In the years following the death of Google Reader (RIP), I tried a handful of apps and services that built replacements for Google Reader — from Feedly to Flipboard (powered by a carefully curated Twitter list) – but nothing stuck.&#xA;Then a few years ago I tried Feedbin, and subsequently discovered its &lt;a href=&#34;https://feedbin.com/blog/2016/02/03/subscribe-to-email-newsletters-in-feedbin/&#34;&gt;support for Newsletters&lt;/a&gt; (at a time when it seemed like everyone was starting a SubStack), and I almost forgot that Google Reader ever existed.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</summary>
		<content type="html">&lt;blockquote&gt;&#xA;&lt;p&gt;Originally posted on &lt;a href=&#34;https://sheesh.blog&#34; data-hyper-mention&gt;@sheesh.blog&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;long-time-listener-first-time-caller&#34;&gt;Long time listener, first time caller&lt;/h2&gt;&#xA;&lt;p&gt;I can&#39;t remember the last time I read a book from front to back&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, but I am a voracious reader.&#xA;The thing is, I prefer to read &amp;quot;the internet&amp;quot; instead of books.&lt;/p&gt;&#xA;&lt;p&gt;At some point early on in my internet journey I discovered &lt;a href=&#34;/tags/rss/&#34; data-hyper-mention&gt;#RSS&lt;/a&gt; and I immediately fell in love&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&#xA;My RSS feed became like my own personal newspaper, where I was the curator.&#xA;I could add and remove &lt;del&gt;columnists&lt;/del&gt; blog feeds as my &lt;a href=&#34;/about#interest-graph&#34;&gt;interest graph&lt;/a&gt; would change over time.&#xA;I was one of the many&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; who decried the death of Google Reader.&#xA;RSS lives on, but it&#39;s not as ubiquitious as it once was.&lt;/p&gt;&#xA;&lt;p&gt;For some years my feed shifted from RSS to social media — almost exclusively Twitter, and mostly via Twitter Lists — but a few trends in recent years have brought me back to RSS:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;RSS services are great again&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;&#xA;&lt;li&gt;RSS apps are &lt;a href=&#34;https://www.macstories.net/reviews/netnewswire-review-the-mac-rss-client-rebooted-with-a-solid-foundation-for-the-future/&#34;&gt;making&lt;/a&gt; &lt;a href=&#34;https://thesweetsetup.com/netnewswire-5-0-relaunches-as-an-open-source-rss-reader-for-the-mac/&#34;&gt;a&lt;/a&gt; &lt;a href=&#34;https://daringfireball.net/linked/2019/08/29/netnewswire-5&#34;&gt;comeback&lt;/a&gt;!&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;Doomscrolling&amp;quot; became a thing™️, prompting a renewed need to curate my feed.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;With my newfound replacement for Google Reader&#39;s service (&lt;a href=&#34;https://feedbin.com&#34;&gt;Feedbin.com&lt;/a&gt;), and my favorite old RSS reader app making a glorious (and &lt;a href=&#34;https://github.com/Ranchero-Software/NetNewsWire&#34;&gt;open source&lt;/a&gt;!!) comeback, I decided to start the curation process from scratch.&#xA;I created folders for &amp;quot;News&amp;quot;, &amp;quot;People&amp;quot;, &amp;quot;Portland&amp;quot; (my local happenings), &amp;quot;Products&amp;quot;, &amp;quot;Startups&amp;quot;, and &amp;quot;Tech&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;And then I started subscribing.&#xA;And I discovered that the very first feeds I added were the very same feeds I&#39;ve been reading all along.&#xA;A combination of overlapping &lt;a href=&#34;/about#interest-graph&#34;&gt;interest graphs&lt;/a&gt; (I&#39;m assuming) and writing styles have kept me reading certain blogs for over a decade now.&#xA;These are the bloggers who&#39;s writing has both intimidated me – because I hold them in high esteem – and inspired me to start this blog.&lt;/p&gt;&#xA;&lt;p&gt;I have feared that if I ever started a blog I would appear as a copy cat, a cheap imitation of these now-veterans who probably started like I am starting right now.&#xA;But I decided that instead of shying away from writing, I should lean into it.&#xA;Give credit where credit is due.&#xA;Start my blog, in my own voice (however heavily &amp;quot;inspired by&amp;quot; it may be), and acknowledge those who went before me.&lt;/p&gt;&#xA;&lt;p&gt;Starting a blog is easy.&#xA;Buy a domain ✅ write an &lt;a href=&#34;/about&#34;&gt;/about&lt;/a&gt; page ✅ write a &lt;a href=&#34;https://sheesh.blog/posts/helloworld&#34;&gt;&amp;quot;hello, world&amp;quot;&lt;/a&gt; ✅  smash the publish button. 💥&#xA;But for me, I could not have started this blog without acknowledging who this blog was &lt;a href=&#34;/inspired-by&#34;&gt;inspired by&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;✌️&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr /&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;I mean, I do remember the last book I read, but it&#39;s embarrasing. 😅&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;FUN FACT: fast forward many years later and I somehow had the privilege of working with &lt;a href=&#34;https://www.linkedin.com/in/mshobe/&#34;&gt;Matt Shobe&lt;/a&gt; – one of the co-founders of Feedburner (&lt;a href=&#34;https://techcrunch.com/2007/05/23/100-million-payday-for-feedburner-this-deal-is-confirmed/&#34;&gt;acquired by Google&lt;/a&gt; in 2007).&#xA;And by &amp;quot;working with&amp;quot; I mean he became an angel investor in my first company, and a critical advisor in our early stages.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;Or &lt;em&gt;few&lt;/em&gt;, I guess. Otherwise we would still have Google Reader?&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;In the years following the death of Google Reader (RIP), I tried a handful of apps and services that built replacements for Google Reader — from Feedly to Flipboard (powered by a carefully curated Twitter list) – but nothing stuck.&#xA;Then a few years ago I tried Feedbin, and subsequently discovered its &lt;a href=&#34;https://feedbin.com/blog/2016/02/03/subscribe-to-email-newsletters-in-feedbin/&#34;&gt;support for Newsletters&lt;/a&gt; (at a time when it seemed like everyone was starting a SubStack), and I almost forgot that Google Reader ever existed.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</content>
	</entry>
	<entry>
		<title>Hello, world</title>
		<id>https://calebhailey.com/posts/helloworld</id>
		<link rel="alternate" href="https://calebhailey.com/posts/helloworld" type="text/html"></link>
		<link rel="via" href="https://calebhailey.com/posts/helloworld" type="text/html"></link>
		<link rel="related" href="https://calebhailey.com/posts/helloworld" type="text/html"></link>
		<published>2022-04-23T18:15:55-07:00</published>
		<updated>2022-04-23T18:15:55-07:00</updated>
		<author>
			<name>Caleb Hailey</name>
			<uri>https://calebhailey.com/</uri>
			<hypergraph:username>@calebhailey.com</hypergraph:username>
			<hypergraph:favicon>https://calebhailey.com/favicon.jpeg</hypergraph:favicon>
			<email>hello@calebhailey.com</email>
		</author>
		<summary type="html">&lt;p&gt;Every new blog should start with an obligatory &lt;a href=&#34;https://en.wikipedia.org/wiki/%22Hello,_World!%22_program#History&#34;&gt;&amp;quot;hello, world&amp;quot;&lt;/a&gt; — so here I am doing just that.&#xA;My experience with blogging has generally rhymed with the experience a former co-worker of mine once shared:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;quot;I’ve started seven different blogs. Every one had one post.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;— &lt;strong&gt;Derek Newsom&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Something feels different this time, but only time will tell.&lt;/p&gt;&#xA;&lt;p&gt;✌️&lt;/p&gt;&#xA;</summary>
		<content type="html">&lt;p&gt;Every new blog should start with an obligatory &lt;a href=&#34;https://en.wikipedia.org/wiki/%22Hello,_World!%22_program#History&#34;&gt;&amp;quot;hello, world&amp;quot;&lt;/a&gt; — so here I am doing just that.&#xA;My experience with blogging has generally rhymed with the experience a former co-worker of mine once shared:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;quot;I’ve started seven different blogs. Every one had one post.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;— &lt;strong&gt;Derek Newsom&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Something feels different this time, but only time will tell.&lt;/p&gt;&#xA;&lt;p&gt;✌️&lt;/p&gt;&#xA;</content>
	</entry>
</feed>