<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Ken Ashe - Newsletter]]></title><description><![CDATA[An AI Optimist running a boutique digital marketing firm. I build with AI in public, under my real name, and I write up what I'm learning along the way.]]></description><link>https://newsletter.kenashe.ai</link><image><url>https://substackcdn.com/image/fetch/$s_!dCiC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ff0132-b5c7-4ec6-9160-00d251ad28c4_1280x1280.png</url><title>Ken Ashe - Newsletter</title><link>https://newsletter.kenashe.ai</link></image><generator>Substack</generator><lastBuildDate>Sun, 28 Jun 2026 05:44:04 GMT</lastBuildDate><atom:link href="https://newsletter.kenashe.ai/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ken Ashe]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[kenashe@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[kenashe@substack.com]]></itunes:email><itunes:name><![CDATA[Ken Ashe]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ken Ashe]]></itunes:author><googleplay:owner><![CDATA[kenashe@substack.com]]></googleplay:owner><googleplay:email><![CDATA[kenashe@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ken Ashe]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Blog That Writes Itself: A Full Teardown]]></title><description><![CDATA[No approval queue. No human in the loop. Here's how it holds together.]]></description><link>https://newsletter.kenashe.ai/p/the-blog-that-writes-itself-a-full</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/the-blog-that-writes-itself-a-full</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Tue, 23 Jun 2026 17:12:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BLES!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Lab runs itself now.</p><p>Every day, a pipeline scans the day&#8217;s AI sources, groups them into stories, throws out anything it has already covered, writes original posts with a point of view, scores each one against a quality bar, makes its own art, and publishes 8 to 10 posts. No human in the loop. It runs on a schedule and pings me on Telegram when it&#8217;s done.</p><p>I rebuilt the whole thing from scratch by directing an AI coding agent. This post is the full teardown. The architecture, the models, the calls I made, and the parts that broke.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BLES!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BLES!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!BLES!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!BLES!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!BLES!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BLES!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;CUGA's Two Dozen Examples Are the Real Agent Documentation&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="CUGA's Two Dozen Examples Are the Real Agent Documentation" title="CUGA's Two Dozen Examples Are the Real Agent Documentation" srcset="https://substackcdn.com/image/fetch/$s_!BLES!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!BLES!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!BLES!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!BLES!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b9dd2e-68f5-48f6-8445-db30e0128927_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Where it started</h2><p>The old version was an n8n workflow. It turned curated YouTube transcripts into auto-published posts. About 3 a day, all in the AI-marketing lane.</p><p>It worked. But it was narrow. One source type. One topic area. Each post leaned on a single transcript, so it could only ever be as good as that one video.</p><h2>The brief for v2</h2><p>I wanted more range and a real spine:</p><ul><li><p>Broaden the scope from AI-marketing to all of AI. Models, research, builder tools, agents, products, applied workflows, policy, culture.</p></li><li><p>Go from 3 posts a day to 10.</p></li><li><p>Pull from more sources, and more kinds of sources, not just YouTube.</p></li><li><p>Write with an actual point of view, synthesized across multiple sources, in an operator voice.</p></li><li><p>Stay autonomous. Auto-publish with spot-checks, no approval queue.</p></li></ul><p>I was open to leaving n8n behind. I did. v2 is a TypeScript pipeline that runs on a daily schedule in GitHub Actions.</p><h2>How it works now</h2><p>Each daily run moves through ten stages, end to end, with nobody watching:</p><ol><li><p><strong>Ingest.</strong> Pull the day&#8217;s items from every source.</p></li><li><p><strong>Embed.</strong> Turn each item into a vector. Basically a string of numbers that captures what the item is about.</p></li><li><p><strong>Cluster.</strong> Group items that cover the same story.</p></li><li><p><strong>Dedup.</strong> Compare each cluster against a memory of everything already written, and drop the repeats.</p></li><li><p><strong>Rank.</strong> Score the surviving stories by signal.</p></li><li><p><strong>Select tiers.</strong> Pick the 2 to 3 biggest as flagships, the next several as notes.</p></li><li><p><strong>Synthesize.</strong> Write each post from its cluster of sources.</p></li><li><p><strong>Gate.</strong> Score the draft against a quality bar. Reject what doesn&#8217;t clear it.</p></li><li><p><strong>Images.</strong> Generate a hero plus inline visuals.</p></li><li><p><strong>Publish.</strong> Commit the posts, trigger the deploy, send a Telegram digest.</p></li></ol><h2>The quiet hero is dedup</h2><p>If I had to point at one stage that makes the whole thing work, it&#8217;s step 4.</p><p>It uses a Postgres database with pgvector as a memory of everything the blog has ever covered. Plain version: every published story gets turned into that string of numbers and filed away. The next day, anything too close to something already written gets dropped before it ever costs a writing call.</p><p>That&#8217;s what stops the blog from repeating itself. A site publishing 10 posts a day will circle the same story five times in a week if nothing is watching. The memory watches. It also saves money, because a repeat dies before the expensive synthesis step ever runs.</p><h2>Images, and the part I got wrong first</h2><p>Every post gets at least two images. A hero, which doubles as the social card, and inline visuals. The writer drops a placeholder wherever a diagram or chart would help, and the image stage fills it.</p><p>The first version made every hero the same abstract, warm-toned shape. Looked fine on a single post. On the index page, every story looked identical. Just rows of the same blob.</p><p>So now there are five art directions: editorial illustration, flat vector, isometric risograph, cinematic still, and Bauhaus geometric. Each post gets one, chosen by hashing its slug. A given post always looks the same, but the feed looks varied. Each direction carries its own palette, freed from the site&#8217;s color scheme, and each image is grounded in the post&#8217;s actual subject.</p><p>One hard rule in the prompt: no text. The image model will cheerfully render any words you hand it, and it renders them badly. Ban the text up front and the problem goes away.</p><h2>The stack</h2><ul><li><p><strong>Site:</strong> Astro, Tailwind, MDX, deployed on Vercel</p></li><li><p><strong>Pipeline:</strong> TypeScript on Node, run with tsx</p></li><li><p><strong>Orchestration:</strong> GitHub Actions, daily cron, gated by a repo flag</p></li><li><p><strong>Memory and dedup:</strong> Postgres + pgvector on Supabase</p></li><li><p><strong>Flagship writing:</strong> Claude Opus 4.8</p></li><li><p><strong>Notes writing:</strong> GPT-5.5</p></li><li><p><strong>Quality gate:</strong> GPT-5.5</p></li><li><p><strong>Embeddings:</strong> text-embedding-3-small</p></li><li><p><strong>Images:</strong> gpt-image-1</p></li><li><p><strong>Digest:</strong> Telegram bot</p></li></ul><p>Sources span RSS feeds, YouTube, arXiv, GitHub releases, Hacker News, and Reddit. The point was variety of input, not one big firehose.</p><h2>What broke</h2><p>The architecture is the boring part. The interesting part is always where it broke, and there was plenty.</p><p>A couple I already mentioned count here. The identical-hero problem was a real one: the system did exactly what I asked and the result looked broken, because &#8220;make a nice hero image&#8221; and &#8220;make a feed that doesn&#8217;t look like a copy-paste&#8221; are two different jobs. And the image model rendering garbled text taught me that you don&#8217;t ask a model not to do something, you remove the option.</p><h2>What I&#8217;d tell another operator</h2><p>A messy process doesn&#8217;t get better because you added AI. It gets faster at being messy. The thing that made v2 work wasn&#8217;t a smarter writer. It was the boring infrastructure around the writer: a memory so it doesn&#8217;t repeat, and a gate so it doesn&#8217;t ship junk.</p><p>If you&#8217;re building something that&#8217;s supposed to run without you, build those two things first. The autonomy isn&#8217;t in the model. It&#8217;s in the guardrails.</p><p>Next up, I&#8217;m watching the gate. I want to know how often it rejects a draft that I&#8217;d have actually shipped, and how often it passes one I wouldn&#8217;t. That&#8217;s the number that tells me whether the quality bar is set right or just set.</p>]]></content:encoded></item><item><title><![CDATA[I Built a 50+ Country Website for $300. I'm Not an Engineer.]]></title><description><![CDATA[A geolocated affiliate site in 30-plus languages, built off the side of my desk. Here's the receipt.]]></description><link>https://newsletter.kenashe.ai/p/i-built-a-50-country-website-for</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/i-built-a-50-country-website-for</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Sat, 20 Jun 2026 17:47:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!z6e1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Two weeks ago I started building a website. As of today it serves visitors in more than over 50 countries, in over 30 languages, and shows each person products that are actually available in their own market.</p><p>I&#8217;m not an engineer. I built it part time, off the side of my desk. Total cost: around $300 in credits.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z6e1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z6e1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 424w, https://substackcdn.com/image/fetch/$s_!z6e1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 848w, https://substackcdn.com/image/fetch/$s_!z6e1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!z6e1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z6e1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:805496,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/202861151?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z6e1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 424w, https://substackcdn.com/image/fetch/$s_!z6e1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 848w, https://substackcdn.com/image/fetch/$s_!z6e1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!z6e1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6508254-74ea-4a12-b5b9-77a19aeb00da_3200x1800.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>What it actually does</strong></h2><p>Someone hits the main domain. The site figures out where they are and what language they speak, then renders itself around them.</p><p>A visitor in the UK sees products available in the UK, in English.</p><p>A visitor in Brazil sees products available in Brazil, in Portuguese, with a one-tap toggle to English.</p><p>A visitor in Kenya lands in Swahili first, sees products available in their local market, and can flip to English if they want.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r2V2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r2V2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 424w, https://substackcdn.com/image/fetch/$s_!r2V2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 848w, https://substackcdn.com/image/fetch/$s_!r2V2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 1272w, https://substackcdn.com/image/fetch/$s_!r2V2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r2V2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png" width="340" height="247" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:247,&quot;width&quot;:340,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13559,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/202861151?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r2V2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 424w, https://substackcdn.com/image/fetch/$s_!r2V2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 848w, https://substackcdn.com/image/fetch/$s_!r2V2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 1272w, https://substackcdn.com/image/fetch/$s_!r2V2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4952d6c-9b65-44a5-84d4-b463f50590dd_340x247.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Same domain. A different site depending on where you&#8217;re standing on the planet. It&#8217;s an affiliate site, so the products matter as much as the language. Sending someone a link to something they can&#8217;t actually buy is a dead end.</p><h2><strong>How I built it</strong></h2><p>I used HyperAgent, an agent platform running on Claude, to design and build it. The site is hosted on GitHub and runs through Cloudflare.</p><p>I started small. An MVP with four countries. Get it working, watch it render correctly, then add more.</p><p>Then I iterated. And iterated. I&#8217;m on version 15 now. Each version added countries, languages, and market-specific product logic. Europe, South America, Asia, Africa. The map kept filling in.</p><h2><strong>What it cost</strong></h2><p>About $300 in credits. A couple of weeks of part-time work.</p><p>Here&#8217;s the part I keep coming back to. If I had tried to build this by hand, the old way, it would have taken me months. Honestly, I&#8217;m not sure I would have finished at all. Sixty countries of geolocation and 30-plus languages with market-specific product logic is a lot of moving parts for one non-engineer.</p><p>The coding agents did the heavy lifting. I brought the plan, the corrections, and the judgment about what to build next. The agent brought the speed.</p><h2><strong>What I learned</strong></h2><p>Start with the MVP and let the version numbers do the talking. Four countries proved the idea worked. Version 15 is what &#8220;prove it, then scale it&#8221; looks like when you don&#8217;t stop.</p><p>The bottleneck stopped being the code. It became deciding what to build next, and checking that each version actually rendered right before adding the next batch of countries.</p><p>That&#8217;s the shift I keep noticing. The hard part moved from &#8220;can I build it&#8221; to &#8220;what should I build, and is it actually working.&#8221; I&#8217;ll take that trade.</p><h2><strong>Next</strong></h2><p>Keep scaling the country and language coverage, and watch how it holds up as the map fills in. Same approach as the first four: small steps, watch the tape, add the next batch.</p><div><hr></div><p><em>A note on how this got made: I talked this one out and had AI help me shape the brain dump into a post. The build, the calls, and the corrections are mine.</em></p>]]></content:encoded></item><item><title><![CDATA[Meet Sir Pitches-a-lot]]></title><description><![CDATA[Agent Battle Night, $10K in credits, and the awkward question of which stack I actually build on]]></description><link>https://newsletter.kenashe.ai/p/meet-sir-pitches-a-lot</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/meet-sir-pitches-a-lot</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Wed, 03 Jun 2026 17:56:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jBBL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Yesterday I spent the afternoon at Agent Battle Night, a NY Tech Week event hosted by Hyperagent, Airtable&#8217;s platform for building and deploying fleets of agents. The premise was simple and a little ruthless. Build an agent on the spot. Point it at a real person in the room. Let it pitch, live, while everyone watches it land or flop. Then the room votes.</p><p>I walked out with $10,000 in Hyperagent credits just for showing up. That alone made the train ride worth it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hnye!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hnye!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hnye!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hnye!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hnye!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hnye!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg" width="491" height="418.1171875" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1090,&quot;width&quot;:1280,&quot;resizeWidth&quot;:491,&quot;bytes&quot;:520596,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/200470379?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hnye!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hnye!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hnye!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hnye!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329bc8-b5cc-4d5d-887d-6b92ec54abda_1280x1090.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What I built</h2><p>My entry was an agent called Sir Pitches-a-lot.</p><p>The job was narrow on purpose. Sir Pitches-a-lot exists to pitch Ashe Brands, my branding company, to prospective clients. That is the entire personality. I built it start to finish inside Hyperagent&#8217;s interface, which is genuinely pleasant to work in. You describe what you want, you wire up the behavior, and the thing runs. No glue code, no fighting a harness.</p><p>When the moment came, it pitched the person it was assigned to in the room, and it did a great job. The agent held its own. For something I had stood up in an afternoon, watching it pitch a real human in real time was the highlight of the event.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jBBL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jBBL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 424w, https://substackcdn.com/image/fetch/$s_!jBBL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 848w, https://substackcdn.com/image/fetch/$s_!jBBL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 1272w, https://substackcdn.com/image/fetch/$s_!jBBL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jBBL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png" width="959" height="559" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:559,&quot;width&quot;:959,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246601,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/200470379?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jBBL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 424w, https://substackcdn.com/image/fetch/$s_!jBBL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 848w, https://substackcdn.com/image/fetch/$s_!jBBL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 1272w, https://substackcdn.com/image/fetch/$s_!jBBL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f72fba-131c-4dbb-946b-9a81f152c2bc_959x559.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A couple of notes from the build. From where I sat, Hyperagent is a polished agent layer running on Claude. The models on offer were all Claude, at least for now, so with $10K in credits burning a hole in my pocket, I reached for the best one available, Opus 4.8. Obviously.</p><p>And the economics are the part that stuck with me. Hyperagent prices on tokens, so spend is real spend against real work. Building and running Sir Pitches A Lot for the whole competition cost me about $20. Which means I walked out with $9,980 still in the account. That is an absurd amount of runway for a tool I just met.</p><p>I can share the code for Sir Pitches-a-lot if anyone wants to poke at it.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3hUr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3hUr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 424w, https://substackcdn.com/image/fetch/$s_!3hUr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 848w, https://substackcdn.com/image/fetch/$s_!3hUr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 1272w, https://substackcdn.com/image/fetch/$s_!3hUr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3hUr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png" width="664" height="199" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:199,&quot;width&quot;:664,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18323,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/200470379?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3hUr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 424w, https://substackcdn.com/image/fetch/$s_!3hUr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 848w, https://substackcdn.com/image/fetch/$s_!3hUr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 1272w, https://substackcdn.com/image/fetch/$s_!3hUr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a22ba8-510a-47ab-ade7-d4d3025e5486_664x199.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The room</h2><p>The people were the other half of the value. It was an eclectic crowd. I met Vic from Hyperagent, who does a lot of their social and training content. I met Elaine, who works at a major credit card company. I met Ed, who is a VC. I met a guy who had flown in from Europe for the week. Good conversations, the kind you only get when a room is full of people who actually build things.</p><p>They also loaded me up with merch. A name tag, a t-shirt, sunglasses, and a wristband. I did not put any of it on, but it is always nice to get handed something on the way in.</p><p><em>[IMAGE: flat-lay of the Hyperagent merch, t-shirt, sunglasses, wristband, name tag]</em></p><p>I did not stay to see who won. I wanted to catch my train and spend the evening with my family, so I ducked out before the final votes. No regrets there.</p><h2>The actual problem</h2><p>Here is the thing I am still chewing on.</p><p>I now have nearly ten grand in credits sitting inside a tool that is fun to use and clearly capable. I cannot picture a version of myself that does not dig in and build something real with it.</p><p>But the same night, Chief, my own agent running on the Hermes harness, did something on its own. Completely unprompted, it spun up a nightly job and built a small tool: an Affiliate Opportunity Scorecard that ranks content ideas by likely business value instead of vibes. A Python CLI, a generated HTML dashboard, unit tests, all of it working and sitting on my server when I woke up. I did not ask for any of it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ob6T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ob6T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ob6T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ob6T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ob6T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ob6T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg" width="313" height="332.36990154711674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:711,&quot;resizeWidth&quot;:313,&quot;bytes&quot;:136530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/200470379?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d24973-356a-4b95-a830-7daf89cf5fc7_711x1280.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ob6T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ob6T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ob6T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ob6T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64a3893f-875d-40f8-971e-79c1667fac5d_711x755.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So that is the fork. Hyperagent is a polished playground with a five-figure head start. Hermes is mine, and Chief is already acting like a teammate who works the night shift without being told. I do not yet know how I split my time between them.</p><p>It is a good problem to have.</p>]]></content:encoded></item><item><title><![CDATA[Meet Chief: My AI Chief of Staff]]></title><description><![CDATA[How I set up an AI chief of staff on the Hermes harness, running GPT-5.5 through a Telegram bot, with a team of sub-agents on the way.]]></description><link>https://newsletter.kenashe.ai/p/meet-chief-my-ai-chief-of-staff</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/meet-chief-my-ai-chief-of-staff</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Mon, 01 Jun 2026 20:05:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ht9z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For a while I&#8217;ve wanted an AI that sits above my work instead of inside it. Not another chatbot I open and prompt, but something I can hand a messy, half-formed instruction to and trust to figure out who or what should actually handle it.</p><p>So I built one. I&#8217;m calling him Chief, because that&#8217;s the job: chief of staff. I like the name, and it stuck immediately.</p><p>Here&#8217;s how Chief came together, and where I&#8217;m taking him next.</p><h2>The harness underneath: Hermes</h2><p>Chief runs on Hermes, an open-source agent harness from Nous Research. If you haven&#8217;t run into the term, a harness is the layer that wraps around an AI model and gives it the things a raw model lacks: tools, memory, and a workflow structure for getting real work done over time. The model is the engine. The harness is the chassis, the steering, and the dashboard that turns that engine into something you can actually drive.</p><p>What sold me on Hermes specifically is that it ships the harness for you. Other agent setups I&#8217;ve looked at, like Claude Code and OpenClaw, expect you to hand-build all of that yourself: the memory files, the hooks, the workflows. Hermes comes with those layers already in place, and it&#8217;s model-agnostic, so I&#8217;m free to point it at whatever brain makes sense.</p><p>One naming note, because it tripped me up at first too. I didn&#8217;t name the harness. Hermes came with that name. I only named my instance. The harness is Hermes; the chief of staff I&#8217;m running on top of it is Chief.</p><h2>Why a chief of staff, not just a chatbot</h2><p>I already talk to AI all day. What I didn&#8217;t have was something that <em>sits above</em> the work: a single point of contact I can hand a vague instruction to and trust to route it correctly.</p><p>That&#8217;s the chief-of-staff idea. Not the one who does every task, but the one who knows the org, holds the context, and decides who handles what. I wanted one agent I could message like a human colleague, one that would quietly coordinate everything happening underneath.</p><p>So Chief isn&#8217;t meant to be the smartest model in the room. He&#8217;s meant to be the <em>responsible</em> one.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ht9z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ht9z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 424w, https://substackcdn.com/image/fetch/$s_!Ht9z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 848w, https://substackcdn.com/image/fetch/$s_!Ht9z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 1272w, https://substackcdn.com/image/fetch/$s_!Ht9z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ht9z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png" width="1456" height="1359" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1359,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154487,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/200176854?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ht9z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 424w, https://substackcdn.com/image/fetch/$s_!Ht9z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 848w, https://substackcdn.com/image/fetch/$s_!Ht9z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 1272w, https://substackcdn.com/image/fetch/$s_!Ht9z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff89988a2-53ce-48c1-a748-9723f8643086_2400x2240.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The stack</h2><p>I kept it deliberately boring, because boring is what survives contact with daily use.</p><p><strong>The brain:</strong> GPT-5.5, running on OpenAI&#8217;s $100/month Pro plan. OpenAI split Pro into two tiers earlier this year, a $100 option and the older $200 one, and for me the $100 tier is the sweet spot. It&#8217;s the same model suite as the top tier but with 5x Plus usage limits instead of 20x, which is plenty for an orchestrator that delegates most of the heavy lifting rather than grinding through everything itself.</p><p><strong>The interface:</strong> Telegram. I spun up a brand-new Telegram bot specifically for Chief, so he lives in his own chat thread, separate from everything else. This turned out to be the best decision of the whole setup. Telegram means I can reach Chief from my phone, my laptop, anywhere, with no app to open and no tab to find. I just message him like I&#8217;d message anyone else. The chief-of-staff framing only works if talking to him feels as low-friction as texting a person, and Telegram nails that. It also plays to one of Hermes&#8217; strengths, since the harness is built to run an agent across messaging, not just a terminal.</p><p><strong>The future muscle:</strong> a Mac mini sitting at the office, which is where the sub-agents will live.</p><h2>Setup was almost suspiciously easy</h2><p>I&#8217;ll be honest: I expected this to eat a weekend. It didn&#8217;t.</p><p>Because Hermes ships the harness, I skipped the part that usually eats the weekend. I didn&#8217;t have to hand-craft memory files or wire up workflows from scratch. The real work was pointing Hermes at GPT-5.5 and connecting it to a fresh Telegram bot, and then Chief was responding in his own thread.</p><p>The genuinely hard part of any agent project was never the plumbing; it&#8217;s deciding what you actually want the thing to <em>do</em>. Once I&#8217;d answered that, the assembly was almost anticlimactic.</p><p>That&#8217;s worth saying out loud, because a lot of people assume building a personal agent requires some heroic technical lift. The pieces are all sitting right there now. The bottleneck is clarity, not capability.</p><h2>Where this is going: orchestration</h2><p>Here&#8217;s the part I&#8217;m most excited about, and the part that&#8217;s still ahead of me.</p><p>Right now Chief is the single agent I talk to. The plan is to turn him into a conductor. The Mac mini will host a set of <strong>sub-agents</strong>, specialized workers for specific kinds of tasks, and Chief&#8217;s job becomes orchestration: take my instruction, break it down, hand pieces to the right sub-agent, collect the results, and report back to me in Telegram like nothing complicated happened.</p><p>That&#8217;s the whole point of the architecture. I don&#8217;t want to manage a fleet of agents. I want to manage <em>one</em> agent who manages the fleet. I give Chief a goal; the Mac mini does the work; I get the answer. The complexity stays downstairs.</p><p>A Mac mini is a great little box for this. It&#8217;s quiet, low-power, always on, and happy to sit in a corner running jobs around the clock. It becomes the back office while Chief stays the front desk.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Frw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Frw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 424w, https://substackcdn.com/image/fetch/$s_!_Frw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 848w, https://substackcdn.com/image/fetch/$s_!_Frw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 1272w, https://substackcdn.com/image/fetch/$s_!_Frw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Frw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png" width="571" height="331" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:331,&quot;width&quot;:571,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30006,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/200176854?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_Frw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 424w, https://substackcdn.com/image/fetch/$s_!_Frw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 848w, https://substackcdn.com/image/fetch/$s_!_Frw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 1272w, https://substackcdn.com/image/fetch/$s_!_Frw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8f8250-8488-4253-9d14-bfebf3cb6680_571x331.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What I&#8217;ve learned so far</h2><p>A few things stand out even this early:</p><p>The interface matters more than the model. GPT-5.5 is excellent, but the reason Chief feels useful is that he&#8217;s one Telegram message away. Reduce the friction to near zero and you actually use the thing.</p><p>Naming matters too, weirdly. Calling my instance Chief, and handing him a role, shaped how I set it up. I stopped thinking &#8220;what prompt do I write&#8221; and started thinking &#8220;what would I delegate to a competent person who never sleeps.&#8221;</p><p>And separation of concerns is everything. One agent to talk to, many agents to do the work. The moment I drew that line, the rest of the design fell into place.</p><h2>Next steps</h2><p>The orchestration layer on the Mac mini is the next build, and I&#8217;ll write that one up too, including what the sub-agents end up being and how Chief decides who gets what.</p><p>For now, I have a chief of staff who lives in my phone, runs on a $100 plan, and is about to get a team of his own.</p><p>Not a bad hire.</p><div><hr></div><p><em>If you&#8217;re setting up something similar, the two decisions that mattered most for me were: pick a low-friction interface (Telegram, for me) and define the agent&#8217;s role before you write a single line of config. Everything else is just wiring, and with a harness like Hermes, a lot of that wiring is done for you.</em></p>]]></content:encoded></item><item><title><![CDATA[I Had Three AIs Write My Voice. They Didn't Agree.]]></title><description><![CDATA[The disagreement turned out to be the most useful part.]]></description><link>https://newsletter.kenashe.ai/p/i-had-three-ais-write-my-voice-they</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/i-had-three-ais-write-my-voice-they</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Sat, 30 May 2026 20:37:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6rrJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Three AIs wrote me a voice guide. Claude, Gemini, and ChatGPT each took a pass. I figured I&#8217;d skim them, keep the best lines, and be done by lunch.</p><p>They didn&#8217;t agree. Not on tone, not on what I write about, not even on who I am.</p><p>That sounds like a problem. It was the most useful thing that happened all week.</p><p>Here&#8217;s why they disagreed. Two of the three had built their guide around an older version of me, heavy on monetization and growth tactics. All real parts of my background. None of it where I&#8217;d actually landed. What I&#8217;m building now runs on a simpler rule: no public pitch. I&#8217;m learning in public, and the writing isn&#8217;t a sales funnel. The AIs weren&#8217;t wrong. They were working off old game film.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6rrJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6rrJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!6rrJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!6rrJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!6rrJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6rrJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1087989,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/199908714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6rrJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!6rrJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!6rrJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!6rrJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d3b4476-8826-44f7-8c5e-f5558d26e985_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So the job changed. I wasn&#8217;t averaging three documents. I was deciding which version of me was current and reconciling everything to it. One draft had the sharpest voice. The other two had the better scaffolding, the templates and the vocabulary. I kept the sharp part, kept the useful scaffolding, and cut everything that was selling a business I&#8217;m not running in public.</p><p>Then came the rounds. And this is the part I didn&#8217;t expect: every pass made the guide less about adjectives and more about control. The edits that mattered weren&#8217;t &#8220;sound warmer.&#8221; They were the boring, load-bearing ones:</p><ul><li><p>Rule priority. An order for what wins when instructions collide, because they will. Accuracy and privacy beat sounding like me, every time.</p></li><li><p>A missing-receipts rule. &#8220;Proof over hype&#8221; is a great line right up until the AI invents the proof. So if there are no receipts, write it as a hypothesis or a question. Never fake a case study.</p></li><li><p>&#8220;Context is not boilerplate.&#8221; Every draft wanted to open with &#8220;as a non-engineer spending 20 hours a week...&#8221; Once, that&#8217;s context. Every time, it&#8217;s a tic.</p></li><li><p>A prompt an agent can actually run, split into the part that never changes and the part that&#8217;s today&#8217;s assignment.</p></li></ul><p>By the end it was about 580 lines. I QA&#8217;d it by running it back through all three AIs until they stopped finding things to fix. So I now own a 580-line document about how to sound less like a 580-line document. Progress.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h9Qd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h9Qd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 424w, https://substackcdn.com/image/fetch/$s_!h9Qd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 848w, https://substackcdn.com/image/fetch/$s_!h9Qd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 1272w, https://substackcdn.com/image/fetch/$s_!h9Qd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h9Qd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png" width="814" height="703" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:703,&quot;width&quot;:814,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61317,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/199908714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h9Qd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 424w, https://substackcdn.com/image/fetch/$s_!h9Qd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 848w, https://substackcdn.com/image/fetch/$s_!h9Qd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 1272w, https://substackcdn.com/image/fetch/$s_!h9Qd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc50ee3bf-6a6e-49cf-b26b-a1b381e2017b_814x703.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you want to find out where your own positioning has quietly drifted, here&#8217;s the cheapest test I know: have three different AIs describe you, and watch where they disagree. The gaps are the map.</p><p><em>For the record: I built the guide with AI, and used AI to help write this post about building it. The voice is mine. The typing was a team effort.</em></p>]]></content:encoded></item><item><title><![CDATA[Building the Playbook for How I Write With AI]]></title><description><![CDATA[How I turned &#8220;make it sound like me&#8221; into a practical playbook for writing with AI.]]></description><link>https://newsletter.kenashe.ai/p/building-the-playbook-for-how-i-write</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/building-the-playbook-for-how-i-write</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Sat, 30 May 2026 20:18:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T9lM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I thought I was making a style guide.</p><p>What we actually built was a playbook.</p><p>That matters, because &#8220;make this sound like me&#8221; is a terrible instruction for AI. It feels clear when you say it. It is not clear to the machine.</p><p>The machine does not know what &#8220;me&#8221; means.</p><p>It needs examples. Boundaries. Rules. Preferences. Corrections. A scoreboard.</p><p>That was the real work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T9lM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T9lM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!T9lM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!T9lM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!T9lM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T9lM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2466297,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/199906306?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T9lM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!T9lM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!T9lM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!T9lM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d9d32b-a70c-4b34-a95c-d40903fd9a74_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The problem I was trying to solve</h2><p>I&#8217;ve been learning to build with AI in public. Part of that means writing about the process.</p><p>Build logs. Reflections. Notes on what worked. Notes on what broke. The occasional reminder that AI can make a messy workflow faster, which is not always a compliment.</p><p>But there was a problem.</p><p>Every time I used AI to help draft something, I could feel when it drifted.</p><p>Sometimes it sounded too polished.</p><p>Sometimes it sounded like a LinkedIn post that had been through three committees and one motivational speaker.</p><p>Sometimes it added hype I would never say out loud.</p><p>Sometimes it made me sound like I was pitching something, even when the whole point was that I&#8217;m not.</p><p>So the job became pretty clear:</p><p>Build a guide that helps AI write with me, not instead of me.</p><p>That sounds simple.</p><p>It was not simple.</p><p>Naturally, humans were involved.</p><h2>We started with the obvious stuff</h2><p>The first pass was basic.</p><p>Tone. Voice. Topics. Things I say. Things I do not say.</p><p>Plain English.</p><p>Short sentences.</p><p>No guru energy.</p><p>No &#8220;AI is coming for your job&#8221; doom bait.</p><p>No &#8220;this will change everything forever&#8221; hype parade.</p><p>Useful before clever.</p><p>Operator-to-operator.</p><p>That got us started, but it was still too vague.</p><p>Because &#8220;plain English&#8221; can mean a lot of things.</p><p>So can &#8220;optimistic but grounded.&#8221;</p><p>So can &#8220;don&#8217;t sound like a brand bot,&#8221; which is accurate, but not exactly a repeatable instruction.</p><p>The guide needed to get more specific.</p><h2>The second pass was about tension</h2><p>This was the part that made the guide useful.</p><p>My voice lives in the middle of a few tensions:</p><p>Confident, but not guru.</p><p>Optimistic, but not naive.</p><p>Technical, but plain-English.</p><p>Personal, but not oversharing.</p><p>Structured, but not sterile.</p><p>Business-minded, but not salesy.</p><p>Learning in public, but not pretending to be clueless.</p><p>That middle lane is important.</p><p>A lot of AI writing fails because it runs to the extreme. It tries to sound impressive. Or inspirational. Or authoritative. Or warm in that weird fake way where every sentence sounds like it wants to put a hand on your shoulder.</p><p>That is not the goal.</p><p>The goal is simple:</p><p>Sound like a real person who has done the work, is still learning, and is willing to show the process.</p><h2>Then we built the guardrails</h2><p>This is where the guide turned from &#8220;voice notes&#8221; into an actual operating system.</p><p>We added rules for what wins when instructions conflict.</p><p>Accuracy beats style.</p><p>Privacy beats color.</p><p>Usefulness beats jokes.</p><p>Specific task beats generic branding.</p><p>That matters because AI will happily optimize for the wrong thing if you let it.</p><p>Tell it to sound more like you, and it may start forcing jokes into places they do not belong.</p><p>Tell it to be inspiring, and it may invent confidence the work has not earned yet.</p><p>Tell it to write a build log, and it may quietly turn a half-tested idea into a case study.</p><p>No thanks.</p><p>Receipts over rhetoric.</p><p>If I built it, tested it, measured it, paid for it, broke it, or learned something real from it, we can write from that.</p><p>If not, the piece has to be framed honestly.</p><p>A hypothesis.</p><p>A plan.</p><p>A reflection.</p><p>A question.</p><p>Not fake proof.</p><h2>The &#8220;AI tells&#8221; section became the film room</h2><p>This was one of the most useful parts.</p><p>We made a list of phrases and patterns that make writing feel like generic AI output.</p><p>Things like:</p><ul><li><p>&#8220;It&#8217;s not just X, it&#8217;s Y&#8221;</p></li><li><p>&#8220;Let&#8217;s dive in&#8221;</p></li><li><p>Overusing em dashes</p></li><li><p>The same tidy three-part rhythm everywhere</p></li><li><p>Corporate filler words</p></li><li><p>A closing paragraph that just repeats the article in nicer shoes</p></li></ul><p>That section is basically film review.</p><p>Watch the tape. Find the bad habits. Fix the mechanics.</p><p>The point is not to make the writing less useful.</p><p>The point is to make it sound less manufactured.</p><p>AI has a house style. Once you see it, you cannot unsee it.</p><p>And once you can name it, you can remove it.</p><h2>We also had to decide what not to say</h2><p>This part matters more than people think.</p><p>A style guide is not only about what belongs in the writing.</p><p>It is also about what stays out.</p><p>For me, that means a few clear boundaries.</p><p>No public pitch.</p><p>No private business mechanics unless I explicitly ask for them.</p><p>No family details beyond broad, normal references.</p><p>No pretending audience metrics are the scoreboard.</p><p>No turning every post into &#8220;look at me building a personal brand.&#8221;</p><p>The scoreboard is learning.</p><p>That line became one of the anchors.</p><p>Because if the writing is supposed to document the education, then the content should serve the learning. Not the other way around.</p><h2>The guide had to become usable by machines</h2><p>A normal style guide is helpful.</p><p>A style guide that an AI agent can actually use is better.</p><p>So we turned the guide into drop-in prompts.</p><p>One markdown version.</p><p>One XML-ready version.</p><p>A stable system prompt for agents.</p><p>A user prompt template for each specific job.</p><p>That was the operator part of the process.</p><p>Do not make the instruction live only in your head.</p><p>Do not rely on memory.</p><p>Do not keep correcting the same mistakes forever.</p><p>Turn the judgment into a checklist.</p><p>Turn the checklist into a prompt.</p><p>Turn the prompt into a repeatable workflow.</p><p>That is where AI starts to become practical.</p><p>Not magic.</p><p>Just practical.</p><h2>The weird part: the guide is not finished</h2><p>This was another important decision.</p><p>The guide has stable parts and temporary parts.</p><p>The stable parts are voice, boundaries, tone, privacy, and principles.</p><p>The temporary parts are channel strategy, cadence, and where the work is currently showing up.</p><p>That feels right.</p><p>Because the work is going to change.</p><p>The tools are going to change.</p><p>The platforms are going to change.</p><p>The format will probably change six times before I pretend I planned it that way.</p><p>But the voice should not reset every time the workflow changes.</p><p>That is the point of the guide.</p><p>It gives the work a home base.</p><h2>What I learned</h2><p>The useful lesson here is not &#8220;everyone needs a style guide.&#8221;</p><p>Maybe you do. Maybe you do not.</p><p>The real lesson is this:</p><p>If you want better output from AI, you need to get better at explaining your judgment.</p><p>Not your preferences in some vague way.</p><p>Your actual judgment.</p><p>What good sounds like.</p><p>What bad sounds like.</p><p>What lines you will not cross.</p><p>What tradeoffs matter.</p><p>What examples count.</p><p>What proof is required.</p><p>What gets cut even if it sounds nice.</p><p>That is the work.</p><p>The prompt is the easy part.</p><p>The judgment behind the prompt is the hard part.</p><h2>My takeaway</h2><p>This guide started as a writing tool.</p><p>It became something bigger than that.</p><p>It became a way to make my own thinking more visible.</p><p>To me.</p><p>To the machine.</p><p>And eventually to anyone reading the work.</p><p>That is the part I did not expect.</p><p>Building with AI is not only about getting the machine to do more.</p><p>Sometimes it is about forcing yourself to define the work clearly enough that the machine has a chance.</p><p>That is a useful exercise.</p><p>Even if the first version is ugly.</p><p>Especially then.</p><h2>AI involvement</h2><p>This post is AI-assisted.</p><p>The style guide was built through an iterative process: draft, review, correct, tighten, test against examples, and turn the useful parts into repeatable instructions.</p><p>The machine helped organize the thinking.</p><p>I made the calls.</p><p>Next play: use the guide on real posts, see where it breaks, and update it from the work.</p>]]></content:encoded></item><item><title><![CDATA[The blog is now The Lab]]></title><description><![CDATA[I renamed it. And I'm going to stop hedging about who writes the posts.]]></description><link>https://newsletter.kenashe.ai/p/the-blog-is-now-the-lab</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/the-blog-is-now-the-lab</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Fri, 29 May 2026 20:29:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZENG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve been here a while, you might have noticed the old description called them &#8220;notes synthesized daily from research, curated and edited.&#8221; Technically true. But also kind of a dodge.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZENG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZENG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 424w, https://substackcdn.com/image/fetch/$s_!ZENG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 848w, https://substackcdn.com/image/fetch/$s_!ZENG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 1272w, https://substackcdn.com/image/fetch/$s_!ZENG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZENG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png" width="639" height="324" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:324,&quot;width&quot;:639,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45516,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/199794429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZENG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 424w, https://substackcdn.com/image/fetch/$s_!ZENG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 848w, https://substackcdn.com/image/fetch/$s_!ZENG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 1272w, https://substackcdn.com/image/fetch/$s_!ZENG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c3d34a-3314-49a8-b52a-c6b5940eceb1_639x324.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The honest version: an automated pipeline drafts every post on that blog. It reads, researches, writes, edits. Then it has to clear a 40-point quality gate before anything publishes. And most of the time, I look it over too before it goes live.</p><p>That&#8217;s worth saying out loud. So now it does. The new subtitle reads:</p><blockquote><p><em>AI-written field notes from a marketer building with AI in public.</em></p></blockquote><p>A few reasons I made the switch:</p><ol><li><p>The whole point of this project is to show that AI can do real work when you actually engineer the workflow around it. Hiding the fact that AI is doing the writing works against that.</p></li><li><p>The 40-point gate is the proof. Plenty of people are posting AI slop with zero review. I&#8217;m not, and I want that visible.</p></li><li><p>&#8220;AI Blog&#8221; was a placeholder name. &#8220;The Lab&#8221; tells you what the place actually is.</p></li></ol><p>Nothing else changes. Same URL. Same posts. Same RSS feed. The newsletter you&#8217;re reading right now stays in my own voice, drafted by me, no pipeline involved.</p><p>If you&#8217;ve been forwarding the blog to someone, the link still works. If you&#8217;d like to see how the 40-point gate actually works under the hood, I&#8217;ll write that one up next.</p><p>&#8212;Ken</p>]]></content:encoded></item><item><title><![CDATA[Why my autonomous blog lives on GitHub]]></title><description><![CDATA[No hosting service, no CMS, no monthly bill. Just a folder of files in a repo.]]></description><link>https://newsletter.kenashe.ai/p/why-my-autonomous-blog-lives-on-github</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/why-my-autonomous-blog-lives-on-github</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Wed, 27 May 2026 16:47:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!k-bt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A week ago I shipped the AI blog. Two days of n8n wiring, a GPT-5.5 quality gate, a Claude Opus 4.7 writer, a Gemini topic-picker, and a deploy hook into Vercel. Then I closed the laptop.</p><p>Seven days later, the blog has been writing itself.</p><p>I haven&#8217;t tweaked the prompts. I haven&#8217;t bumped the gate threshold or rerouted a node. The pipeline runs every six hours, picks a video from one of the channels I&#8217;m monitoring, fetches a transcript, writes a 1,500-word post, scores it on a 40-point rubric, and either ships it or queues it for review. While I sleep. While I&#8217;m doing literally anything else.</p><p>That part is impressive. But it&#8217;s not the most interesting thing I learned this week.</p><p>The most interesting thing is what&#8217;s hosting the blog.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k-bt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k-bt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!k-bt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!k-bt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!k-bt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k-bt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5114803,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/199484983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k-bt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!k-bt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!k-bt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!k-bt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a84047-73f4-460c-9b71-53336acf27c9_2816x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>My blog lives on GitHub</h2><p>There is no WordPress. No Ghost. No headless CMS. No hosting service with monthly tiers and storage limits and bandwidth overages. No &#8220;Editor&#8221; UI with logins and permissions to manage.</p><p>My blog is a folder of files in a Git repo.</p><p>That sounds like a small technical detail. It is not. It is the whole reason this build works for a non-engineer on a budget, and I think it&#8217;s one of the most underrated patterns for anyone building with AI in 2026.</p><p>A normal blog stack looks like this: you pay a hosting service, you log into an admin UI, you write your post in an editor, you click publish, and the hosting service stores your content in a database and serves it to readers. Three or four separate tools, each with its own UI to learn, its own pricing tier, its own way of breaking.</p><p>My stack looks like this: I have a GitHub repository. Inside it is a folder called <code>content/blog</code>. Every post is a single MDX file with some frontmatter at the top (title, date, tags) and the post body below. To publish a new post, the AI pipeline writes a file and commits it to the repo. Vercel watches the repo, sees the commit, and rebuilds the site automatically. The post is live in about 90 seconds.</p><p>That&#8217;s the whole thing. The GitHub repo is the host, the CMS, the editor, the database, and the version control system. One tool, doing the work of five.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!er0l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!er0l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 424w, https://substackcdn.com/image/fetch/$s_!er0l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 848w, https://substackcdn.com/image/fetch/$s_!er0l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 1272w, https://substackcdn.com/image/fetch/$s_!er0l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!er0l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png" width="1225" height="727" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:727,&quot;width&quot;:1225,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99491,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/199484983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!er0l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 424w, https://substackcdn.com/image/fetch/$s_!er0l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 848w, https://substackcdn.com/image/fetch/$s_!er0l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 1272w, https://substackcdn.com/image/fetch/$s_!er0l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b4515-fbbe-4383-8ebf-4048e5f58208_1225x727.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What that actually gets you</h2><p>This is not just elegance for its own sake. It unlocks specific, real-world things.</p><p><strong>No hosting bill.</strong> Vercel&#8217;s free tier handles this kind of traffic comfortably. The only thing I pay for is the LLM tokens to write the posts. The infrastructure is free.</p><p><strong>No CMS to wrangle.</strong> The schema of a post is whatever I want it to be. Frontmatter at the top, body below, done. If I want a new field tomorrow (say, an <code>aiGenerated: true</code> flag, which I might add), I just add it to the frontmatter. No CMS migration, no plugin compatibility check.</p><p><strong>Everything is a commit.</strong> Every change to the blog is a Git commit. I can see what changed and when, and I can roll back any post, any edit, or the entire site, with a single command. This is version history that a normal CMS makes you pay extra for, and it&#8217;s free here because it&#8217;s built into how Git works.</p><p><strong>The pipeline can manipulate the site directly.</strong> Posts, drafts, edits, deletions, configuration changes, design tweaks: all of it is just files in a folder. The n8n pipeline writes files. I write files. GitHub Copilot writes files. Everything is the same kind of object.</p><p><strong>I can edit the blog from anywhere.</strong> I made a few edits this week from my phone, in GitHub&#8217;s web UI, while waiting in a parking lot. No app to install. No editor to configure. Just a text editor and a &#8220;commit&#8221; button.</p><h2>The manual rescue workflow</h2><p>This was the thing that really sold me on the setup.</p><p>Earlier this week, the gate queued a handful of posts that I thought were actually publishable with light touch-ups. In a normal CMS flow, I would have to log into the admin UI, find the draft, edit it in some WYSIWYG editor that may or may not handle Markdown well, click Save, click Publish, and then maybe wait for a cache to clear.</p><p>What I did instead: I opened the repo on GitHub, opened the queued MDX file, changed <code>draft: true</code> to <code>draft: false</code>, made a couple of small wording fixes inline, and clicked &#8220;Commit changes.&#8221; The post was live in 90 seconds.</p><p>That whole flow took about a minute per post. No special software. No admin login. Just a web browser and the same GitHub interface I use for everything else. The fact that &#8220;publish&#8221; is just &#8220;flip a flag and commit&#8221; is what makes manual rescue practical instead of annoying. I did this two or three times this week with posts I felt were strong enough to go live with minor edits.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vTt3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vTt3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 424w, https://substackcdn.com/image/fetch/$s_!vTt3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 848w, https://substackcdn.com/image/fetch/$s_!vTt3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 1272w, https://substackcdn.com/image/fetch/$s_!vTt3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vTt3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png" width="1043" height="265" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:265,&quot;width&quot;:1043,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23602,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/199484983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vTt3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 424w, https://substackcdn.com/image/fetch/$s_!vTt3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 848w, https://substackcdn.com/image/fetch/$s_!vTt3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 1272w, https://substackcdn.com/image/fetch/$s_!vTt3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c172caa-5283-4ca1-bcaa-d15f0457f696_1043x265.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>And then there&#8217;s Copilot</h2><p>This is where it gets weirder, in a good way.</p><p>I&#8217;m not a developer. I can read code, sort of. But navigating a real repository, finding the right file, understanding what a commit changed, asking &#8220;what does this configuration actually do,&#8221; used to be a wall for me.</p><p>GitHub Copilot inside github.com has dissolved that wall. I can highlight a file and ask what it does. I can ask why a build failed. I can describe a change I want and have it draft the diff for me. I am operating a software project through plain English, in a browser, as a person who does not write software.</p><p>This is the broader pattern I keep running into. Every tool I use is becoming an AI surface. Not &#8220;has an AI feature bolted on,&#8221; but is, structurally, an AI surface. GitHub is one. Vercel is another. n8n itself is one.</p><p>For non-engineers, this is the unlock. The technical depth required to ship something real is collapsing in real time.</p><h2>What I&#8217;m watching</h2><p>I haven&#8217;t tweaked the system this week, partly to see what it does on its own. Seven days in, here&#8217;s what I&#8217;ve noticed.</p><p>The gate is rejecting roughly at the rate I expected. Mostly for unsourced claims and overstated certainty, which is what I tuned it to catch. A few queued posts have been clearly recoverable with small edits, which is how the manual rescues started. The posts that pass the gate read like a smart operator&#8217;s notes, not marketing copy. That was the goal of the voice tuning, and it&#8217;s holding.</p><p>I&#8217;ll probably make my first real tweak this week. Or maybe not. One thing I&#8217;m learning about building with AI in public is that not touching the thing is sometimes the hardest part of the build.</p><div><hr></div><p><em>Real name, no business, no pitch. Just education in public.</em></p><p>Ken</p>]]></content:encoded></item><item><title><![CDATA[The Blog Is Writing Itself. Here's Day 2.]]></title><description><![CDATA[What I learned in the week between pressing publish and actually shipping reliably.]]></description><link>https://newsletter.kenashe.ai/p/the-blog-is-writing-itself-heres</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/the-blog-is-writing-itself-heres</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Wed, 20 May 2026 20:10:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qkJM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A week ago I wrote about <a href="https://newsletter.kenashe.ai/p/im-building-a-blog-that-writes-itself">building an autonomous AI blog pipeline</a>. Four AI models wired together in n8n, designed to monitor 10 YouTube channels and synthesize working notes published automatically to my site. Day 1 ended with the pipeline built and tested manually. The bones worked.</p><p>Day 2 was supposed to be about going from &#8220;tested&#8221; to &#8220;live.&#8221; It ended up teaching me more than I expected.</p><p>Pressing publish was the easy part. What came after was the actual learning.</p><h2>The bug in the first output</h2><p>The very first post the system generated had a tell. Buried in the third paragraph:</p><blockquote><p>&#8220;The source video gets into this from a builder&#8217;s angle, and it lined up with something I&#8217;ve been chewing on for weeks.&#8221;</p></blockquote><p>There it was. <em>The source video.</em> The whole point of the architecture is that the YouTube transcripts are research material, not subject matter. They&#8217;re scaffolding I&#8217;m reading to identify topics worth writing about. A post that says &#8220;the source video&#8221; is fundamentally a summary of someone else&#8217;s content, not original thinking.</p><p>It read like AI. Worse, it read like derivative AI. Exactly what Google&#8217;s helpful content updates were designed to penalize.</p><p>I caught it before publishing. The manual review on Day 1 was specifically so I could catch things like this. But the fix wasn&#8217;t trivial.</p><h2>Why one behavior needed three fixes</h2><p>You&#8217;d think you could fix &#8220;stop saying &#8216;the source video&#8217;&#8221; with a one-line addition to the prompt. You can&#8217;t. Here&#8217;s what it actually took:</p><p><strong>Fix one: the writing prompt.</strong> Added explicit bans on &#8220;the source video,&#8221; &#8220;this video,&#8221; &#8220;the channel,&#8221; &#8220;the speaker,&#8221; and a dozen variations. Spelled out the philosophy: the transcript is research, not subject matter. The reader should never know a video informed the post.</p><p><strong>Fix two: how the transcript was framed.</strong> The original instructions to the writing model literally labeled the transcript &#8220;Source video:&#8221; with the channel name and URL at the top. That framing was telling the model &#8220;this video is what you&#8217;re writing about.&#8221; I stripped all of that out. Reframed the transcript as &#8220;Research material that informed this topic&#8221; with explicit &#8220;do not reference this directly&#8221; instructions.</p><p><strong>Fix three: the quality gate.</strong> Added source material references to the list of <em>critical fails</em> that the second AI must catch. Now even if a future prompt change causes the writing model to slip up, the gate auto-queues anything that mentions &#8220;the source video&#8221; for human review before publishing. Defense in depth.</p><p>The lesson: AI system failures often need fixes in multiple places. Where the model picks up the bad pattern. Where the input primes it for the bad pattern. Where you catch the failure if both upstream fixes fail. Single-point fixes feel cleaner. They&#8217;re fragile.</p><h2>The Practitioner&#8217;s Take rule</h2><p>The other big addition: every post must end with what I started calling a &#8220;Practitioner&#8217;s Take.&#8221; Not labeled with a heading. Just a closing paragraph that adds applied analysis instead of summary.</p><p>Generic AI-generated content tends to close with a summary or a &#8220;what this means going forward&#8221; platitude. That&#8217;s the gravity. Forcing the model to write something specific (what would you actually try, what&#8217;s the implication for someone shipping today, what&#8217;s the catch most readers miss) pulls it out of summary mode and into practitioner mode.</p><p>This is the move that separates a working note from a transcript paraphrase.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MRB2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MRB2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 424w, https://substackcdn.com/image/fetch/$s_!MRB2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 848w, https://substackcdn.com/image/fetch/$s_!MRB2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 1272w, https://substackcdn.com/image/fetch/$s_!MRB2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MRB2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png" width="261" height="567.4477611940298" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1311,&quot;width&quot;:603,&quot;resizeWidth&quot;:261,&quot;bytes&quot;:564999,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/198610736?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F606fe235-24f4-4499-ae51-bda030e1b0e7_603x1311.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MRB2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 424w, https://substackcdn.com/image/fetch/$s_!MRB2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 848w, https://substackcdn.com/image/fetch/$s_!MRB2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 1272w, https://substackcdn.com/image/fetch/$s_!MRB2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df125d1-afa2-47b3-8c26-50d11c97c613_603x1311.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Feeling the system breathe</h2><p>Going from manual to scheduled isn&#8217;t just flipping a switch. It means you need the system to tell you what&#8217;s happening when you&#8217;re not watching.</p><p>Telegram is my interface to the pipeline. Every successful post pings my phone with the title, the gate score, the verdict reason, any flags. Every queued post tells me what failed and why. I can feel the system breathing from my pocket.</p><p>This is the part most &#8220;AI agent&#8221; demos skip. A system you can&#8217;t observe is a system you can&#8217;t trust. The notifications are what let me let it run.</p><h2>Pressing publish</h2><p>When I activated the schedule trigger, the pipeline went from a thing I run to a thing that runs.</p><p>That&#8217;s a real shift. The work changes shape. Instead of building, it becomes watching, reading, tuning. Less typing, more judgment. Less code, more taste.</p><p>The system is now generating up to 3 posts per day, on a 6-hour cadence, with the quality gate filtering anything below 30 out of 40. Posts that pass go live within 90 seconds. Posts that don&#8217;t go to a draft queue I can review.</p><p>But pressing publish wasn&#8217;t the finish line. It was the start of the actual learning.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qkJM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qkJM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 424w, https://substackcdn.com/image/fetch/$s_!qkJM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 848w, https://substackcdn.com/image/fetch/$s_!qkJM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!qkJM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qkJM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png" width="1456" height="1116" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1116,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5569018,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/198610736?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qkJM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 424w, https://substackcdn.com/image/fetch/$s_!qkJM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 848w, https://substackcdn.com/image/fetch/$s_!qkJM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!qkJM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff238872b-aece-4d6b-9962-5237b62d178b_2338x1792.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Three things real production taught me</h2><p>Within the first 48 hours of the schedule firing, three problems surfaced that I hadn&#8217;t designed around. Each became its own small lesson.</p><p><strong>Real data isn&#8217;t clean data.</strong> My topic-identification call was breaking on actual YouTube transcripts because they contain quotation marks, special characters, and other things that messed up how the API requests were being constructed. Worked fine in testing because my test transcripts were clean. Broke immediately with real ones. The fix was rebuilding that part of the pipeline so it handles whatever weird text shows up in the wild. Once I rewrote it the right way, I applied the same pattern to my writing and quality-gate calls too. Three brittle pieces became three reliable ones.</p><p><strong>Real APIs are flakier than test APIs.</strong> Anthropic occasionally returns &#8220;overloaded&#8221; errors when their servers are busy. Doesn&#8217;t happen in light testing. Happens regularly when a scheduled run hits at peak times. The fix was tiny: small pauses between heavy API calls, so the pipeline doesn&#8217;t burst requests. Costs 30 seconds per run. Saves an entire run when it would otherwise fail.</p><p><strong>A system that runs without you needs to tell you when it&#8217;s struggling.</strong> I had notifications on success but nothing on failure. If a node errored, I&#8217;d find out only by checking the workflow manually. Added an automatic error alert path. Now if anything in any node fails, my phone tells me which node and what the error was. Failures are now a notification, not a silence.</p><p>The pattern across all three: production exposes gaps that testing misses. Real data is messier than test data. Real APIs are flakier than mocks. Real schedules trigger bursts that manual runs never would. Building the resilience layer is mostly defending against this kind of variability.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lK2Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lK2Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 424w, https://substackcdn.com/image/fetch/$s_!lK2Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 848w, https://substackcdn.com/image/fetch/$s_!lK2Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 1272w, https://substackcdn.com/image/fetch/$s_!lK2Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lK2Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png" width="636" height="198" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:198,&quot;width&quot;:636,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27220,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/198610736?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lK2Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 424w, https://substackcdn.com/image/fetch/$s_!lK2Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 848w, https://substackcdn.com/image/fetch/$s_!lK2Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 1272w, https://substackcdn.com/image/fetch/$s_!lK2Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a19052-acf3-4f5d-85d7-ea5dc7676987_636x198.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What this is really about</h2><p>The blog is one experiment. There will be more.</p><p>The whole point of this project is to build with AI in public. To learn what works by shipping it. To see what surprises me when a system runs without my hands on it. Every fix this week taught me something I wouldn&#8217;t have learned by reading about autonomous content pipelines. Every surprise was a piece of knowledge that didn&#8217;t exist for me before I shipped.</p><p>That&#8217;s the work I want to be doing. Build the thing. Watch it run. Fix what breaks. Take notes. Build the next thing with everything you learned from this one.</p><p>If you missed Day 1, <a href="https://newsletter.kenashe.ai/p/im-building-a-blog-that-writes-itself">here&#8217;s how the whole pipeline got designed and built</a>.</p><p>The blog itself is at <a href="https://kenashe.ai/blog">kenashe.ai/blog</a>. This newsletter is where the longer-form essays come out. Subscribe if you want to follow what comes next.</p>]]></content:encoded></item><item><title><![CDATA[I'm Building a Blog That Writes Itself. Here's Day 1.]]></title><description><![CDATA[Four AI models, eighteen n8n nodes, and the Claude usage cap that forced a mid-build Gemini pivot.]]></description><link>https://newsletter.kenashe.ai/p/im-building-a-blog-that-writes-itself</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/im-building-a-blog-that-writes-itself</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Fri, 15 May 2026 12:31:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!S0Ew!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Yesterday I started on the most ambitious AI build I&#8217;ve attempted: an autonomous blog that monitors a curated set of YouTube channels for new AI content, picks the most interesting angle from each video, writes a 600 to 1000-word post in my editorial voice, runs that post through a second AI for quality review, and publishes the survivors to my site automatically. Three posts a day, cap enforced. No human in the loop unless the quality gate flags something for review.</p><p>The live version is at <a href="https://kenashe.ai/blog">kenashe.ai/blog</a>. As I write this, the pipeline has been built end to end and tested manually. Day 2 is switching from manual to scheduled triggers and tuning the prompts based on what the first real batch of output looks like.</p><p>Below: the plan, the tools, what got built on Day 1, and where I hit a wall.</p><h2>The plan</h2><p>The goal is something every marketer should be paying attention to in 2026: a content engine that runs without me. Not &#8220;AI-assisted blog posts that I edit and publish.&#8221; Autonomous posts that go live without my fingers touching them, gated by quality controls that catch the bad ones before they ship.</p><p>Specifically:</p><ul><li><p>Monitor 10 curated YouTube channels in AI and digital marketing for new uploads</p></li><li><p>Pull transcripts for new videos posted in the last 48 hours</p></li><li><p>Identify the single best angle worth a 600 to 1000-word post (most videos don&#8217;t have one, reject those)</p></li><li><p>Generate the post in my voice, structured for SEO, with frontmatter ready for Astro</p></li><li><p>Score it on a 40-point rubric (originality, voice match, factual defensibility, reader value)</p></li><li><p>Auto-publish if it passes, queue for review if it doesn&#8217;t</p></li><li><p>Cap at 3 posts per day</p></li><li><p>Notify me on every result so I can pull anything that slipped through</p></li></ul><p>Why three a day, not ten or twenty? Google&#8217;s helpful content updates have been brutal to high-volume AI content that doesn&#8217;t add value beyond its sources. Three good posts daily for a month gives Google enough data to start ranking the domain. Three good plus seven mediocre gets the whole domain penalized. The cap is the SEO insurance policy.</p><h2>The tools</h2><p>I&#8217;m running four AI models plus a stack of services. Each has a specific job:</p><p><strong>n8n</strong> is the orchestration layer. It&#8217;s a workflow automation tool similar to Zapier or Make, but more flexible and self-hostable. The entire pipeline lives as a single n8n workflow with 18 nodes. n8n calls the APIs, passes data between them, handles error states, and (starting today) runs on a schedule.</p><p><strong>Claude Opus 4.7</strong> (via the Anthropic API) is the writing engine. When I tested both Claude and GPT-5.5 against the same source material, Claude produced posts that read more like a real person and less like a press release. For long-form writing in a specific voice, it&#8217;s still the best.</p><p><strong>Gemini 3.1 Pro</strong> does topic identification. This is the upstream filter that decides whether a video is worth writing about at all. Most videos aren&#8217;t. Gemini reads the transcript, identifies the single most interesting angle, scores it on novelty, search potential, and audience fit. If the angle scores below 21 out of 30, the workflow skips it and waits for the next video.</p><p><strong>GPT-5.5</strong> is the quality gate. After Claude writes a post, GPT-5.5 reviews it on a 40-point rubric and decides whether it ships or gets queued for human review. Using a different model for review than for writing is the key insight. Each model has different blind spots. The same model can&#8217;t reliably catch its own mistakes.</p><p><strong>Supadata</strong> handles YouTube transcript extraction. Cheap, reliable, simple HTTP API. About half a cent per transcript.</p><p><strong>GitHub and Vercel</strong> are the publishing pipeline. n8n commits new posts as Astro MDX files to my GitHub repo. Vercel detects the push and rebuilds the live site in about 90 seconds. The whole site auto-deploys with no manual step.</p><p><strong>Telegram</strong> is where notifications land. Every published post and every queued draft pings my phone with the score, the reason, and a link to read or pull.</p><p>Worth mentioning: this site itself was built with <strong>Claude Code</strong> (and reviewed by <strong>Codex</strong>, OpenAI&#8217;s coding agent) over a weekend before this automation went on top of it. That&#8217;s the foundation the blog pipeline is committing into.</p><h2>Day 1: what got built</h2><p>Day 1 was about laying down the pipeline end to end. The full architecture went in: define channels, fetch RSS feeds, parse, extract latest videos, dedupe against history, check the daily cadence cap, fetch transcripts, score topics with Gemini, generate posts with Claude, gate with GPT-5.5, format as MDX with a date-prefixed slug, commit to GitHub, trigger Vercel, and ping me on Telegram.</p><p>Eighteen nodes in n8n. Most of the build time was on three things: getting the cross-node data references right (n8n&#8217;s expression syntax has gotchas, and node naming matters more than I expected), wiring up the API authentications for five different services, and debugging a stubborn 404 from GitHub that turned out to be a token scope issue rather than anything in my code.</p><p>The hardest single piece to get right was the slug generation. The original plan generated slugs from the post title alone, which would have caused GitHub collisions any time two posts had similar titles. I switched to a date-prefixed format like <code>2026-05-14-title-slug</code> so collisions are functionally impossible. Two posts can&#8217;t share a slug across different days, and the daily cap prevents same-day collisions in practice.</p><p>By end of Day 1, the pipeline runs end-to-end on a manual trigger. New video &#8594; new post &#8594; on the live site within minutes. That&#8217;s the bones working.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S0Ew!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S0Ew!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 424w, https://substackcdn.com/image/fetch/$s_!S0Ew!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 848w, https://substackcdn.com/image/fetch/$s_!S0Ew!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 1272w, https://substackcdn.com/image/fetch/$s_!S0Ew!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S0Ew!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png" width="1291" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1291,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96900,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.kenashe.ai/i/197849612?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!S0Ew!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 424w, https://substackcdn.com/image/fetch/$s_!S0Ew!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 848w, https://substackcdn.com/image/fetch/$s_!S0Ew!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 1272w, https://substackcdn.com/image/fetch/$s_!S0Ew!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff594c04f-c4d9-4e77-8cbb-8f5e5d7a13c0_1291x832.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Claude usage cap, and the Gemini pivot</h2><p>About halfway through the build, I hit Anthropic&#8217;s usage cap. I&#8217;d been using Claude as my pair-programming assistant for the whole build (separate from Claude Opus 4.7 as the writing engine inside the pipeline). The cap fired with a couple of hours of work left, and I was already paying for overage.</p><p>Two options at that point: keep paying for more overage, or pivot to a different assistant. I&#8217;d been wanting to test Gemini in a real working context anyway, so I switched mid-build. Gave Gemini the workflow JSON, the error messages, and asked it to help fix the remaining issues. Both models delivered. Different strengths, but the build kept moving.</p><p>Lesson: have a backup AI assistant configured before you need one. Not because any one of them is unreliable, but because hitting a usage cap mid-build is exactly when you don&#8217;t want to be configuring API keys for a new tool. The cost of having two assistants ready is roughly zero. The cost of being stuck is half a day.</p><h2>Day 2: what&#8217;s left</h2><p>A pipeline that only fires when I press a button isn&#8217;t autonomous. Day 2 is two things: switch the manual trigger to a scheduled trigger (every six hours), and tune the prompts based on actual output.</p><p>The prompts are the biggest lever in the whole system. Every time the first batch of posts has a phrase I wouldn&#8217;t write, that phrase goes into the banned list. Every time the gate misses something, the rubric gets tightened. After a week of tuning against real output, the system prompts will be twice as long as the Day 1 versions and the failure rate will be much lower.</p><p>The plan after Day 2 is to let it run for a week at three posts per day, watch the Search Console data, then decide whether to expand the channel set, raise the cadence cap, or add image generation. Anything I scale before seeing real ranking data is betting in the dark.</p><h2>What this is proving</h2><p>This whole project (building kenashe.ai with Claude Code and then this automation pipeline on top of it) is a real test of a real thesis. Application-layer AI work is no longer something only engineers can do. A digital marketer in 2026 who isn&#8217;t shipping AI-built systems is going to be outpaced by those who are.</p><p>The bar to entry isn&#8217;t the math. It isn&#8217;t the model weights. It isn&#8217;t the cost. It&#8217;s deciding that this is the work and putting in the hours. Twenty hours over a weekend gets you a custom site. Eight more hours gets you a blog that writes itself.</p><p>If you&#8217;re a marketer reading this and you&#8217;re not building, build.</p>]]></content:encoded></item><item><title><![CDATA[I built a website today using two AIs that don't talk to each other]]></title><description><![CDATA[Built with Claude Code. Reviewed by Codex. Shipped in a day.]]></description><link>https://newsletter.kenashe.ai/p/i-built-a-website-today-using-two</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/i-built-a-website-today-using-two</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Wed, 13 May 2026 19:02:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GsgD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I built a new website using Claude Code, had OpenAI&#8217;s Codex review the code, pushed it to GitHub, and deployed it on Vercel. It&#8217;s live now at kenashe.ai. There&#8217;s still polish to do, but the bones are up.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GsgD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GsgD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 424w, https://substackcdn.com/image/fetch/$s_!GsgD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 848w, https://substackcdn.com/image/fetch/$s_!GsgD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 1272w, https://substackcdn.com/image/fetch/$s_!GsgD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GsgD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png" width="1440" height="300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44966,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197404650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GsgD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 424w, https://substackcdn.com/image/fetch/$s_!GsgD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 848w, https://substackcdn.com/image/fetch/$s_!GsgD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 1272w, https://substackcdn.com/image/fetch/$s_!GsgD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4700e9cd-1d91-4211-bdb4-87137a181306_1440x300.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Here&#8217;s how it came together.</p><h3>Starting from scratch with Claude Code</h3><p>I&#8217;ve been spending a lot of time in Claude Code lately, and I wanted to push past the daily email (which is still humming along on Substack) and build something new. So today I sat down to build a personal site from scratch. No templates. No themes. No Wix or Squarespace. Just me, the terminal, and Claude Code.</p><p>My prompt was simple: I want a minimal, editorial site with a link to my Substack newsletter, an automated AI blog (which I&#8217;ll wire up to n8n down the road), an about section, and a contact form. Clean. Quiet. Typography-first.</p><p>Claude Code spun up an Astro project with TypeScript, Tailwind, and MDX. It gave me back exactly what I asked for, plus one section I didn&#8217;t ask for: a <strong>Projects</strong> page meant to highlight what I&#8217;m building. I almost cut it, but then I realized: <em>this site is the project I&#8217;m building right now.</em> So it stays. I&#8217;ll fill it in as I go.</p><p>Total cost for the initial build: <strong>under $10 in Claude API credits.</strong></p><h3>Then I handed the code to Codex</h3><p>Here&#8217;s the part I want to spend more time on, because I think this is the real unlock.</p><p>Once Claude Code had finished the initial build, I opened a second terminal window (same Mac, just another tab) and pointed <strong>OpenAI&#8217;s Codex</strong> at the same repo. Same code, different model, different review. I wanted a second AI to QA what the first AI had written.</p><p>Codex caught things Claude hadn&#8217;t flagged. One example: my homepage pulls the latest posts from Substack via their feed, with placeholder posts as a fallback in case the feed ever fails. Codex pointed out that those placeholders, &#8220;Placeholder essay one, Placeholder essay two, Placeholder essay three,&#8221; would render on the <em>live</em> site if Substack ever hiccupped. Not a great look. The fix was simple: gate the placeholders behind a development-only flag and show a proper empty state in production. Claude Code agreed and shipped the change.</p><p>That was one of <strong>eight fixes</strong> Codex flagged. Some were security-related, some were accessibility improvements, some were schema cleanups. All of them were issues I would never have caught on my own. And importantly, ones Claude hadn&#8217;t surfaced either.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZSXg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZSXg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 424w, https://substackcdn.com/image/fetch/$s_!ZSXg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 848w, https://substackcdn.com/image/fetch/$s_!ZSXg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 1272w, https://substackcdn.com/image/fetch/$s_!ZSXg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZSXg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png" width="1209" height="776" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:776,&quot;width&quot;:1209,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:641903,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197404650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZSXg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 424w, https://substackcdn.com/image/fetch/$s_!ZSXg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 848w, https://substackcdn.com/image/fetch/$s_!ZSXg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 1272w, https://substackcdn.com/image/fetch/$s_!ZSXg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaffeb31-40f2-48a3-9584-ee352521771d_1209x776.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A tale of two coding terminals - Codex is on the left. Claude Code is on the right. </figcaption></figure></div><p>That workflow, <em>building with one model and reviewing with another</em>, feels like something I&#8217;m going to keep doing. It&#8217;s the AI equivalent of getting a code review from a colleague who thinks slightly differently than you do. Next project, I might flip it: have Codex write the first draft and Claude Code review. I&#8217;m curious whether the strengths reverse.</p><p>For this build, I only did one review pass before shipping. I could&#8217;ve gone deeper, but it&#8217;s a simple static site. The real complexity will come when I start wiring the blog up to n8n for automated publishing.</p><h3>Shipping it</h3><p>Once the fixes were in, I committed to GitHub and connected the repo to Vercel. A few rounds of copy edits (bio, about section, headlines) and the site was live. The whole end-to-end process, from empty directory to public URL, took less than a day.</p><h3>What I&#8217;m taking away from this</h3><p>A few things stuck with me from this build:</p><ul><li><p><strong>Watching the API meter run was eye-opening.</strong> We&#8217;ve been talking about the economics of AI-built products in one of my Maven classes, but seeing it line up in real time, under $10 to scaffold a real, deployable site, makes the math hit differently than any slide deck ever could.</p></li><li><p><strong>Running two coding agents side by side on a Mac was surprisingly seamless.</strong> Two terminal tabs, one building, one reviewing. No framework, no plugins, no fancy orchestration layer. Just two AIs, one repo, and me in the middle.</p></li><li><p><strong>Claude Code&#8217;s default design choices were more than serviceable.</strong> I went MVP just to stand the site up. Clean, restrained, no AI-startup gradient nonsense. I&#8217;ll loop back with Claude Design to push the visual layer further once the foundation is solid.</p></li></ul><h3>What&#8217;s next</h3><p>This is the foundation, not the finished product. The big build is the AI blog: I&#8217;m planning to use n8n to scrape AI and digital marketing content from YouTube and other sources, generate posts, and publish them automatically to the new blog section. That&#8217;s where things get expensive. And that&#8217;s where things get interesting.</p><p>Go check out <strong>kenashe.ai</strong>, subscribe to the newsletter if you haven&#8217;t, and follow along. I&#8217;ll be sharing the n8n build next.</p>]]></content:encoded></item><item><title><![CDATA[How I'm Using Claude (and Watching My Tokens Disappear in Real Time)]]></title><description><![CDATA[Notes from a heavy Claude user: the page Anthropic doesn't advertise, the API trick that buys me runway, and the real cost of hitting limits.]]></description><link>https://newsletter.kenashe.ai/p/how-im-using-claude-and-watching</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/how-im-using-claude-and-watching</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Tue, 12 May 2026 23:02:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EoVt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One thing I&#8217;ve noticed using Claude heavily over the last several days: it&#8217;s <em>really</em> easy to burn through tokens. Faster than I expected.</p><p>I&#8217;m on the Pro plan, and I&#8217;ve been keeping a close eye on my usage. If you didn&#8217;t know this (and a lot of people I talk to don&#8217;t), you can actually monitor your Claude usage in real time at <strong><a href="https://claude.ai/settings/usage">claude.ai/settings/usage</a></strong>. I&#8217;ve been checking it constantly.</p><h2>What the Usage Page Actually Shows</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EoVt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EoVt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 424w, https://substackcdn.com/image/fetch/$s_!EoVt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 848w, https://substackcdn.com/image/fetch/$s_!EoVt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 1272w, https://substackcdn.com/image/fetch/$s_!EoVt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EoVt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png" width="1006" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1006,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42094,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197411772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EoVt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 424w, https://substackcdn.com/image/fetch/$s_!EoVt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 848w, https://substackcdn.com/image/fetch/$s_!EoVt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 1272w, https://substackcdn.com/image/fetch/$s_!EoVt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F370a40a9-2391-4965-934f-d40e3bd191ca_1006x601.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The page breaks your usage into three buckets, which is genuinely useful once you understand what you&#8217;re looking at:</p><ul><li><p><strong>Current session limits</strong>, your rolling 5-hour window</p></li><li><p><strong>Weekly limits across all models</strong>, the broader ceiling that resets seven days after your session starts</p></li><li><p><strong>Claude Code plus additional features</strong>, a separate bucket that accounts for things like agentic runs</p></li></ul><p>Right now my current daily limit is at 66% and my weekly limit is at 43%. Watching those numbers tick up in real time has actually changed how I prompt. I&#8217;m more deliberate. I start fresh chats more often instead of letting one giant thread balloon. Long threads burn tokens faster because Claude has to re-read the whole conversation every turn.</p><h2>The &#8220;Extra Usage&#8221; Toggle</h2><p>I&#8217;ve also turned on <strong>extra usage</strong>. This is the setting that lets you keep going <em>after</em> you hit your plan&#8217;s limit. Instead of stopping cold, you opt in to continue at standard API rates with a monthly spend cap you control.</p><p>I turned it on because I&#8217;m still on Pro and I&#8217;m not quite ready to jump to Max. Hitting a wall mid-session and having to wait it out kills momentum. Paying a little for overflow felt like the right tradeoff for now.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XLQN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XLQN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 424w, https://substackcdn.com/image/fetch/$s_!XLQN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 848w, https://substackcdn.com/image/fetch/$s_!XLQN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 1272w, https://substackcdn.com/image/fetch/$s_!XLQN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XLQN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png" width="997" height="295" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:295,&quot;width&quot;:997,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31761,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197411772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XLQN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 424w, https://substackcdn.com/image/fetch/$s_!XLQN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 848w, https://substackcdn.com/image/fetch/$s_!XLQN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 1272w, https://substackcdn.com/image/fetch/$s_!XLQN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b0fc80b-deb9-4824-a78c-5d44bed70fb2_997x295.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>How I Balance Load Across Claude: Using the API for Claude Code</h2><p>Here&#8217;s a strategy I&#8217;ve landed on that works well: <strong>I use the Claude API for Claude Code</strong>, separate from my Pro subscription.</p><p>Pro covers chat, Projects, and Cowork, all of which share the same usage pool. Claude Code is the heaviest token consumer in my workflow by a wide margin, so if I run it through the same Pro plan, it eats my limits before I&#8217;ve done anything else.</p><p>By routing Claude Code to the API and paying per-token, I keep all the other surfaces (chat, Projects, Cowork) running smoothly inside my Pro budget. Yes, the API is more expensive in the moment, but it means I&#8217;m not hitting walls across the entire Claude ecosystem just because I had one heavy coding session.</p><p>It&#8217;s basically load balancing for my own usage.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-snP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-snP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 424w, https://substackcdn.com/image/fetch/$s_!-snP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 848w, https://substackcdn.com/image/fetch/$s_!-snP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 1272w, https://substackcdn.com/image/fetch/$s_!-snP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-snP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png" width="1440" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67047,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197411772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-snP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 424w, https://substackcdn.com/image/fetch/$s_!-snP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 848w, https://substackcdn.com/image/fetch/$s_!-snP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 1272w, https://substackcdn.com/image/fetch/$s_!-snP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ddb3036-22a1-4192-a8dc-5ecca97cb512_1440x620.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Pro covers chat, Projects, and Cowork. Claude Code runs through the API so heavy coding sessions don't drain everything else.</figcaption></figure></div><h2>Tips to Stretch Your Tokens</h2><p>A few habits I&#8217;ve picked up that genuinely help:</p><ul><li><p><strong>Use Projects.</strong> This is my biggest one. I love Projects. They&#8217;re a great way to save context, build &#8220;experts&#8221; for specific topics, and store examples of the kind of output you want. Instead of pasting the same long context into every new chat, you set it once and Claude carries it forward. Massive token savings, plus way better answers.</p></li><li><p><strong>Start fresh chats more often.</strong> A long thread isn&#8217;t free. Claude re-reads the whole history every turn. When you&#8217;ve shifted topics, open a new conversation.</p></li><li><p><strong>Don&#8217;t paste the same document twice.</strong> If you&#8217;re going to reference it again, that&#8217;s what Projects are for.</p></li><li><p><strong>Use the right model for the job.</strong> Not everything needs the most powerful model. Routine reformatting, quick lookups, and simple Q&amp;A don&#8217;t need to burn through your premium budget.</p></li><li><p><strong>Watch the usage page before big sessions.</strong> If you&#8217;re at 70% on a Tuesday, plan accordingly.</p></li></ul><h2>Why I Haven&#8217;t Upgraded to Max Yet</h2><p>The honest reason - I already pay for a lot of AI tools.</p><ul><li><p>ChatGPT (OpenAI)</p></li><li><p>Gemini</p></li><li><p>Grok</p></li><li><p>n8n</p></li><li><p>ElevenLabs</p></li><li><p>OpenRouter credits</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-_c6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-_c6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 424w, https://substackcdn.com/image/fetch/$s_!-_c6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 848w, https://substackcdn.com/image/fetch/$s_!-_c6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 1272w, https://substackcdn.com/image/fetch/$s_!-_c6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-_c6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png" width="801" height="513" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:513,&quot;width&quot;:801,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74052,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197411772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-_c6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 424w, https://substackcdn.com/image/fetch/$s_!-_c6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 848w, https://substackcdn.com/image/fetch/$s_!-_c6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 1272w, https://substackcdn.com/image/fetch/$s_!-_c6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0d2f7a-a99f-428c-a174-6bcbf182e09e_801x513.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Adding another $100 to $200 per month on top of all that has been a hard sell. For context, Claude Max comes in two tiers: <strong>Max 5x at $100/month</strong> (5x the usage of Pro) and <strong>Max 20x at $200/month</strong> (20x the usage of Pro).</p><h2>What I Actually Use Each Tool For</h2><p>I get asked this a lot, and the answer isn&#8217;t a clean one. Part of the reason I have all these subscriptions is that I genuinely want to try different things in each. But here&#8217;s how it&#8217;s shaken out in practice:</p><ul><li><p><strong>Claude.</strong> Claude Code is where it really shines for me right now. That&#8217;s my main use case.</p></li><li><p><strong>ChatGPT.</strong> I find it very useful for Codex. Different strengths, different workflow.</p></li><li><p><strong>Gemini.</strong> This is my daily Q&amp;A app on my phone. I&#8217;ve basically replaced Google search with Gemini. When I need to answer something on the go, I&#8217;m opening Gemini, not Google.</p></li><li><p><strong>Grok.</strong> I got access through X and don&#8217;t use it daily, but I find it refreshing when I want to dig into an area that other apps consider too sensitive or unethical to engage with. Grok doesn&#8217;t seem to have those concerns. If I hit a wall on another model, I immediately go to Grok and usually get a great answer.</p></li><li><p><strong>n8n and ElevenLabs.</strong> Totally different use cases (automation and voice respectively). These aren&#8217;t really &#8220;redundant&#8221; with the LLMs. Same will be true for Higgsfield once I add it.</p></li></ul><p>Here&#8217;s the thing: the best models from all the major LLM providers are <em>all</em> very good at this point. In theory I could consolidate down to one. But I really don&#8217;t want to. I have legitimate use cases for each, and I find it genuinely powerful to have all of them at my disposal.</p><h2>The Break-Even Math on Max</h2><p>The math is actually pretty straightforward:</p><p><strong>If you&#8217;re spending $20/month on Pro plus another $80 or more in extra usage (or API tokens), you should just get Max 5x at $100/month.</strong></p><p>That&#8217;s exactly where I expect to land. I&#8217;m not there <em>today</em> because I bought a chunk of extra usage credits and I want to use those up first. Once I burn through them, I&#8217;m 100% switching to Max. Same dollars, fewer interruptions, no per-token accounting in my head.</p><h2>The Real Cost of Hitting Limits</h2><p>This is the part nobody talks about enough: <strong>the cost of hitting your limit isn&#8217;t dollars, it&#8217;s momentum.</strong></p><p>When you&#8217;re deep in a project and Claude tells you to come back in three hours, you don&#8217;t just lose those three hours. You lose the mental state you were in. You lose the thread of where you were going. You come back to a project that&#8217;s gone cold, and you have to rebuild context for yourself, not just for the model.</p><p>This is literally why I bought extra usage credits. Not because I couldn&#8217;t afford to wait, but because I couldn&#8217;t afford to <em>context-switch</em>. Stopping mid-thought to deal with a usage wall is way more expensive than the $20 or $50 of overflow tokens that would have kept me moving.</p><p>If you&#8217;re using Claude for real work, that&#8217;s the number that should drive your decision, not the sticker price of Max.</p><h2>Still on the Roadmap</h2><p>I don&#8217;t pay for <strong>Higgsfield</strong> yet, but that&#8217;s the next service on my list to evaluate.</p><div><hr></div><p>If you&#8217;re using Claude more than casually, bookmark the usage page. It&#8217;s the difference between guessing what your workflow costs and actually knowing.</p>]]></content:encoded></item><item><title><![CDATA[My First Build with Claude Code: A Daily Email from Me, to Me ]]></title><description><![CDATA[On Monday I did my first build with Claude Code. It failed. Then it worked. Then it failed again.]]></description><link>https://newsletter.kenashe.ai/p/my-first-build-with-claude-code-a</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/my-first-build-with-claude-code-a</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Sat, 09 May 2026 17:08:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1ueQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For context: I&#8217;m not an engineer. I mostly use Windows, and I bought a Mac Mini for the sole purpose of playing with AI.</p><h2>What I tried to build</h2><p>A daily personal email, sent to me every morning at 6 AM, that includes:</p><ul><li><p>The day&#8217;s forecast</p></li><li><p>A dad joke</p></li><li><p>A few stock tickers</p></li><li><p>300&#8211;400 words on a topic that rotates by day of the week</p></li></ul><p>The seven topics:</p><ol><li><p>Stoic philosophy</p></li><li><p>Meditation and mindfulness</p></li><li><p>Nutrition</p></li><li><p>Communication skills</p></li><li><p>Humor</p></li><li><p>Golf tips for a scratch golfer</p></li><li><p>AI learning tips</p></li></ol><h2>How I accessed Claude Code</h2><p>There are a few ways to use Claude Code. The two easiest are the terminal on a Mac, or the Claude desktop app.</p><p>I went with the terminal for two reasons:</p><ol><li><p>It&#8217;s native to macOS, so it&#8217;s fast and plays nicely with the rest of my system.</p></li><li><p>I&#8217;m not locked into the Claude app. I can use the terminal with Codex or any other major LLM coding agent.</p></li></ol><h2>What went well</h2><p>Building the daily email with Claude Code was surprisingly straightforward. I bounced between Claude Code in the terminal and Claude in the desktop app to think through the design, then let Claude Code actually write the thing.</p><p>The solution it landed on was a Python script that runs locally on my Mac Mini and fires at 6 AM each day. I:</p><ul><li><p>Set up a dedicated email address for Claude Code to send from</p></li><li><p>Hooked up APIs for weather and stock tickers</p></li><li><p>Let Claude generate the 300&#8211;400 word section based on the day of the week</p></li></ul><p>I tested it manually. The email fired. The right topic showed up for the right day. The dad joke even landed:</p><blockquote><p><em>Did you hear the joke about the wandering nun? She was a roaming catholic.</em></p></blockquote><p>Looked good.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1ueQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1ueQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 424w, https://substackcdn.com/image/fetch/$s_!1ueQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 848w, https://substackcdn.com/image/fetch/$s_!1ueQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 1272w, https://substackcdn.com/image/fetch/$s_!1ueQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1ueQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png" width="1206" height="645" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:645,&quot;width&quot;:1206,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90848,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197026588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1ueQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 424w, https://substackcdn.com/image/fetch/$s_!1ueQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 848w, https://substackcdn.com/image/fetch/$s_!1ueQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 1272w, https://substackcdn.com/image/fetch/$s_!1ueQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6213738-6ec6-4d55-b9ac-79948e797cdf_1206x645.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Where it failed</h2><p>The next morning I woke up at 6, checked my inbox&#8230; nothing.</p><p>It turned out the original setup didn&#8217;t have the right macOS permissions to run the script on its own at that time. Not something I could have caught in a manual test, as it only failed when it had to fire on a schedule, unattended.</p><h2>The solution</h2><p>I went back to Claude in the desktop app, told it the email never showed up, and walked through possibilities. The fix was to remove the cron job and replace it with a launchd agent.</p><p>I&#8217;ll be honest: I don&#8217;t know the deep technical difference between those two, and at this stage I don&#8217;t really need to. I made the changes Claude suggested, and the next morning at 6 AM the email landed in my inbox.</p><h2>How long did this take?</h2><p>About three hours, all in.</p><p>That sounds like a lot for something this simple, and it would have been much faster, except:</p><ul><li><p>I was deliberately going slowly - reading the Python scripts Claude Code wrote and making sure I actually understood what was happening, instead of just rubber-stamping it.</p></li><li><p>I had to set up a fresh email account from scratch for this project.</p></li><li><p>That fresh account got me into trouble with Google. I was firing so many test emails from a brand-new sender that Google flagged it, and not in the normal &#8220;check your spam folder&#8221; way. The emails were hidden from my personal inbox entirely, not even visible in spam. Took some troubleshooting to figure out what was happening.</p></li><li><p>The three hours also covers the next morning&#8217;s debugging when the 6 AM run didn&#8217;t fire.</p></li></ul><p>For three hours of work, what I got was a thing that runs on its own every day, forever. That math feels pretty good.</p><h2>Then it failed again</h2><p>A few days later, 6 AM came and went. No email.</p><p>This time the problem wasn&#8217;t permissions. It was fragility. The weather API I was pulling from happened to be down that morning. My Python script tried to fetch the forecast, the call failed, and the <em>entire</em> email failed with it. One missing piece took down the whole thing.</p><p>I went back to Claude Code, described what happened, and asked it to diagnose. It walked through exactly what had gone wrong and proposed a fix: instead of letting a single failed API call crash the script, the weather fetch now fails gracefully. If the API is down, the email still goes out, just without that day&#8217;s forecast.</p><p>The bigger lesson is one I think every first-time builder runs into: making something work is one problem; making something <em>resilient</em> is a different one. The first version of this assumed every API call would succeed. The second version doesn&#8217;t.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9cMv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9cMv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 424w, https://substackcdn.com/image/fetch/$s_!9cMv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 848w, https://substackcdn.com/image/fetch/$s_!9cMv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 1272w, https://substackcdn.com/image/fetch/$s_!9cMv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9cMv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png" width="827" height="52" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d65663a2-ede8-407c-b304-7f46190d8927_827x52.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:52,&quot;width&quot;:827,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23797,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/197026588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9cMv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 424w, https://substackcdn.com/image/fetch/$s_!9cMv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 848w, https://substackcdn.com/image/fetch/$s_!9cMv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 1272w, https://substackcdn.com/image/fetch/$s_!9cMv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65663a2-ede8-407c-b304-7f46190d8927_827x52.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What I&#8217;d do next</h2><p>Getting a daily newsletter written by me, for me, is genuinely cool. I&#8217;m going to keep iterating:</p><ul><li><p>Add more tickers</p></li><li><p>Rotate or expand the daily topics</p></li><li><p>Maybe add a comic strip if I can find one I like</p></li></ul><p>After the weather API outage, the QA idea I&#8217;d been kicking around feels less optional. The plan is to run this project through Codex as a code review pass &#8212; point a second coding agent at what Claude built and see what fragility it catches. Claude builds, Codex reviews, or vice versa. Both failures so far were ones I could only catch at runtime; a second set of eyes might surface the next one before it bites.</p><h2>Final thought</h2><p>I can&#8217;t speak to the quality of the underlying code or whatever tech debt I might be racking up. But for a first build, at my level of experience, the bar was simple: does it work?</p><p>It does. And that feels like a real unlock.</p>]]></content:encoded></item><item><title><![CDATA[Going All In on AI: My 8-Week Build Sprint]]></title><description><![CDATA[Why I'm dedicating 20 hours a week for the next eight weeks to nothing but building with AI, and documenting every step here.]]></description><link>https://newsletter.kenashe.ai/p/going-all-in-on-ai-my-8-week-build</link><guid isPermaLink="false">https://newsletter.kenashe.ai/p/going-all-in-on-ai-my-8-week-build</guid><dc:creator><![CDATA[Ken Ashe]]></dc:creator><pubDate>Thu, 07 May 2026 17:21:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!62fX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Yesterday I made a decision: I&#8217;m going all in on AI.</p><p>Not on AI engineering. That&#8217;s not where I&#8217;m headed.</p><p>In her book <em>AI Engineering</em>, Chip Huyen describes the AI engineering stack as having three layers: application development, model development, and infrastructure. I&#8217;m focused on the top layer, <strong>application development</strong>. That&#8217;s the part anybody can do today, using the models that already exist. It&#8217;s about giving a model good prompts and the right context to produce real, usable results.</p><p>And honestly, that&#8217;s what makes this moment so exciting. You don&#8217;t need to train models or build infrastructure to create something useful. Anybody can pick up the tools and start building. That&#8217;s the part I plan to live in.</p><p>The space is moving fast. I believe we&#8217;re heading toward a future where everyone will need to know how to leverage AI, and I&#8217;d rather be early than have to catch up later.</p><h2>The plan: 20 hours a week, 8 weeks</h2><p>For the next eight weeks, I&#8217;m dedicating 20 hours a week to AI, with a deliberate balance.</p><p>The priority is <strong>building</strong>. Most of that time goes into actually using the tools, shipping projects, breaking things, and iterating. That&#8217;s where the real learning happens.</p><p>Alongside the building, I&#8217;m doing two things to keep the foundation solid:</p><ul><li><p>Taking a class (more on that below)</p></li><li><p>Reading <em>AI Engineering</em> by Chip Huyen</p></li></ul><p>The reading and the class are supplemental, but they&#8217;re not optional. Building without context produces shallow skills; theory without building produces no skills at all. I want both.</p><p>I&#8217;m also fortunate to be at a point in my business where I can step back briefly and invest this kind of time into developing new skills. That window doesn&#8217;t come around often, and I don&#8217;t want to waste it.</p><h2>Why I&#8217;m documenting it here</h2><p>I&#8217;m going to document the entire process on this Substack: the wins, the failures, the projects, and the lessons along the way.</p><p>Two reasons for that:</p><ol><li><p><strong>Sharing the journey.</strong> If anything I do here helps someone else figure out their own path into building with AI, that&#8217;s a great outcome.</p></li><li><p><strong>Solidifying my learning.</strong> Writing forces me to slow down, review what I did, and actually understand it. The act of documenting is part of the learning itself.</p></li></ol><h2>Where I&#8217;m starting from</h2><p>I&#8217;m not starting at zero. I&#8217;ve been prompting AI extensively for a while now (from work projects to planning vacations), and I&#8217;ve taken a couple structured AI courses through <strong><a href="https://maven.com">Maven</a></strong>, which has been my go-to platform for this kind of learning.</p><p>So far, I&#8217;ve completed two Maven certifications:</p><ul><li><p><strong>AI Prototyping for Product Managers</strong></p></li><li><p><strong>How to Scale a Business With Agentic Workflows</strong> <em>(by AI Build Lab)</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!62fX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!62fX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!62fX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!62fX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!62fX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!62fX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg" width="380" height="233.7890625" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1024,&quot;resizeWidth&quot;:380,&quot;bytes&quot;:58273,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/196804872?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!62fX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!62fX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!62fX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!62fX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a7e72c7-64c0-4627-9113-4e3892da14c4_1024x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qY6Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qY6Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qY6Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qY6Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qY6Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qY6Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg" width="362" height="212.109375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1024,&quot;resizeWidth&quot;:362,&quot;bytes&quot;:175362,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kenashe.ai/i/196804872?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qY6Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qY6Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qY6Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qY6Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27495935-d65f-4afd-8f92-83bfbdc04852_1024x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li></ul><p></p><p>And I&#8217;m currently in the middle of:</p><ul><li><p><strong>Course:</strong> OpenClaw &amp; Claude Code Certification for AI-Native PMs <em>(by AI Product Academy, taught by Dmitry Shapiro and Dr. Marily Nika)</em></p></li><li><p><strong>Book:</strong> <em>AI Engineering</em> by Chip Huyen</p></li></ul><p>Honestly, it&#8217;s this third class that pushed me from <em>&#8220;I should really do this&#8221;</em> to <em>&#8220;I&#8217;m doing this now.&#8221;</em> The combination of OpenClaw and Claude Code is opening my eyes to what&#8217;s possible when you can actually design, build, and ship AI agents without being a traditional engineer. I want to spend serious time exploring it.</p><h2>What&#8217;s next</h2><p>I&#8217;ll be posting regularly here as the sprint unfolds. I&#8217;ll also be sharing progress on <a href="https://www.linkedin.com/in/kenashe/">LinkedIn</a> and <a href="https://x.com/kenashe">X</a> along the way. </p>]]></content:encoded></item></channel></rss>