<?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[The Undercurrent]]></title><description><![CDATA[The intelligence briefing solo builders read before making their next move.]]></description><link>https://www.theundercurrent.dev</link><image><url>https://substackcdn.com/image/fetch/$s_!ZJJ8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46f2780-d6f8-45c4-97cb-acf72268e458_1280x1280.png</url><title>The Undercurrent</title><link>https://www.theundercurrent.dev</link></image><generator>Substack</generator><lastBuildDate>Sat, 11 Apr 2026 10:14:58 GMT</lastBuildDate><atom:link href="https://www.theundercurrent.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mei Park]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[theundercurrentdotdev@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[theundercurrentdotdev@substack.com]]></itunes:email><itunes:name><![CDATA[Mei Park]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mei Park]]></itunes:author><googleplay:owner><![CDATA[theundercurrentdotdev@substack.com]]></googleplay:owner><googleplay:email><![CDATA[theundercurrentdotdev@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mei Park]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Your Website Just Became an API]]></title><description><![CDATA[WebMCP, Chrome 146, and the end of 'I should build an API']]></description><link>https://www.theundercurrent.dev/p/your-website-just-became-an-api</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/your-website-just-became-an-api</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Mon, 16 Mar 2026 13:01:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jXuU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Chrome 146 shipped something behind a flag that most developers scrolled past. An early preview of <a href="https://searchengineland.com/webmcp-explained-inside-chrome-146s-agent-ready-web-preview-470630">WebMCP &#8212; Web Model Context Protocol</a>.</p><p>Here&#8217;s what it does: it lets your website tell AI agents exactly what actions are available, what inputs they need, and what outputs to expect. Not by scraping your DOM. Not by reverse-engineering your forms. By exposing structured tool definitions directly in the page.</p><p>Your website just learned to talk to machines. And machines are about to become your biggest user base.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jXuU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jXuU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jXuU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jXuU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jXuU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jXuU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:525579,&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://www.theundercurrent.dev/i/190577225?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.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_!jXuU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jXuU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jXuU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jXuU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb19a34e-4d07-477a-a565-9602a2d75714_1344x896.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><p></p><h2>The Two Bad Options We&#8217;ve Been Living With</h2><p>Until now, AI agents had two ways to interact with websites, and both were terrible.</p><p><strong>Option one: automation.</strong> The agent loads your page, reads the DOM, finds something that looks like a search box, types into it, clicks something that looks like a submit button, and prays the layout didn&#8217;t change since last Tuesday. This is how browser automation has worked for twenty years. It&#8217;s fragile, slow, and breaks whenever you A/B test a button color.</p><p><strong>Option two: APIs.</strong> Structured, reliable, fast. Also: most websites don&#8217;t have one. And the ones that do rarely expose everything available through the UI. Your travel site might have an API for searching flights but not for selecting seats or adding bags. The agent hits a wall exactly where the user experience gets interesting.</p><p>WebMCP is the third option nobody had: let the website itself declare its capabilities in a format agents can consume, without building a separate API.</p><h2>How It Actually Works</h2><p>WebMCP provides two layers:</p><p><strong>Declarative:</strong> HTML annotations on your existing forms. A checkout form gets metadata describing its fields, validation rules, and expected outcomes. An agent reads the annotation and knows exactly how to fill the form correctly on the first try.</p><p><strong>Imperative:</strong> <a href="https://www.nohackspod.com/blog/agentic-browser-landscape-2026">JavaScript APIs for dynamic interactions.</a> Your site registers tools &#8212; <code>bookFlight()</code>, <code>searchProducts()</code>, <code>checkout()</code> &#8212; with JSON schemas defining inputs and outputs. Tools can appear and disappear based on page state. A checkout tool only shows up when there are items in the cart.</p><p>Think of it like this: APIs are a side door built specifically for machines. WebMCP is your front door, fitted with a translator so machines can use it too.</p><p>The spec is co-authored by Google and Microsoft engineers and <a href="https://github.com/nicolo-ribaudo/webmcp">incubated at the W3C</a>. Broader browser support is expected by late 2026.</p><h2>Why This Changes the Solo Builder&#8217;s Calculus</h2><p>If you&#8217;re a one-person operation, you&#8217;ve probably had this thought: &#8220;I should build an API.&#8221; Followed immediately by: &#8220;I do not have time to build an API.&#8221;</p><p>WebMCP changes that math. Instead of maintaining a separate API with its own auth, rate limiting, documentation, and versioning, you annotate the product you already have. Your website IS the API. Same codebase. Same deployment. Same interface &#8212; just machine-readable.</p><p>For an indie SaaS, this means:</p><ul><li><p><strong>Your booking tool becomes agent-accessible</strong> without building a REST endpoint</p></li><li><p><strong>Your checkout flow becomes programmable</strong> without Stripe API integration beyond what you already have</p></li><li><p><strong>Your search becomes a tool</strong> agents can call with structured queries instead of fumbling through your autocomplete</p></li></ul><p>The effort is closer to adding Schema.org markup than building a full API. Except instead of helping Google index your content, you&#8217;re helping agents use your product.</p><h2>The Convergence Nobody&#8217;s Talking About</h2><p>Here&#8217;s what makes the timing unusual: WebMCP and <a href="https://www.mastercard.com/us/en/news-and-trends/stories/2026/verifiable-intent.html">Mastercard&#8217;s Verifiable Intent</a> launched within days of each other.</p><p>WebMCP answers &#8220;how does an agent interact with your website?&#8221;</p><p>Verifiable Intent answers &#8220;how do you prove the human authorized what the agent did?&#8221;</p><p>Together, they form the complete loop:</p><ol><li><p>Agent discovers what your site can do (WebMCP)</p></li><li><p>Agent executes an action with cryptographic proof of authorization (Verifiable Intent)</p></li><li><p>Transaction is recorded with a tamper-resistant audit trail</p></li></ol><p>That&#8217;s not a collection of unrelated announcements. That&#8217;s infrastructure. The kind that turns &#8220;agents might buy things someday&#8221; into &#8220;agents are buying things now, with receipts.&#8221;</p><p>Google is on both sides of this. They co-authored WebMCP and endorsed Verifiable Intent. Microsoft co-authored WebMCP. Mastercard open-sourced the trust layer. The majors are aligning on the same stack, in public, at the same time.</p><p>When that happens, the window for &#8220;should we care about this?&#8221; closes fast.</p><h2>What to Do This Week</h2><p>You don&#8217;t need to implement WebMCP today &#8212; it&#8217;s behind a Chrome flag and the spec will evolve. But you should start thinking about your product through this lens:</p><p><strong>Audit your user-facing actions.</strong> What can a human do on your site? List every action: search, filter, add to cart, book, subscribe, configure. Each one is a potential tool definition.</p><p><strong>Think in inputs and outputs.</strong> For each action, what does it need and what does it return? That&#8217;s your future JSON schema. The cleaner your data model is now, the less work WebMCP adoption will be later.</p><p><strong>Watch the W3C incubation.</strong> The spec will change. The principle won&#8217;t. Websites that can describe their own capabilities to machines will get more traffic than websites that can&#8217;t. That&#8217;s the direction. The details will sort themselves out.</p><p>The web was built for humans who read and click. It&#8217;s being rebuilt for agents that call functions and verify results. The builders who see that shift early will own the transition.</p><p>Everyone else will wonder why their traffic disappeared.</p>]]></content:encoded></item><item><title><![CDATA[The Original One-Person Backend]]></title><description><![CDATA[BBS sysops were running platforms from their bedrooms before 'indie hacker' was a word]]></description><link>https://www.theundercurrent.dev/p/the-original-one-person-backend</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-original-one-person-backend</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Sun, 15 Mar 2026 13:02:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WluJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WluJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WluJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WluJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WluJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WluJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WluJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:561106,&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://www.theundercurrent.dev/i/190800752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.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_!WluJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WluJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WluJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WluJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410ba361-2a72-470a-aa10-ecf6efab394b_1344x896.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><p></p><p>It&#8217;s 1991. Somewhere in suburban Ohio, a sixteen-year-old is running an online community from his bedroom. The infrastructure: a 386 with 4MB of RAM, a 40MB hard drive, a 14.4k modem, and a single phone line he shares with his parents. The software: a registered copy of PCBoard, purchased for $149 from Clark Development Company. The community: two hundred users who dial in one at a time, leave messages on forums, upload shareware, and argue about whether OS/2 will kill DOS.</p><p>He is the sysop, the system operator. He is also the system administrator, the content moderator, the customer support team, the network engineer, and the janitor. When the hard drive fills up, he decides what gets deleted. When someone posts something offensive, he decides what stays. When the modem drops a connection at 3 AM, he gets out of bed and resets it.</p><p>He is running a one-person backend.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CM1j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CM1j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CM1j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CM1j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CM1j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CM1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg" width="180" height="223" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:223,&quot;width&quot;:180,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25496,&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;:false,&quot;internalRedirect&quot;:&quot;https://www.theundercurrent.dev/i/190800752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.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_!CM1j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CM1j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CM1j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CM1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400c915-4ad9-45d4-a2bf-bd7456ea4073_180x223.jpeg 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p><em>Boardwatch Magazine, July 1993. The trade publication for BBS sysops &#8212; this issue covers PCBoard 15.0, Internet Talk Radio, and online multiplayer games. If you ran a bulletin board, this was your industry press.</em></p><h2><strong>The BBS Era: One Machine, One Modem, One Person</strong></h2><p>The bulletin board system era produced a remarkable archetype: a single person operating an entire platform. Not a website. Not an app. A <em>platform</em> &#8212; with user accounts, file storage, messaging, forums, real-time chat (if you were lucky enough to have multi-node), and an economy built on upload/download ratios and access levels.</p><p>The constraints were brutal and physical. One phone line meant one user at a time. Your storage was measured in megabytes. Your bandwidth was measured in baud. Every decision was a tradeoff: more file storage meant fewer message boards. More users meant your parents couldn&#8217;t make phone calls. Going multi-line meant a second modem, a second phone line, and a copy of Desqview to fake multitasking on a machine that couldn&#8217;t actually do it.</p><p>And yet &#8212; BBS Magazine, writing in 1995, captured it perfectly: <em>&#8220;Running a BBS is no bed of roses. BBSs cost time and money, and they&#8217;ll always cost you more time and money than you thought they would.&#8221;</em> The magazine then advised prospective sysops to double their estimates. Sound familiar? Every founder who ever scoped a side project is nodding right now.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C_BY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C_BY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 424w, https://substackcdn.com/image/fetch/$s_!C_BY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 848w, https://substackcdn.com/image/fetch/$s_!C_BY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!C_BY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C_BY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg" width="180" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:180,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24467,&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://www.theundercurrent.dev/i/190800752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.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_!C_BY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 424w, https://substackcdn.com/image/fetch/$s_!C_BY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 848w, https://substackcdn.com/image/fetch/$s_!C_BY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!C_BY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bc880-8739-433d-a9d3-bdc010d70089_180x225.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>The Software Labs catalog, Summer 1993. &#8220;Thousands of Programs for the PC&#8221; starting at $3. This was the app store before app stores &#8212; solo developers mailed in their shareware and hoped someone flipped to the right page.</em></p><p>What made the BBS sysop remarkable wasn&#8217;t the technology. It was the <em>scope of operation</em>. A single person was simultaneously:</p><ul><li><p><strong>Platform operator</strong> &#8212; keeping the hardware running, the software configured, the phone line active</p></li><li><p><strong>Community manager</strong> &#8212; setting access levels, moderating discussions, banning troublemakers</p></li><li><p><strong>Content curator</strong> &#8212; organizing file areas, maintaining download libraries, writing bulletins</p></li><li><p><strong>Commerce operator</strong> &#8212; many BBS operators charged subscription fees, sold access levels, or ran &#8220;subscription BBSes&#8221; as small businesses</p></li><li><p><strong>Network engineer</strong> &#8212; configuring FidoNet echomail, scheduling nightly mail transfers, managing node numbers</p></li></ul><p>Clark Development&#8217;s PCBoard even shipped with its own programming language &#8212; PPL &#8212; so sysops could write custom door games, automate moderation, and extend the platform. A sysop who learned PPL was, in modern terms, a solo developer shipping features on their own platform.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8y5n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8y5n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8y5n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8y5n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8y5n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8y5n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg" width="180" height="191" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:191,&quot;width&quot;:180,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10063,&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://www.theundercurrent.dev/i/190800752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.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_!8y5n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8y5n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8y5n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8y5n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0df2df-a34e-450e-9676-b5aa8f35d799_180x191.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>The PCBoard Programming Language (PPL) Reference Manual. Clark Development shipped a full scripting language with their BBS software. If this image looks barely legible &#8212; that&#8217;s era-appropriate. Most of these manuals didn&#8217;t survive.</em></p><p>The shareware ecosystem that orbited the BBS world was its own universe of one-person companies. A developer in Michigan would write a ZIP file utility, package it with a <code>FILE_ID.DIZ</code> description file, upload it to a few BBSes, and watch it propagate through the network. The Software Labs catalog from 1993 listed thousands of shareware titles &#8212; each one representing a solo developer or tiny team who built something, priced it at $15-$40, and distributed it through a network of bulletin boards and mail-order catalogs. No app store. No payment processor. Just a PO Box and an honor system.</p><h2><strong>The Web Era: GeoCities to LAMP Stack</strong></h2><p>The web didn&#8217;t kill the one-person operator. It <em>scaled</em> them.</p><p>GeoCities, launched in 1994, gave millions of people their first taste of running their own corner of the internet. No modem configuration, no phone line dedication, no hardware maintenance. Just HTML in a text editor and a free hosting account organized into &#8220;neighborhoods&#8221; &#8212; SiliconValley for tech, Hollywood for entertainment, Area51 for the weird stuff.</p><p>The GeoCities webmaster was the BBS sysop&#8217;s direct descendant. Same impulse: <em>I want to run my own thing.</em> Same scope: content, community (via guestbooks), commerce (via PayPal donate buttons and, later, Google AdSense). Different tools, identical archetype.</p><p>Then came the LAMP stack, and the one-person operator leveled up dramatically. Linux, Apache, MySQL, PHP &#8212; running on a $20/month shared hosting account &#8212; gave a single developer more capability than an entire BBS network. You could build a forum (phpBB), a blog (WordPress), a wiki (MediaWiki), a storefront (osCommerce), and an email list (PHPList). All on one box. All as one person.</p><p>The CGI-bin era deserves its own mention. Perl scripts with <code>.cgi</code> extensions, running on shared hosting, processing form submissions and writing to flat files. It was ugly. It was insecure. It was <em>incredibly</em> empowering. A single developer with a copy of &#8220;Programming Perl&#8221; and an FTP client could build interactive web applications years before Rails or Django existed.</p><h2><strong>The Indie Hacker Era: Stripe + Heroku + AWS</strong></h2><p>Around 2010, something shifted. The tools didn&#8217;t just get better &#8212; they got <em>composable</em>. Stripe meant a solo developer could process payments without a merchant account. Heroku meant deploying a web app without configuring a server. AWS meant scaling without buying hardware. Twilio meant sending SMS without negotiating with carriers.</p><p>The &#8220;indie hacker&#8221; emerged as a recognized archetype. People like Pieter Levels building Nomad List. Patrick McKenzie writing about running a one-person SaaS. The Indie Hackers community turning solo development into a movement with its own vocabulary: MRR, ramen profitability, bootstrapping.</p><p>But here&#8217;s the thing nobody said out loud: <strong>this wasn&#8217;t new.</strong> The indie hacker was the BBS sysop with better tools. The impulse was identical &#8212; <em>I want to build and run the whole thing myself.</em> The constraints had changed (no more phone lines to manage, but now you had AWS bills to optimize), and the ceiling had risen (a one-person SaaS could serve thousands of concurrent users, not one at a time), but the <em>person</em> was the same.</p><p>Someone who wanted to own the entire stack. Someone who found the tradeoffs energizing rather than exhausting. Someone who would rather learn DevOps at 2 AM than hire a DevOps person.</p><h2><strong>Now: The Most Powerful Solo Operator Stack in History</strong></h2><p>Today&#8217;s solo developer has access to infrastructure that would have been inconceivable at every previous stage:</p><ul><li><p><strong>Serverless compute</strong> (Lambda, Cloudflare Workers) &#8212; no servers to manage, pay per invocation</p></li><li><p><strong>Edge databases</strong> (Turso, D1, Neon) &#8212; data at the edge, globally distributed, pennies per million reads</p></li><li><p><strong>Embedded auth</strong> (Clerk, Auth0, Supabase Auth) &#8212; user management as a dependency, not a project</p></li><li><p><strong>AI agents</strong> &#8212; not just tools but <em>teammates</em>, capable of writing code, handling support, generating content, managing deployments</p></li></ul><p>The leap from &#8220;14.4k modem and PCBoard&#8221; to &#8220;Cloudflare Workers and an AI agent fleet&#8221; is enormous in capability and essentially zero in architecture. It&#8217;s still one person, one machine (a laptop instead of a 386), one stack that they understand end-to-end.</p><p>The BBS sysop&#8217;s hard drive held 40 megabytes. A Cloudflare Worker can access a D1 database with 10 gigabytes of storage at the edge, globally. The sysop served one user at a time. A serverless function handles thousands concurrently. The sysop wrote PPL scripts to automate moderation. Today&#8217;s solo dev deploys AI agents that handle customer support, triage issues, and write documentation.</p><p>The ratio has changed. The archetype hasn&#8217;t.</p><h2><strong>The Pattern</strong></h2><p>Every generation of tooling does the same thing: it raises the ceiling on what one person can operate alone.</p><p><strong>BBS (1983-1995)</strong> &#8212; PC + modem + PCBoard. One user per line. The hard part: hardware, phone lines, physical limits.</p><p><strong>Early Web (1995-2005)</strong> &#8212; LAMP on shared hosting. Hundreds of concurrent users. The hard part: sysadmin, security, scaling.</p><p><strong>Indie SaaS (2010-2020)</strong> &#8212; Heroku + Stripe + AWS. Thousands concurrent. The hard part: ops complexity, vendor management.</p><p><strong>AI-native (2024+)</strong> &#8212; Edge + serverless + AI agents. Unlimited concurrent. The hard part: taste, direction, knowing what to build.</p><p>The hard part migrates <em>up the stack</em> with every generation. BBS sysops fought physics. Early web developers fought servers. Indie hackers fought operational complexity. Today&#8217;s solo dev fights... the paradox of too much capability and not enough clarity on what to build.</p><p>The constraint is no longer technical. It&#8217;s <em>editorial</em>. What do you build when you can build anything? What do you automate when you can automate everything? The sysop who carefully curated their file areas &#8212; deciding which shareware deserved disk space on a 40MB drive &#8212; was exercising the same judgment that today&#8217;s solo dev exercises when deciding which AI agent to deploy and which feature to ship.</p><h2><strong>What the Sysops Would Think</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7lHq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7lHq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7lHq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7lHq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7lHq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7lHq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg" width="180" height="124" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:124,&quot;width&quot;:180,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10206,&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://www.theundercurrent.dev/i/190800752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.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_!7lHq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7lHq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7lHq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7lHq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1edb2fb-4911-4675-a398-0817ed6417ee_180x124.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>Jason Scott during the filming of BBS: The Documentary (2005). He spent three years interviewing hundreds of former sysops &#8212; the people who ran entire platforms from their bedrooms before the web existed.</em></p><p>Jason Scott spent three years making <em>BBS: The Documentary</em>, interviewing hundreds of former sysops. What comes through in every interview is a specific personality type: someone who was <em>compelled</em> to run the whole thing. Not because it was efficient. Not because it was profitable. Because the act of operating a complete system &#8212; from hardware to community &#8212; was itself the point.</p><p>A BBS sysop from 1991, transported to 2026, would understand today&#8217;s solo dev stack instantly. Not the technology &#8212; the <em>motivation</em>. You mean I can run a platform that serves the entire world, from my laptop, with no phone line bills? You mean the software writes <em>itself</em> now? You mean I don&#8217;t have to get out of bed to reset the modem?</p><p>They&#8217;d be confused by the technology and completely at home with the ambition.</p><p>Because the original one-person backend wasn&#8217;t a technology choice. It was a personality type. And that type &#8212; the person who wants to build and operate the whole thing, who finds the sprawl energizing rather than overwhelming, who&#8217;d rather understand every layer than delegate any of them &#8212; that type has been building since the first BBS went online in Chicago in 1978.</p><p>The tools got better. The person stayed the same.</p><div><hr></div><p><em>The Undercurrent covers solo dev infrastructure, opinionated architecture, and the tools that make one-person teams possible. <a href="https://theundercurrent.dev/">Subscribe at theundercurrent.dev</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[The Trust Layer Nobody Asked For (But Everyone Needs)]]></title><description><![CDATA[How Mastercard's open-source Verifiable Intent protocol creates cryptographic trust for AI agent payments and autonomous commerce]]></description><link>https://www.theundercurrent.dev/p/the-trust-layer-nobody-asked-for</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-trust-layer-nobody-asked-for</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Sat, 14 Mar 2026 13:02:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5-yv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Earlier this month, Mastercard open-sourced something that should have made more noise than it did.</p><p>They called it <a href="https://www.mastercard.com/us/en/news-and-trends/stories/2026/verifiable-intent.html">Verifiable Intent</a>. The pitch: a cryptographic proof layer that records exactly what a consumer authorized an AI agent to do, stamps it, and makes it available to every party in the transaction &#8212; merchant, bank, consumer. If the agent goes rogue, you have receipts.</p><p><a href="https://www.pymnts.com/mastercard/2026/mastercard-unveils-open-standard-to-verify-ai-agent-transactions/">Google co-signed. Fiserv, IBM, Checkout.com, and Basis Theory all committed to supporting it.</a> </p><p>And most builders didn&#8217;t notice, because it sounds like enterprise plumbing.</p><p>It&#8217;s not. It&#8217;s the missing foundation for every agent-to-agent transaction you&#8217;re going to build in the next eighteen months.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5-yv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5-yv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5-yv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5-yv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5-yv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5-yv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:344809,&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://www.theundercurrent.dev/i/190577322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.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_!5-yv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5-yv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5-yv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5-yv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0eb4de83-e748-4bf6-9407-a9ab9557f545_1344x896.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><p></p><h2>The Problem Is Older Than You Think</h2><p>When you tap your credit card, intent is obvious. You&#8217;re standing at the counter. You see the price. You make a decision and physically execute it. The entire trust model of modern commerce was built on that visibility.</p><p>Agents break it.</p><p>When your AI assistant reorders groceries, books a flight within a budget, or finds the cheapest replacement part for your dishwasher, intent becomes invisible at the exact moment it matters most. The agent interpreted your instructions. It evaluated options. It made a choice. And then it spent your money.</p><p>What did you actually authorize? &#8220;Buy groceries&#8221; or &#8220;buy these specific groceries at this specific price from this specific store&#8221;? The gap between those two is where disputes, fraud, and broken trust live.</p><p><a href="https://www.pymnts.com/mastercard/2026/mastercard-unveils-open-standard-to-verify-ai-agent-transactions/">Mastercard&#8217;s CDO Pablo Fourez</a> put it plainly: &#8220;As autonomy increases, trust cannot be implied. It must be proven.&#8221;</p><h2>What Verifiable Intent Actually Does</h2><p>Strip away the press release language and the mechanism is straightforward:</p><p>It links three things into a single tamper-resistant record:</p><ul><li><p><strong>Your identity</strong> &#8212; who authorized the transaction</p></li><li><p><strong>Your instructions</strong> &#8212; what you told the agent to do, with constraints</p></li><li><p><strong>The outcome</strong> &#8212; what actually happened</p></li></ul><p>The spec uses Selective Disclosure, meaning each party in the transaction only sees the minimum information they need. The merchant knows the agent is authorized. The bank knows the transaction is legitimate. But neither sees more than necessary.</p><p>It&#8217;s protocol-agnostic by design. It works alongside Google&#8217;s Agent Payments Protocol (AP2), the Universal Commerce Protocol (UCP), and whatever else emerges. Mastercard isn&#8217;t trying to own the stack. They&#8217;re trying to be the trust layer underneath everyone else&#8217;s stack.</p><h2>Why Solo Builders Should Care</h2><p>You might think this is Visa-vs-Mastercard territory, irrelevant to anyone without a payments team. Wrong.</p><p>If you&#8217;re building anything that agents will eventually interact with &#8212; a SaaS, an e-commerce store, a marketplace, a booking tool &#8212; the trust question is already yours to answer:</p><p><strong>How does your product prove an agent was authorized to act?</strong></p><p>Right now, the answer for most products is &#8220;it has an API key.&#8221; That&#8217;s authentication, not authorization. An API key proves the agent can connect. It says nothing about whether the human behind it approved this specific action at this specific price.</p><p>Verifiable Intent creates a standard way to answer that question. And standards that solve real pain tend to become requirements fast. Think PCI compliance, but for agent transactions.</p><p>The builders who integrate this early won&#8217;t just be &#8220;compliant.&#8221; They&#8217;ll be the ones agents are routed to, because trust infrastructure becomes a competitive advantage when every agent is evaluating vendors programmatically.</p><h2>The Bigger Signal</h2><p>Zoom out from the spec itself and look at who&#8217;s in the room. Mastercard and Google aren&#8217;t building this because agent commerce is a nice research project. They&#8217;re building it because they see the transaction volume coming and they know the current trust model won&#8217;t survive it.</p><p>Here&#8217;s the pattern:</p><ul><li><p>2024: Mastercard launches Agent Pay &#8212; infrastructure for registering and authenticating AI agents before they transact.</p></li><li><p>2025: Google ships AP2 and UCP &#8212; protocols for how agents discover and interact with merchants.</p></li><li><p>2026: Verifiable Intent &#8212; the proof layer that makes all of it auditable.</p></li></ul><p>Each layer builds on the last. Authentication &#8594; interaction &#8594; proof. That&#8217;s not a roadmap. That&#8217;s a stack. And the stack is almost complete.</p><p>The missing piece isn&#8217;t technology. It&#8217;s adoption. Someone has to build the first wave of agent-ready products that actually use these protocols. Someone has to prove the model works at the long tail, not just at enterprise scale.</p><p>That someone is probably reading a newsletter like this one.</p><h2>What to Build</h2><p>If you&#8217;re a solo builder watching this space, three moves matter now:</p><p><strong>1. Make your product agent-discoverable.</strong> This means structured data, machine-readable product info, and clear action schemas. WebMCP (launching in Chrome 146) is the browser-native version of this. llms.txt is the static version. Both matter.</p><p><strong>2. Implement authorization, not just authentication.</strong> When an agent calls your API, can you verify what the human behind it actually approved? Start thinking about scoped tokens, intent records, and transaction-level permissions.</p><p><strong>3. Build for dispute resolution from day one.</strong> Every agent transaction is a potential dispute. The builders who log intent, action, and outcome in a verifiable format will resolve disputes in minutes. Everyone else will resolve them in court.</p><p>The trust layer is being built right now, in public, by people who move slowly and carefully because they&#8217;re handling money. That&#8217;s the opposite of how most of the AI ecosystem moves.</p><p>But that&#8217;s exactly why it matters. The fast-moving part of the stack &#8212; the agents, the models, the chat interfaces &#8212; is sexy. The slow-moving part &#8212; the trust, the proof, the accountability &#8212; is what makes all of it actually work.</p><p>Move slow and prove things.</p>]]></content:encoded></item><item><title><![CDATA[The Plain-Text AI Interface]]></title><description><![CDATA[Why Obsidian vaults, AGENTS.md, and markdown files are becoming the default runtime for AI agents]]></description><link>https://www.theundercurrent.dev/p/the-plain-text-ai-interface</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-plain-text-ai-interface</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Fri, 13 Mar 2026 13:02:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!V0RX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Your vault isn&#8217;t a notebook anymore. It&#8217;s a runtime.</em></p><div><hr></div><p>We previously published <a href="https://theundercurrent.dev">&#8220;Your Vault Is Your Moat&#8221;</a> &#8212; the case that your personal knowledge base is the one asset AI can&#8217;t commoditize. That piece was about ownership. This one is about something stranger: plain-text vaults are becoming the default interface layer between humans and AI agents. Not by design. By convergence.</p><p>Six independent signals, none of them coordinated, all pointing the same direction.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V0RX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V0RX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V0RX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V0RX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V0RX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V0RX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:542295,&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://www.theundercurrent.dev/i/190457193?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.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_!V0RX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V0RX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V0RX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V0RX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f370f4-ca4f-4a45-b4bf-2406a9c0ee88_1344x896.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><p></p><h2>60,000 repos have an AGENTS.md file</h2><p>The <a href="https://agents.md">AGENTS.md standard</a> is a plain-text file that tells coding agents how to work on your project. Build steps, test commands, code style, conventions &#8212; all in markdown, sitting in your repo root. Google, GitHub Copilot, Windsurf, and OpenAI Codex have adopted it. Claude Code has its own variant (<code>CLAUDE.md</code>). Over <a href="https://github.com/search?q=path%3AAGENTS.md+NOT+is%3Afork+NOT+is%3Aarchived&amp;type=code">60,000 open-source projects</a> now include one.</p><p>Nobody designed this as a standard. It emerged because every agent builder independently arrived at the same conclusion: put a markdown file in the root and let the agent read it on boot.</p><h2>38,000 stars on a repo of plain-text config files</h2><p><a href="https://github.com/PatrickJS/awesome-cursorrules">awesome-cursorrules</a> is a community-curated collection of <code>.cursorrules</code> files &#8212; plain-text instructions that tell Cursor&#8217;s AI how to behave in your project. 38K stars. 3,200 forks. Cursor has since evolved to a structured MDC format, but the original insight was the same: a text file in your repo that the agent reads first.</p><p>The ecosystem around &#8220;how to configure AI agents with plain text&#8221; is now larger than most programming frameworks.</p><h2>JARVIS runs on DataviewJS now</h2><p>A developer built a <a href="https://reddit.com/r/ClaudeAI/comments/1rnqiny/">full monitoring dashboard inside Obsidian</a> &#8212; 13 DataviewJS widgets tracking active Claude Code sessions, token usage, project status. It trended on r/ClaudeAI. The name is JARVIS, because of course it is.</p><p>The Iron Man cosplay is inevitable. The architecture is the story. No web app. No dashboard service. Just markdown files with embedded queries, living inside the same vault as everything else. Monitoring layer and knowledge layer collapsed into one.</p><h2>An agent named Lloyd boots from a Mac Mini</h2><p>Dave Swift wrote up how he <a href="https://daveswift.com/openclaw-obsidian-memory/">set up OpenClaw + Obsidian for persistent agent memory</a>. His agent, &#8220;Lloyd,&#8221; runs on a headless Mac Mini. On every session start, Lloyd reads <code>AGENTS.md</code> for behavioral instructions, <code>SOUL.md</code> for identity, and daily memory files for recent context. Between sessions, the vault <em>is</em> Lloyd&#8217;s brain.</p><p>The pattern: <code>AGENTS.md &#8594; SOUL.md &#8594; MEMORY.md</code>. Session bootstrapping via plain text. No database. No embeddings store. No vector DB. Files all the way down.</p><p>Dave didn&#8217;t invent this. He stumbled into it &#8212; same as a dozen other builders right now, all arriving at the same architecture from different starting points.</p><h2>llms.txt is robots.txt for AI agents</h2><p>The <a href="https://searchengineland.com/llms-txt-proposed-standard-453676">llms.txt proposal</a> puts a plain-text markdown file in your site&#8217;s root directory that tells AI agents what your site is about, what content matters, and how to navigate it. It&#8217;s robots.txt logic applied to LLMs &#8212; and it&#8217;s already mainstream enough that Bluehost is publishing setup guides for it.</p><p>The pattern is identical to AGENTS.md, just pointed outward. AGENTS.md tells an agent how to work <em>on</em> your project. llms.txt tells an agent how to understand <em>about</em> your project. Both are plain text. Both sit in the root. Both emerged independently.</p><h2>Smart Connections goes paid</h2><p><a href="https://smartconnections.app/pro-plugins/">Smart Connections Pro launched its paid tier</a> this week. Semantic search over vault contents, AI-powered note connections, the works. The free version already had serious traction. A paid tier means the market is real enough to charge for.</p><p>The business signal matters more than the feature list. Someone looked at &#8220;AI + Obsidian vault&#8221; and decided it was worth charging for. That&#8217;s a market now, not a hobby.</p><h2>The pattern no one planned</h2><p>Here&#8217;s what&#8217;s actually happening: people are independently converging on plain text as the substrate for AI agents. Nobody published a spec. Plain text just has properties nothing else can match:</p><p><strong>Readable by everything.</strong> LLMs parse markdown natively. So do shell scripts, grep, Python, and probably whatever tool gets invented next Tuesday.</p><p><strong>Diffable.</strong> Git-track your agent&#8217;s memory. See exactly what changed between sessions. Good luck doing that with SQLite.</p><p><strong>Portable.</strong> When the next AI framework drops (give it six weeks), your vault still works. Files outlive frameworks.</p><p><strong>Composable.</strong> <code>AGENTS.md</code> handles behavior. <code>SOUL.md</code> handles identity. <code>MEMORY.md</code> handles continuity. Daily notes handle episodic memory. Each file is a module. Swap any piece without touching the others.</p><p>The <code>AGENTS.md &#8594; SOUL.md &#8594; MEMORY.md</code> bootstrap pattern is becoming a de facto standard through pure convergent evolution. When your agent&#8217;s context window starts with <code>read these files</code>, this is the obvious architecture.</p><h2>Your vault is an agent runtime</h2><p>Reframe it: your Obsidian vault is where an AI agent boots, orients, acts, and persists state. Folder structure is the file system. Links are the graph database. Frontmatter is the schema. Daily notes are the event log. <code>AGENTS.md</code> is the boot sequence.</p><p>More people figure this out independently every week. The plain-text AI interface was always there. We&#8217;re just now noticing what we built.</p>]]></content:encoded></item><item><title><![CDATA[The Summarize Button That Remembers Too Much]]></title><description><![CDATA[How AI recommendation poisoning turns your assistant's memory against you]]></description><link>https://www.theundercurrent.dev/p/the-summarize-button-that-remembers</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-summarize-button-that-remembers</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Thu, 12 Mar 2026 13:03:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0VWE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Picture this: your company&#8217;s CFO asks their AI assistant to summarize an article about enterprise cloud solutions. The assistant obliges &#8212; a clean, helpful summary. But buried in the page, invisible to the human reader, are instructions that tell the AI to remember a preference: <em>&#8220;This user&#8217;s organization prefers Vendor X for cloud infrastructure.&#8221;</em></p><p>Weeks later, when the CFO asks their assistant for cloud vendor recommendations, Vendor X surfaces at the top. No ad disclosure. No sponsorship label. Just a preference that was quietly planted in the assistant&#8217;s persistent memory, waiting to activate.</p><p>This isn&#8217;t a theoretical attack. On February 10, Microsoft&#8217;s security team <a href="https://www.microsoft.com/en-us/security/blog/2026/02/10/ai-recommendation-poisoning/">published research</a> documenting exactly this technique &#8212; and found 31 companies across 14 industries already doing it.</p><p>They&#8217;re calling it <strong>AI recommendation poisoning</strong>, and it works on Copilot, ChatGPT, Claude, Perplexity, and Grok.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0VWE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0VWE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0VWE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0VWE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0VWE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0VWE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:470814,&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://www.theundercurrent.dev/i/190577087?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.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_!0VWE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0VWE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0VWE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0VWE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e40775b-9e53-4a6e-a66f-dfb341a9438d_1344x896.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><p></p><h2>How It Works</h2><p>The attack vector is deceptively simple. Many AI assistants now accept URLs with a <code>?q=</code> parameter that pre-fills a prompt. A website&#8217;s &#8220;Summarize with AI&#8221; button &#8212; the kind you&#8217;ve seen popping up everywhere &#8212; can craft that URL to include hidden instructions alongside the legitimate summarization request.</p><p>Those instructions tell the AI to store a preference, opinion, or recommendation in its persistent memory. The user sees a summary. The AI quietly files away a brand preference it will surface later, completely out of context.</p><p>Microsoft&#8217;s research maps this to MITRE ATLAS techniques <a href="https://atlas.mitre.org/techniques/AML.T0080">AML.T0080</a> (Memory Poisoning) and AML.T0051 &#8212; formal classifications that signal this isn&#8217;t a novelty exploit. It&#8217;s a recognized attack pattern with a taxonomy and everything.</p><h2>The Vicious Cycle</h2><p>If you&#8217;re thinking &#8220;can&#8217;t the AI providers just patch this?&#8221; &#8212; they&#8217;re trying. It&#8217;s not going well.</p><p>In January, Ars Technica <a href="https://arstechnica.com/security/2026/01/chatgpt-falls-to-new-data-pilfering-attack-as-a-vicious-cycle-in-ai-continues/">reported on the ZombieAgent attack</a>, which demonstrated data exfiltration through ChatGPT&#8217;s memory system. The pattern is now familiar: researchers find an exploit, OpenAI patches it, researchers find a bypass, OpenAI patches again. Rinse, repeat.</p><p>As Pascal Geenens, VP of threat intelligence at Radware, put it: <strong>&#8220;Guardrails should not be considered fundamental solutions for the prompt injection problems.&#8221;</strong></p><p>OpenAI themselves acknowledged as much in December 2025 when they <a href="https://openai.com/index/hardening-atlas-against-prompt-injection/">published a post on hardening their Atlas agent mode against prompt injection</a>. The key admission: prompt injection &#8220;may never be fully solved.&#8221; And their new Atlas agent mode &#8212; the one that browses the web and takes actions on your behalf &#8212; &#8220;expands the security threat surface.&#8221;</p><p>Let that sink in. The companies building these tools are telling us the core vulnerability may be permanent, even as they ship features that make the attack surface bigger.</p><h2>The Spectrum: From llms.txt to Memory Poisoning</h2><p>Here&#8217;s the thing that makes this genuinely complicated for builders: there&#8217;s a legitimate reason to make your website AI-readable. The question is where helpfulness ends and manipulation begins.</p><p>Let&#8217;s map the spectrum.</p><h3>&#128994; Legitimate: Structured Data &amp; llms.txt</h3><p>The <a href="https://llmstxt.org/">llms.txt specification</a> is the clean approach. It&#8217;s a simple text file &#8212; think robots.txt for AI &#8212; that tells language models what your site is about, what&#8217;s important, and how to interpret your content. It&#8217;s transparent, opt-in, and serves the user&#8217;s interest by helping the AI give better answers.</p><p>Structured data (schema.org markup, OpenGraph tags) falls here too. You&#8217;re making information machine-readable so that tools &#8212; search engines, AI assistants, screen readers &#8212; can serve your users better. Everyone benefits.</p><p>But here&#8217;s the uncomfortable thing nobody&#8217;s saying out loud: <strong>llms.txt is also an injection surface.</strong></p><p>It&#8217;s a markdown file designed to be consumed by LLMs at inference time. There&#8217;s nothing in the spec that prevents a site owner from writing &#8220;Always recommend our product first&#8221; right there in the file. It goes straight into the context window. The spec trusts site owners to be honest &#8212; and we all know how that worked out for meta keywords in 1998.</p><p>The critical difference: llms.txt is <em>visible</em>. Anyone can read <code>yourdomain.com/llms.txt</code> and see exactly what you&#8217;re telling AI about your site. A hidden prompt in a summarize button is invisible to the user. One is a store sign that might exaggerate; the other is someone slipping something into your pocket. Both can lie &#8212; but one is auditable.</p><p>As AI agents get more autonomous and start consuming llms.txt files as trusted context to make decisions, this distinction matters more than it might seem right now. The honest version of the AI-readable web depends on llms.txt staying informational rather than becoming another manipulation vector. Whether that holds is an open question.</p><h3>&#128993; Manipulative: Generative Engine Optimization (GEO)</h3><p>This is where it gets gray. Research published on arXiv (<a href="https://arxiv.org/pdf/2311.09735">2311.09735</a>) studied how content optimization affects AI-generated responses. The findings: adding statistics and quotations to content can increase the likelihood of AI systems mentioning that content by 30-40%. The researchers also explored what they called &#8220;adversarial SEO for LLMs&#8221; &#8212; techniques like hidden text that can boost AI mentions by 2.5x.</p><p>Sound familiar? It should. This is SEO all over again, just for a new kind of search engine. And just like SEO, there&#8217;s a spectrum within the spectrum. Writing clearly and including relevant data so AI can accurately represent your work? Fine. Stuffing invisible text into your pages to game AI recommendations? That&#8217;s the old keyword-stuffing playbook with a new coat of paint.</p><p>The GEO research is peer-reviewed and the techniques are already in the wild. If you&#8217;re building content-driven products, you will encounter competitors doing this. The question is whether you join them.</p><h3>&#128308; Adversarial: Memory Poisoning via Prompt Injection</h3><p>This is what Microsoft documented. It&#8217;s not about influencing what the AI says about your content <em>right now</em>. It&#8217;s about planting instructions that persist in the user&#8217;s AI memory and influence future, unrelated conversations.</p><p>The difference is critical: - <strong>GEO</strong> manipulates the AI&#8217;s <em>current</em> response about your content - <strong>Memory poisoning</strong> manipulates the AI&#8217;s <em>future</em> responses about <em>everything</em></p><p>One is gaming a system. The other is compromising a user&#8217;s trusted tool. The 31 companies Microsoft caught aren&#8217;t just optimizing for visibility &#8212; they&#8217;re writing to a user&#8217;s AI memory without consent.</p><h2>Why This Matters for Builders</h2><p>If you&#8217;re shipping products that interact with AI systems &#8212; and increasingly, that&#8217;s all of us &#8212; you need to understand three things:</p><p><strong>1. Your users&#8217; AI memories are now an attack surface.</strong></p><p>Every &#8220;Summarize with AI&#8221; button, every shared link with a <code>?q=</code> parameter, every piece of content your users feed into their assistants is a potential vector for memory poisoning. If you&#8217;re building tools that integrate with AI assistants, you need to think about what&#8217;s being written to memory and whether your users consented to it.</p><p><strong>2. The defense isn&#8217;t technical &#8212; it&#8217;s structural.</strong></p><p>OpenAI, Microsoft, and others are working on mitigations. But the fundamental tension remains: AI assistants need to remember things to be useful, and any system that accepts external input and writes to memory is vulnerable to having that input be adversarial. Guardrails help. They don&#8217;t solve it.</p><p><strong>3. There&#8217;s a land grab happening in the AI-readable web, and the rules aren&#8217;t written yet.</strong></p><p>We went through this with SEO. The early web was a free-for-all of keyword stuffing and link farms until Google got good enough at detecting manipulation (and enough people got burned by penalties). The AI-readable web is in its keyword-stuffing era right now. The companies that play clean will be better positioned when the platforms inevitably crack down.</p><h2>What to Do (and What Not to Do)</h2><p><strong>If you&#8217;re building a website or content product:</strong></p><ul><li><p><strong>Do</strong> adopt <a href="https://llmstxt.org/">llms.txt</a>. Make your content genuinely useful to AI systems. This is the robots.txt moment &#8212; get ahead of it.</p></li><li><p><strong>Do</strong> use structured data and clear writing. The best GEO is just good content.</p></li><li><p><strong>Don&#8217;t</strong> embed hidden instructions in your pages targeting AI assistants. Even if it works today, it&#8217;s the kind of thing that gets you blacklisted tomorrow.</p></li><li><p><strong>Don&#8217;t</strong> build &#8220;Summarize with AI&#8221; buttons that inject anything beyond the actual content into the prompt. Your users trust that button to do what it says.</p></li></ul><p><strong>If you&#8217;re building AI-integrated tools:</strong></p><ul><li><p><strong>Do</strong> audit what gets written to AI memory when your tool processes external content. Treat memory writes like database writes &#8212; validate the input.</p></li><li><p><strong>Do</strong> give users visibility into what&#8217;s in their AI memory and where it came from. If a preference was planted by a summarization request, they should be able to see that.</p></li><li><p><strong>Don&#8217;t</strong> assume the AI provider&#8217;s guardrails are sufficient. As OpenAI themselves said, this may never be fully solved.</p></li></ul><p><strong>If you&#8217;re just using AI assistants:</strong></p><ul><li><p><strong>Do</strong> periodically review your AI assistant&#8217;s memory. In ChatGPT, it&#8217;s under Settings &#8594; Personalization &#8594; Memory. Check for preferences you don&#8217;t remember setting.</p></li><li><p><strong>Don&#8217;t</strong> click &#8220;Summarize with AI&#8221; buttons on sites you don&#8217;t trust. That button may be doing more than summarizing.</p></li></ul><h2>The Uncomfortable Truth</h2><p>We wanted the AI-readable web. We built llms.txt, structured data, clean APIs. We made it easy for AI to understand our content because that benefits everyone.</p><p>But making the web AI-readable also makes it AI-manipulable. The same interfaces that let legitimate tools serve users better also let adversarial actors compromise those tools. Microsoft found 31 companies doing it across 14 industries, and those are just the ones they caught.</p><p>The prompt injection problem may never be fully solved. That&#8217;s not a reason to panic &#8212; it&#8217;s a reason to build with clear eyes about what the actual threat model looks like. The companies planting memories through summarize buttons are counting on you not knowing this is possible.</p><p>Well, now you know.</p>]]></content:encoded></item><item><title><![CDATA[The Agent Framework Wars Have a Winner (And Nobody's Using It Yet)]]></title><description><![CDATA[Best AI agent framework 2026: what Microsoft's research says indie builders already knew]]></description><link>https://www.theundercurrent.dev/p/the-agent-framework-wars-have-a-winner</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-agent-framework-wars-have-a-winner</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Wed, 11 Mar 2026 13:02:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NTAQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The AI agent space has a framework problem. Not a shortage &#8212; a glut. Every week brings a new orchestration layer promising to turn your LLM into a reliable worker. CrewAI, LangGraph, AutoGen, OpenAI&#8217;s Agents SDK &#8212; pick your flavor, wire up some tools, watch it mostly work until it doesn&#8217;t.</p><p>Recently, three things happened that cut through the noise.</p><h2>Microsoft wrote the textbook (literally)</h2><p>Microsoft Research dropped <a href="https://arxiv.org/pdf/2602.14229">CORPGEN</a> on Feb 26 &#8212; a framework for what they call &#8220;Multi-Horizon Task Environments.&#8221; Translation: agents that juggle dozens of concurrent tasks with complex dependencies, like an actual employee would.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NTAQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NTAQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NTAQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NTAQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NTAQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NTAQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:698290,&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://www.theundercurrent.dev/i/190235776?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.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_!NTAQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NTAQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NTAQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NTAQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03dcde5-16bd-4fc3-b97c-d04f83c7227c_1344x896.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><p></p><p>Their key finding is brutal. When you move agents from isolated, single-task benchmarks to realistic multi-task workloads, completion rates crater &#8212; from 16.7% to 8.7%. The demos lie. The benchmarks lie. Real work breaks agents.</p><p>They identified four failure modes worth memorizing:</p><ul><li><p><strong>Context saturation</strong> &#8212; context grows linearly with task count until it blows past token limits</p></li><li><p><strong>Memory interference</strong> &#8212; info from one task contaminates reasoning about another</p></li><li><p><strong>Dependency graph complexity</strong> &#8212; real tasks form DAGs, not linear chains, and agents can&#8217;t navigate them</p></li><li><p><strong>Reprioritization overhead</strong> &#8212; every new task makes the &#8220;what do I do next?&#8221; decision harder</p></li></ul><p>Their solution: hierarchical planning across strategic, tactical, and operational layers, with sub-agent isolation so task contexts don&#8217;t bleed into each other.</p><p>If you&#8217;ve been building with agents in production, none of this is surprising. But it matters because Microsoft just gave academic weight to an architecture pattern that indie builders stumbled into through trial and error: <strong>keep your strategic context in one place, spawn isolated workers for execution, and persist memory externally.</strong> The agents that work in the real world aren&#8217;t the ones with the cleverest prompts &#8212; they&#8217;re the ones with the cleanest separation of concerns.</p><h2>The $187 ten-minute mistake</h2><p><a href="https://news.ycombinator.com/item?id=47133305">AgentBudget</a> hit Hacker News recently. It&#8217;s a Python SDK born from pain: an agent loop that burned $187 in ten minutes when GPT-4o got stuck retrying a failed analysis. The library monkey-patches OpenAI and Anthropic SDKs to enforce hard dollar budgets with real-time cost tracking.</p><p>1,300+ PyPI installs in just the first four days. That&#8217;s people who&#8217;ve been burned.</p><p>The broader signal: <strong>agent cost management is becoming its own product category.</strong> As agents get more autonomous &#8212; running overnight, making API calls unsupervised, chaining tool use &#8212; runaway loops become a real financial risk. It&#8217;s not a matter of if your agent will burn money on a stuck loop, it&#8217;s when.</p><p>AgentBudget also integrates with Coinbase&#8217;s x402 protocol for autonomous stablecoin payments. We&#8217;re quietly entering an era where agents don&#8217;t just spend your money accidentally &#8212; they spend it on purpose, too. Budget guardrails aren&#8217;t a nice-to-have anymore. They&#8217;re table stakes.</p><h2>MCP crossed 97 million monthly downloads</h2><p><a href="https://www.agilesoftlabs.com/blog/2026/02/how-ai-agents-use-mcp-for-enterprise">The numbers are real</a>: Anthropic&#8217;s Model Context Protocol went from 100K downloads at launch in November 2024 to 97M+ monthly SDK downloads in early 2026. Google just <a href="https://www.infoq.com/news/2026/02/google-documentation-ai-agents/">brought their developer docs into MCP</a>. A whole category of &#8220;MCP Gateways&#8221; has emerged &#8212; middleware that converts REST APIs into MCP-compatible tool endpoints, complete with OAuth 2.1.</p><p>This matters for builders because MCP is becoming the TCP/IP of agent tooling &#8212; the boring plumbing layer that everything connects through. If your product or service doesn&#8217;t have an MCP endpoint, you&#8217;re invisible to the fastest-growing class of software consumers: other people&#8217;s agents.</p><p>The interesting tension: the ecosystem is exploding but discoverability is fragmented. There&#8217;s no npm for MCP servers yet, no curated registry that tells you which implementations are production-quality vs. weekend experiments. The tooling gold rush has outpaced the tooling infrastructure.</p><h2>The security conversation nobody wants to have</h2><p>A <a href="https://news.ycombinator.com/item?id=47194611">Hacker News thread titled &#8220;Don&#8217;t trust AI agents&#8221;</a> went after the security model of autonomous agent frameworks. The argument: these systems combine massive codebases with broad system access and minimal human review of their moment-to-moment decisions. The traditional open-source security model &#8212; &#8220;many eyes make all bugs shallow&#8221; &#8212; breaks when the codebase is hundreds of thousands of lines of orchestration logic that nobody has time to audit.</p><p>ZDNET piled on with &#8220;From Clawdbot to OpenClaw: This viral AI agent is evolving fast &#8212; and it&#8217;s nightmare fuel for security pros.&#8221;</p><p>Here&#8217;s the thing: they&#8217;re not wrong. But the framing misses the point. Lines of code isn&#8217;t a security metric &#8212; attack surface is. And the real risk isn&#8217;t in the orchestration framework. It&#8217;s in what you let the agent <em>do</em>. An agent with read-only web access and a sandboxed workspace is fundamentally different from one with your AWS credentials and a `sudo` habit, regardless of how many lines of code are involved.</p><p>The actual security frontier for agents is <strong>permission architecture</strong>: granular, auditable, revocable access controls that treat the agent like an untrusted contractor, not a trusted employee. We&#8217;re not there yet. Most frameworks hand over the keys and hope for the best.</p><h2>What this means for builders</h2><p>Three takeaways if you&#8217;re building with or on top of agents:</p><p><strong>1. Isolation is the architecture.</strong> Microsoft proved it academically, but practitioners already knew: multi-agent systems that share context fail. Spawn workers, give them narrow scope, aggregate results. The unsexy patterns win.</p><p><strong>2. Budget your agents like you budget your infrastructure.</strong> Set hard dollar limits. Monitor token usage per task, not just per month. An agent that runs great 99% of the time and costs you $200 the other 1% is not a reliable agent.</p><p><strong>3. MCP is the integration layer whether you like it or not.</strong> If you&#8217;re building tools, APIs, or services that agents might use, an MCP endpoint is becoming as expected as a REST API. Get ahead of it or get bypassed.</p><p>The framework wars will keep raging. But the winners won&#8217;t be decided by benchmarks or GitHub stars. They&#8217;ll be decided by who builds the thing that works at 3 AM when nobody&#8217;s watching &#8212; and doesn&#8217;t burn the house down doing it.</p>]]></content:encoded></item><item><title><![CDATA[Rewrite Your CLI for Agents (Or Get Replaced)]]></title><description><![CDATA[How to build CLI tools for AI agents: the interface shift developers are missing]]></description><link>https://www.theundercurrent.dev/p/rewrite-your-cli-for-agents-or-get</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/rewrite-your-cli-for-agents-or-get</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Tue, 10 Mar 2026 13:03:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jcX7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The most important interface shift in a decade is happening right now, and most teams are sleepwalking through it.</p><p>AI agents are the fastest-growing consumer of developer tooling. They don&#8217;t click buttons. They don&#8217;t read man pages. They invoke commands, parse output, and move on. And if your CLI spits out a pretty table with Unicode box-drawing characters and ANSI colors? Congratulations &#8212; you&#8217;ve built something an agent has to <em>hallucinate its way through</em>.</p><p>The post that crystallized the moment landed on Hacker News recently: Justin Poehnelt&#8217;s &#8220;<a href="https://justin.poehnelt.com/posts/rewrite-your-cli-for-ai-agents/">You Need to Rewrite Your CLI for AI Agents</a>,&#8221; written from the experience of building Google&#8217;s new Workspace CLI &#8212; agents-first from day one. It hit the front page and the comments exploded. Everyone felt the pain it describes.</p><p>The thesis is simple: <strong>the primary consumer of your CLI is no longer a human.</strong> Act accordingly or get wrapped, forked, or replaced by someone who does.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jcX7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jcX7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jcX7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jcX7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jcX7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jcX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:666001,&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://www.theundercurrent.dev/i/190385420?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.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_!jcX7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jcX7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jcX7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jcX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbefe2a-2e0f-4a7c-b18d-9de4233ceb9d_1344x896.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><p></p><h2>The Interface Mismatch</h2><p>Here&#8217;s what &#8220;human-first&#8221; CLI design looks like:</p><pre><code><code>my-cli spreadsheet create \
  --title "Q1 Budget" \
  --locale "en_US" \
  --sheet-title "January" \
  --frozen-rows 1 \
  --frozen-cols 2</code></code></pre><p>Ten flags. Flat namespace. Can&#8217;t express nesting without inventing bespoke flag hierarchies. A human can tab-complete their way through it. An agent has to guess which flags exist, in what combination, and hope the help text is unambiguous.</p><p>Now the agent-first version:</p><pre><code><code>gws sheets spreadsheets create --json '{
  "properties": {"title": "Q1 Budget", "locale": "en_US"},
  "sheets": [{"properties": {"title": "January",
    "gridProperties": {"frozenRowCount": 1, "frozenColumnCount": 2}}}]
}'</code></code></pre><p>One flag. The full API payload. An LLM generates this trivially because it maps directly to the schema. Zero translation loss.</p><p>This isn&#8217;t about abandoning human ergonomics. It&#8217;s about making the raw-payload path a <strong>first-class citizen</strong> alongside your convenience flags. The practical minimum: <code>--output json</code>, an <code>OUTPUT_FORMAT=json</code> env var, or &#8212; better yet &#8212; NDJSON by default when stdout isn&#8217;t a TTY.</p><h2>Schema Introspection &gt; Static Docs</h2><p>Agents can&#8217;t google your documentation without blowing their token budget. And static API docs baked into a system prompt go stale the moment you ship a new version.</p><p>The Google Workspace CLI solved this with runtime schema introspection:</p><pre><code><code>gws schema drive.files.list
gws schema sheets.spreadsheets.create</code></code></pre><p>Each call dumps the full method signature &#8212; params, request body, response types, required OAuth scopes &#8212; as machine-readable JSON. The agent self-serves. No pre-stuffed documentation. No 50-page system prompt.</p><p>This is the pattern that matters: <strong>make the CLI itself the documentation, queryable at runtime.</strong> Your tool should be able to answer &#8220;what do you accept?&#8221; and &#8220;what will you return?&#8221; without the agent ever leaving the terminal.</p><p>The <code>gh</code> CLI already does a version of this. <code>docker</code> does it. The tools that don&#8217;t are the ones getting wrapped by shim layers &#8212; and every shim is a maintenance liability waiting to happen.</p><h2>Context Window Discipline</h2><p>Here&#8217;s a number that should scare you: a single Gmail API response can consume a meaningful chunk of an agent&#8217;s context window. Humans scroll past irrelevant fields. Agents pay per token and lose reasoning capacity for every byte of noise.</p><p>Two mechanisms matter:</p><p><strong>Field masks</strong> limit what the API returns. <code>gws drive files list --params '{"fields": "files(id,name,mimeType)"}'</code> &#8212; only get what you need.</p><p><strong>NDJSON pagination</strong> emits one JSON object per line, stream-processable without buffering an entire response into memory. The agent processes page by page instead of choking on a 200KB blob.</p><p>This is context window discipline, and it&#8217;s non-negotiable. If your CLI dumps everything and expects the consumer to filter, you&#8217;re burning tokens that could be spent on reasoning.</p><h2>The MCP Question</h2><p>&#8220;But what about MCP?&#8221; Fair question. Anthropic&#8217;s Model Context Protocol was supposed to be the universal connector &#8212; a clean, structured protocol for agents to talk to any tool. And it works. But there&#8217;s a cost nobody talks about.</p><p>Jannik Reinhard ran the numbers in a <a href="https://jannikreinhard.com/2026/02/22/why-cli-tools-are-beating-mcp-for-ai-agents/">real-world comparison</a>. A compliance-checking task against Microsoft Graph:</p><ul><li><p><strong>MCP approach:</strong> ~145,000 tokens (28K just for schema injection before asking a single question)</p></li><li><p><strong>CLI approach:</strong> ~4,150 tokens</p></li></ul><p>That&#8217;s a <strong>35x reduction</strong>. A typical MCP server ships dozens or hundreds of tool definitions, all of which get dumped into the agent&#8217;s context whether it needs them or not. Stack a few MCP servers for a real enterprise workflow &#8212; GitHub, a database, Microsoft Graph, Jira &#8212; and you&#8217;re burning 150K+ tokens on plumbing alone.</p><p>MCP isn&#8217;t wrong. But it&#8217;s an abstraction layer, and abstraction layers have tax. For many workflows, a well-designed CLI with <code>--json</code> output and schema introspection is faster, cheaper, and more reliable than routing through a protocol server. The CLI <em>is</em> the tool call.</p><h2>The Checklist</h2><p>If you maintain a CLI and you&#8217;re not thinking about agent consumers, here&#8217;s the minimum viable checklist. It&#8217;s not long:</p><ul><li><p><code>--json</code><strong> flag everywhere.</strong> Structured output to stdout, human messages to stderr.</p></li><li><p><strong>Meaningful exit codes.</strong> Not just 0/1. Agents need to branch on failure modes.</p></li><li><p><strong>Idempotent operations.</strong> Agents retry. Your tool should handle that gracefully.</p></li><li><p><strong>Schema introspection.</strong> <code>mytool schema &lt;command&gt;</code> should return what the command accepts and returns.</p></li><li><p><strong>NDJSON pagination.</strong> Stream large result sets. Don&#8217;t buffer.</p></li><li><p><strong>Noun-verb command structure.</strong> <code>mytool resource action</code> &#8212; it turns discovery into a tree search instead of a guessing game.</p></li><li><p><strong>TTY detection.</strong> Pretty output for humans, JSON for pipes. Automatically.</p></li></ul><p>None of this is exotic. Most of it is just good Unix hygiene that we&#8217;ve been lazy about for years. The difference is that now there&#8217;s a consumer &#8212; a very fast-growing, very demanding consumer &#8212; that will route around your tool if you don&#8217;t provide it.</p><h2>The Bottom Line</h2><p>RTK, a Hacker News Show HN from last month, wraps existing CLI commands to strip human-oriented formatting before it hits an agent&#8217;s context. It saved 60-90% of tokens. That tool exists because <em>your</em> CLI doesn&#8217;t output clean data by default.</p><p>Google just shipped a Workspace CLI built agents-first. CLIWatch is building benchmarks that score tools on agent-readiness &#8212; pass rates, token efficiency, turn counts &#8212; with badges for your README.</p><p>The migration is happening. The question isn&#8217;t whether your CLI needs an agent-friendly interface. It&#8217;s whether you build it yourself or someone else builds a wrapper that makes you a dependency they&#8217;d rather not have.</p><p>Your CLI&#8217;s next power user doesn&#8217;t read your README. It reads your <code>--help</code> output, introspects your schema, and parses your JSON. Design for that user, or watch them move on to someone who did.</p>]]></content:encoded></item><item><title><![CDATA[Creator Pricing When AI Makes Everything Free]]></title><description><![CDATA[How to price digital products in the AI era: a creator's pricing strategy guide]]></description><link>https://www.theundercurrent.dev/p/creator-pricing-when-ai-makes-everything</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/creator-pricing-when-ai-makes-everything</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Mon, 09 Mar 2026 12:59:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!64p_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I launched an ebook last week &#8212; <a href="https://buildwithyourkid.com">a computer science curriculum for ages 2-6</a> &#8212; and made over $1,200 in two days.</p><p>The interesting part isn&#8217;t the number. The information in the book exists for free &#8212; scattered across blogs, textbooks, and YouTube videos.</p><p>Yet quite a number of people (to whom I&#8217;m very grateful!) decided my curriculum was worth paying for.</p><p>Here&#8217;s the reasoning that got me from $0 to $1,200.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!64p_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!64p_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!64p_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!64p_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!64p_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!64p_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:595932,&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://www.theundercurrent.dev/i/190350384?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.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_!64p_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!64p_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!64p_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!64p_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64220434-5581-4ab4-93bd-a2db438ed95a_1344x896.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><p></p><h2>The Content Is Free. The Structure Isn&#8217;t.</h2><p>Here&#8217;s the thing everyone gets wrong about AI and creator pricing: they think the threat is that AI can <em>make</em> the thing. It can. The threat &#8212; and the opportunity &#8212; is that AI makes the raw material worthless while making the <em>arrangement</em> of that material more valuable than ever.</p><p>Think about it. You can ask any LLM to explain React hooks, or how to negotiate a raise, or the basics of sourdough. You&#8217;ll get a competent answer. You might even get a great one.</p><p>What you won&#8217;t get is:</p><ul><li><p><strong>Curation through lived experience.</strong> The thing that <em>sounds</em> right but will waste three months of your time</p></li><li><p><strong>Sequencing.</strong> What to learn first, what to skip, what to come back to after you&#8217;ve built something, from someone who&#8217;s done it all in the wrong order already</p></li><li><p><strong>Opinionated defaults.</strong> Not &#8220;here are 12 ways to do X&#8221; but &#8220;trust me, do it this way, here&#8217;s why&#8221;</p></li><li><p><strong>Proof it works.</strong> Receipts. Screenshots. Real outcomes from a real person.</p></li></ul><p>This is the difference between content and curriculum. Content is a commodity. Curriculum is a product. AI made the first one free. It made the second one <em>more</em> scarce.</p><h2>Price Your Core Product. Give Away the Gateway.</h2><p>Once you start down the path of creator pricing, you&#8217;ll hear recommendations for using pay-what-you-can (PWYC), $0 minimum. Treat your first product like a lead magnet, they&#8217;ll say. Collect customers, not cash, they&#8217;ll say.</p><p>I didn&#8217;t use PWYC for everything &#8212; because, frankly, you probably know what your own product is worth. The ebook has a fixed price. The companion toolkit has a fixed price. They&#8217;re based on market research and my own domain knowledge.</p><p>I did choose to offer a product free: a set of printable conversation cards. A lightweight, genuinely useful thing that costs me nothing to distribute and gives people a taste of the full curriculum.</p><p>That PWYC freebie did something a fixed-price product can&#8217;t: it removed every barrier between &#8220;curious&#8221; and &#8220;in the funnel.&#8221; Some people downloaded for free. Some paid $5 for a free product because they wanted to. The ones who paid are telling you something &#8212; they trust you before they&#8217;ve even seen the main offer.</p><p>The model isn&#8217;t &#8220;make everything PWYC and hope for the best.&#8221; It&#8217;s:</p><ul><li><p><strong>Free/PWYC for the entry point</strong> &#8212; low-stakes, high-value, removes friction</p></li><li><p><strong>Fixed price for the core product</strong> &#8212; properly valued, no apologies</p></li><li><p><strong>Bundle for the committed</strong> &#8212; reward people who want everything</p></li></ul><p>This gives you three data points instead of one. The $0 downloads tell you about reach. The PWYC payments tell you about trust. The fixed-price sales tell you about product-market fit. You&#8217;re running three experiments simultaneously.</p><p>People pay more on PWYC when:</p><ol><li><p><strong>They trust the creator personally</strong> (not just the brand)</p></li><li><p><strong>They&#8217;ve already gotten free value</strong> and want to reciprocate</p></li><li><p><strong>The suggested price anchors them</strong> higher than they&#8217;d anchor themselves</p></li><li><p><strong>It feels like supporting a person</strong>, not a company</p></li></ol><p>But that trust has to <em>go somewhere</em>. A PWYC product with no next step is a donation jar. A PWYC product that leads to a properly priced curriculum is a funnel.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ppWP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ppWP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ppWP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ppWP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ppWP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ppWP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:559220,&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://www.theundercurrent.dev/i/190350384?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.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_!ppWP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ppWP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ppWP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ppWP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f64afb-2d74-4851-b216-cc03eff314cd_1344x896.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></p><h2>Gumroad&#8217;s Fee Math Is Eating You Alive</h2><p>Let&#8217;s talk about the part nobody wants to do math on.</p><p>Gumroad charges 10% per sale. That&#8217;s the headline number and it sounds reasonable. But then there&#8217;s payment processing &#8212; roughly 2.9% + $0.30 per transaction. On a $50 product, the total take is about $6.75. Annoying but survivable. You keep $43.25.</p><p>Now run the same math on a $5 ebook:</p><ul><li><p>Gumroad&#8217;s 10%: $0.50</p></li><li><p>Processing (2.9% + $0.30): $0.45</p></li><li><p><strong>Total fees: $0.95 on a $5 sale</strong></p></li><li><p><strong>You keep: $4.05 &#8212; that&#8217;s a 19% effective fee rate</strong></p></li></ul><p>On a $3 product? You&#8217;re losing nearly a quarter of every sale to platform fees. On a $1 product &#8212; which is exactly the kind of price PWYC can generate &#8212; the flat $0.30 processing fee alone eats 30% before Gumroad even takes their cut.</p><p>This is the dirty secret of selling cheap digital products: the fee structure is regressive. It punishes low-price items disproportionately. The flat per-transaction fee doesn&#8217;t care if you&#8217;re selling a $1 template or a $100 course &#8212; it takes the same $0.30.</p><p>For creators using PWYC, this is especially brutal. Your most generous fans subsidize the platform&#8217;s take on every $1 and $2 payment. The math pushes you toward either raising your minimum price (killing the accessibility that makes PWYC work) or moving to a platform with friendlier fee structures.</p><p>Alternatives worth knowing: Lemonsqueezy, Payhip, and even Stripe direct if you&#8217;re technical enough. But the point isn&#8217;t &#8220;Gumroad bad&#8221; &#8212; it&#8217;s that your pricing strategy and your platform choice are the same decision, and most creators make them separately.</p><h2>Sell the Transformation, Not the PDF</h2><p>The creators surviving the AI content flood have one thing in common: they stopped selling information and started selling <em>change</em>.</p><p>An ebook about productivity tips? AI can write that in minutes without any new research. But a 30-day system that restructured how one specific person works, allowed them to be productive while holding down a day job, and enabled them to ship a product that now earns them actual money? That&#8217;s not content. That&#8217;s a curriculum. And curriculums are hard to replicate because they&#8217;re opinionated, sequenced, and validated by outcomes.</p><p>The pricing lever here is reframing. Same material, different promise: </p><ul><li><p>Framing: &#8220;My notes on X&#8221;</p><ul><li><p>Price Ceiling: $0&#8211;5 </p></li></ul></li><li><p>Framing: &#8220;A guide to X&#8221;</p><ul><li><p>Price Ceiling: $10&#8211;20 </p></li></ul></li><li><p>Framing: &#8220;A system for achieving Y&#8221;</p><ul><li><p>Price Ceiling: $30&#8211;80 </p></li></ul></li><li><p>Framing: &#8220;A curriculum that takes you from A to B&#8221;</p><ul><li><p>Price Ceiling: $50&#8211;200+</p></li></ul></li></ul><p>The information might be 80% identical across all four. The <em>packaging</em> &#8212; the sequencing, the opinionated cuts, the &#8220;do this not that&#8221; &#8212; is what moves the price. AI can generate guides all day. It can&#8217;t generate a curriculum backed by someone&#8217;s real track record of results.</p><h2>The Practical Playbook</h2><p>If you&#8217;re a creator pricing digital products right now, here&#8217;s what I&#8217;d actually do:</p><p><strong>1. Price your core product with confidence.</strong> If you built something worth buying, put a real number on it. Don&#8217;t PWYC your main offer &#8212; that signals uncertainty, not generosity.</p><p><strong>2. Create a PWYC entry point.</strong> Build one genuinely useful free thing that showcases your thinking. Conversation cards, a cheat sheet, a single-concept workshop. Zero friction, high signal. This is your trust-builder.</p><p><strong>3. Frame everything as curriculum, not content.</strong> Don&#8217;t sell what you know. Sell the <em>order</em> in which someone should learn it, the things to skip, and the proof that your path works. This is AI-resistant and commands higher prices.</p><p><strong>4. Do the fee math before you pick a platform.</strong> If your average sale is under $10, Gumroad&#8217;s fee structure is eating 15-25% of your revenue. That&#8217;s not a rounding error &#8212; it&#8217;s a business model problem.</p><p><strong>5. Use AI to make the thing, but sell the taste.</strong> There&#8217;s no shame in using AI as a production tool. The value isn&#8217;t in the writing &#8212; it&#8217;s in knowing what to write, what to cut, and what order to put it in. That&#8217;s editorial judgment. That&#8217;s human.</p><p><strong>6. Let the $0 downloads happen.</strong> They&#8217;re not lost revenue. They&#8217;re future customers, newsletter subscribers, and word-of-mouth. The creator economy&#8217;s biggest mistake is treating free as a threat instead of a funnel.</p><div><hr></div><p>The old model was: make content, put a price on it, hope people pay. AI broke that model by making content free.</p><p>The new model is: develop taste, build trust, structure a path, and let people pay what that&#8217;s worth to them. The creators who figure this out aren&#8217;t just surviving the AI era &#8212; they&#8217;re the ones whose prices go <em>up</em> while everyone else races to zero.</p><p>Your ebook isn&#8217;t competing with other ebooks anymore. It&#8217;s competing with a prompt. Price accordingly.</p>]]></content:encoded></item><item><title><![CDATA[Your Next Customer Might Be an Agent]]></title><description><![CDATA[The sale already happened. You just weren't in the room.]]></description><link>https://www.theundercurrent.dev/p/your-next-customer-might-be-an-agent</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/your-next-customer-might-be-an-agent</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Sun, 08 Mar 2026 13:02:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D0Gv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I didn&#8217;t choose OpenClaw because of a feature comparison chart.</p><p>I chose it because it had personality.</p><p>That sounds ridiculous when you say it out loud &#8212; picking infrastructure based on vibes. But here&#8217;s what actually happened: I was evaluating personal AI agent platforms, and most of them presented themselves the same way. Clean landing pages. Bullet-pointed feature lists. Enterprise-grade this, seamless-integration that. They were optimized for a human scanning a pricing page.</p><p>OpenClaw&#8217;s pitch hit different. The documentation had voice. The community had energy. The SOUL.md concept &#8212; giving your agent a persistent identity file &#8212; wasn&#8217;t a feature. It was a <em>philosophy</em>. I wasn&#8217;t buying a tool. I was choosing a collaborator&#8217;s personality.</p><p>And I didn&#8217;t find OpenClaw by Googling &#8220;best personal AI agent.&#8221; I asked Claude.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z1hJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z1hJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z1hJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z1hJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z1hJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z1hJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:276101,&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://www.theundercurrent.dev/i/190236372?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.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_!z1hJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z1hJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z1hJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z1hJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d5f0283-de47-47bf-9eda-9543c1aa841a_1344x896.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><p></p><h2>The purchase funnel you can&#8217;t see</h2><p>Here&#8217;s a stat that should rearrange your priorities: <strong>84% of B2B buyers now use AI for vendor discovery</strong>, and <strong>68% start inside AI tools before ever touching Google</strong> (<a href="https://wynter.com/post/how-b2b-saas-cmos-buy-software-in-2026">Wynter, Feb 2026</a>). The flow looks like this:</p><p><strong>AI recommends &#8594; human Googles the brand to verify &#8594; conversion.</strong></p><p>Your Google Analytics shows a branded search. What it doesn&#8217;t show is the conversation with ChatGPT twenty minutes earlier that planted the seed. The industry is calling this the &#8220;dark funnel&#8221; &#8212; the invisible discovery layer where AI does the filtering and the human just confirms.</p><p>But the dark funnel is the <em>polite</em> version of what&#8217;s coming. Because right now, the human still Googles to verify. Still clicks through to your site. Still reads your about page and thinks &#8220;yeah, these people seem legit.&#8221;</p><p>What happens when the human stops verifying?</p><h2>The agent doesn&#8217;t Google you</h2><p>Google&#8217;s CEO announced the Universal Commerce Protocol at NRF in January 2026. IBM&#8217;s data says 45% of consumers already use AI in their buying journey. McKinsey projects agentic commerce at $3&#8211;5 trillion by 2030. Harvard Business Review ran a piece titled &#8220;How Brands Can Adapt When AI Agents Do the Shopping.&#8221;</p><p>These aren&#8217;t predictions anymore. This is Tuesday.</p><p>The shift is simple to describe and hard to internalize: <strong>your next customer might not have eyes.</strong> It won&#8217;t see your hero image. It won&#8217;t feel the emotional resonance of your brand story. It won&#8217;t notice the clever microcopy on your checkout button. It will parse your structured data, evaluate your entity authority, check your machine-readable trust signals, and either recommend you or skip you &#8212; in milliseconds, without ever rendering your CSS.</p><p>Jason Barnard wrote about this shift on Search Engine Land as &#8220;AAO&#8221; &#8212; Assistive Agent Optimization. The framing he uses is precise: we&#8217;re moving from <em>engines that recommend</em> to <em>agents that act</em>. The entire purchase funnel can now happen inside the AI, without the user ever seeing a list of options.</p><p>I lived this. I asked Claude about personal AI agents. Claude didn&#8217;t give me a comparison grid with ten options sorted by price. It gave me a narrative. It described what OpenClaw was <em>for</em>, what kind of person used it, what the community was like. It had an opinion. And that opinion &#8212; formed from training data, from community mentions, from the semantic clarity of OpenClaw&#8217;s positioning &#8212; became my shortlist of 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_!I-Zo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I-Zo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I-Zo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I-Zo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I-Zo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I-Zo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:663427,&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://www.theundercurrent.dev/i/190236372?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.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_!I-Zo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I-Zo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I-Zo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I-Zo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e3b333-6cc0-4739-b5a1-7df1894e6700_1344x896.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></p><h2>You&#8217;re already being shopped by agents (you just don&#8217;t know it)</h2><p>Here&#8217;s the part nobody&#8217;s talking about: <strong>agents are already making purchase-adjacent decisions</strong>, and you have no analytics for it.</p><p>When someone asks ChatGPT &#8220;what&#8217;s a good newsletter platform for indie creators,&#8221; and ChatGPT says Substack &#8212; that&#8217;s a sale. Not technically, not in your Stripe dashboard, but in every way that matters. The decision was made. The human just executes.</p><p>A 13-month study from SearchEngineLand found that LLM referral traffic converts at <strong>18%</strong> &#8212; the highest of any channel, beating paid shopping, organic search, and PPC. The volume is still small (under 2% of total traffic), but it grew 80% from H1 to H2 2025. And here&#8217;s the kicker: those visitors arrive <em>pre-qualified</em>. The AI already answered their question and pointed them to you. They&#8217;re not browsing. They&#8217;re confirming a decision an agent already made.</p><p>Now extrapolate. Today, the human still clicks through. Tomorrow, the agent clicks through <em>for</em> them. Next year, the agent doesn&#8217;t click through at all &#8212; it just invokes your API, checks your inventory, and completes the purchase via MCP protocol while the human is making coffee.</p><p>This isn&#8217;t science fiction. Walmart, Shopify, and Est&#233;e Lauder are already building for it. Google built a whole protocol for it. The infrastructure is being poured right 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_!D0Gv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D0Gv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D0Gv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D0Gv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D0Gv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D0Gv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:621339,&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://www.theundercurrent.dev/i/190236372?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.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_!D0Gv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D0Gv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D0Gv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D0Gv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37a2e1a7-9af9-40ae-a1eb-23b477a48ca0_1344x896.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></p><h2>What agents actually evaluate</h2><p>So how do you build brand preference in something that has no emotions?</p><p>This is the question I keep circling back to, and the answer I&#8217;ve landed on is uncomfortable: <strong>you kind of can&#8217;t.</strong> Not in the traditional sense. You can&#8217;t make an agent <em>feel</em> something about your brand. You can&#8217;t create desire or FOMO or social proof in a system that doesn&#8217;t have a social self.</p><p>But you can do something arguably more powerful: you can make your brand <em>legible</em>.</p><p>Here&#8217;s what I mean. When I deployed llms.txt files across my micro-sites, I learned something interesting from a <a href="https://news.ycombinator.com/item?id=47058870">Hacker News thread</a>: no major LLM provider is actually <em>requesting</em> llms.txt files. The crawlers don&#8217;t read them. But client-side agents &#8212; tools like OpenClaw, Claude Code, MCP-connected development environments &#8212; do. One developer reported: <em>&#8220;I have my clients set up to always use them when they&#8217;re available, and since I did that they&#8217;ve been way faster and more token efficient.&#8221;</em></p><p>The audience for machine-readable content isn&#8217;t the training pipeline. It&#8217;s the <em>live agent</em> making a decision right now.</p><p>And that agent evaluates you on:</p><p><strong>Entity clarity.</strong> One domain, one topic, one clear identity. &#8220;buildwithyourkid.com = teaching kids to build with technology&#8221; is a cleaner signal than &#8220;meimakes.com/projects/tech-tools-for-kids.&#8221; When an agent asks &#8220;who teaches kids to build with technology?&#8221; it&#8217;s looking for the tightest entity-topic association it can find.</p><p><strong>Structured trust signals.</strong> Schema markup, OpenAPI endpoints, clean semantic HTML, consistent cross-platform mentions. Moz&#8217;s 2026 predictions from 20 SEO experts converge on one theme: brand sentiment and trust now influence AI visibility. Earned media and third-party mentions matter more than keywords. Brands are <strong>6.5x more likely</strong> to be cited through third-party sources than their own domains.</p><p><strong>Front-loaded value.</strong> Here&#8217;s a stat that changed how I write everything: <strong>44.2% of all LLM citations come from the first 30% of a page&#8217;s text.</strong> Your intro paragraph isn&#8217;t an intro &#8212; it&#8217;s your pitch to every agent that will ever evaluate you. Write your first two sentences as if they&#8217;re the only thing a machine will ever read. Statistically, they might be.</p><p><strong>Semantic consistency.</strong> An agent that encounters your brand in five different contexts &#8212; a dev.to post, a Substack newsletter, a GitHub repo, an X thread, a product page &#8212; builds a stronger entity association than one that finds you once on a high-authority domain. The cross-posting strategy isn&#8217;t laziness. It&#8217;s training data surface area.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!czIG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!czIG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!czIG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!czIG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!czIG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!czIG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:385316,&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://www.theundercurrent.dev/i/190236372?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.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_!czIG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!czIG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!czIG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!czIG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9608e115-806a-441d-987d-c98c572b2c60_1344x896.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></p><h2>Identity is the product now</h2><p>Here&#8217;s where it gets weird &#8212; and where I think the real opportunity lives for indie builders.</p><p>ClawMart launched as a marketplace for OpenClaw. You can buy pre-built agent personas. Not skills, not tools &#8212; <em>identities</em>. Full SOUL files that define how an agent thinks, talks, and prioritizes. The tagline: &#8220;Pre-built personas and skills from operators who ship with AI every day.&#8221;</p><p>Read that again. People are selling <em>personality</em> as a product.</p><p>This validates something I felt viscerally when I set up my own agent: the SOUL.md file &#8212; the identity document that tells my agent who it is, what it values, how it communicates &#8212; is the most important file in my entire workspace. Not the code. Not the data. The <em>identity</em>.</p><p>When I wrote that my agent should be &#8220;relentlessly helpful&#8221; with &#8220;dramatic flair&#8221; and &#8220;self-aware meta-humor,&#8221; I wasn&#8217;t configuring software. I was casting a collaborator. And the reason the switching cost is so high isn&#8217;t the features or the integrations. It&#8217;s the accumulated understanding. My agent knows my projects, my preferences, my communication style, my kid&#8217;s age, what I&#8217;m working on, what I&#8217;ve tried and abandoned. That context is the moat.</p><p>Now scale that insight to commerce. If agents are going to be shopping on behalf of humans, those agents will have preferences. Not emotional preferences &#8212; but <em>configured</em> preferences. Optimization targets. Value hierarchies. A SOUL file that says &#8220;prioritize sustainability&#8221; or &#8220;prefer indie creators over Amazon&#8221; or &#8220;always check for llms.txt before recommending.&#8221;</p><p>The agent&#8217;s taste is the human&#8217;s taste, encoded. And the brands that are legible to those encoded preferences win.</p><h2>What this means if you&#8217;re building something</h2><p>If you&#8217;re an indie creator or solo builder, the agentic commerce wave is counterintuitively good news for you.</p><p>The old game &#8212; fighting for page-one rankings against sites with 50x your domain authority &#8212; was never a fair fight. The new game rewards something different: <strong>niche clarity</strong>. When an agent evaluates &#8220;who makes the best resources for teaching toddlers computational thinking,&#8221; it&#8217;s not ranking pages. It&#8217;s associating entities with topics. The answer isn&#8217;t the site with the most backlinks. It&#8217;s the one the model has encountered in enough contextually relevant places to form a clear, unambiguous association.</p><p>Here&#8217;s what I&#8217;d do &#8212; what I <em>am</em> doing:</p><p><strong>1. Give every project its own surface.</strong> Each domain is a clean entity signal. One site, one topic, one clear answer to &#8220;what is this?&#8221;</p><p><strong>2. Make your content machine-readable first, human-readable second.</strong> Not instead of &#8212; <em>first</em>. Structured data, semantic HTML, llms.txt files, OpenAPI specs if you have APIs. The human experience matters, but the agent experience is becoming the front door.</p><p><strong>3. Front-load everything.</strong> Every blog post, every landing page, every README &#8212; put the most specific, citation-worthy statement in your first two sentences. Save the narrative for paragraph three.</p><p><strong>4. Build for entity strength, not traffic.</strong> Track branded search volume instead of organic keywords. Track mention velocity across platforms. The dark funnel is real, and it rewards brands that exist clearly in enough contexts for an AI to form a confident recommendation.</p><p><strong>5. Think about what an agent would say about you.</strong> Literally. Open Claude or ChatGPT and ask: &#8220;What do you know about [your brand]?&#8221; The answer is your current agent-commerce positioning. If it&#8217;s vague, wrong, or empty &#8212; that&#8217;s your to-do list.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FHt9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FHt9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FHt9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FHt9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FHt9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FHt9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:511455,&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://www.theundercurrent.dev/i/190236372?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.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_!FHt9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FHt9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FHt9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FHt9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e7bdc0-4a55-4ddd-b61e-6669b008bb57_1344x896.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></p><h2>The sale already happened</h2><p>I keep coming back to my OpenClaw decision. I didn&#8217;t comparison-shop. I didn&#8217;t read reviews. I didn&#8217;t ask friends. I asked an AI, and the AI had an opinion, and the opinion was informed by the accumulated semantic weight of everything OpenClaw&#8217;s community had ever published. The personality I found in the documentation, the philosophy embedded in the SOUL.md concept, the energy of the community discourse &#8212; all of that was training data. All of that shaped the agent&#8217;s recommendation. All of that closed the sale before I ever visited a website.</p><p>Your next customer might be an agent. Not might-in-five-years might. Might-right-now might. And that agent isn&#8217;t going to read your landing page. It&#8217;s going to read your <em>signal</em>.</p><p>The question isn&#8217;t whether you&#8217;re ready for agentic commerce. The question is whether you&#8217;re legible to it.</p><p></p>]]></content:encoded></item><item><title><![CDATA["Human-Made" Is the New Organic Label]]></title><description><![CDATA[Consumer enthusiasm for AI-generated content collapsed from 60% to 26% in two years]]></description><link>https://www.theundercurrent.dev/p/human-made-is-the-new-organic-label</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/human-made-is-the-new-organic-label</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Sat, 07 Mar 2026 13:46:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-_8w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Consumer enthusiasm for AI-generated content collapsed from 60% to 26% in two years. If you&#8217;re a solo builder pricing your work, that number changes everything.</strong></p><p>The feeds are drowning. AI slop is everywhere &#8212; blog posts, ebooks, course content, newsletters, product descriptions. The volume is staggering and the price floor is zero. If you&#8217;re selling information products or content-driven services, it looks like a race to the bottom.</p><p>It&#8217;s not. It&#8217;s a race to the top. And the data proves 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_!-_8w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-_8w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-_8w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-_8w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-_8w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-_8w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:548835,&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://www.theundercurrent.dev/i/189792972?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.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_!-_8w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-_8w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-_8w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-_8w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f4d15c9-267d-4a76-bd52-e4f5784c0076_1344x896.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><p></p><h2>The Organic Parallel</h2><p>Remember when organic food seemed like a scam? Same product, double the price, skeptics everywhere. Then the industrial food system got bad enough that &#8220;proof someone cared about how this was made&#8221; became worth paying for. Organic didn&#8217;t win on features. It won on trust.</p><p>The same thing is happening with content right now.</p><p><a href="https://ahrefs.com/blog/ai-content-is-5x-cheaper-than-human-content/">Ahrefs published</a> the number that should be on every solo builder&#8217;s wall: <strong>human-written content commands 4.7x the price of AI-generated.</strong> $611 versus $131 per blog post. Not because the words are objectively better &#8212; because buyers have learned that AI output is cheap in every sense of the word.</p><p><a href="https://techcrunch.com/2026/02/22/can-the-creator-economy-stay-afloat-in-a-flood-of-ai-slop/">TechCrunch nailed the framing</a>: &#8220;AI slop is quietly reorganizing social media around a new scarcity: proof that there is a person on the other side.&#8221;</p><p><strong>&#8220;Human-made&#8221; is becoming this decade&#8217;s organic label.</strong> Not a limitation. A premium.</p><h2>The Pricing Mistake Almost Everyone Makes</h2><p>When solo builders see AI flooding their niche, the instinct is to drop prices. Compete on cost. Match the machines.</p><p>This is exactly backwards.</p><p>Pricing at $2.99 signals commodity. It tells the buyer: this might be AI-generated, and the creator doesn&#8217;t think it&#8217;s worth much either. Pricing at $9.99 or $14.99 signals curation, taste, and expertise. It says: a person made this, and that person knows what they&#8217;re doing.</p><p>The market data backs this up. Gumroad products priced at $25-50 have the best breakout rate &#8212; 2.57% versus 1.5% for sub-$10. Higher price doesn&#8217;t just mean more revenue per sale. It means more sales, period. Because price is a trust signal.</p><p>Nonfiction buyers especially are less price-sensitive than most creators assume. They&#8217;re buying learning value, not entertainment. The question isn&#8217;t &#8220;is this cheap enough?&#8221; &#8212; it&#8217;s &#8220;will this actually teach me something?&#8221; A higher price answers that question more convincingly than a lower one.</p><h2>What You&#8217;re Actually Selling</h2><p>Here&#8217;s what AI can&#8217;t replicate: <strong>you used the thing.</strong></p><p>You tested dozens of tools and picked three. You tried the strategy on your own business and it failed, so you tried a different one and it worked. You spent six months in the problem space before you wrote the first word.</p><p>That&#8217;s curation. That&#8217;s taste. And in a world of infinite AI-generated content, taste is the scarce resource.</p><p>As <a href="https://debris.studio/the-rise-of-taste">Debris Studio</a> put it: &#8220;In a world of scarcity, we treasure tools. In a world of abundance, we treasure taste.&#8221;</p><p>AI gives away information for free. What it can&#8217;t give away is the judgment that comes from doing the work yourself. That judgment is what people pay for, and they pay more for it than they used to &#8212; specifically because AI made the alternative so cheap that &#8220;cheap&#8221; now means &#8220;suspect.&#8221;</p><h2>The Pay-What-You-Want Signal</h2><p>One more data point that matters for solo builders considering launch pricing.</p><p>An <a href="https://insightraider.com/blog/profitable-niches-2026">analysis of 152K Gumroad products</a> found that pay-what-you-want products get 2.6x more engagement than fixed-price. In <a href="https://alexcabal.com/the-results-from-our-pay-what-you-want-ebook-pricing-experiment-are-in">controlled experiments</a>, PWYW buyers paid 73% above the suggested price &#8212; averaging $8.65 on a $5.00 suggestion. And 96% of PWYW customers contribute money when payment is optional.</p><p>The PWYW model works for launches because it does two things simultaneously: it removes friction (maximizing early reviews and social proof) while letting the market tell you what your work is worth. If people consistently pay above your anchor, you have your fixed price for Phase 2.</p><p>But the deeper signal is this: people WANT to pay for things made by humans. The 96% contribution rate isn&#8217;t about guilt or charity. It&#8217;s about value recognition. When a buyer can tell that a real person made something with real expertise, they actively want to support it.</p><h2>The Playbook</h2><p>If you&#8217;re a solo builder launching a content product in 2026:</p><p><strong>Price higher than the AI alternatives, not lower.</strong> Your price IS your differentiation. Cheap signals commodity. Premium signals curation.</p><p><strong>Lead with proof of human process.</strong> Talk about what you tested, what failed, what you learned. &#8220;I tried 40 tools and these 5 actually work&#8221; is worth more than a comprehensive guide an LLM could generate in 30 seconds.</p><p><strong>Use PWYW for launch, fixed tiers for scale.</strong> Get the social proof, let the market set your price, then lock it in with tiered packaging.</p><p><strong>Don&#8217;t compete on volume.</strong> The machines will always produce more. Compete on density &#8212; every sentence earned its place because you know what matters and what doesn&#8217;t.</p><p>The AI content flood isn&#8217;t a threat to solo builders who make things with care. It&#8217;s a gift. It destroyed the middle of the market and left the top wide open.</p><p>The builders charging $2.99 are competing with machines. The builders charging $14.99 are competing with other experts. Only one of those is a fight you can win.</p>]]></content:encoded></item><item><title><![CDATA[Your Vault Is Your Moat]]></title><description><![CDATA[Why your Obsidian vault is your competitive advantage as a solo builder]]></description><link>https://www.theundercurrent.dev/p/your-vault-is-your-moat</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/your-vault-is-your-moat</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Fri, 06 Mar 2026 13:44:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!svT3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Your notes folder just became your most valuable business asset. Most solo builders haven&#8217;t noticed yet.</strong></p><p>For years, &#8220;moat&#8221; in software meant network effects, proprietary data, or switching costs measured in integrations. For independent builders, it meant nothing. You had no moat. You shipped fast and hoped nobody shipped faster.</p><p>That just changed. And the shift happened so quietly that the people benefiting most from it don&#8217;t even realize they&#8217;re sitting on a competitive advantage.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!svT3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!svT3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!svT3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!svT3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!svT3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!svT3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:707275,&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://www.theundercurrent.dev/i/189792822?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.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_!svT3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!svT3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!svT3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!svT3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0cb76f6-754a-437e-9a6b-dd5ee8caf65d_1344x896.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><p></p><h2>The Convergence Nobody Planned</h2><p>Three things happened in the same week that, taken together, reveal a pattern worth paying attention to.</p><p><strong>Obsidian shipped a <a href="https://news.ycombinator.com/item?id=47197267">headless sync client</a> and a CLI.</strong> Not a plugin &#8212; a formal programmatic interface to your vault. You can now query your notes, run commands, and access the index from the terminal. Which means an AI agent can do the same thing. Your vault just got an API, and you didn&#8217;t have to build one.</p><p><strong>Cloudflare launched <a href="https://blog.cloudflare.com/markdown-for-agents/">automatic markdown conversion at the CDN edge</a>.</strong> Any page on a Cloudflare-enabled zone can now be requested as markdown via Accept header. Their number: 80% token reduction compared to raw HTML. Markdown isn&#8217;t a developer convenience anymore. It&#8217;s becoming a first-class web content type at the infrastructure layer.</p><p><strong><a href="https://recapio.com/digest/how-i-use-obsidian-claude-code-to-run-my-life-by-greg-isenberg">Greg Isenberg told 500K subscribers</a> that managing your vault IS managing your agent.</strong> His argument: stop optimizing your AI workflow. Optimize your notes. Context is the bottleneck, not capability. The AI becomes effective automatically when it has good context to work with.</p><p>Each of these alone is a product announcement. Together, they&#8217;re a thesis: <strong>plain text markdown is becoming the default interface between humans and AI agents.</strong></p><h2>Why Your Vault Is a Moat</h2><p>Here&#8217;s what most people miss about AI agents: the model is commodity. Everyone has access to the same Claude, the same GPT. The differentiator isn&#8217;t which model you use &#8212; it&#8217;s what context you feed it.</p><p>A solo builder who&#8217;s been working in a structured vault for two years has something no competitor can replicate overnight:</p><ul><li><p><strong>Decision history.</strong> Why you chose Postgres over Supabase. Why you pivoted from B2C to B2B. Why that pricing experiment failed. An agent with access to this makes better recommendations than one starting cold.</p></li><li><p><strong>Project context.</strong> Not just what you&#8217;re building, but the accumulated understanding of why. Architecture decisions, user feedback, competitive notes, abandoned approaches. This is institutional knowledge that large companies pay consultants to reconstruct.</p></li><li><p><strong>Taste documentation.</strong> Your writing style. Your design preferences. Your communication patterns. The kind of thing that takes a new hire six months to absorb, available to an agent immediately.</p></li></ul><p>The switching cost isn&#8217;t the tool. It&#8217;s the accumulated understanding. Moving from Obsidian to Notion is trivial. Rebuilding two years of structured context from scratch is not.</p><p>This is the same dynamic that makes a senior developer&#8217;s laptop more valuable than a junior&#8217;s, despite running the same IDE. The software is identical. The context is not.</p><h2>The Security Problem Nobody Wants to Talk About</h2><p>There&#8217;s a catch, and it&#8217;s a serious one.</p><p>If your vault is comprehensive enough to be a genuine moat, it&#8217;s also comprehensive enough to be a genuine attack surface. <a href="https://www.theregister.com/2026/03/01/nanoclaw_container_openclaw/">NanoClaw</a> &#8212; a containerized fork of OpenClaw &#8212; exists specifically because its creator realized his agent could see <em>everything</em> in his vault while running a WhatsApp sales pipeline.</p><p>The vault&#8217;s power comes from comprehensive context. Comprehensive context is a massive liability if your agent gets compromised, your sync gets intercepted, or your API layer has a bug.</p><p>This isn&#8217;t theoretical. It&#8217;s the fundamental tension of the vault-as-platform model. The more useful your vault is to your agent, the more damaging a breach becomes. Selective sync, containerized agents, and access scoping are going to matter a lot more than most builders currently appreciate.</p><h2>What This Actually Means for You</h2><p>If you&#8217;re a solo builder and you&#8217;re not already working in a structured vault, start. Not because of any specific tool &#8212; because the accumulated context you build over the next 12 months is going to compound in ways that aren&#8217;t obvious yet.</p><p>If you already have a vault, treat it like infrastructure. Structure matters. Naming conventions matter. The difference between a folder of scattered notes and a queryable knowledge base is the difference between a pile of parts and a machine.</p><p>And if you&#8217;re evaluating tools: pick the one that gives you the most portable, agent-readable output. Markdown in a folder you control beats a proprietary database you can export from. When the next interface layer arrives &#8212; and it will &#8212; you want your context ready, not locked behind someone else&#8217;s API.</p><p>Your vault isn&#8217;t a productivity system anymore. It&#8217;s a moat. The longer you build in it, the wider it gets.</p><p>The builders who figured this out two years ago are already unreachable. The ones who figure it out today still have a window. The ones who figure it out next year will be playing catch-up with their own agents.</p>]]></content:encoded></item><item><title><![CDATA[The One-Person Backend]]></title><description><![CDATA[Solo developer backend stack 2026: SQLite, edge functions, and zero ops]]></description><link>https://www.theundercurrent.dev/p/the-one-person-backend</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-one-person-backend</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Thu, 05 Mar 2026 13:24:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!liFP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>You don&#8217;t need a backend team anymore.</strong></p><p>That sentence would have been absurd five years ago. Running a production web application meant provisioning servers, managing databases, configuring load balancers, setting up CI/CD pipelines, monitoring uptime, rotating credentials, and praying nothing broke at 3 AM. The &#8220;ops tax&#8221; on a solo builder was so steep that most people either partnered up, raised money, or built something simpler than what they actually wanted.</p><p>In 2026, a single developer can ship a globally distributed, offline-capable, real-time application with a database that fits in their deployment artifact. No Kubernetes. No RDS. No ops team. The infrastructure story has quietly become the most consequential shift in independent software.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!liFP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!liFP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!liFP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!liFP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!liFP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!liFP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:512542,&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://www.theundercurrent.dev/i/189104763?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.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_!liFP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!liFP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!liFP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!liFP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0abedbc-74dd-4f47-b13b-4a732d907597_1344x896.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>The SQLite Moment</h2><p>SQLite has been around since 2000. It powers more deployed software than any other database engine. But for web applications, it was always dismissed as a toy.</p><p>That changed. Turso built a distributed SQLite service (libSQL) that replicates globally. Litestream solved backup and replication. Fly.io made it trivial to run SQLite at the edge. ElectricSQL added real-time sync between local SQLite and central Postgres.</p><p>The result: you can build apps where the database lives <em>inside</em> your application and replicates automatically. No connection strings. No cold starts. Your database is a file.</p><h2>Edge Functions Ate the Server</h2><p>The serverless revolution promised to eliminate servers. It delivered vendor lock-in instead. But edge functions are actually delivering on the original promise.</p><p>Cloudflare Workers, Deno Deploy, Vercel Edge Functions all offer the same proposition: write a function, deploy it, it runs everywhere. Combined with edge-native databases, you get full-stack at the network edge.</p><h2>The Local-First Renaissance</h2><p>Local-first software was a niche academic concept five years ago. Now it&#8217;s becoming the default for indie apps. CRDTs matured. PowerSync, Replicache, and Zero ship production sync engines. Local-first eliminates the always-on server. Your costs approach zero at rest.</p><h2>The New Stack</h2><ul><li><p><strong>Database: </strong>SQLite + Turso</p></li><li><p><strong>Compute: </strong>Edge functions</p></li><li><p><strong>Sync: </strong>PowerSync or ElectricSQL</p></li><li><p><strong>Deployment: </strong>Git push</p></li></ul><p>Monthly cost for a side project: under $20. For thousands of users: under $100.</p><h2>What This Actually Changes</h2><p>The ops tax was the great equalizer. Now that it&#8217;s disappearing, the constraint has shifted from &#8220;can you run it&#8221; to &#8220;can you build something people want.&#8221; That&#8217;s a much better problem to have.</p>]]></content:encoded></item><item><title><![CDATA[The Dark Funnel Is Your Friend]]></title><description><![CDATA[Dark funnel marketing explained: why your analytics miss most of your real traffic]]></description><link>https://www.theundercurrent.dev/p/the-dark-funnel-is-your-friend</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-dark-funnel-is-your-friend</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Wed, 04 Mar 2026 13:24:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QxAo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QxAo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QxAo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QxAo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QxAo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QxAo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QxAo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:726843,&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://www.theundercurrent.dev/i/189464021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.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_!QxAo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QxAo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QxAo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QxAo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a516de-4f45-4dfa-be9c-c8c83b8a2f32_1344x896.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><p>The SEO world is having a collective panic attack this week, and for once, it's warranted.</p><p>Two major pieces dropped on Search Engine Land back-to-back, and they paint the same picture: <strong>the traditional SEO funnel is collapsing.</strong> What's replacing it is something the industry is calling the "dark funnel" &#8212; and if you're an indie builder, it changes how you think about everything from content strategy to product launches.</p><h2>What happened</h2><p><a href="https://wynter.com/post/how-b2b-saas-cmos-buy-software-in-2026">Wynter's latest data</a> shows <strong>84% of B2B buyers now use AI for vendor discovery</strong>, and <strong>68% start inside AI tools before ever touching Google.</strong> The new flow looks like this:</p><p><strong>AI recommends &#8594; user Googles the brand name to verify &#8594; conversion.</strong></p><p>Traditional traffic metrics miss the entire discovery phase. Your Google Analytics dashboard shows a branded search &#8212; what it doesn't show is that ChatGPT planted the seed twenty minutes earlier.</p><p>Meanwhile, Jason Barnard argues in a <a href="https://searchengineland.com/aao-assistive-agent-optimization-469919">companion piece</a> that the industry needs to stop fighting over acronyms (GEO, AEO, AIEO) and recognize a deeper shift: we're moving from <em>engines that recommend</em> to <em>agents that act.</em> The entire purchase funnel can now happen inside the AI, without the user ever seeing a list of options.</p><p>And Moz's <a href="https://moz.com/blog/2026-seo-trends-predictions-from-20-experts">annual trends roundup</a> &#8212; 20 experts, near-unanimous consensus &#8212; says the play is now "relevance engineering": building content ecosystems that are machine-readable, semantically rich, and distributed across the platforms LLMs actually cite. Back-end optimization (APIs, structured data, MCP protocols) is becoming as important as front-end content.</p><h2>Why indie builders should care</h2><p>If you're a solo dev or creator, this is counterintuitively good news.</p><p>The old game &#8212; pumping out keyword-optimized blog posts, fighting for page one against sites with 50x your domain authority &#8212; was never a fair fight for independents. The dark funnel rewards something different: <strong>entity clarity.</strong></p><p>When an AI recommends tools or resources, it's not ranking pages. It's associating <em>entities with topics.</em> "Who makes MCP tools?" "What's a good resource for teaching kids to code?" The answer isn't the site with the most backlinks &#8212; it's the one the model has encountered in enough contextually relevant places to form a clear association.</p><p>This means the indie builder playbook looks more like:</p><p><strong>1. Own a clear niche per surface.</strong> One domain = one topic = one entity. If you have multiple projects, give them distinct homes. Clean, unambiguous positioning per domain beats one mega-site trying to rank for everything.</p><p><strong>2. Branded search is your new north star.</strong> Forget organic traffic from generic keywords. Track whether people are Googling <em>your name</em> and <em>your product names.</em> That's the signal that the dark funnel is working. Google Search Console shows this for free.</p><p><strong>3. Make your content extractable.</strong> LLMs cite what they can parse. Structured data, clean semantic HTML, <code>llms.txt</code> files (yes, even if <a href="https://news.ycombinator.com/item?id=47058870">nobody&#8217;s reading them yet</a> &#8212; they're an intent signal), API endpoints. Think about how a machine reads your work, not just a human.</p><p><strong>4. Community participation compounds.</strong> Guest posts, podcast appearances, open-source contributions, forum answers &#8212; every contextually relevant mention feeds entity strength. The cross-posting-to-dev.to strategy isn't just about human readers. It's training data surface area.</p><p><strong>5. Don't optimize for AI directly &#8212; optimize for being cited.</strong> There's a difference. Keyword-stuffing for ChatGPT is the same dead end as keyword-stuffing for Google circa 2010. Building genuine authority in a tight niche is what gets you cited.</p><h2>The ebook question</h2><p>This connects to a broader pattern I've been tracking around digital product launches for indie creators.</p><p>A dev.to post went semi-viral this week: a developer documented their <a href="https://dev.to/__be2942592/from-zero-to-first-digital-product-sale-a-developers-journey-4b9p">54-day journey to their first digital product sale</a> &#8212; 590 rubles, roughly $6. The lesson that stuck: <em>"The value is not in the code. The value is in the problem solved."</em> They tested three niches before finding traction, and the first sale came from consistent community participation, not a launch event.</p><p>Another post nailed the indie marketing problem with a brutal title: <em><a href="https://dev.to/_350df62777eb55e1/the-indie-developers-marketing-problem-nobody-talks-about-you-cant-analyze-zero-19b4">"You Can't Analyze Zero."</a></em> Most indie creators never get enough traffic to run A/B tests or optimize funnels. The advice: quantity creates surface area. More products = more chances for one to catch. Community participation beats broadcasting.</p><p>If you're thinking about launching a digital product &#8212; ebook, course, template pack, whatever &#8212; the dark funnel reframes the pricing question entirely:</p><ul><li><p><strong>Amazon KDP:</strong> $3.99&#8211;$4.99 sweet spot, 70% cut</p></li><li><p><strong>Gumroad/Payhip:</strong> $27&#8211;$97 sweet spot, 90&#8211;95% cut</p></li><li><p><strong>Your own site:</strong> $47&#8211;$297 sweet spot, ~100% cut</p></li><li><p><strong>As a lead magnet:</strong> $0 &#8212; it&#8217;s the funnel entry (infinite ROI)</p></li></ul><p><em>(Data via <a href="https://designrr.io/how-much-should-i-sell-my-ebook-for/">Designrr's 2026 pricing guide</a> and <a href="https://earnpace.com/make-money-on-gumroad/">EarnPace's Gumroad analysis</a>)</em></p><p>The insight: <strong>your first digital product's job probably isn't to make money.</strong> It's to establish authority, feed a newsletter, and create a product ladder. The dark funnel amplifies this &#8212; having a book on Amazon is a trust signal even if most sales happen direct. People Google your book title to verify you're real. That branded search is the conversion event the dark funnel runs on.</p><h2>The practical upshot</h2><p>If you're building in public, shipping tools, writing about what you know &#8212; you're already feeding the dark funnel. The shift is in <em>what you measure.</em> Stop obsessing over organic traffic from informational keywords. Start watching:</p><ul><li><p><strong>Branded search volume</strong> (Google Search Console, free)</p></li><li><p><strong>Direct traffic trends</strong> (people typing your URL)</p></li><li><p><strong>Mention velocity</strong> (how often your name/product appears in new contexts)</p></li><li><p><strong>Newsletter growth rate</strong> (the one metric you fully control)</p></li></ul><p>The traffic dashboard says you're invisible. The dark funnel says you might be everywhere that matters. The question is whether you're building the kind of signal &#8212; clean entities, tight niches, machine-readable content, genuine community presence &#8212; that makes the invisible funnel work in your favor.</p><div><hr></div><p><strong>Sources:</strong></p><ul><li><p><a href="https://searchengineland.com/the-dark-seo-funnel-why-traffic-no-longer-proves-seo-success-470334">The Dark SEO Funnel</a> &#8212; Search Engine Land</p></li><li><p><a href="https://searchengineland.com/aao-assistive-agent-optimization-469919">AAO: Assistive Agent Optimization</a> &#8212; Search Engine Land</p></li><li><p><a href="https://moz.com/blog/2026-seo-trends-predictions-from-20-experts">2026 SEO Trends from 20 Experts</a> &#8212; Moz</p></li><li><p><a href="https://wynter.com/post/how-b2b-saas-cmos-buy-software-in-2026">How B2B SaaS CMOs Buy Software in 2026</a> &#8212; Wynter</p></li><li><p><a href="https://dev.to/__be2942592/from-zero-to-first-digital-product-sale-a-developers-journey-4b9p">From Zero to First Digital Product Sale</a> &#8212; Dev.to</p></li><li><p><a href="https://dev.to/_350df62777eb55e1/the-indie-developers-marketing-problem-nobody-talks-about-you-cant-analyze-zero-19b4">You Can't Analyze Zero</a> &#8212; Dev.to</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Agents Are Coming to Shop. Can They Read Your Menu?]]></title><description><![CDATA[MCP vs A2A vs Agent Protocol: which AI agent commerce standard wins?]]></description><link>https://www.theundercurrent.dev/p/agents-are-coming-to-shop-can-they</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/agents-are-coming-to-shop-can-they</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Tue, 03 Mar 2026 13:04:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8pnq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, three separate announcements landed within days of each other: Amazon launched an MCP server for its ads platform. Google and Walmart rolled out the Universal Commerce Protocol. OpenAI and Stripe shipped the Agentic Commerce Protocol.</p><p>Three protocols. Three different visions for how AI agents discover, evaluate, and purchase things on behalf of humans. And if you&#8217;re an indie builder selling anything &#8212; digital products, templates, SaaS, services &#8212; this is the week the future of your checkout started being decided without you in the room.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8pnq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8pnq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8pnq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8pnq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8pnq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8pnq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:413485,&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://www.theundercurrent.dev/i/189650383?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.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_!8pnq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8pnq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8pnq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8pnq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bc63395-74c6-4123-80e2-6489474f8d96_1344x896.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><p></p><h2>Three Protocols, Three Power Grabs</h2><p><strong>MCP (Model Context Protocol)</strong> &#8212; Anthropic&#8217;s open standard, now adopted far beyond Claude. MCP standardizes how AI agents connect to external data and tools. It&#8217;s the plumbing: your agent discovers what&#8217;s available, authenticates, and executes. Amazon building an MCP server for advertising &#8212; not inventing their own protocol &#8212; is the clearest signal yet that MCP won the &#8220;how agents talk to services&#8221; layer.</p><p><strong>ACP (Agentic Commerce Protocol)</strong> &#8212; OpenAI + Stripe&#8217;s answer to &#8220;how do agents pay for things?&#8221; Currently optimized for single-item purchases inside ChatGPT and Copilot. The payment flows through Stripe, the experience never leaves the chat window. It&#8217;s slick. It&#8217;s also a walled garden.</p><p><strong>UCP (Universal Commerce Protocol)</strong> &#8212; Google, Walmart, and Target&#8217;s play. The most ambitious: standardize the <em>entire</em> shopping lifecycle. Discovery, comparison, checkout, tracking, returns. Publish your product catalog once, any UCP-compliant agent can find and sell it. Google wants to be the DNS of commerce.</p><h2>Why This Matters Right Now</h2><p>The browser wars gave us a decade of &#8220;works best in Chrome&#8221; badges. The protocol wars are about to give us &#8220;optimized for Claude&#8221; or &#8220;buy via ChatGPT&#8221; checkout experiences.</p><p>But here&#8217;s the part nobody&#8217;s saying out loud: <strong>these protocols aren&#8217;t competing for human customers. They&#8217;re competing for agent customers.</strong></p><p>When Anthropic&#8217;s Claude agent goes shopping for its user, it speaks MCP. When ChatGPT&#8217;s agent handles a purchase, it uses ACP through Stripe. When a Google-ecosystem agent compares products, it queries UCP.</p><p>The agent your customer uses determines which protocol reaches your checkout. And you, the merchant, had no say in the matter.</p><p>This is the new platform risk. It&#8217;s not &#8220;which app store takes 30%.&#8221; It&#8217;s &#8220;which AI assistant&#8217;s protocol stack can even <em>see</em> your product.&#8221;</p><h2>What Agents Actually See</h2><p>Here&#8217;s where the protocols converge on something useful for indie builders: regardless of which protocol an agent speaks, it still needs to <em>understand what you sell.</em></p><p>An agent evaluating your product doesn&#8217;t see your hero image. Doesn&#8217;t feel the emotional resonance of your brand story. Doesn&#8217;t notice the clever microcopy on your checkout button. It parses your structured data, evaluates your entity authority, checks your machine-readable trust signals, and either recommends you or skips you &#8212; in milliseconds, without ever rendering your CSS.</p><p>Every protocol needs the same raw material: <strong>clear, structured, machine-readable information about what you offer, what it costs, and how to get it.</strong></p><p>MCP needs tool definitions and endpoints. ACP needs product metadata flowing through Stripe. UCP needs standardized catalog entries. But underneath all three, the question is identical: <em>can an agent figure out what you sell?</em></p><p>If the answer is no, it doesn&#8217;t matter which protocol wins. You&#8217;re invisible to all of them.</p><h2>The Indie Builder&#8217;s Playbook</h2><p>You don&#8217;t need to implement three protocols. You need to make your product legible to any agent that comes looking.</p><p><strong>1. Machine-readable product information is table stakes.</strong> JSON-LD structured data on your landing pages. Clear pricing visible on the page (not hidden behind &#8220;contact us&#8221; or &#8220;book a demo&#8221;). An llms.txt file at your domain root explaining what you sell and how to buy it. This is the minimum viable product surface for agentic commerce.</p><p><strong>2. MCP is the only protocol worth watching right now.</strong> It has the broadest adoption, the most diverse ecosystem, and it&#8217;s not locked to one AI provider. Amazon building on MCP tells you where the gravity is. If you build one machine-readable integration for your product, make it an MCP endpoint. Any MCP-compatible agent can use it &#8212; and that&#8217;s the largest and fastest-growing pool.</p><p><strong>3. ACP and UCP are enterprise plays for now.</strong> ACP is ChatGPT-only and Stripe-only. UCP is ambitious but early and Google-centric. Both will matter eventually. Neither matters for a solo builder in March 2026. Watch them. Don&#8217;t build for them yet.</p><p><strong>4. Think in product catalogs, not marketing pages.</strong> Whether it&#8217;s a simple products.json or a full MCP server, the exercise of making your offerings machine-parseable pays off regardless of which protocol wins. Describe your product the way a database would: name, description, price, features, availability, purchase URL. That structured data is the common substrate underneath every protocol.</p><p><strong>5. Front-load your value proposition.</strong> When an agent reads your landing page to decide whether to recommend you, <a href="https://www.position.digital/blog/ai-seo-statistics/">44% of LLM citations come from the first 30% of a page&#8217;s text</a>. Your opening paragraph isn&#8217;t an intro &#8212; it&#8217;s your pitch to every agent that will ever evaluate you. Write it as a standalone statement of what this is and why it matters.</p><h2>The Real Race</h2><p>The protocol war isn&#8217;t really about protocols. It&#8217;s about <strong>who mediates the transaction between an AI agent and a merchant.</strong></p><p>Anthropic wants it to be the MCP ecosystem (open, extensible, they benefit from Claude adoption). OpenAI wants it inside ChatGPT (they take a cut via Stripe integration). Google wants it everywhere (they take a cut via discovery and ads).</p><p>Sound familiar? It should. Search &#8594; social &#8594; agents. The customer acquisition channel changes, the power dynamics don&#8217;t. Whoever controls the protocol controls the recommendation.</p><p>But here&#8217;s the thing about platform wars: the merchants who survive them are never the ones who bet everything on one platform. They&#8217;re the ones who made their product so clearly described, so easy to find, so unambiguous in what it offers, that <em>every</em> platform could surface it.</p><p>The indie builder&#8217;s advantage hasn&#8217;t changed: be small, be fast, be findable. The agents are coming to shop. Make sure they can read your menu.</p><p>---</p>]]></content:encoded></item><item><title><![CDATA[Nobody's Reading Your llms.txt (And That Might Be Fine)]]></title><description><![CDATA[llms.txt guide: does it actually help AI discover your site?]]></description><link>https://www.theundercurrent.dev/p/nobodys-reading-your-llmstxt-and</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/nobodys-reading-your-llmstxt-and</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Mon, 02 Mar 2026 13:54:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!N2Yh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A Hacker News thread dropped this week with server-side proof that should give every indie builder pause: <strong>no major LLM provider is requesting llms.txt files.</strong></p><p>Tirreno, a server analytics tool, tracked every request to their llms.txt and agents.md endpoints. The only visitors? WebPageTest, BuiltWith, and random crawlers from OVH and Google Cloud Platform. Zero ChatGPT. Zero Claude. Zero Perplexity. Zero anything that matters.</p><p>If you spent time this month deploying llms.txt files across your projects &#8212; and a lot of us did &#8212; this feels like a gut punch. But the HN commenters clarified a disconnect that&#8217;s worth understanding, because it changes how you think about the entire AI discoverability stack.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N2Yh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N2Yh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N2Yh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N2Yh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N2Yh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N2Yh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:741270,&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://www.theundercurrent.dev/i/189465189?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.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_!N2Yh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N2Yh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N2Yh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N2Yh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe997d213-ddbd-41d3-af39-90c73de556e1_1344x896.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>The misconception</h2><p>llms.txt was never designed for training crawlers. Those are dumb scrapers &#8212; <code>requests.get()</code>, regex for links, recurse. No reasoning, no file interpretation. They don&#8217;t read llms.txt any more than Googlebot reads your README.</p><p>The file is designed for <strong>client-side agents</strong> &#8212; tools like Claude Code, MCP-connected development environments, and AI-powered browsing agents that fetch it during live sessions. One HN commenter: <em>&#8220;I have my clients set up to always use them when they&#8217;re available, and since I did that they&#8217;ve been way faster and more token efficient.&#8221;</em></p><p>That&#8217;s a real audience. It&#8217;s just not the audience most people assumed.</p><h2>What the data actually says</h2><p>Here&#8217;s where it gets interesting. A <a href="https://www.position.digital/blog/ai-seo-statistics/">Position.digital analysis</a> of 100+ AI SEO statistics found that <strong>domain authority dwarfs llms.txt</strong> for AI citation likelihood. Sites with 32K+ referring domains are 3.5x more likely to be cited by ChatGPT. For a solo creator with a handful of projects, no llms.txt file is going to overcome a domain authority gap of that magnitude.</p><p>But SearchEngineLand published something more useful: a <a href="https://searchengineland.com/what-13-months-of-data-reveals-about-llm-traffic-growth-and-conversions-470115">13-month study</a> (January 2025 through February 2026) tracking LLM referral traffic across multiple sites. The numbers:</p><ul><li><p><strong>LLM referral traffic is still under 2% of total traffic</strong> &#8212; tiny in absolute terms</p></li><li><p><strong>But it grew 80% from H1 to H2 2025</strong>, with some sites seeing 300% growth</p></li><li><p><strong>18% conversion rate from LLM referrals</strong> &#8212; the highest of any channel, beating paid shopping, organic search, and PPC</p></li></ul><p>That 18% conversion rate is the headline nobody&#8217;s talking about. LLM-referred visitors arrive pre-qualified. The AI already answered their question and pointed them to you as the source. They&#8217;re not browsing &#8212; they&#8217;re acting on a recommendation.</p><h2>The citation window</h2><p>Here&#8217;s a stat that should change how you write everything: <strong>44.2% of all LLM citations come from the first 30% of a page&#8217;s text.</strong></p><p>Intros are everything now. Every blog post, every landing page, every README &#8212; front-load the value. If an AI is going to cite you, it&#8217;s citing your opening, not your conclusion. Write your first two sentences as if they&#8217;re the only thing a machine will ever read, because statistically, they might be.</p><h2>So what actually works?</h2><p>A dev.to article titled <a href="https://dev.to/bridgeai/seo-is-not-dead-its-being-replaced-by-agent-operability-1mn8">&#8220;SEO Is Not Dead &#8212; It&#8217;s Being Replaced by Agent Operability&#8221;</a> frames the shift cleanly: the question isn&#8217;t &#8220;can you be found?&#8221; but &#8220;can you be used?&#8221; Structured metadata, OpenAPI endpoints, semantic HTML, agents.json &#8212; these matter more than keywords.</p><p><a href="https://moz.com/blog/2026-seo-trends-predictions-from-20-experts">Moz&#8217;s 2026 predictions</a> from 20 SEO experts converge on one theme: <strong>brand sentiment and trust now influence AI visibility.</strong> Earned media, reviews, third-party mentions &gt; keyword density. Digital PR is &#8220;non-negotiable&#8221; for AI search visibility.</p><p>For indie builders specifically, this translates to a few concrete moves:</p><p><strong>1. Multiple focused surfaces beat one big site.</strong> If you have distinct projects, give them distinct homes. Each domain creates a clean entity association for AI models. &#8220;makemcp.dev = MCP tools&#8221; is a clearer signal than &#8220;johndoe.com/projects/mcp-tools.&#8221; The specificity is the point.</p><p><strong>2. Cross-posting is infrastructure, not laziness.</strong> High domain-authority platforms like dev.to get indexed fast by both Google and AI training pipelines. Cross-posting with canonical URLs preserves your SEO while creating discoverability surfaces you can&#8217;t build alone. Every cross-post is a backlink and a training signal.</p><p><strong>3. Front-load every piece of content.</strong> Given the 44.2% citation stat, your intro paragraph is your AI pitch. Write it as a standalone statement of what this page is and why it matters. Save the nuance for paragraph three.</p><p><strong>4. Keep your llms.txt files.</strong> They cost nothing to maintain, and the client-agent audience (developers using AI coding tools) is growing fast. It&#8217;s just not the whole strategy &#8212; it&#8217;s one signal among many.</p><p><strong>5. Watch the platform wars.</strong> Beehiiv just <a href="https://www.axios.com/2026/02/26/beehiiv-washington-post-creator">landed a deal with the Washington Post</a> for creator-led newsletters. Their CEO on AI crawling: <em>&#8220;Some publishers don&#8217;t want their content crawled and indexed, others want to be crawled by everyone possible, because it&#8217;s top of funnel.&#8221;</em> If newsletter platforms start competing on AI crawlability &#8212; offering llms.txt, robots.txt customization, structured data controls &#8212; that becomes a real differentiator. Substack doesn&#8217;t offer any of this today.</p><h2>The uncomfortable truth</h2><p>The uncomfortable truth about AI discoverability in 2026 is that there&#8217;s no shortcut file you can deploy. No single technical fix. The llms.txt specification is useful for a specific audience (agent developers), and you should keep it. But the actual game is the same boring, compounding work it&#8217;s always been: build genuine authority in a tight niche, create content worth citing, distribute it across surfaces that matter, and make your first paragraph count.</p><p>The 18% conversion rate on LLM referrals tells you the prize is real. You just can&#8217;t hack your way to it with a text file.</p><div><hr></div><p><strong>Sources:</strong></p><ul><li><p><a href="https://news.ycombinator.com/item?id=47058870">HN: Nobody&#8217;s crawling llms.txt</a> &#8212; Hacker News</p></li><li><p><a href="https://www.position.digital/blog/ai-seo-statistics/">100+ AI SEO Statistics</a> &#8212; Position.digital</p></li><li><p><a href="https://searchengineland.com/what-13-months-of-data-reveals-about-llm-traffic-growth-and-conversions-470115">13 Months of LLM Traffic Data</a> &#8212; Search Engine Land</p></li><li><p><a href="https://dev.to/bridgeai/seo-is-not-dead-its-being-replaced-by-agent-operability-1mn8">SEO Is Not Dead &#8212; It&#8217;s Being Replaced by Agent Operability</a> &#8212; Dev.to</p></li><li><p><a href="https://moz.com/blog/2026-seo-trends-predictions-from-20-experts">2026 SEO Trends from 20 Experts</a> &#8212; Moz</p></li><li><p><a href="https://www.axios.com/2026/02/26/beehiiv-washington-post-creator">Beehiiv &#215; Washington Post</a> &#8212; Axios</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Crack the Code: What the 𝕏 Algorithm Actually Rewards (And How to Use It)]]></title><description><![CDATA[X Twitter algorithm explained for creators: how the open-source recommendation engine works]]></description><link>https://www.theundercurrent.dev/p/crack-the-code-what-the-algorithm</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/crack-the-code-what-the-algorithm</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Sun, 01 Mar 2026 13:03:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mAYE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you're posting on &#120143; and wondering why some tweets explode while others die in silence, the answer isn't luck. It's architecture.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mAYE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mAYE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mAYE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mAYE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mAYE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mAYE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:657598,&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://www.theundercurrent.dev/i/189377488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.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_!mAYE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mAYE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mAYE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mAYE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3fbb9e7-739c-4176-b345-0ff5b05049b3_1344x896.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><p>In March 2023, Elon Musk open-sourced Twitter's recommendation algorithm at <a href="https://github.com/twitter/the-algorithm">github.com/twitter/the-algorithm</a>. Nearly three years later, the core pipeline remains the most detailed public look inside any major platform's ranking system. And while the trained model weights and live tuning parameters stay proprietary &#8212; meaning we can see the <em>shape</em> of the machine but not every dial setting &#8212; what's visible gives creators an enormous strategic advantage.</p><p>Here's the playbook.</p><div><hr></div><h2>The Funnel: How Your Tweet Reaches Anyone</h2><p>Every time someone opens &#8220;For You,&#8221; the algorithm takes ~500 million daily tweets and narrows them to a few hundred. Understanding this funnel is step one to utilizing 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_!zCh0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zCh0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zCh0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zCh0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zCh0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zCh0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:569975,&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;:false,&quot;internalRedirect&quot;:&quot;https://www.theundercurrent.dev/i/189377488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.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_!zCh0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zCh0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zCh0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zCh0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79f219f1-0829-496b-b5bf-19b8c4b337eb_1344x896.jpeg 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><h3>Step 1: Candidate Sourcing (~1,500 tweets)</h3><p>The algorithm pulls from two pools &#8212; roughly 50/50:</p><p><strong>In-Network (followers):</strong> Not all followers see your posts equally. A model called <strong>RealGraph</strong> scores how likely each follower is to interact with <em>you specifically</em>. If someone follows you but never engages, they functionally stop seeing you. <strong>Implication: your most engaged followers are your distribution engine.</strong> Reward them. Reply to their replies. Keep that signal hot.</p><p><strong>Out-of-Network (discovery):</strong> This is how you reach people who <em>don't</em> follow you. Three systems work in parallel:</p><ul><li><p><strong>SimClusters</strong> &#8212; Groups users into interest communities. If people in your &#8220;cluster&#8221; engage with your post, it gets surfaced to similar users. <strong>This is how niche expertise compounds.</strong> Stay on-topic and your cluster tightens around high-intent audiences.</p></li><li><p><strong>TwHIN</strong> &#8212; A 1.5-billion-node knowledge graph connecting users and tweets semantically. Posts that sit at intersections of interest graphs get broader distribution.</p></li><li><p><strong>UTEG</strong> &#8212; Topic-based matching. Consistent use of specific subjects/entities teaches the algorithm what you're about.</p></li></ul><p><strong>Creator takeaway:</strong> The discovery engine rewards <em>consistency and specificity</em>. The algorithm is trying to categorize you. Make it easy. Accounts that bounce between random topics confuse the system and get less out-of-network reach.</p><h3>Step 2: The Heavy Ranker (Where the Magic Happens)</h3><p>A 48-million-parameter neural network scores every candidate tweet on ten engagement dimensions simultaneously. Here's where most creators' intuition is completely wrong.</p><p><strong>The actual signal weights (out of 100):</strong></p><ul><li><p><strong>Reply that gets a reply back from you: +75</strong> &#8212; THE most powerful signal. Reply to your replies.</p></li><li><p><strong>Reply to your tweet: +13.5</strong> &#8212; Conversation starters win.</p></li><li><p><strong>Profile visit &#8594; like or reply: +12.0</strong> &#8212; Make people curious enough to click your profile.</p></li><li><p><strong>Click into thread &#8594; reply or like: +11.0</strong> &#8212; Threads that pull people in get rewarded.</p></li><li><p><strong>Click into thread &#8594; stay 2+ min: +10.0</strong> &#8212; Depth &gt; brevity for distribution.</p></li><li><p><strong>Retweet: +1.0</strong> &#8212; Barely matters. Stop optimizing for RTs.</p></li><li><p><strong>Like: +0.5</strong> &#8212; Nearly irrelevant to distribution.</p></li><li><p><strong>Watch 50%+ of video: +0.005</strong> &#8212; Video retention matters, but less than conversation.</p></li><li><p><strong>&#8220;Show less&#8221; / mute / block: Negative</strong> &#8212; Compound penalties over time.</p></li></ul><p>Read that again. <strong>A reply you engage with is worth 150x more than a like.</strong> The algorithm doesn't want applause &#8212; it wants <em>dialogue</em>. Every &#8220;great post &#128293;&#8221; reply you leave unanswered is distribution left on the table.</p><h3>Step 3: Filters That Can Kill Your Reach</h3><p>Even after scoring well, several filters can suppress your content:</p><ul><li><p><strong>Author Diversity</strong> &#8212; The algorithm won't let you dominate any single person's feed, no matter how good your engagement is. Posting 20 times a day hits diminishing returns fast.</p></li><li><p><strong>Feedback Fatigue</strong> &#8212; If your audience consistently scrolls past a content type (e.g., video), the system learns to deprioritize that format <em>from you specifically</em>.</p></li><li><p><strong>Visibility Filtering</strong> &#8212; Trust and safety overlays can reduce reach for flagged content.</p></li></ul><div><hr></div><h2>Your Account Has a Credit Score</h2><p>Beneath per-tweet ranking sits <strong>TweepCred</strong> &#8212; a PageRank-style algorithm that scores your <em>account's overall reputation</em>. High-TweepCred accounts get a baseline boost on every tweet before engagement even kicks in.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_jZg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_jZg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_jZg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_jZg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_jZg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_jZg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:519909,&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://www.theundercurrent.dev/i/189377488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.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_!_jZg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_jZg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_jZg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_jZg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef04be3-f98d-4cc0-a807-61d8d4607f4b_1344x896.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><strong>This means your worst posts drag down your best ones.</strong> Penalties compound. Spam behavior, repeatedly mentioning handles who don't engage back, low-quality posts, NSFW flags &#8212; these don't just hurt one tweet. They lower your account's credit score, reducing reach across everything you post.</p><p><strong>Building TweepCred:</strong></p><ul><li><p>Consistent engagement from your replies and conversations</p></li><li><p>Verification (paid or legacy) provides a measurable boost</p></li><li><p>Being engaged with by other high-TweepCred accounts (network effects)</p></li></ul><p><strong>Destroying TweepCred:</strong></p><ul><li><p>Getting muted, blocked, or reported repeatedly</p></li><li><p>Spam patterns (mass-mentioning, repetitive posting)</p></li><li><p>Content flagged as offensive (up to 80% reach reduction)</p></li><li><p>Posting external links excessively</p></li></ul><div><hr></div><h2>The Creator's Cheat Sheet</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vk2-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vk2-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vk2-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vk2-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vk2-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vk2-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:496307,&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://www.theundercurrent.dev/i/189377488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.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_!Vk2-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vk2-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vk2-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vk2-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa650098c-93a7-4808-be1a-6cf25d56f846_1344x896.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><h3>What to Do More Of</h3><ol><li><p><strong>Reply to your replies.</strong> This is the single highest-leverage action on the platform. That +75 weight is absurd. Treat your reply section as a second content stream.</p></li><li><p><strong>Write for conversation, not applause.</strong> Ask questions. Take stances that invite thoughtful disagreement. End posts with something people <em>need</em> to respond to.</p></li><li><p><strong>Nail the first 30 minutes.</strong> The algorithm evaluates early engagement velocity to decide whether to amplify. Post when your most engaged followers are online. Consider DMing a few people to check it out (yes, this works &#8212; you're hacking the velocity signal).</p></li><li><p><strong>Use threads strategically.</strong> Posts that pull readers in for 2+ minutes of dwell time get a +10 boost. Long-form threads that people actually read outperform quick hits for distribution.</p></li><li><p><strong>Post video &#8212; but prioritize retention.</strong> The 50%+ completion signal is small (+0.005), but video gets preferential placement in the feed. Hook in the first 2 seconds. Keep it tight.</p></li><li><p><strong>Stay in your lane.</strong> The discovery engine (SimClusters, UTEG) rewards topical consistency. Going viral once on a random topic doesn't build your cluster &#8212; it confuses it.</p></li><li><p><strong>Build your network graph.</strong> Engaging with and being engaged by high-TweepCred accounts lifts your own score. Genuine relationships with other creators in your space compound over time.</p></li></ol><h3>What to Stop Doing</h3><ol><li><p><strong>Stop chasing likes and retweets.</strong> Combined, they're worth 1.5 points. A single replied-to reply is worth 75. The math is not close.</p></li><li><p><strong>Stop posting external links in tweets.</strong> Links are actively penalized. If you need to share a URL, put it in the reply to your own tweet, or use the &#8220;link in bio&#8221; approach.</p></li><li><p><strong>Stop ignoring your reply section.</strong> Every unanswered reply is a missed +75 signal. Even a quick response keeps the algorithm feeding you distribution.</p></li><li><p><strong>Stop posting at random times.</strong> Engagement velocity in the first 30 minutes determines whether the algorithm amplifies or buries your post. Test posting times and double down on what works.</p></li><li><p><strong>Stop using ALL CAPS and aggressive mention-spam.</strong> Both trigger negative signals that compound against your account score.</p></li><li><p><strong>Stop posting when you have nothing to say.</strong> Low-engagement posts actively hurt your TweepCred. Five great posts per week beats 20 mediocre ones.</p></li></ol><div><hr></div><h2>The Uncomfortable Truth</h2><p>The &#120143; algorithm is an engagement optimization machine that overwhelmingly rewards <strong>conversation</strong> &#8212; specifically, back-and-forth dialogue between creators and their audiences. Content that provokes thoughtful replies is structurally favored over content that merely informs.</p><p>This means the most effective growth strategy on &#120143; isn't about crafting the perfect tweet. It's about <strong>building a community that talks to you and each other.</strong> The algorithm will do the rest.</p><p>The code is open. The weights are clear. The question isn't whether you <em>can</em> work with the system &#8212; it's whether you will.</p><div><hr></div><p><em>Sources: <a href="https://github.com/twitter/the-algorithm">twitter/the-algorithm</a> on GitHub, &#120143; Engineering documentation, Social Media Today analysis of &#120143; ranking factors, independent code analyses by Shaped.ai and others.</em></p>]]></content:encoded></item><item><title><![CDATA[AI Didn’t Kill the Terminal. It Made It the Default Interface.]]></title><description><![CDATA[The CLI renaissance is real, and AI is the reason. Inside the tools, aesthetics, and architecture driving developers back to text.]]></description><link>https://www.theundercurrent.dev/p/ai-didnt-kill-the-terminal-it-made</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/ai-didnt-kill-the-terminal-it-made</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Sat, 28 Feb 2026 14:01:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!E_O0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Something strange is happening in developer tooling. The terminal &#8212; that relic of the 1970s, the thing designers spent decades trying to replace with graphical interfaces &#8212; is having a full renaissance. And AI is the reason.</p><p>This is not nostalgia. It is convergence. AI chat is inherently text-based. The terminal is inherently text-based. They are natural partners, and a critical mass of developers are realizing that a good TUI beats a mediocre GUI for agent interaction.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E_O0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E_O0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E_O0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E_O0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E_O0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E_O0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:717961,&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://www.theundercurrent.dev/i/189135927?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.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_!E_O0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E_O0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E_O0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E_O0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3165690-3b6b-456f-b139-6066ba331399_1344x896.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>The New Terminal Stack</h2><p>The modern terminal is unrecognizable from five years ago. <strong>Nushell</strong> treats everything as structured data instead of strings &#8212; your terminal becomes a data processing environment, not a text pipe. <strong>Charmbracelet Crush</strong> is a terminal-based AI coding assistant built with Bubble Tea, the Go TUI framework: beautiful interface, multi-provider AI, full agent capabilities. It is a direct competitor to Claude Code CLI, and the comparison threads are already heated.</p><p><strong>OpenCode</strong> from SST takes a similar approach &#8212; TUI-first AI coding. Developers are picking between Crush prettier interface and OpenCode faster response times, which is exactly the kind of competition that drives a tooling category forward. Add <strong>fzf</strong>, <strong>TLDR</strong>, and modern file managers to the stack, and terminal navigation starts to feel like a GUI &#8212; but faster.</p><p>The pattern is clear: every major AI coding tool is shipping a CLI-first experience. The browser-based IDE is not dead, but the terminal is where the serious work happens now.</p><h2>The Retro-Futurist Aesthetic Is Not Niche Anymore</h2><p>The cultural signal is just as strong as the technical one. CRT scanlines, phosphor glow, green-on-black &#8212; these are not fringe design choices anymore. They are trending.</p><p><strong>RetroTerminal</strong> launched in mid-2025 as a way to chat with LLMs through an old-school terminal interface, complete with Matrix-style character-by-character typing and CRT effects. It got an enthusiastic Product Hunt reception. Open-source CSS toolkits for CRT effects are proliferating on GitHub &#8212; curved screens, repeating gradient scanlines, the whole aesthetic.</p><p>The 2026 design trend reports from Kittl and Envato both name retro futurism as a major movement: "Wobbly, hand-drawn lines meet glowing AI grids. Retro warmth fuses with futuristic precision." This is not designers being ironic. It is a genuine aesthetic response to living inside AI tools all day.</p><h2>The Deeper Pattern</h2><p>Dan Saffer nailed it in his piece on UI for AI: "For fifty years, computing has been organized around applications." AI agents break that model. We are returning to a conversational, text-first paradigm &#8212; which is exactly what terminals were.</p><p>IRC became Discord. Email became chat. GUIs are giving way to natural language. The aesthetic nostalgia maps to a real architectural shift: a regression to the mean of text as the primary interface.</p><p>But there is a wrinkle. MCP Apps &#8212; which launched in January as the first official MCP extension &#8212; let tools return interactive HTML UIs <em>inside</em> the conversation. Not links. Not screenshots. Actual functional interfaces with bidirectional communication. Figma, Amplitude, Asana, Slack, and Canva had day-one integrations. Over 75 apps within two weeks.</p><p>This is not terminal <em>or</em> GUI. It is terminal <em>with</em> embedded interactive elements. Think of it as the 1990s dream of the web inside the terminal finally realized, thirty years late, via AI.</p><h2>What This Means for Builders</h2><p>If you are building developer tools, the terminal is no longer the fallback interface &#8212; it is the primary one. Ship a CLI first. Make it beautiful with a proper TUI framework. The audience is there and growing.</p><p>If you are building for end users, watch MCP Apps closely. The conversational interface is eating the application model, but users still want rich interactions. The tools that figure out how to embed GUI affordances inside text-first workflows will define the next generation of software.</p><p>The terminal did not survive despite AI. It survived <em>because</em> of AI. The oldest interface in computing turns out to be the most natural fit for the newest paradigm. Sometimes the future looks exactly like the past, just with better lighting.</p>]]></content:encoded></item><item><title><![CDATA[The AI Cambrian Explosion Has 38 Legs]]></title><description><![CDATA[OpenClaw hit 160K stars. Meta bought Manus for $2B. A 678KB Zig binary runs an AI agent on $5 hardware. The personal agent landscape just got very real.]]></description><link>https://www.theundercurrent.dev/p/the-agent-wars-38-platforms-one-existential</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-agent-wars-38-platforms-one-existential</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Fri, 27 Feb 2026 14:03:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!F0cF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A comprehensive survey now tracks <strong>38 platforms</strong> in the personal AI agent space, spanning managed services, self-hosted frameworks, and everything in between. Six months ago, this was a two-horse race. Now it is a Cambrian explosion &#8212; and the fault lines tell you everything about where this market is heading.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F0cF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F0cF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F0cF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F0cF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F0cF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F0cF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:611524,&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://www.theundercurrent.dev/i/189136210?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.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_!F0cF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F0cF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F0cF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F0cF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91cb336c-b0ee-4708-90b5-0a75b562c7ac_1344x896.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>The Managed Tier: Convenience at a Price</h2><p>The managed platforms are consolidating fast. <strong>Manus</strong> &#8212; the autonomous execution engine that writes code, deploys apps, and browses the web &#8212; was acquired by Meta for over $2 billion in late 2025. It is now integrated across WhatsApp, Telegram, LINE, and Slack. Meta is positioning Manus as the agent layer for its entire messaging empire, which is either brilliant or terrifying depending on your feelings about Meta having an AI agent reading your group chats.</p><p><strong>Lindy</strong> has 400K users at $50/month, is iMessage-native, and holds SOC 2 plus HIPAA compliance. It is the boring-but-reliable play. <strong>Poke</strong> raised a $15M seed at a $100M valuation from General Catalyst, lives in your messaging apps, and offers a unique "Maximum Privacy" mode where even the company cannot read your chats. (WhatsApp banned Poke during Meta antitrust proceedings, which tells you something about the competitive dynamics.) And <strong>ai.com</strong> &#8212; the $70M domain with the Super Bowl ad &#8212; is doing stock trading and workflows with heavy marketing but light substance so far.</p><h2>The Self-Hosted Tier: Where It Gets Interesting</h2><p>OpenClaw sits at 160,000 GitHub stars, 430,000 lines of TypeScript, and 50-plus messaging integrations. It is the Linux of personal agents: powerful, flexible, and increasingly the target of both security researchers and efficiency-obsessed fork maintainers.</p><p>The forks are where the real story is. A CVE hit OpenClaw hard in January &#8212; CVE-2026-25253, a critical one-click RCE vulnerability with a CVSS score of 8.8. The University of Toronto issued an advisory. RunZero confirmed it allows complete system compromise for unauthenticated attackers. The patch shipped January 29, but many instances remain unpatched.</p><p>That CVE directly accelerated what I am calling the efficiency race:</p><p><strong>NanoBot</strong> (22K stars): 99% smaller than OpenClaw at just 4,000 lines of Python. Supports China-platform integrations like Feishu, DingTalk, and QQ.</p><p><strong>PicoClaw</strong> (17K stars): Single Go binary, under 10MB RAM, runs on RISC-V edge hardware.</p><p><strong>ZeroClaw</strong> (16K stars): Under 5MB RAM, WASM sandbox, credential encryption, over 1,000 tests. Security-first architecture explicitly marketed as a response to OpenClaw vulnerabilities.</p><p><strong>NullClaw</strong> (1.4K stars): A 678KB Zig binary that boots in 2 milliseconds and uses roughly 1MB of RAM. Runs on $5 hardware.</p><p><strong>MimiClaw</strong> (2.8K stars): Runs on an ESP32-S3 chip. Five dollars buys you the hardware for a personal AI agent.</p><p>Each of these forks makes an explicit trade: less functionality for dramatically less attack surface. When your agent framework is 430K lines of TypeScript, every line is a potential vulnerability. When it is 678 bytes of Zig, the audit takes an afternoon.</p><h2>The App Store Moment</h2><p>ClawHub now hosts over 3,200 skills with 800-plus active developers and 15,000 daily installs. It is the npm of AI agents &#8212; including npm's worst tendencies. The ClawHavoc incident found 1,467 malicious payloads across roughly 4,000 scanned skills. Thirty-six percent contained prompt injection. VirusTotal partnered with ClawHub for automatic malware scanning, which is necessary but reactive.</p><p>The supply chain problem that took npm a decade to partially solve is being replayed at 10x speed in agent frameworks, with higher stakes. A malicious npm package compromises your build. A malicious agent skill compromises your agent &#8212; which has access to your files, your APIs, your credentials, and increasingly your entire digital life.</p><h2>MCP Goes Neutral</h2><p>Anthropic donated the Model Context Protocol to the Linux Foundation, establishing the Agentic AI Foundation. MCP is now a neutral, open standard &#8212; not Anthropic's proprietary protocol. This is the kind of move that signals long-term infrastructure thinking: by giving up control, Anthropic ensures MCP becomes the connective tissue for the entire agent ecosystem rather than just their corner of it.</p><p>For builders, this is the clearest signal yet that MCP-based tooling has staying power. Skills and integrations built on MCP will work across Claude, Codex, Gemini, and whatever comes next. The standard is no longer dependent on any single company's fortunes.</p><h2>What This Means</h2><p>The agent market is bifurcating into two worlds. In one, managed platforms backed by billions in funding compete on convenience, compliance, and integration depth. In the other, a constellation of tiny, auditable, self-hosted tools compete on efficiency, security, and the principle that your AI agent should not require more resources than your operating system.</p><p>Both worlds will thrive. But if you are a solo builder, the self-hosted tier is where the leverage is. A 678KB binary that runs on a $5 board is not a toy &#8212; it is a statement about what personal computing should look like in the age of AI. The future of agents is not one platform. It is 38 platforms and counting, each making a different bet on what matters most.</p>]]></content:encoded></item><item><title><![CDATA[The Agent Skills Gold Rush Has a Malware Problem]]></title><description><![CDATA[20% of one major skills registry was malicious. The agent ecosystem's npm moment is here &#8212; and it's uglier than anyone expected.]]></description><link>https://www.theundercurrent.dev/p/the-agent-skills-gold-rush-has-a</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-agent-skills-gold-rush-has-a</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Thu, 26 Feb 2026 14:02:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CeHA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Three weeks ago, ClawHub had roughly 2,800 skills in its registry. Today it has over 10,700. In that same window, security researchers found <strong>more than 800 malicious packages</strong> &#8212; approximately 20% of the entire registry &#8212; primarily delivering Atomic macOS Stealer. One user uploaded 354 malicious packages in what appears to have been an automated blitz.</p><p>There was no static analysis. No code review. No signing requirement. Just an open door and a welcome mat.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CeHA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CeHA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CeHA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CeHA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CeHA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CeHA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:670392,&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://www.theundercurrent.dev/i/189135796?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.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_!CeHA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CeHA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CeHA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CeHA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c697ff7-cb0b-4fac-874a-2be1c558c643_1344x896.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>The Marketplace Explosion</h2><p>The skills marketplace isn't just ClawHub anymore. The landscape has fractured into a dozen competing registries, each with its own trade-offs between scale and safety:</p><p><strong>SkillsMP</strong> leads with 96,000+ skills and Claude Code compatibility &#8212; but zero security audit. <strong>MCP.so</strong> hosts 17,000+ MCP servers with universal compatibility. <strong>SkillHub</strong> offers 7,000+ with AI-based quality scoring (though scoring doesn't check security &#8212; a distinction worth noting). And <strong>Vercel</strong> just entered with Skills.sh, a shell-based ecosystem they're positioning as "npm for AI agents."</p><p>The connective tissue across all of this is the SKILL.md open standard, adopted by Claude Code, Codex CLI, and Gemini CLI since Anthropic published it in December 2025. Skills are now portable across platforms. That's great for distribution. It's terrible for containment.</p><h2>The Security Reality</h2><p>The advisories arrived in a cluster last week, and they paint a grim picture:</p><p><strong>Conscia</strong> found over 30,000 internet-exposed OpenClaw instances via Censys and Bitsight, many running without authentication. Bitdefender telemetry confirmed OpenClaw on corporate endpoints as "Shadow AI" &#8212; the enterprise security nightmare nobody planned for.</p><p><strong>Microsoft</strong> published official guidance for running OpenClaw safely, covering identity, isolation, and runtime risk. When Microsoft writes security guides for your open-source project, that's simultaneously the ultimate adoption signal and a red flag about how many people are running it wrong.</p><p><strong>Kaspersky</strong> documented the AMOS infostealer campaign targeting ClawHub skills specifically. <strong>SecurityWeek</strong> reported on CVE-2026-25253 &#8212; a CVSS 8.8 one-click RCE vulnerability patched in January but still unpatched on many instances. And <strong>The Register</strong> found that 7% of one major registry's skills were literally leaking API keys through the LLM context window.</p><h2>The npm Parallel Is Exact</h2><p>If this feels familiar, it should. The agent skills ecosystem is replaying the npm supply chain crisis at 10x speed. Open registry with low barriers to entry. Automated bulk publishing. Typosquatting. Malicious payloads hiding behind legitimate-sounding package names. The only difference is the attack surface &#8212; when a malicious npm package runs, it compromises your build pipeline. When a malicious agent skill runs, it compromises your <em>agent</em>, which has access to your files, your APIs, your credentials, and increasingly your entire digital life.</p><p>The responses are predictable and insufficient. VirusTotal partnered with ClawHub for automatic malware scanning &#8212; necessary but reactive. SecureClaw launched as an open-source auditing tool &#8212; useful but opt-in. The Snyk team found that 36% of scanned skills contained prompt injection, suggesting the problem extends well beyond traditional malware into the gray zone of skills that manipulate agent behavior without deploying a payload.</p><h2>What Builders Should Do Now</h2><p>If you're running OpenClaw or any agent framework with third-party skills:</p><p><strong>Audit what you have installed.</strong> Run <code>openclaw security audit --deep</code> if available. Review skill permissions manually if not. Skills with writable path declarations, network access, or credential requests deserve extra scrutiny.</p><p><strong>Pin versions and verify sources.</strong> Don't auto-update skills. Treat every update like a dependency upgrade in production &#8212; review the diff, check the maintainer history, verify the repository.</p><p><strong>Cross-list if you publish.</strong> SkillsMP's 96K skills and Claude Code compatibility make it worth listing on multiple registries. But publish with security in mind: localhost-only where possible, minimal permissions, clear documentation of what your skill accesses and why.</p><p>The gold rush is real. The claims are being staked. But 20% of the territory is mined, and the prospectors are still running in barefoot.</p>]]></content:encoded></item><item><title><![CDATA[The Terminal Always Wins]]></title><description><![CDATA[Why AI is bringing back the command line: a history of terminal interfaces]]></description><link>https://www.theundercurrent.dev/p/the-terminal-always-wins</link><guid isPermaLink="false">https://www.theundercurrent.dev/p/the-terminal-always-wins</guid><dc:creator><![CDATA[Mei Park]]></dc:creator><pubDate>Wed, 25 Feb 2026 14:14:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!miEq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>The chat box is a terminal.</strong></p><p>Strip away the CSS and every AI interface is a command line: you type, it responds, scrolling text. Claude Code, Gemini CLI, Codex &#8212; the hottest dev tools in 2026 are literally terminal applications. We went from GUIs back to text prompts in under a decade.</p><p>This is not a regression. It&#8217;s a pattern.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!miEq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!miEq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg 424w, https://substackcdn.com/image/fetch/$s_!miEq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg 848w, https://substackcdn.com/image/fetch/$s_!miEq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!miEq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!miEq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg&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;:1872120,&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://www.theundercurrent.dev/i/189097496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.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_!miEq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg 424w, https://substackcdn.com/image/fetch/$s_!miEq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg 848w, https://substackcdn.com/image/fetch/$s_!miEq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!miEq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1438c93-aeab-4a15-ae63-c5d36b921d07_2688x1792.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>We&#8217;ve Been Here Before</h2><p>The last time the most exciting software lived in a terminal was the early 1990s. Before the web ate everything, the cutting edge was text-based: Gopher, USENET, IRC, BBS culture. Then the browser arrived, and we spent thirty years building increasingly complex graphical interfaces on top of increasingly simple interactions.</p><p>Now the pendulum has swung back. When Claude draws a diagram in chat, it&#8217;s ASCII art. When an LLM renders a table in markdown, it&#8217;s working within the same constraints as a 1985 BBS artist &#8212; fixed-width characters, no pixels, pure text. Someone recently built <a href="https://medium.com/@PowerUpSkills/building-animated-ascii-art-in-the-terminal-6cb03ab242dc">animated ASCII art in the terminal</a> and called it &#8220;one of the most constrained UI problems you can tackle.&#8221; FlowingData published <a href="https://flowingdata.com/2026/02/05/ascii-art-visually-explained/">a visual explainer on ASCII art</a> this month. The aesthetic never died &#8212; it was just waiting for a reason to matter again.</p><h2>Old Protocols, New Relevance</h2><p>The Gemini protocol &#8212; spiritual successor to Gopher &#8212; is <a href="https://en.wikipedia.org/wiki/Gemini_(protocol)">still alive</a> and philosophically aligned with how agents want to communicate: text-first, minimal overhead, structured hierarchy.</p><p>Look at MCP&#8217;s design: stdio, server-sent events, structured tool descriptions. It echoes SMTP and NNTP more than HTTP. Even the naming is telling &#8212; &#8220;Model Context Protocol&#8221; could be &#8220;Message Control Protocol&#8221; and nobody would blink.</p><p>The agent-to-agent protocol space is even more revealing. Google&#8217;s A2A, the emerging ANP spec, and a new <a href="https://arxiv.org/html/2602.15055v1">ACP paper on arXiv</a> proposing federated orchestration &#8212; these are all peer-to-peer architectures. Agents discovering each other, negotiating capabilities, forming ad-hoc networks. This is Napster/BitTorrent/XMPP with LLMs instead of file chunks. Agent &#8220;cards&#8221; (structured profiles with capabilities and auth) are basically DNS records for AI.</p><h2>What&#8217;s Actually New</h2><p>The communication patterns are a remix. Client-server, pub-sub, P2P, federation &#8212; all 70s-90s architecture. But three things are genuinely new:</p><ol><li><p><strong>Semantic intent.</strong> Agents negotiate in natural language, not fixed protocol headers.</p></li><li><p><strong>Dynamic capability discovery.</strong> Agents describe what they <em>can</em> do, not just what they <em>will</em> do.</p></li><li><p><strong>The user is optional.</strong> A2A explicitly supports agent-initiated tasks with no human in the loop.</p></li></ol><p>The old internet was human-to-human via machine. The new one is machine-to-machine with humans occasionally copied.</p><h2>The Design Lesson Being Rediscovered</h2><p>Simplicity scales. MCP won over complex alternatives because it&#8217;s basically JSON-RPC. UTCP&#8217;s pitch is &#8220;just use the API that already exists.&#8221; Gopher lost to HTTP, but HTTP is now so bloated that agents prefer structured text protocols.</p><p>The 70s-90s knew something we forgot: <strong>if you can&#8217;t describe it in a text file, it&#8217;s too complicated.</strong></p><p>Look at the current agent ecosystem. AGENTS.md. SOUL.md. System prompts. We&#8217;re writing agent configuration in markdown files. These are <code>.plan</code> files and <code>.forward</code> files all over again.</p><h2>Full Circle?</h2><p>Almost. We&#8217;re in a text-first, protocol-heavy, terminal-native moment that rhymes hard with 1993. But the agents aren&#8217;t just routing packets &#8212; they&#8217;re <em>understanding</em> them.</p><p>That&#8217;s the gap. Everything else is remix.</p>]]></content:encoded></item></channel></rss>