<?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[Michael Goetz]]></title><description><![CDATA[Rebuilding Customer Success with systems thinking and AI tooling.]]></description><link>https://www.michaelpgoetz.com</link><image><url>https://www.michaelpgoetz.com/img/substack.png</url><title>Michael Goetz</title><link>https://www.michaelpgoetz.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 27 Apr 2026 12:33:50 GMT</lastBuildDate><atom:link href="https://www.michaelpgoetz.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Michael Goetz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[michaelpgoetz@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[michaelpgoetz@substack.com]]></itunes:email><itunes:name><![CDATA[Michael Goetz]]></itunes:name></itunes:owner><itunes:author><![CDATA[Michael Goetz]]></itunes:author><googleplay:owner><![CDATA[michaelpgoetz@substack.com]]></googleplay:owner><googleplay:email><![CDATA[michaelpgoetz@substack.com]]></googleplay:email><googleplay:author><![CDATA[Michael Goetz]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Expansion Playbook Your CRO Doesn’t Want You to Run]]></title><description><![CDATA[The "revenue era of CS" is destroying the one thing that actually drives revenue.]]></description><link>https://www.michaelpgoetz.com/p/the-expansion-playbook-your-cro-doesnt</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/the-expansion-playbook-your-cro-doesnt</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 21 Apr 2026 14:03:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7xab!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The &#8220;revenue era of CS&#8221; movement has a pitch you&#8217;ve probably heard by now: CSMs should carry quotas. Expansion is everyone&#8217;s job. Customer Success is a revenue function.</p><p>It sounds progressive. It sounds like alignment. And it&#8217;s quietly destroying the one thing that makes CS effective.</p><p>Trust.</p><p>The moment a customer perceives their CSM as a salesperson, the relationship changes fundamentally. Technical buyers are especially attuned to this. Engineers have been burned by vendor relationships that prioritized extraction over value. They can smell a pitch from three slides away, and once they do, you&#8217;ve lost something you can&#8217;t get back.</p><p>But here&#8217;s the part nobody says out loud: <strong>the best CS orgs drive </strong><em><strong>more</strong></em><strong> expansion revenue than sales-led models, not less.</strong> They just do it differently.</p><div><hr></div><h2>The Problem With Sales-Led Expansion</h2><p>The standard playbook goes like this: CSM has a good relationship with the customer, so CSM should leverage that relationship to drive upsells. QBR becomes the venue for the pitch. Renewal becomes the forcing function for the expansion conversation.</p><p>This logic is backwards.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pPvv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pPvv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pPvv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png" width="800" height="520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:520,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:256959,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pPvv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You&#8217;re converting a trust asset into a transaction, and you can only do that once. The champion, who used to be candid about what was broken, now hedges because they know the CSM has a number to hit. The engineering lead who used to pull you into architecture discussions stops inviting you because the last three conversations ended with a pricing conversation.</p><p>The revenue shows up short-term. The trust doesn&#8217;t come back.</p><p>I&#8217;ve watched this scenario play out at dozens of companies. The teams that grafted sales motions onto CS relationships saw an initial bump in expansion revenue followed by a slow, steady decline in NRR. Teams that took a different approach, one rooted in technical depth, consistently outperformed.</p><div><hr></div><h2>The Framework: Architecture-Led Expansion (ALE)</h2><p>Expansion in technical products follows a predictable pattern: deeper integration leads to more use cases, more use cases lead to more users, more users create more value, and more value creates natural commercial expansion.</p><p>Your job is to accelerate that progression. Not to pitch upgrades.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7xab!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7xab!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 424w, https://substackcdn.com/image/fetch/$s_!7xab!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 848w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 1272w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7xab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png" width="800" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efe63dcf-0589-4765-91bc-245b074ba400_800x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:334930,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7xab!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 424w, https://substackcdn.com/image/fetch/$s_!7xab!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 848w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 1272w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>ALE has four components:</p><h3>1. Map the Whitespace Architecturally</h3><p>Most expansion conversations start with "What else can we sell them?&#8221; ALE starts with "What does their full technical environment look like, and where else could our product add value they haven&#8217;t considered?&#8221;</p><p>This is a fundamentally different lens. You&#8217;re not looking at your product catalog and matching features to a customer. You&#8217;re looking at their architecture and identifying gaps where your product is the natural solution. The difference is subtle but critical: one feels like selling, the other feels like consulting.</p><p>At GitHub, the CSMs who drove the most expansion revenue were the ones who could diagram a customer&#8217;s entire development workflow and identify the friction points our platform could eliminate. They never pitched. They solved problems that happened to require additional capabilities.</p><h3>2. Plant Seeds Through Problem-Solving</h3><p>When a customer raises a challenge in a TVR or a support interaction, solve it. And if the solution naturally involves capabilities beyond their current plan, demonstrate rather than sell.</p><p>&#8220;We actually have a way to handle that&#8221; is the most powerful expansion sentence in CS. It positions the capability as a solution to their problem, not a product you&#8217;re pushing. The customer experiences it as help, not a pitch.</p><p>The key word is &#8220;<em>naturally&#8221;</em>. If you&#8217;re contorting every support interaction into an upsell opportunity, you&#8217;re doing sales-led expansion with extra steps. ALE only works when the connection between their problem and the additional capability is genuine.</p><h3>3. Enable the Champion to Sell Internally</h3><p>Your technical champion already believes in the product. They don&#8217;t need to be convinced. They need ammunition.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hNaQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hNaQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 424w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 848w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 1272w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png" width="800" height="560" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d03b124-0055-48c7-b091-9f058fecb329_800x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:560,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:283944,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hNaQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 424w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 848w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 1272w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The Champion Enablement Package is the most underused tool in CS. Instead of you selling to their leadership, you equip your champion to make the case internally. This works for three reasons:</p><ul><li><p><strong>Credibility</strong>: An internal advocate is more trusted than an external vendor.</p></li><li><p><strong>Context</strong>: They know the political landscape, the budget cycles, and the objections.</p></li><li><p><strong>Ownership</strong>: When they champion the expansion, they own the outcome, which means they&#8217;re invested in making it successful.</p></li></ul><p>You have to build the package around their narrative, not yours. Architecture diagrams should show the current vs. proposed state. Three talking points framed around their business priorities. They fill in a simple ROI framework with their own numbers. Anticipate objections with suggested responses. Map a timeline to their budget cycle.</p><p>Every component should be something they can present as their analysis, not something that looks like it came from your marketing team.</p><h3>4. Trigger-Based Expansion Conversations</h3><p>Certain technical milestones naturally create expansion opportunities. Hitting usage thresholds. Completing initial integration. Adding a new team. Architectural reviews. Production deployments that change the scope of the implementation.</p><p>Consider incorporating these triggers into your operating model rather than depending on CSM intuition or renewal timelines.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IWHq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IWHq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IWHq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png" width="800" height="520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:520,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:258321,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IWHq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The distinction between vanity signals and real expansion signals is critical. A green health score tells you the customer is happy. Expansion signals tell you they&#8217;re <em>ready</em>. Most CS teams only instrument the first metric. ALE requires you to instrument both.</p><div><hr></div><h2>The Two Failure Modes</h2><h3>Failure Mode 1: Stealth Sales</h3><p>This scenario is where a CS team adopts ALE language but keeps running a sales-led motion underneath. The CSM &#8220;maps the whitespace,&#8221; but the whitespace map is really just a territory plan. They &#8220;enable the champion,&#8221; but the enablement package is a sales deck with the logo removed.</p><p>Technical buyers see through the charade immediately. If your champion enablement package has your product name in the header and your competitive positioning in the talking points, it&#8217;s not enablement. It&#8217;s a brochure.</p><p><strong>The test</strong>: Could your champion present this material without mentioning your company name and have it still be valuable? If not, it&#8217;s not enablement.</p><h3>Failure Mode 2: Passive Waiting</h3><p>The opposite failure. The CS team is so afraid of being perceived as sales that they never proactively surface expansion opportunities. They wait for the customer to ask. They wait for renewal. They wait for the champion to figure out on their own that more capabilities exist.</p><p>ALE isn&#8217;t passive. It&#8217;s proactive problem-solving that creates natural pull. You&#8217;re solving problems, demonstrating capabilities, and equipping champions. The expansion conversation is a consequence of excellent technical partnership, not an agenda item you&#8217;re avoiding.</p><div><hr></div><h2>The One Metric That Matters</h2><p>If you adopt ALE, the metric you track changes.</p><p>Sales-led expansion tracks <strong>expansion revenue per CSM</strong>, which is a number that incentivizes CSMs to push. ALE tracks <strong>champion-initiated expansion rate</strong>, the percentage of expansion deals where the customer reached out first or the champion drove the internal business case.</p><p>A healthy ALE motion should produce a champion-initiated rate above 60%. If most of your expansion is still CSM-initiated, you haven&#8217;t shifted the model, you&#8217;ve just relabeled it.</p><div><hr></div><h2>The Prompt Library</h2><p>Two prompts and one agent workflow to operationalize ALE in your CS org.</p><h3>Prompt 1: Whitespace Analyzer</h3><pre><code><code>Analyze this customer's current product usage and technical environment to identify expansion opportunities that are architecturally natural &#8212; not forced upsells.

Current state:
- Products/modules currently using: {list}
- Current usage volume and trends: {data}
- Known technical environment: {stack}
- Teams currently using the product: {teams}
- Integrations in place: {integrations}
- Problems they've raised in the last 6 months: {support themes}

Identify:
1. Adjacent use cases where the product could solve problems they're currently handling with other tools or manual processes
2. Teams or departments that would benefit but aren't currently using the product
3. Technical milestones they're approaching that naturally create expansion conversations
4. The single highest-probability expansion opportunity and a recommended approach that feels helpful, not salesy
</code></code></pre><h3>Prompt 2: Champion Enablement Package Builder</h3><pre><code><code>My technical champion at {customer_name} wants to expand our product to {new use case/team/capability}. They need to make an internal business case to their leadership.

Context:
- Champion's role: {title}
- Current deployment: {what they're using today}
- Proposed expansion: {what they want to add}
- Their leadership's likely concerns: {concerns}
- Budget cycle timing: {when}

Create a champion enablement package:
1. A one-page architecture diagram description showing current state vs. proposed state
2. Three talking points framed around their business priorities (not our product features)
3. A simple ROI framework they can fill in with their own numbers
4. Anticipated objections and suggested responses
5. A recommended timeline that aligns with their budget cycle
</code></code></pre><h3>Agent Workflow: Expansion Signal Monitor</h3><pre><code><code>You are monitoring a portfolio of accounts for natural expansion signals. Review the following data weekly and flag accounts showing expansion readiness.

Portfolio data:
{structured account data including usage, support, engagement}

Expansion signals to detect:
- Usage approaching tier thresholds (&gt;80% of current plan)
- New teams or users being added organically
- Support questions about capabilities not in their current plan
- Integration with new tools that suggest evolving use cases
- Champion promotions or role changes that increase their influence
- Positive references to the product in external channels

For each flagged account, specify:
1. Which signal(s) triggered the flag
2. Recommended expansion conversation approach
3. Timing recommendation (act now vs. nurture)
4. Whether to engage directly or equip the champion
</code></code></pre><div><hr></div><p><em>This is Post 4 of a 5-part series: Rebuilding Customer Success. Next up: the scaling problem nobody wants to talk about and why the answer isn&#8217;t more headcount.</em></p><p><em>If these frameworks and prompts are useful, subscribe for the final post and the complete prompt library that comes with it.</em></p>]]></content:encoded></item><item><title><![CDATA[Onboarding Technical Buyers Is Not a Training Problem]]></title><description><![CDATA[The standard onboarding playbook was built for the wrong customer.]]></description><link>https://www.michaelpgoetz.com/p/onboarding-technical-buyers-is-not</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/onboarding-technical-buyers-is-not</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 07 Apr 2026 13:03:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bVn7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most CS orgs treat onboarding as education: <em>Let us show you how to use the product.</em> For technical buyers, this approach is backwards and borderline insulting.</p><p>Engineers would rather not be trained. They want to solve their problem. They&#8217;ve already read your docs. They Googled your API. They probably found a GitHub thread where someone had the same edge case they&#8217;re worried about. What&#8217;s standing between them and production isn&#8217;t knowledge. It&#8217;s friction.</p><p>The fastest path to value isn&#8217;t a webinar series. It&#8217;s removing every obstacle between the customer&#8217;s intent and their first meaningful outcome.</p><p>The best onboarding for technical products doesn&#8217;t look like customer success. It looks like developer experience design.</p><div><hr></div><h2>The Framework: Time-to-Architecture (TTA)</h2><p>Stop measuring time-to-value. It&#8217;s vague, difficult to define, and almost impossible to benchmark consistently. Replace it with <strong>time-to-architecture</strong>: the elapsed time between contract signing and the customer having your product embedded in their production architecture in a way that would be painful to remove.</p><p>TTA is a real number. It&#8217;s measurable. And it predicts retention far better than any satisfaction survey.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c2AY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c2AY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c2AY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:720473,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c2AY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Four principles:</strong></p><p><strong>1. Outcome-first onboarding</strong>: Start with "What are you trying to accomplish?" not &#8220;here&#8217;s how our product works.&#8221; Most CSMs start onboarding by walking through feature menus. Technical buyers tune out immediately. Map their stated goal to the fastest implementation path before you touch a single slide.</p><p><strong>2. Progressive complexity:</strong> Get them to a working integration in hours, not weeks. One integration that works in production is worth more than a 12-module training course that ends with &#8220;now let&#8217;s schedule the kickoff.&#8221; Think about how the best developer tools work: Stripe's accepting<em> a payment in 5 minutes</em>, Twilio&#8217;s first SMS, and Vercel&#8217;s first deploy. The entire UX is designed around the moment of first success. Your onboarding should be no different.</p><p><strong>3. Architecture anchors:</strong> Deliberately help customers integrate in ways that create healthy dependencies. Not lock-in for its own sake, but genuine<em> architectural value</em> that makes your product load-bearing. An integration that sits on the edge of someone&#8217;s stack is easy to remove. One that sits in the middle of their data pipeline is not. Guide them toward the middle.</p><p><strong>4. Self-service with instrumentation:</strong> Let technical users move at their own pace. Forcing them into a CSM-led process every step of the way is friction, not service. Build docs, quick starts, and templates that make self-direction the path of least resistance, but instrument the journey so you know when someone is stuck, stalled, or going down an implementation dead end.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bVn7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bVn7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bVn7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:437132,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bVn7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why CSMs Keep Getting Onboarding Wrong</h2><p>There are two failure modes I see frequently.</p><p><strong>The first is feature tourism.</strong> The CSM walks the customer through every part of the product in the first few sessions, covering things the customer won&#8217;t need for six months. By the time they actually need something, they&#8217;ve forgotten the walkthrough. Meanwhile, you've missed the opportunity when they're most eager to act quickly.</p><p><strong>The second is milestone theater.</strong> The onboarding plan has 14 steps, each marked complete when the customer sits through a meeting. But meeting attendance isn&#8217;t progress. The only milestone that matters is whether this thing is in production. Everything else is a process.</p><p>The underlying problem in both cases is that the onboarding is designed around the vendor&#8217;s comfort, not the customer&#8217;s intent. CSMs want a structured sequence they can report on. Engineers want to ship something.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AZ4T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AZ4T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:731453,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AZ4T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What TTA Changes</h2><p>When you organize onboarding around time-to-architecture, a few things shift.</p><p>First, kickoff calls change. Instead of &#8220;let&#8217;s review the onboarding timeline,&#8221; the first call is, "What<em> does your production architecture look like today, and where does our product fit?&#8221;</em> That&#8217;s a conversation technical buyers actually want to have.</p><p>Second, success milestones become real signals. &#8220;Completed module 3&#8221; tells you nothing. &#8220;First API call in production&#8221; tells you a lot. &#8220;Product embedded in two workflows&#8221; tells you you&#8217;re probably going to retain this account.</p><p>Thirdly, CSM time is allocated to the edges. A significant portion of onboarding effort is often directed towards customers who are likely to understand it on their own. TTA instrumentation shows you who&#8217;s actually stuck so you can deploy human attention where it changes the outcome, not where it provides the appearance of service.</p><div><hr></div><h2>The Prompt Library</h2><h3>Prompt 1: Onboarding Path Generator</h3><pre><code><code>A new customer just signed. Based on their profile, design a personalized onboarding path optimized for minimum time-to-architecture.

Customer profile:
- Company size: {size}
- Technical maturity: {low/medium/high}
- Primary use case: {use case}
- Existing tech stack: {tools and platforms}
- Decision maker role: {title}
- Implementation team: {who's doing the work}
- Success criteria stated during sales: {criteria}

Generate:
1. The single fastest path to a working production integration (target: under 2 weeks)
2. Three milestone checkpoints with specific observable signals that confirm progress
3. Potential friction points based on their stack and maturity level
4. Recommended self-service resources to send before the kickoff call
5. Questions to ask in the kickoff that a traditional onboarding script would miss
</code></code></pre><h3>Prompt 2: Onboarding Friction Detector</h3><pre><code><code>Review the following onboarding data for customers who started in the last 90 days. Identify where TTA is breaking down.

Onboarding data:
{structured data: customer, start date, current milestone, days at each stage, support tickets opened, CSM touchpoints}

Analyze:
1. Which stage has the longest average dwell time?
2. Are there segments (by company size, use case, or stack) that consistently stall?
3. What support ticket patterns emerge during onboarding?
4. Which customers reached production integration fastest &#8212; what did they have in common?

Recommend 3 specific changes to the onboarding process that would reduce average time-to-architecture.
</code></code></pre><div><hr></div><h2>One Metric to Add This Week</h2><p>If you&#8217;re not tracking TTA today, start with a proxy: <strong>days from contract signed to first production API call</strong> (or equivalent for your product). Pull the last 90 days of new customers. Segment by company size and technical maturity. Find the outliers (the customers who got there fast) and figure out what they had in common.</p><p>That pattern is your new onboarding template.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iYSE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iYSE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iYSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:763081,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iYSE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This is the third post in a series on rebuilding Customer Success for technical products. If you missed the first one, start here: <a href="https://michaelpgoetz.substack.com/p/your-health-score-is-a-horoscope">Your Health Score Is a Horoscope</a>. Subscribe at <a href="https://michaelpgoetz.substack.com/">michaelpgoetz.substack.com</a> if you&#8217;re building CS for people who build software.</em></p>]]></content:encoded></item><item><title><![CDATA[QBRs Are Where Relationships Go to Die]]></title><description><![CDATA[You&#8217;re burning your champion&#8217;s political capital one slide deck at a time.]]></description><link>https://www.michaelpgoetz.com/p/qbrs-are-where-relationships-go-to</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/qbrs-are-where-relationships-go-to</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 24 Mar 2026 14:00:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NpeP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You want to know a dirty secret that every CS leader knows but nobody wants to put in writing? Your customers hate your QBRs. Your CSMs hate preparing them. And the standard format (a 60-minute slide deck reviewing usage metrics the customer already has access to) is actively making the relationship worse.</p><p>Think about what you&#8217;re actually asking your champion to do. They had to block an hour on their calendar. They probably had to pull in their boss or a peer. And now they&#8217;re sitting through 45 minutes of &#8220;here&#8217;s your adoption data&#8221; that they could have pulled from a dashboard in 30 seconds. You&#8217;re not providing value. You&#8217;re consuming their political capital to justify your own existence.</p><p>Technical buyers feel this harder than anyone. Engineers evaluate vendor relationships on two criteria: do you respect my time, and do you make me smarter? A QBR that reads back their own data fails both tests. Every single time.</p><p>This is the second post in a series on rebuilding Customer Success for technical products. Same format as last time: challenge something the industry treats as settled, offer a framework to replace it, and hand you the prompts to operationalize it this week.</p><div><hr></div><h2>The Problem: 60 Minutes of Nothing</h2><p>Here&#8217;s what a standard QBR typically looks like.</p><p>Slide 1: company logos and &#8220;partnership overview.&#8221; </p><p>Slide 2: usage metrics with a green arrow pointing up. </p><p>Slide 3: support ticket summary. </p><p>Slide 4: NPS score. </p><p>Slide 5: &#8220;roadmap preview&#8221; that&#8217;s really just a marketing slide from the last product launch. </p><p>Slide 6: &#8220;open discussion&#8221; where everyone checks their phone.</p><p>Your champion sat through all of that and walked away with nothing they didn&#8217;t already know. Worse, they now have to justify to their boss why that meeting was worth the time. If they can&#8217;t, they stop accepting the invite. And you just lost your most important access point into the account.</p><p>Here&#8217;s what really happens after a bad QBR: your champion starts declining meetings. Not because they&#8217;re unhappy with the product, but because you&#8217;ve trained them to expect that every interaction with your team is a waste of time. That&#8217;s a self-inflicted wound. </p><p>The irony is that most CS teams treat QBR attendance as a health metric. &#8220;They showed up, so the relationship is fine.&#8221; No. They showed up because they felt obligated. The moment they stop feeling that obligation, you&#8217;ve already lost.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NpeP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NpeP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 424w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 848w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 1272w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NpeP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png" width="1200" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:627964,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/191053420?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NpeP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 424w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 848w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 1272w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Framework: The Technical Value Review (TVR)</h2><p>I think the fix for these sorts of QBRs is to kill the format entirely and replace it with something designed for how technical buyers actually think.</p><p>Let&#8217;s call it the Technical Value Review. Here&#8217;s what makes it different.</p><p><strong>No slides up front.</strong> Use a shared working document that both sides can edit. Send it to the customer 48 hours before the meeting. Let them add context, correct assumptions, and flag what they actually want to talk about. By the time you sit down together, half the meeting&#8217;s work is already done.</p><p><strong>No usage reviews.</strong> They have dashboards. They know their numbers. If you&#8217;re spending meeting time reviewing data they already have, you&#8217;re telling them you have nothing better to offer. Stop it.</p><p><strong>Three sections only.</strong> Everything in the document fits into one of three buckets:</p><p><strong>1. Architecture Alignment.</strong> How has their technical environment changed since last time? New services, new teams, infrastructure shifts, reorgs. And given those changes, how should their use of your product evolve? This is the conversation that positions you as a technical partner instead of a vendor. You&#8217;re thinking about their architecture, not your renewal.</p><p><strong>2. Roadmap Intersection.</strong> No one really wants a product marketing pitch. What customers really want is a specific mapping of what&#8217;s coming on your roadmap to their stated priorities. &#8220;You told us last quarter that observability across your microservices fleet is a priority. Here&#8217;s what we&#8217;re shipping in Q3 that directly addresses that. And here&#8217;s what we need your input on before we finalize the design.&#8221; That&#8217;s a conversation worth having.</p><p><strong>3. Risk and Technical Debt.</strong> What&#8217;s fragile in their current implementation? What would you recommend they invest in before it becomes a support ticket? This is the section that builds trust faster than anything else in CS. You&#8217;re proactively telling them where the problems are, before they find out themselves. </p><p><strong>30 minutes max.</strong> If you can&#8217;t deliver value in 30 minutes with a pre-shared doc and three focused sections, more time is not the answer. Better preparation is.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5AXT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5AXT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5AXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:411370,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/191053420?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5AXT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why This Works for Technical Buyers</h2><p>The TVR format works because it matches how engineers already operate. They read docs before meetings. They want the pre-read to be substantive, not a teaser. They hate slides. They evaluate people based on technical depth, not polish.</p><p>When you show up to a TVR and say &#8220;we noticed your API call patterns shifted last month, and given your migration to Kubernetes, here&#8217;s how we&#8217;d recommend restructuring the integration,&#8221; you just proved three things: you understand their architecture, you&#8217;re paying attention to how they use the product, and you have an opinion about how they should evolve. That&#8217;s a relationship. A slide deck with a green usage arrow is not.</p><p>The other thing the TVR does is shift the power dynamic. A QBR is something you do <em>to</em> the customer. A TVR is something you do <em>with</em> them. The shared doc means they have agency. The architecture section means they&#8217;re bringing knowledge to the table too. The roadmap section means their input actually shapes what gets built. They leave the meeting feeling like a partner, not a captive audience.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kMcf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kMcf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kMcf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:706880,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/191053420?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kMcf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Prompt Library</h2><p>Three prompts to start running TVRs this week. Same drill as last time: pull data from your systems, fill in the brackets, and run them.</p><h3>Prompt 1: TVR Prep Document Generator</h3><p>Use this to build the shared working doc you&#8217;ll send to the customer 48 hours before the meeting.</p><pre><code><code>You are preparing a Technical Value Review document for a meeting
with {customer_name}. Using the data below, create a concise shared
working document (not slides) with three sections.

Customer context:
- Industry: {industry}
- Primary use case: {use case}
- Technical environment: {stack details}
- Recent changes in their environment: {any known changes}
- Your product's recent releases relevant to them: {releases}
- Known implementation risks or technical debt: {risks}
- Their stated priorities for this quarter: {priorities}

Format the document as a collaborative working doc with:
1. Architecture Alignment (what's changed, what should evolve)
2. Roadmap Intersection (what's coming that matters to them,
   questions to ask)
3. Risk &amp; Technical Debt (what to address proactively)

Keep it under 2 pages. Use technical language appropriate for an
engineering audience. No marketing speak.
</code></code></pre><p><strong>Try this:</strong> Run it for your most important renewal this quarter. Send the output to the customer as a shared doc and ask them to add their context before the meeting. Watch what happens when they show up having already engaged with the material.</p><h3>Prompt 2: QBR-to-TVR Converter</h3><p>Already have a QBR deck built? Don&#8217;t start over. Feed it to this prompt and let it strip out the filler.</p><pre><code><code>I have a traditional QBR deck that I need to transform into a
Technical Value Review format. Below is the content from my current
QBR slides.

Current QBR content:
{paste slide content}

Remove all usage metric reviews, NPS references, and relationship
management filler. Extract the genuinely valuable insights and
restructure them into the TVR format:
1. Architecture Alignment
2. Roadmap Intersection
3. Risk &amp; Technical Debt

Flag any content from the original QBR that has no place in a TVR
and explain why it was cut.
</code></code></pre><p><strong>Try this:</strong> Take the last QBR deck you delivered. Paste the content in. The prompt will tell you exactly how much of your current format is filler versus substance. Most teams find it&#8217;s about 70/30 in the wrong direction.</p><h3>Prompt 3: Post-TVR Action Item Synthesizer</h3><p>The meeting&#8217;s done. Now turn your notes into an action plan within 2 hours.</p><pre><code><code>Here are my notes from a Technical Value Review meeting with
{customer_name}.

Meeting notes:
{paste notes}

Generate:
1. A summary email to send to the customer within 2 hours (concise,
   action-oriented, no fluff)
2. Internal action items categorized by: CSM follow-up, Product
   feedback to log, Engineering/support escalation
3. Any state transition signals detected during the conversation
   (refer to the state-based model: Onboarding, Expanding,
   Steady-State, At-Risk, Recovering)
</code></code></pre><p><strong>Try this:</strong> Use it after your next customer meeting. The state transition detection in item 3 connects back to the framework from the first post in this series. You&#8217;re not just taking notes. You&#8217;re feeding the system.</p><div><hr></div><h2>The Bottom Line</h2><p>The QBR was designed for a world where customers couldn&#8217;t access their own data and the CSM was the only window into how the account was doing. That world doesn&#8217;t exist anymore. Your customers have dashboards. They have product analytics. They don&#8217;t need you to tell them what they already know.</p><p>What they need is someone who understands their architecture, has an opinion about where it should go, and is willing to flag risks before they become problems. That&#8217;s a Technical Value Review. It&#8217;s shorter, sharper, and it actually makes your champion look good instead of wasting their time.</p><p>Kill the deck. Share a doc.</p><div><hr></div><p><em>This is the second post in a series on rebuilding Customer Success for technical products. If you missed the first one, start here: <a href="https://michaelpgoetz.substack.com/p/your-health-score-is-a-horoscope">Your Health Score Is a Horoscope</a>. Subscribe at <a href="https://michaelpgoetz.substack.com/">michaelpgoetz.substack.com</a> if you&#8217;re building CS for people who build software.</em></p>]]></content:encoded></item><item><title><![CDATA[Your Health Score Is a Horoscope]]></title><description><![CDATA[And it&#8217;s costing you accounts while you debate the weights.]]></description><link>https://www.michaelpgoetz.com/p/your-health-score-is-a-horoscope</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/your-health-score-is-a-horoscope</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Thu, 12 Mar 2026 14:02:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WW59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been in technical Customer Success for over 13 years (AWS, GitHub, Chef, now Drata) and I&#8217;ve watched the same thing happen at every company once it hits a certain size. Someone decides the CS org needs a health score. An initiative gets spun up. People argue about weights on a recurring &#8220;health score design meeting&#8221; for three weeks. A dashboard goes live. Leadership feels better. And absolutely nothing changes about how your team actually helps customers.</p><p>Health scores are the horoscope of Customer Success. Vague enough to feel true. Updated too slowly to be useful. And they exist mostly to make the person reading them feel like they understand something they don&#8217;t.</p><p>This is the first post in a series where I&#8217;m going to challenge things the CS industry treats as settled, offer a framework I&#8217;d actually use, and hand you the prompt library or agent workflow to put it into practice. No theory without tooling. Here we go.</p><div><hr></div><h2>The Problem: Performative Dashboards</h2><p>You know how these things get built. Take a handful of inputs (NPS, support ticket volume, login frequency, maybe a CSM gut-feel rating), throw some weights on them that somebody argued about in a meeting, and produce a composite number. Green, yellow, red. Board deck looks great.</p><p>Now ask a CSM what they&#8217;re supposed to <em>do</em> when an account turns yellow. You&#8217;ll get a shrug. Or worse, they&#8217;ll send a check-in email. The score told them something changed but not what, not why, and definitely not what to do about it. It&#8217;s a summary of stuff that already happened pretending to be a prediction.</p><p>But here&#8217;s the part that really gets me. The deeper failure isn&#8217;t that the score is wrong. It&#8217;s that the score trains your team to manage numbers instead of managing customers. CSMs figure out how to game the inputs. Leadership starts trusting the dashboard more than the people closest to the accounts. And the signals that actually predict churn (deployment logs, API call patterns, the day a champion updates their LinkedIn) those never make it into the model. Too hard to quantify. Too messy to weight.</p><p>I&#8217;ve watched a team spend <em>months</em> arguing about whether NPS should be 15% or 20% of the composite score. While that was happening, a strategic account quietly ripped out the integration because their internal champion left and nobody noticed. Health score was green the whole time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WW59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WW59!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!WW59!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WW59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:518609,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WW59!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!WW59!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>The Framework: Signal-Based Customer State Detection</h2><p>The answer isn&#8217;t a better health score. It&#8217;s scrapping the whole concept.</p><p>Replace it with a state machine. Customers aren&#8217;t a number on a 0-100 scale. They&#8217;re in one of a handful of states at any given time:</p><ul><li><p><strong>Onboarding:</strong> Still implementing, clock is ticking on time-to-value</p></li><li><p><strong>Expanding:</strong> Rolling out to new teams, adding integrations, usage climbing</p></li><li><p><strong>Steady-State:</strong> Stable, not growing, not shrinking. Coasting.</p></li><li><p><strong>At-Risk:</strong> Usage declining, integrations getting pulled, champion gone quiet</p></li><li><p><strong>Recovering:</strong> You&#8217;ve intervened, re-engagement is underway</p></li></ul><p>The thing that matters isn&#8217;t the state itself. It&#8217;s the <em>transitions</em>. When a customer moves from Expanding to Steady-State, that means something. When they slide from Steady-State to At-Risk, that&#8217;s not a yellow dashboard. That&#8217;s a fire drill with a specific playbook attached to 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_!1V94!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1V94!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!1V94!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1V94!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:691425,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1V94!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!1V94!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Three ideas make this actually work in practice:</p><p><strong>1. Flip from lagging to leading indicators.</strong></p><p>Most health scores are built on data that tells you what already happened. NPS is how someone felt last quarter. Ticket volume is what already broke. You need the stuff that tells you where the account is <em>headed</em>: deployment velocity, feature adoption curves, how deep the integration goes, how often the champion is engaging. Forward-looking, not rearview mirror.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xgXY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xgXY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xgXY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:702534,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xgXY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>2. Trigger playbooks off state transitions, not score changes.</strong></p><p>&#8220;Score dropped from 82 to 71&#8221; is meaningless. Nobody knows what to do with that. But &#8220;this account just moved from Expanding to Steady-State&#8221;? Now you&#8217;ve got something. Schedule an architecture review. Find the next expansion use case. Get back in front of the exec sponsor. That&#8217;s a to-do list, not a guessing game.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6JCk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6JCk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 424w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 848w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 1272w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6JCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png" width="1200" height="780" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:780,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:470115,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6JCk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 424w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 848w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 1272w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>3. Treat technical depth as your best retention signal.</strong></p><p>This one&#8217;s specific to technical products, and it&#8217;s the hill I&#8217;ll die on. The best predictor of whether a customer stays isn&#8217;t their satisfaction score. It&#8217;s how tangled up your product is in their architecture. Count the integration points. I like to call them &#8220;retention anchors&#8221;. Look at API call diversity. Figure out how many of their internal tools depend on yours. A customer running 15 integrations with 4 internal tools built on your API? They&#8217;re not leaving. I don&#8217;t care what their NPS is. A customer with one shallow integration and a great NPS? They&#8217;re one executive decision away from rip-and-replace.</p><div><hr></div><h2>The Prompt Library</h2><p>OK, so how do you actually start doing this? Here are three prompts you can run this week against real customer data. They work with Claude, ChatGPT, whatever you&#8217;ve got. Pull structured data from your CRM, product analytics, and support system, and feed it in.</p><h3>Prompt 1: Customer State Classifier</h3><p>This one replaces your health score for a single account.</p><pre><code><code>You are a Customer Success analyst specializing in technical B2B SaaS.
Given the following customer data, classify this customer into one of
these operational states: [Onboarding, Expanding, Steady-State,
At-Risk, Recovering].

Customer data:
- Account age: {months}
- Product usage trend (last 90 days): {increasing/flat/declining}
- Features activated vs. available: {ratio}
- Support ticket trend: {increasing/flat/declining}
- Last executive sponsor contact: {days ago}
- Recent integration/API changes: {description}
- Contract renewal date: {date}

Classify the state and explain which signals were most determinative.
Then recommend the top 3 actions the CSM should take this week,
specific to the detected state.
</code></code></pre><p><strong>Try this:</strong> Run it on your top 20 accounts and compare to what your current health score says. I&#8217;d bet money at least 3 accounts come back in a different state than your dashboard shows.</p><h3>Prompt 2: State Transition Detector (Weekly Batch)</h3><p>This is your new Monday morning portfolio review.</p><pre><code><code>You are reviewing a portfolio of {N} accounts. For each account below,
compare their current signals to their signals from 30 days ago.
Identify any accounts that have shifted operational states.

For each state transition detected:
1. Name the transition (e.g., "Expanding &#8594; Steady-State")
2. Identify the 2-3 signals that drove the change
3. Flag urgency: routine, elevated, or critical
4. Recommend the specific playbook to execute

Account data:
{structured account data with current and 30-day-prior snapshots}
</code></code></pre><p><strong>Try this:</strong> Use it to replace your weekly health score review. Instead of everyone staring at a dashboard trying to figure out what the numbers mean, you walk in with a ranked list of state transitions and a playbook for each one. The meeting goes from interpretation to execution.</p><h3>Prompt 3: Health Score Audit</h3><p>Run this once to find out where your current model is lying to you.</p><pre><code><code>I'm going to share our current health score model. Analyze it for
the following failure modes:
- Lagging indicator dependency (signals that tell you what already
  happened)
- Vanity signal inclusion (metrics that feel important but don't
  predict outcomes)
- Missing technical depth signals
- Weighting that obscures rather than clarifies

Current health score model:
{paste your model: inputs, weights, thresholds, and any logic}

Provide a redesigned scoring approach using state-based detection
instead of composite scoring. Map each of our current inputs to
either: a state classification signal, a transition trigger, or
"remove: does not predict outcomes."
</code></code></pre><p><strong>Try this:</strong> Paste your actual health score model in. Inputs, weights, thresholds, all of it. You&#8217;ll find out which signals actually predict outcomes, which ones are vanity metrics making you feel good, and how to restructure around state detection. Do it before your next QBR.</p><div><hr></div><h2>The Bottom Line</h2><p>Health scores were built for a world where CS was an account management function and the main event was a quarterly business review. If you&#8217;re running CS for a technical product, where your customers are engineers, your value lives in their architecture, and retention comes down to integration depth, you need something that thinks in states and transitions, not weighted averages.</p><p>Kill the horoscope. Build a state machine.</p><div><hr></div><p><em>This is the first post in a series on rebuilding Customer Success for technical products. Next up: why your QBR format is optimized for the wrong audience. Subscribe at <a href="https://michaelpgoetz.substack.com/">michaelpgoetz.substack.com</a> if you&#8217;re building CS for people who build software.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[New Direction]]></title><description><![CDATA[It&#8217;s been 9 months since I&#8217;ve published here.]]></description><link>https://www.michaelpgoetz.com/p/new-direction</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/new-direction</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Wed, 11 Mar 2026 23:26:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M_zO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M_zO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M_zO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M_zO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M_zO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s been 9 months since I&#8217;ve published here. A lot has changed.</p><p>When I started this Substack, I was building a startup with AI tools and writing about that experience. Since then, I&#8217;ve taken on the SVP of Customer Success role at Drata, and the thing I&#8217;ve been thinking about most isn&#8217;t how to build software &#8212; it&#8217;s how to rebuild the way we run Customer Success for technical products.</p><p><strong>Here&#8217;s what this publication is now:</strong></p><p>I&#8217;m writing for CS leaders at technical SaaS companies. The ones whose customers are engineers, whose retention depends on architectural depth, and who are tired of frameworks designed for a different buyer.</p><p>Every post follows the same format: a challenge to something the CS industry treats as settled, an opinionated framework to replace it, and a prompt library or AI agent workflow you can run against real customer data that week.</p><p>Look out for the first post tomorrow. <strong>&#8220;Your Health Score Is a Horoscope&#8221;</strong> is focused on why composite health scores are performative dashboards and what to build instead.</p><p>If this new direction isn&#8217;t your thing, no hard feelings, unsubscribe link is below. If it is, I&#8217;m glad you&#8217;re here.</p><p>&#8212; Michael</p>]]></content:encoded></item><item><title><![CDATA[I Found a Better Way to Build with AI (And It's Hidden in Plain Sight)]]></title><description><![CDATA[Last week, Amazon quietly launched something called Kiro. Most people saw "another AI coding tool" and moved on. I almost did too.]]></description><link>https://www.michaelpgoetz.com/p/i-found-a-better-way-to-build-with</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/i-found-a-better-way-to-build-with</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Mon, 21 Jul 2025 15:53:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jtqi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png" 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_!Jtqi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jtqi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1341260,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jtqi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Last week, Amazon quietly launched something called <a href="https://kiro.dev/">Kiro</a>. Most people saw "another AI coding tool" and moved on. I almost did too.</p><p>But something in their launch post caught my eye: they weren't selling speed. They were selling <em>thinking</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K9KV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K9KV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 424w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 848w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1272w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K9KV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png" width="1456" height="449" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:449,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:198385,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K9KV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 424w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 848w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1272w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After five weeks of vibecoding my way through RallyCamp, shipping features fast but accumulating technical debt faster, this hit different. So I signed up, played around with it for a few hours, and discovered something that changed how I use Claude Code.</p><p>Here's the thing: you don't need Kiro to use their best idea.</p><h2>What Kiro Actually Does</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ISwf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ISwf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 424w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 848w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1272w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ISwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png" width="931" height="468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:468,&quot;width&quot;:931,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ISwf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 424w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 848w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1272w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Kiro forces you to build in a specific order:</p><ol><li><p>Requirements first (what problem are you solving?)</p></li><li><p>Design second (how will you solve it?)</p></li><li><p>Tasks third (what's the step-by-step plan?)</p></li><li><p>Code last (now execute the plan)</p></li></ol><p>If you try to skip ahead, it literally won't let you. The AI refuses to write code until you've thought through the problem.</p><p>My first reaction: "This is going to slow me down."</p><p>My second reaction, after trying it: "Holy shit, this is exactly what I've been missing."</p><h2>The Pattern Hidden in Plain Sight</h2><p>Here's what fascinated me: Kiro uses Claude under the hood. The same Claude I've been using in Claude Code. The same Claude that's been happily building whatever half-baked idea I throw at it.</p><p>The difference wasn't the AI. It was the workflow.</p><p>So I did what any reasonable person would do. I tried to replicate Kiro's pattern directly in Claude Code.</p><h2>My First Experiment</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KZ7H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KZ7H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/403d073c-9476-40b1-a657-7c8257d00443_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:292577,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KZ7H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I had just run a codebase review on RallyCamp and discovered something horrifying: I had copy-pasted authentication code across 8 different API routes. Eight! The same security-critical code, duplicated everywhere.</p><p>Instead of my usual approach ("hey Claude, fix this mess"), I tried the Kiro way.</p><p><strong>Step 1: Requirements</strong></p><pre><code><code>Create a requirements.md file for fixing code duplication issues. I have auth code copied 8+ times, validation error handling in 15+ places, and the same patterns repeated everywhere. Focus on why this is a problem and what the solution needs to achieve.
</code></code></pre><p>What came back surprised me. Instead of jumping to refactoring, Claude asked questions:</p><ul><li><p>What happens when you need to fix a security bug in the auth code?</p></li><li><p>How many places could you miss?</p></li><li><p>What's the blast radius if you get it wrong?</p></li></ul><p>We went back and forth for 10 minutes. By the end, I had a requirements doc that clearly explained WHY this wasn't just about clean code, it was about security and maintainability.</p><p><strong>Step 2: Design</strong></p><pre><code><code>Based on requirements.md, create a design.md file for the refactoring. 
Include the new architecture, where shared code will live, and how 
we'll migrate without breaking existing features. No code yet.
</code></code></pre><p>This is where it got interesting. Because Claude had the requirements context, the design actually addressed real risks. It suggested things like:</p><ul><li><p>Creating a phased rollout (security-critical auth first)</p></li><li><p>Building comprehensive tests before touching anything</p></li><li><p>Setting up feature flags for gradual migration</p></li></ul><p>Stuff I would've learned the hard way after breaking production.</p><p><strong>Step 3: Tasks</strong></p><pre><code><code>Break down design.md into specific implementation tasks in tasks.md. Phase 1 should be security-critical auth code. Each task should be independently testable. Order by risk and dependencies.</code></code></pre><p>Now I had a roadmap. Not just "refactor everything" but a three-week plan:</p><ul><li><p>Week 1: Extract auth middleware, test exhaustively, migrate routes</p></li><li><p>Week 2: Create validation handlers and unified API client</p></li><li><p>Week 3: Extract shared schemas and utility functions</p></li></ul><p><strong>Step 4: Actually Build</strong></p><pre><code><code>Execute task 1 from tasks.md: Create lib/api/auth.ts with 
requireAuth() middleware. Reference the duplicated code patterns 
from the codebase review.</code></code></pre><p>The code that came out was different. Better. It knew exactly what patterns to extract and why.</p><h2>Why This Changes Everything</h2><p>Remember my post about technical debt? About how AI builds code optimized for different constraints than yours?</p><p>This fixes that.</p><p>When you give AI the full context (requirements, design, architecture) it builds code optimized for YOUR constraints. Your security requirements. Your maintenance needs.</p><p>The auth refactoring? It touched 8 critical files. Zero bugs. Zero downtime. That's never happened with my "just fix it" approach.</p><p>Even better: the refactoring actually reduced the codebase by 1000+ lines. Turns out when AI understands the full picture, it doesn't just move code around, it finds better patterns.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AQCb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AQCb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 424w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 848w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 1272w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AQCb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png" width="882" height="522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:522,&quot;width&quot;:882,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:104247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AQCb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 424w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 848w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 1272w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Real Magic: Thinking Time</h2><p>Here's what I realized: The value isn't in the documents. It's in the thinking that happens while creating them.</p><p>When I'm writing requirements, I'm not just listing features. I'm discovering edge cases. When I'm writing design docs, I'm not just planning architecture. I'm spotting problems before they're expensive.</p><p>The AI helps with this thinking. It asks questions I don't think to ask. It spots patterns I miss. It's like pair programming, but for product design.</p><h2>My Current Workflow</h2><p>I still use Claude Code for everything. I just use it differently:</p><p><strong>Monday</strong>: Think through the week's features. Create requirement docs for each.</p><p><strong>Tuesday</strong>: Turn requirements into designs. Let Claude challenge my assumptions.</p><p><strong>Wednesday-Thursday</strong>: Execute tasks. The actual coding is the easy part now.</p><p><strong>Friday</strong>: Ship with confidence.</p><p>I'm building at the same speed, but with 90% fewer "oh shit" moments.</p><h2>But Here's the Catch</h2><p>This approach has one major downside: it's addictive.</p><p>Once you experience building with clarity (ie. knowing exactly what you're making and why) it's hard to go back to chaos mode. Even for quick experiments, I find myself writing mini-specs.</p><p>Last week, I spent 20 minutes spec'ing out a feature that would've taken 10 minutes to build directly. The feature took another 15 minutes to build with the spec.</p><p>Total time: 35 minutes instead of 10. But you know what I didn't spend time on? Debugging. Fixing edge cases. Rebuilding it when users complained.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8EvM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8EvM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 424w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 848w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 1272w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8EvM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png" width="1000" height="964" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:964,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101874,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8EvM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 424w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 848w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 1272w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>You Don't Need Kiro for This</h2><p>Look, Kiro seems cool. The interface is slick, the workflow is smooth, and having guardrails built-in is nice.</p><p>But you don't need it.</p><p>You just need discipline to think before you build. And if you're using Claude Code like me, you can start right now:</p><pre><code><code># Start a new feature the right way
claude "I want to add [feature description]. 
Let's start by creating a requirements doc. 
Ask me questions until you understand the problem space, 
then write requirements.md"
</code></code></pre><p>That's it. That's the secret. Make the AI think with you before it codes for you.</p><h2>The Unexpected Benefit</h2><p>Remember my "47 ChatGPT chats" problem? This solves that too.</p><p>Now I have one chat per feature, but it contains the complete journey: requirements &#8594; design &#8594; tasks &#8594; code. When I need to modify something weeks later, the context is all there. The thinking is documented.</p><p>My codebase has become self-documenting. Not through code comments, but through the thoughts that created the code.</p><h2>What This Really Means</h2><p>We're at a weird moment in software development. AI can build almost anything we can describe. The bottleneck isn't coding speed anymore, it's thinking speed.</p><p>The teams that win won't be the ones with the best prompts or the fastest AI. They'll be the ones who think before they build.</p><p>Kiro gets this. That's why they built an entire IDE around making you think first. But you can get the same benefit with any AI tool. You just have to choose to slow down in the right places.</p><h2>Your Move</h2><p>This week, try building one feature the Kiro way:</p><ol><li><p>Requirements (what problem?)</p></li><li><p>Design (what solution?)</p></li><li><p>Tasks (what steps?)</p></li><li><p>Code (execute the plan)</p></li></ol><p>Use whatever AI tool you prefer. The tool doesn't matter. The order does.</p><p>And if you're already using Claude Code, steal my prompts above. They work.</p><p>P.S. - That auth refactoring? Not only did it eliminate security risks, it made adding new API routes 10x faster. Now it's just <code>requireAuth()</code> instead of 50 lines of copy-paste. Sometimes thinking first pays compound interest.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Generative Growth: My Journey Building a Startup with AI! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Technical Debt No One Talks About: What Happens After AI Builds Your MVP]]></title><description><![CDATA[The Reality Check]]></description><link>https://www.michaelpgoetz.com/p/the-technical-debt-no-one-talks-about</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/the-technical-debt-no-one-talks-about</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Mon, 14 Jul 2025 19:53:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gjUI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png" 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_!gjUI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gjUI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gjUI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:653247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gjUI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Reality Check</h2><p>I&#8217;ve been a bit absent writing the last few weeks. That&#8217;s because I ran into something  nobody mentions in the "build with AI" tutorials: shipping is just the beginning.</p><p>My prompt chain had worked beautifully. I'd gone from idea to working app in four weeks. The code looked clean, the features worked, and I was feeling pretty confident about this whole AI-assisted development thing.</p><p>Then I decided to add in some functionality to manage the waitlist for users.</p><p>And that's when I discovered technical debt I never saw coming.</p><h2>The Illusion of Clean Code</h2><p>Here's what AI-generated code looks like when it's fresh: organized file structure, descriptive function names, helpful comments throughout. It feels professional because AI is really good at making things <em>look</em> professional.</p><p>But looking professional and being maintainable are two very different things.</p><p>The first time I needed to modify a feature based on user feedback, I realized I was debugging code I didn't actually understand. Sure, I could read it. But reading code and understanding the architectural decisions behind it? Completely different skills.</p><h2>The Hidden Costs of "Fast" Development</h2><p>When you build with AI, you're essentially inheriting someone else's codebase from day one. Except that "someone else" is a system that makes decisions differently than you would.</p><p>AI optimizes for getting the feature working. You optimize for getting the feature working <em>and</em> being able to change it later when users inevitably want something slightly different.</p><p>This creates four types of technical debt that traditional coding tutorials never prepare you for:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yxXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yxXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yxXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:405255,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yxXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>1. The Black Box Problem</h3><p>AI creates functions that work perfectly for the exact use case you described. But when you need to modify them, you realize they're doing multiple things at once in ways you wouldn't have architected yourself.</p><h3>2. The Over-Engineering Trap</h3><p>AI tends to build for scale and edge cases you don't need yet. My simple app ended up with enterprise-level complexity for features that could have been much simpler.</p><h3>3. The Dependency Web</h3><p>AI is great at leveraging existing libraries. Sometimes too great. What starts as a simple request can end up pulling in multiple dependencies that you'll need to maintain and debug.</p><h3>4. The Context Gap</h3><p>This is the big one. AI builds exactly what you describe, not what you mean. The nuances of your specific use case&#8212;the business logic that makes your app unique&#8212;often get lost in translation.</p><h2>What Debugging Actually Looks Like</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4a5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4a5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4a5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1780137,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4a5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Debugging AI-generated code follows a predictable pattern:</p><p>First, you think it'll be a quick fix. The error message seems straightforward enough.</p><p>Then you realize the "simple" feature is connected to three other systems in ways that aren't immediately obvious.</p><p>Then you spend more time understanding the existing code than it would have taken to write the feature from scratch.</p><p>Finally, you either patch around the issue (creating more technical debt) or rewrite the section entirely.</p><p>The problem isn't that AI writes bad code. It's that AI writes code optimized for different constraints than yours.</p><h2>The Two-Part Solution</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qILN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qILN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!qILN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qILN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1403622,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qILN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!qILN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After working through this with RallyCamp, I've developed an approach that actually works:</p><h3>Part 1: The 80/20 Strategy</h3><p>Let AI handle the first 80%&#8212;the boilerplate, standard implementations, and common patterns every app needs. But plan to rewrite the last 20% yourself: the business-specific logic that makes your app unique.</p><p>This gives you the speed benefits of AI without losing understanding of your core functionality.</p><h3>Part 2: The Documentation Requirement</h3><p>After AI generates any significant code, I run it through this prompt:</p><p>"Explain this code like I'm going to maintain it for the next two years. What does each major function do? What are the key dependencies? What assumptions are built into this logic? What would break if I needed to modify [specific functionality]?"</p><p>This creates a maintenance roadmap before you need it, not after something breaks.</p><h2>The Real ROI</h2><p>Was building RallyCamp with AI worth it? Absolutely. But not for the reasons I expected.</p><p>AI didn't eliminate technical complexity&#8212;it shifted when I dealt with it. Instead of spending weeks learning to code before building anything, I spent time learning to debug and refactor after shipping something real.</p><p>The value wasn't avoiding technical challenges. It was facing the right technical challenges with real user feedback driving the decisions.</p><h2>What I'd Do Differently</h2><p>Starting over, here's what I'd change:</p><ol><li><p><strong>Build one feature completely</strong> (including understanding and documentation) before moving to the next</p></li><li><p><strong>Set debugging time limits</strong>&#8212;if I can't understand and fix an AI-generated issue in a reasonable time, I rewrite that section</p></li><li><p><strong>Plan for iteration from day one</strong>&#8212;assume every feature will need modification based on user feedback</p></li><li><p><strong>Document architectural decisions</strong> as I go, not after something breaks</p></li></ol><h2>The Mindset Shift</h2><p>The biggest insight isn't about code&#8212;it's about expectations.</p><p>AI doesn't eliminate technical complexity. It relocates it from "learning to build" to "learning to maintain." Both are valuable skills, but they're different skills.</p><p>The founders who succeed with AI won't be the ones with the perfect prompts. They'll be the ones who plan for technical debt as a natural part of the process.</p><p>Because when your users need a feature modified, and they're waiting for the fix, the quality of your prompts matters less than your ability to understand and change the code that's already running.</p><div><hr></div><p><em>Building with AI? I'd love to hear what technical debt you've discovered. Reply and let me know what surprised you most about maintaining AI-generated code.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Generative Growth: My Journey Building a Startup with AI! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[From 47 ChatGPT Chats to One: The Reddit Thread That Unlocked My AI Workflow]]></title><description><![CDATA[ChatGPT Hell]]></description><link>https://www.michaelpgoetz.com/p/from-47-chatgpt-chats-to-one-the</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/from-47-chatgpt-chats-to-one-the</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Thu, 19 Jun 2025 16:25:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJBk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png" 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_!qJBk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qJBk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 424w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 848w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qJBk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png" width="728" height="309.49802513464994" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1184,&quot;width&quot;:2785,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:3401609,&quot;alt&quot;:&quot;Forty-seven cluttered chats contrasted with one focused AI chat.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/166258584?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2fc73b1-6083-4eff-9eec-f7201bca8d49_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Forty-seven cluttered chats contrasted with one focused AI chat." title="Forty-seven cluttered chats contrasted with one focused AI chat." srcset="https://substackcdn.com/image/fetch/$s_!qJBk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 424w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 848w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>ChatGPT Hell</h2><p>You know that feeling when you have so many browser tabs open that the favicons disappear and you're just looking at a wall of gray rectangles? That was me four weeks ago, except worse. I had 47 ChatGPT chats open. Forty. Seven.</p><p>Each one was a different conversation thread about <a href="https://rally.camp">RallyCamp</a>, my camping app idea. One tab for database design. Another for user authentication. Three separate ones just for different approaches to the scheduling system. I'd hop between them like a caffeinated squirrel, copying bits from one conversation, pasting into another, trying to remember which tab had that brilliant insight about Scout leader workflows.</p><h2>11 PM, One Reddit Link</h2><p>It was 11pm on a Tuesday when everything changed. I was scrolling Reddit, specifically r/vibecoding, when I found a thread titled "<a href="https://www.reddit.com/r/vibecoding/comments/1kkpyxo/this_is_how_i_build_launch_apps_using_ai_even/">This is how I build &amp; launch apps (using AI), even faster than before.</a>"</p><p>The thoughtfulness of the approach just blew me away. And it made a ton of sense to me. I had been treating ChatGPT like a better Google search, trying to learn all of the various roles and context myself. This approach was changing me from a do-it-all-yourself quasi-developer to an AI boss, something that was much more relatable to my recent real life work.</p><p>The commenter had linked to their workflow, but honestly, it was overwhelming. Pages and pages of complex prompts with variables and conditionals. I almost closed the tab, but something made me try a simpler version.</p><h2>The 12-Word Prompt Factory</h2><p>I opened a fresh ChatGPT window. Just one. And I started with the most basic prompt I could think of:</p><pre><code><code>What are the top 5 most in-demand consumer topics for outdoor recreation apps?</code></code></pre><p>Nothing fancy. No complex instructions. Just a question. But here's where it got interesting. Instead of diving straight into features or code, I took the AI's response and fed it into a second prompt:</p><pre><code>Based on these market opportunities, give me 10 app ideas for Scout camping coordination.</code></pre><p>Then I took the best idea from that list and wrote my third prompt. And this is where I almost fell out of my chair, because it was literally just seven words:</p><pre><code>Create a product requirements doc for this app</code></pre><p>Seven words. That's it. And ChatGPT spit out a comprehensive PRD that was better than anything I'd cobbled together across my 47 tabs.</p><h2>Why Sequence Beats Complexity</h2><p>But here's the thing. Those simple prompts worked because they were in sequence. Each one built on the last. The market research informed the ideation. The ideation informed the requirements. It was like... well, like a factory line.</p><p>Over the next few days, I refined this approach. My prompts got a bit more sophisticated, sure. But the core insight remained the same. Instead of having 47 conversations about 47 different aspects of my app, I had one conversation that flowed from market validation all the way to working code.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9w_q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9w_q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 424w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 848w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1272w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9w_q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png" width="2415" height="444" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:444,&quot;width&quot;:2415,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:796170,&quot;alt&quot;:&quot;AI prompt chain turning research into shipped code.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/166258584?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a57ba96-2ba5-43c7-84d4-6d4ad99d5aaa_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AI prompt chain turning research into shipped code." title="AI prompt chain turning research into shipped code." srcset="https://substackcdn.com/image/fetch/$s_!9w_q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 424w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 848w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1272w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The first three prompts in my chain became the foundation for everything:</p><p>First, I'd validate the market. Not with some generic "is this a good idea?" question, but by researching actual consumer spending patterns and market trends. This kept me from building something nobody wanted.</p><p>Second, I'd generate technically feasible ideas based on that research. Not pie-in-the-sky features, but actual MVPs I could build with AI assistance.</p><p>Third, I'd refine the winning idea into a proper product strategy. Not just features, but user personas, go-to-market plans, the works.</p><p>What used to take me days of jumping between tabs now took hours in a single, focused session. More importantly, each output was connected. The technical architecture actually matched the product requirements. The product requirements actually matched the market opportunity.</p><h2>Shipping RallyCamp in Four Weeks</h2><p>Last week, I shipped the beta of <a href="https://rally.camp">RallyCamp</a>. We've got a few friendly Scout leaders  testing it since we are hitting prime camping season. All from a system that started with seven words and a Reddit post at 11pm.</p><p>The crazy part? My prompts are still pretty simple. Sure, they've evolved from those first seven words, but they're not the complex monstrosities I thought I needed. They're just clear, sequential instructions that build on each other.</p><p>I've been refining these prompts with each project iteration, and I've decided to share them. Not because they're perfect, but because they work. And because I remember staring at those 47 chats thinking there had to be a better way.</p><h2>Steal My First Three Prompts</h2><p>This week, I'm sharing the <a href="https://micgo.notion.site/RallyCamp-Prompt-Chain-Foundation-Pack-216badd0492e801d958edf3b4bb1228e">first three prompts in my chain</a>. The ones that take you from "I have an idea" to "I have a validated product strategy." They're the foundation everything else builds on.</p><p>Next week, I'll share the prompts that turn that strategy into an actual technical plan. The week after that, the ones that generate working code.</p><p>But it all starts with these three. The same three that helped me go from 47 tabs of chaos to shipping actual software in four weeks.</p><p>We've been using AI wrong. Not because we need more complex prompts or better models. But because we've been treating each conversation like it exists in isolation, when what we really need is a system.</p><p>A chain where each link strengthens the next.</p><p>So yeah, that Reddit thread really did change everything. Not because it gave me the perfect prompts, but because it showed me that the perfect prompt doesn't exist. What exists is the perfect sequence. The right questions in the right order.</p><p>And it all started with closing 47 chats and opening just one.</p><div><hr></div><p><em>P.S. If you want to try the prompts yourself, grab them <a href="https://micgo.notion.site/RallyCamp-Prompt-Chain-Foundation-Pack-216badd0492e801d958edf3b4bb1228e">here</a>. Start with just the first one. See what market opportunity resonates with you. Then feed that into the second prompt. Then the third. Don't overthink it. The magic isn't in any individual prompt. It's in the chain.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Generative Growth: My Journey Building a Startup with AI! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I Started Vibecoding 4 Weeks Ago. Now I'm Launching a Startup.]]></title><description><![CDATA[Four weeks ago, I was googling 'what is vibecoding.' Today, I'm deploying my third feature update before breakfast.]]></description><link>https://www.michaelpgoetz.com/p/i-started-vibecoding-4-weeks-ago</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/i-started-vibecoding-4-weeks-ago</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Mon, 16 Jun 2025 19:25:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Four weeks ago, I was googling 'what is vibecoding.' Today, I'm deploying my third feature update before breakfast. This isn't a course pitch. It's a warning. The rules have changed.</p><h2>The Before State</h2><p>Five weeks ago, I'd just left GitHub after 4.5 years building Customer Success teams. My last serious coding attempt was basic Python for AWS automation&#8212;four years ago. I was that manager who understood <em>how</em> software worked but couldn't build it anymore. </p><p>Then I saw someone on Reddit mention they'd built an entire SaaS in a weekend using "vibecoding."</p><p>My first thought: "I&#8217;m not putting my data in there." My second thought: "...but surely I could figure out a better way?"</p><h2>Week 1: The Gateway Drug</h2><p>I started safe with Lovable. No code to write, just describe what you want. My prompt was ambitious for someone who'd been managing, not making:</p><p>"Create an interactive journey mapping tool that includes collaboration features, AI driven analysis and recommendations."</p><p>Five minutes. That's all it took.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AOg3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AOg3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 424w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 848w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 1272w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AOg3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png" width="1425" height="791" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:791,&quot;width&quot;:1425,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225773,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/166086327?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AOg3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 424w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 848w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 1272w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I stared at my screen. This wasn't a mockup or wireframe. Forms worked. Buttons clicked. Data persisted. It even recommended next steps: "Connect Supabase for user accounts and data persistence."</p><p>What the hell is Supabase? Didn't matter. There was a button. I clicked it.</p><p>Suddenly I had authentication, a database, API endpoints&#8212;infrastructure that would've taken me weeks to set up properly. Working. In fifteen minutes total.</p><p>I actually said "holy shit" out loud. Then I immediately went upstairs to my wife&#8217;s home office: "I just built this thing in like 15 minutes and it mostly works. This is pretty transformational."</p><p>The weirdest part? After building my dream CS tool in 15 minutes, I realized... I didn't actually want to run a journey mapping company. When building becomes this easy, you can afford to be picky.</p><h2>Week 2: Down the Rabbit Hole</h2><p>If Lovable was gateway drug, ChatGPT Plus was the hard stuff. I bought the annual subscription (first of many AI subscriptions I'd impulse buy).</p><p>New idea: Website builder for local small businesses! ChatGPT turned interviewer:</p><ul><li><p>"What's your initial budget?"</p></li><li><p>"Uh... zero dollars please?"</p></li><li><p>"What's your technical differentiation?"</p></li><li><p>"I... hmm."</p></li></ul><p>It produced a beautiful business plan. Projected Year 1 loss: $19,000. Year 2 profit: $4,000 on a $100k investment.</p><p>The AI had just talked me out of my own startup idea. That's when I realized&#8212;AI isn't just a building tool. It's a thinking partner that doesn't care about your feelings.</p><h2>Week 3: The Pivot That Stuck</h2><p>"Fine," I told ChatGPT. "You tell ME what to build."</p><p>I fed it my background: AWS, GitHub, Customer Success, Cub Scout leader planning our annual campout (currently drowning in spreadsheets and SignUpGenius links).</p><p>It suggested five ideas. Number 5 caught my eye: "Outdoor Trip Planning &amp; Community App."</p><p>"Surely someone's built this for Scouts?" I asked.</p><p>ChatGPT's research: "There's a significant gap in the market for group camping coordination specifically designed for youth organizations."</p><p>Three prompts later, I had:</p><ul><li><p>Market analysis</p></li><li><p>Competitive landscape</p></li><li><p>Revenue projections</p></li><li><p>Even a name: CampSync (later <a href="https://rally.camp">RallyCamp</a>)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_jLx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_jLx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 424w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 848w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 1272w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_jLx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png" width="878" height="738" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:738,&quot;width&quot;:878,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/166086327?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_jLx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 424w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 848w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 1272w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But here's where everything shifted. Instead of stopping at the <a href="https://docs.google.com/document/d/1IxNu2nkJaQ9xOt8EyXsRwHbWYWFH1xoCy6RZpM8Uvck/edit?usp=sharing">business plan</a>, I kept going:</p><p>"Create a product requirements doc for this app" "Now create a visual style guide" "Show me the user flow for trip creation" "Write the API schema"</p><p>Each prompt built on the last. I wasn't just brainstorming anymore&#8212;I was <em>systematically building a company</em>.</p><h2>Week 4: From Prompts to Patterns</h2><p>The mess was real. I had 47 ChatGPT chats in a giant list. Projects in Replit, Cursor, and Lovable. Notes scattered across three apps.</p><p>That's when I found the <a href="https://www.reddit.com/r/vibecoding/comments/1kkpyxo/this_is_how_i_build_launch_apps_using_ai_even/">Reddit thread</a> that changed everything for me. Some anonymous genius had posted their prompt sequence for going from idea to PRD to code. The comments were gold:</p><p>"I use this flow: Business validation &#8594; PRD &#8594; API design &#8594; Schema &#8594; Frontend components" "Pro tip: Make AI write the prompts for the next stage" "I version control my prompts like code"</p><p>Wait. Version control... for prompts?</p><p>I spent two days organizing. Built templates. Created a system. Suddenly I wasn't just using AI. I was building a machine that built products.</p><h2>Week 5: The Metamorphosis</h2><p>This week started different. Monday morning, I:</p><ol><li><p>Woke up to Claude Code having completed a complete overhaul of the tests for my authentication system</p></li><li><p>Asked Gemini to help me improve my prompts for the next feature I&#8217;m planning to implement</p></li><li><p>Drafted my content strategy to help build some awareness for <a href="https://rally.camp">RallyCamp</a></p></li><li><p>Built a new feature before lunch</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jJz5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jJz5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 424w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 848w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 1272w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jJz5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png" width="1456" height="923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:923,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2674382,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/166086327?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jJz5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 424w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 848w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 1272w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Uncomfortable Truth</h2><p>Here's what nobody's talking about: We're speedrunning the entire startup journey. What used to take months now takes weeks. What took weeks now takes hours.</p><p>Traditional path: Idea &#8594; 6 months &#8594; MVP &#8594; 12 months &#8594; Revenue My path: Idea &#8594; 6 hours &#8594; Prototype &#8594; 5 weeks &#8594; MVP launch</p><p>This isn't because I'm special. I'm a mediocre coder who bought the right tools at the right time. The game changed, and most people don't know it yet.</p><p>In six months, everyone will be "vibecoding." The arbitrage opportunity is right now.</p><h2>What Actually Happened</h2><p>I didn't learn to code. I learned to think in systems and let AI handle the implementation. I didn't become technical. I became a non-engineer who can ship production code.</p><p>Most importantly: I stopped consuming and started creating. Every day, I wake up with the power to build anything I can describe.</p><h2>Your Move</h2><p>I'm documenting everything. Every prompt, every failure, every breakthrough. Not because I'm an expert, but because I'm five weeks ahead of you and the view from here is insane.</p><p>Next week: The exact prompt sequences that collapsed six months of work into six weeks. Including the Reddit thread that started it all.</p><p>But honestly? You don't need to wait. Open ChatGPT right now and type: "I want to build an app that solves [your actual problem]. Help me create a one-page business plan to validate this idea."</p><p>See you on the other side.</p><div><hr></div><p><strong>This Week's Download</strong>: "<a href="http://bit.ly/4jXx9bI">From Zero to Shipping: My 5-Week Prompt Evolution</a>"</p><ul><li><p>My first terrible prompts</p></li><li><p>The Reddit-inspired templates that changed everything</p></li><li><p>Current prompt chains for business &#8594; product &#8594; code</p></li><li><p>What I wish I'd known on Day 1</p></li></ul><p><strong>Drop a comment</strong>: What bad startup idea could AI talk you out of in 10 minutes?</p><p><em>P.S. - I've built two other entire apps during these five weeks. Killed them both. When building is this fast, you can afford to fail. More on that next time.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>