<?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[Product with Attitude: Vibe Coding Hub]]></title><description><![CDATA[This hub collects 15+ practitioner-tested guides on vibe coding, spec-driven development, and AI-assisted product building. It covers the full builder journey: foundations, shipping to production, security, debugging Replit, and choosing between tools like Claude, Cursor, Lovable, and Gemini.
I designed it to be useful for anyone building with AI: solo founders, product managers, and AI practitioners who want to ship real products.]]></description><link>https://karozieminski.substack.com/s/vibe-coding-hub</link><image><url>https://substackcdn.com/image/fetch/$s_!KJxv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png</url><title>Product with Attitude: Vibe Coding Hub</title><link>https://karozieminski.substack.com/s/vibe-coding-hub</link></image><generator>Substack</generator><lastBuildDate>Fri, 26 Jun 2026 16:02:39 GMT</lastBuildDate><atom:link href="https://karozieminski.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Karolina Zieminski]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[karozieminski@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[karozieminski@substack.com]]></itunes:email><itunes:name><![CDATA[Karo (Product with Attitude)]]></itunes:name></itunes:owner><itunes:author><![CDATA[Karo (Product with Attitude)]]></itunes:author><googleplay:owner><![CDATA[karozieminski@substack.com]]></googleplay:owner><googleplay:email><![CDATA[karozieminski@substack.com]]></googleplay:email><googleplay:author><![CDATA[Karo (Product with Attitude)]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Pre-Build Interrogation Prompt]]></title><description><![CDATA[AI Product Manager turning everyone into AI-native builders. I help you design & build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community developing critical AI literacy by immersion.]]></description><link>https://karozieminski.substack.com/p/pre-build-interrogation-prompt</link><guid isPermaLink="false">https://karozieminski.substack.com/p/pre-build-interrogation-prompt</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Fri, 26 Jun 2026 10:00:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6429d14a-a94c-4d49-a3f3-ad77e9392384_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p>The Pre-Build Interrogation Prompt is a companion resource to my article &#8220;Are You Sure You&#8217;re Actually Vibe Coding?&#8221; </p><p>Read the article first because this prompt only makes sense once you understand the difference between vibe coding, slop coding, spec-assisted building, and spec-driven development.</p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h2>What The Pre-Build Interrogation Prompt Is</h2><p>This prompt helps you apply that framework before a coding agent touches your project.</p><p>Use it when you you&#8217;re not yet sure whether the AI should start coding. Instead of asking the agent to implement immediately, you ask it to interrogate the idea first.</p><p>Use it before:</p><ul><li><p>Building a new feature</p></li><li><p>Refactoring an existing flow</p></li><li><p>Changing auth, payments, permissions, or data handling</p></li><li><p>Asking an agent to edit multiple files</p></li><li><p>Turning a vibe-coded prototype into something users will actually touch</p></li><li><p>Moving from exploration into a more structured build mode</p></li></ul><p>The prompt makes the agent inspect the existing project context, identify unclear requirements, surface hidden assumptions, map user roles and permissions, flag data model impact, find edge cases, assess security and privacy risks, estimate blast radius, define shippability criteria, and recommend tests before implementation.</p><p>In plain English: it stops the AI from confidently building the wrong thing.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The Pre-Build Interrogation Prompt</h2><p>Copy and paste the prompt below into your coding agent before asking it to build, refactor, or change code.</p>
      <p>
          <a href="https://karozieminski.substack.com/p/pre-build-interrogation-prompt">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Source Code: The Runaway Subscribe Button]]></title><description><![CDATA[The exact code running on productwithattitude.com, packaged so you can drop it on any site in under five minutes.]]></description><link>https://karozieminski.substack.com/p/runaway-subscribe-button-kit</link><guid isPermaLink="false">https://karozieminski.substack.com/p/runaway-subscribe-button-kit</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Tue, 26 May 2026 14:33:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f957a17b-758c-44cc-9725-546d4a504230_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><em><strong><a href="https://karozieminski.substack.com/p/runaway-subscribe-button">Read this article first. </a></strong>This code is the companion resource.</em></p></div><h2>Get The Code (Drop it on your site in 5 minutes)</h2><blockquote><p><em>Running live on <a href="http://productwithattitude.com">productwithattitude.com</a> since May 2026. This is the exact code, packaged.</em></p></blockquote><p>The subscribe button that runs from your reader. Then converts them when they catch it.</p><p>The easiest and cheapest way to build this is to copy my code, and change three things:</p><ol><li><p>the button text</p></li><li><p>the destination URL</p></li><li><p>the number of times the button dodges before it gives up (just remember that a button that runs forever is not fun anymore).</p></li></ol><div class="callout-block" data-callout="true"><p>This route also <strong>saves you credits</strong>, because you are not asking AI to reinvent the whole component from scratch. You are asking it to adapt something that already works.</p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h2>What&#8217;s Inside</h2><pre><code><code>runaway-button-kit/
&#9500;&#9472;&#9472; README.md                          (you are here)
&#9500;&#9472;&#9472; LICENSE.md                         single-site commercial license
&#9500;&#9472;&#9472; src/
&#9474;   &#9500;&#9472;&#9472; runaway-button.html            clean HTML markup
&#9474;   &#9500;&#9472;&#9472; runaway-button.css             tokenized CSS, re-skin in 6 variables
&#9474;   &#9492;&#9472;&#9472; runaway-button.js              vanilla JS, no dependencies
&#9500;&#9472;&#9472; examples/
&#9474;   &#9500;&#9472;&#9472; dropin-single-file.html        one file, paste-and-ship
&#9474;   &#9492;&#9472;&#9472; RunawayButton.jsx              React / Next.js component
&#9500;&#9472;&#9472; docs/
&#9474;   &#9500;&#9472;&#9472; GA4-EVENT-SPEC.md              event names, params, Key Event setup
&#9474;   &#9492;&#9472;&#9472; CUSTOMIZATION.md               re-skin, copy variants, behavior knobs
&#9492;&#9472;&#9472; preview/
    &#9492;&#9472;&#9472; index.html                     open in browser to see it work</code></code></pre><h2>Download Code Files </h2>
      <p>
          <a href="https://karozieminski.substack.com/p/runaway-subscribe-button-kit">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Coding Prompts: The Runaway Subscribe Button Prompt]]></title><description><![CDATA[One copy-pasteable prompt. Drop a runaway subscribe button into any site in 5 minutes, with GA4 events, accessibility, and a button that surrenders after 4 dodges.]]></description><link>https://karozieminski.substack.com/p/runaway-subscribe-button-prompt</link><guid isPermaLink="false">https://karozieminski.substack.com/p/runaway-subscribe-button-prompt</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Tue, 26 May 2026 14:19:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3da9a03f-fe01-4166-9c92-53c9b3e44400_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><em><strong><a href="https://karozieminski.substack.com/p/runaway-subscribe-button">Read this article first. </a></strong>This code is the companion resource.</em></p></div><blockquote><p>This is the exact prompt I used to ship the runaway button running at the on <strong><a href="https://productwithattitude.com/p/runaway-subscribe-button-conversion-experiment">productwithattitude.com</a></strong>. </p></blockquote><h2>The Runaway Subscribe Button Prompt</h2><p>Paste this into Claude, Claude Code, Cursor, Lovable, or any AI coding tool. Fill in the four [BRACKETED] placeholders. Out comes a working drop-in subscribe section with GA4 events, accessibility, and a button that dodges your cursor for exactly as long as you tell it to.</p>
      <p>
          <a href="https://karozieminski.substack.com/p/runaway-subscribe-button-prompt">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Are You a Vibe Coder? Don’t Ship Straight Into the Provider Trap]]></title><description><![CDATA[For my fellow builders: go compliance-native before 2 August 2026.]]></description><link>https://karozieminski.substack.com/p/eu-ai-act-builders-compliance-native-2026</link><guid isPermaLink="false">https://karozieminski.substack.com/p/eu-ai-act-builders-compliance-native-2026</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Wed, 29 Apr 2026 18:17:52 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0944a2ef-b52d-4160-bebc-a174eef0663b_1920x1080.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h6><em>TL;DR: The EU AI Act is in force, and the high-risk obligations under Annex III apply on 2 August 2026. If you wrap <a href="https://platform.claude.com/docs/en/about-claude/models/overview">Claude 4.7</a>, <a href="https://developers.openai.com/api/docs/guides/latest-model">GPT-5.5</a>, or <a href="https://ai.google.dev/gemini-api/docs/thinking">Gemini 3.1 Pro </a>in your own UI and sell it under your brand, you are the provider under <a href="https://artificialintelligenceact.eu/article/3/">Article 3(3)</a>, not the deployer. Compliance-native building means designing AI products so classification, documentation, transparency, logging, and testing are built into the product workflow from day one. This piece gives you the provider trap, the dates that matter, the founder penalty math, and a 30-minute checklist.</em></h6><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zU1z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zU1z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png 424w, https://substackcdn.com/image/fetch/$s_!zU1z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png 848w, https://substackcdn.com/image/fetch/$s_!zU1z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png 1272w, https://substackcdn.com/image/fetch/$s_!zU1z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zU1z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png" width="1456" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:170074,&quot;alt&quot;:&quot;EU AI Act compliance timeline for builders &#8212; 1 Aug 2024, 2 Feb 2025, 2 Aug 2025 passed; 2 Aug 2026 high-risk Annex III deadline; 2 Dec 2027 and 2 Aug 2028 might move.&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://karozieminski.substack.com/i/195778338?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="EU AI Act compliance timeline for builders &#8212; 1 Aug 2024, 2 Feb 2025, 2 Aug 2025 passed; 2 Aug 2026 high-risk Annex III deadline; 2 Dec 2027 and 2 Aug 2028 might move." title="EU AI Act compliance timeline for builders &#8212; 1 Aug 2024, 2 Feb 2025, 2 Aug 2025 passed; 2 Aug 2026 high-risk Annex III deadline; 2 Dec 2027 and 2 Aug 2028 might move." srcset="https://substackcdn.com/image/fetch/$s_!zU1z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png 424w, https://substackcdn.com/image/fetch/$s_!zU1z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png 848w, https://substackcdn.com/image/fetch/$s_!zU1z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.png 1272w, https://substackcdn.com/image/fetch/$s_!zU1z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3abc7a31-2046-4299-8f0b-e8bcc3612075_2051x885.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>Thousands of builders wrapped a frontier model in their own UI, added a logo, and started selling subscriptions. </p><p>With vibe coding, all of that can happen in a day.</p><p>If you&#8217;re one of these builders, <strong><a href="https://artificialintelligenceact.eu/article/3/">Article 3(3) of the EU AI Act</a></strong> made you the provider that day. </p><p>OpenAI, Anthropic, or Google still remain responsible for the general-purpose AI model they created. But you became responsible for the product you built on top of that model. And if your use case touched <a href="https://artificialintelligenceact.eu/annex/3/">Annex III</a>, you inherited every high-risk obligation in the regulation.</p><p>That&#8217;s the provider trap. </p><p>Builders, indie founders, and vibe coders are shipping fast, scaling faster, and stepping into the provider trap before they know it exists.</p><blockquote><p>The way out is what I started calling compliance-native building. </p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PnAx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PnAx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png 424w, https://substackcdn.com/image/fetch/$s_!PnAx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png 848w, https://substackcdn.com/image/fetch/$s_!PnAx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png 1272w, https://substackcdn.com/image/fetch/$s_!PnAx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PnAx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png" width="1456" height="446" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:446,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175389,&quot;alt&quot;:&quot;EU AI Act compliance timeline showing 2 August 2026 high-risk AI deadline under Annex III, plus penalty tiers up to &#8364;35M or 7% revenue with Article 99 SMB caps.&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://karozieminski.substack.com/i/195778338?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="EU AI Act compliance timeline showing 2 August 2026 high-risk AI deadline under Annex III, plus penalty tiers up to &#8364;35M or 7% revenue with Article 99 SMB caps." title="EU AI Act compliance timeline showing 2 August 2026 high-risk AI deadline under Annex III, plus penalty tiers up to &#8364;35M or 7% revenue with Article 99 SMB caps." srcset="https://substackcdn.com/image/fetch/$s_!PnAx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png 424w, https://substackcdn.com/image/fetch/$s_!PnAx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png 848w, https://substackcdn.com/image/fetch/$s_!PnAx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.png 1272w, https://substackcdn.com/image/fetch/$s_!PnAx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2265cc90-65ca-476f-acf5-305bdd2f7c4d_2970x909.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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" width="1456" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11402,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p><em>Hey, I&#8217;m Karo Zieminski </em>&#129303;<em> </em></p><p><em>I ship physical AI products at a named company in Europe, I build indie products on the side, I live under EU AI Act compliance, I parent AI-native kids, and I write about critical AI literacy for 18,000 people.</em></p><p></p><p><em>If you&#8217;re new here, welcome! Here&#8217;s what you might have missed:<br>&#8594; <a href="https://karozieminski.substack.com/p/ai-prompting-techniques-reasoning-models-2026">The Only AI Prompting Guide That Works On Reasoning Models (And Our Cognition)</a></em></p><p><em>&#8594; <a href="https://karozieminski.substack.com/p/gpt-5-5-citations-hallucination-rate">Is GPT-5.5 Reliable For Citations? No. It&#8217;s The Worst Flagship For That Job</a></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dz9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7643495-34e2-40ce-abad-d894412325db_2396x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11749,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What&#8217;s Inside</h2><ul><li><p>What compliance-native building means.</p></li><li><p>Why it beats compliance-by-design.</p></li><li><p>The provider trap, broken down with the exact chat-wrapper scenario. </p></li><li><p>A decision tree for <em>am I in scope and at what risk tier</em>.</p></li><li><p>The dates that already passed, the date that matters, and the proposal that might move it. </p></li><li><p>Penalties translated for founders. </p></li><li><p>A 30-minute checklist for builders.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Compliance-Native Building, Defined</h2><div class="callout-block" data-callout="true"><p><em>Compliance-native building means designing AI products so classification, documentation, transparency, logging, and testing are built into the product workflow from day one.</em></p></div><p>We had cloud-native. Then AI-native. </p><p>So when I needed a name for building regulation <em>into the product itself</em>, compliance-native made sense.</p><ul><li><p>Cloud-native made software scalable. </p></li><li><p>AI-native made intelligence part of the product. </p></li><li><p>Compliance-native makes regulation part of the build.</p></li></ul><p>Compliance-native building treats the EU AI Act as a <em>system constraint</em>, not a paperwork tax. </p><blockquote><p>You don&#8217;t build the product, then add compliance on. <br>You build the product so compliance is the <em>default behavior of the system. </em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>What it isn&#8217;t</h3><p><strong>It&#8217;s not compliance-by-design. </strong>That phrase is the consultant pitch. It often means someone sells you a framework, a risk register, and a recurring meeting. </p><p>Useful for enterprises with legal teams. Useless if you&#8217;re a one-person startup with zero budget and your &#8220;legal department&#8221; is you and ChatGPT.</p><h3>What it is</h3><p>You bake five behaviors into the product. The behaviors <em>are</em> the compliance. You document them once. You log them by default. </p><ol><li><p><strong>Classify first.</strong><br>Before you write code, decide what kind of AI system you are building: prohibited under <a href="https://artificialintelligenceact.eu/article/5/">Article 5</a>, high-risk under <a href="https://artificialintelligenceact.eu/annex/3/">Annex III</a>, or limited-risk under <a href="https://artificialintelligenceact.eu/article/50/">Article 50</a>. Write it down. Keep it in the repo. </p></li><li><p><strong>Document as code. </strong><br>Your technical documentation and conformity assessment should live where the product lives. Same repo, same version history, same review process as a pull request.</p></li><li><p><strong>Transparency by default. Always.</strong><br>Users should know when they are interacting with AI. If they&#8217;re talking to AI, or seeing AI-generated content, the interface should say so plainly.<br>When the output is synthetic, <a href="https://artificialintelligenceact.eu/article/50/">Article 50</a> makes disclosure mandatory.</p></li><li><p><strong>Logging by default.</strong></p><p>For high-risk systems, every decision needs a record. Who asked. What model responded. What output was generated. What happened after. <a href="https://artificialintelligenceact.eu/article/12/">Article 12</a> makes automatic logging mandatory, so don&#8217;t leave it for &#8220;later.&#8221; Later is where compliance tasks go to become expensive.</p></li><li><p><strong>Sandbox first.</strong></p><p>Before you test high-risk behavior on real customers, use the regulatory sandbox. <a href="https://artificialintelligenceact.eu/article/57/">Article 57</a> requires each Member State to have at least one by 2 August 2026, with free priority access for SMEs.</p></li></ol><blockquote><p>These five behaviors are the compliance-native stack. The rest is documentation.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p style="text-align: center;">Share this with your vibe coder friend. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/p/eu-ai-act-builders-compliance-native-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://karozieminski.substack.com/p/eu-ai-act-builders-compliance-native-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The Trap That Catches Most Builders</h2>
      <p>
          <a href="https://karozieminski.substack.com/p/eu-ai-act-builders-compliance-native-2026">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Complete Vibe Coding Resource Hub]]></title><description><![CDATA[Complete vibecoding series 2026 - the most comprehensive collection of vibecoding, speccoding, and AI-assisted development resources on Substack.]]></description><link>https://karozieminski.substack.com/p/vibecoding-resources-hub</link><guid isPermaLink="false">https://karozieminski.substack.com/p/vibecoding-resources-hub</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Mon, 27 Apr 2026 21:43:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/af704b32-900f-406a-9eff-de54ee66fc27_2400x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p style="text-align: right;"><em>Last updated: June 2026 &#183; Actively maintained</em></p><h6><em>TL;DR</em></h6><h6><em>This is a vibe coding resource hub for AI builders who want to ship real products, not just impressive demos. It collects 18+ practitioner-tested guides across vibe coding, </em><strong>spec-driven development</strong><em>, PRDs, debugging, cybersecurity, prompt systems, code blocks, and tool selection across Claude, Cursor, Lovable, Gemini, Replit, and v0.dev. <strong>Start with the reading path that matches what you are trying to build. Free readers get the map. Paid members get the build materials: prompts, code blocks, PRD templates, failure logs, and project structures behind the guides.</strong></em></h6><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E69S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E69S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png 424w, https://substackcdn.com/image/fetch/$s_!E69S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png 848w, https://substackcdn.com/image/fetch/$s_!E69S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png 1272w, https://substackcdn.com/image/fetch/$s_!E69S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E69S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png" width="1200" height="320" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:320,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25016,&quot;alt&quot;:&quot;Vibe Coding Hub banner featuring a cartoon developer character pointing energetically beside the publication wordmark, branding a resource hub for AI-assisted vibe coding.&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://karozieminski.substack.com/i/182760227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Vibe Coding Hub banner featuring a cartoon developer character pointing energetically beside the publication wordmark, branding a resource hub for AI-assisted vibe coding." title="Vibe Coding Hub banner featuring a cartoon developer character pointing energetically beside the publication wordmark, branding a resource hub for AI-assisted vibe coding." srcset="https://substackcdn.com/image/fetch/$s_!E69S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png 424w, https://substackcdn.com/image/fetch/$s_!E69S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png 848w, https://substackcdn.com/image/fetch/$s_!E69S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.png 1272w, https://substackcdn.com/image/fetch/$s_!E69S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cc2c51-a97c-460b-9144-6e6b40437bfd_1200x320.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>Every vibe coding guide teaches you how to generate an app.</p><p>This hub teaches you how to build one you can debug, secure, explain, ship and stand behind. </p><p>Pretty screens are cheap now. Judgment is not.</p><p>This vibe coding resource hub collects the guides, tools, prompts, workflows, and safety practices you need to build software with AI coding agents using natural language.</p><p>It treats vibe coding as <em><strong>product discipline</strong></em>: choosing the right tool, writing better specs and PRDs, debugging AI-generated code, securing apps before production, and shipping features that survive contact with real users.</p><div class="callout-block" data-callout="true"><p style="text-align: center;"><em>I organized the hub as questions and answers. <br>Pick your goal and follow the reading path that fits where you are today.</em></p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Who This Hub Is For</h2><h3>Do I need coding experience to use this hub? </h3><p>No. </p><p>You don&#8217;t need coding experience or technical background to use this hub. Curiosity is enough. </p><p>I&#8217;ve watched members with <strong>zero</strong> technical background automate their workflows, build systems and ship apps that save them and their teams hours per week. </p><div class="callout-block" data-callout="true"><p><strong>One member described the shift better than I could:</strong></p><p><em>I don&#8217;t even remember why I subscribed to Karo, probably an algorithm nudge. For weeks I just read her emails about learning AI by using and building with it. <br>Once I finally tried, a whole NEW WORLD opened: I built a collaboration and content pipeline for my team, became &#8220;THE AI person&#8221; at work, and I&#8217;m still shocked by what I can do now.</em></p><p>- <a href="https://substack.com/@claryssaaroen">Claryssa Aroen</a></p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" width="1456" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11402,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>Hey, I&#8217;m Karo Zieminski </em>&#129303;<em> </em></p><p><em>AI Product Manager and <a href="https://karozieminski.substack.com/p/substack-creator-tools">builder</a>. </em></p><p><em>I write Product with Attitude, an AI newsletter for thousands of subscribers developing critical AI literacy the only way it sticks: through practice.</em></p><p><em>We don&#8217;t just use AI. We build workflows, automations, and products with it, while studying how AI itself is built, positioned, and woven into our work.</em></p><p><em>If you&#8217;re new here, welcome! Here&#8217;s what you might have missed:</em></p><ul><li><p><em><strong><a href="https://karozieminski.substack.com/p/claude-design-review-prompts-figma">Claude Design Review &amp; Prompts</a></strong></em></p></li><li><p><em><strong><a href="https://karozieminski.substack.com/p/build-with-ai-2026-community-builder-showcase">12 AI Projects Built by the PwA Community</a></strong></em></p></li><li><p><em><strong><a href="https://karozieminski.substack.com/p/substack-creator-tools">The Tools I&#8217;ve Built (and What&#8217;s Coming Next)</a></strong></em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Start here: <br>Pick Your Goal, Then Follow the Reading Path</h2><div class="callout-block" data-callout="true"><h3 style="text-align: center;">If You&#8217;re New to Vibe Coding</h3><ul><li><p><a href="https://karozieminski.substack.com/i/182760227/best-vibe-coding-resources-by-builder-goal">Where can I find vibe coding resources that match my goals?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/foundations-what-vibe-coding-is">I&#8217;m new to vibe coding. Where should I start with the fundamentals?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/what-is-vibe-coding-as-a-product-building-discipline">What is vibe coding as a product-building discipline?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/which-aiassisted-coding-method-is-best-for-me">Which AI&#8209;assisted coding method is best for me?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/whats-the-difference-between-vibe-coding-and-spec-driven-development">What is the difference between vibe coding and spec-driven development?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/technical-concepts">What technical concepts should beginners understand first?</a></p></li></ul></div><div class="callout-block" data-callout="true"><h3 style="text-align: center;">If You&#8217;re Choosing Tools or Workflows</h3><ul><li><p><a href="https://karozieminski.substack.com/i/182760227/what-tools-do-people-use-for-vibe-coding">What tools do people use for vibe coding?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/which-vibe-coding-tool-is-best-for-me-in-2026">Which vibe coding tool is best for me in 2026?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/what-is-the-best-free-vibe-coding-ide">What is the best free vibe coding IDE?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/what-is-the-best-database-for-vibe-coding">What is the best database for vibe coding?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/where-should-i-deploy-a-vibe-coded-project-if-im-choosing-between-netlify-vercel-railway-and-supabase">Where should I deploy a vibe-coded project?</a></p></li></ul></div><div class="callout-block" data-callout="true"><h3 style="text-align: center;">If You&#8217;re Preparing to Build</h3><ul><li><p><a href="https://karozieminski.substack.com/i/182760227/where-can-i-find-proven-prompts-for-ui-elements-when-im-vibe-coding">Where can I find proven prompts for UI elements?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/how-can-i-write-better-prds-when-im-vibe-coding-so-they-catch-problems-early">How can I write better PRDs?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/how-can-i-get-a-reusable-prompt-system-that-works-across-replit-cursor-lovable-and-gemini">How do I write rules for AI that work across Replit, Cursor, Lovable and Gemini?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/where-can-i-find-readymade-code-blocks">Where can I find ready&#8209;made code blocks?</a></p></li></ul></div><div class="callout-block" data-callout="true"><h3 style="text-align: center;">If You&#8217;re Debugging or Shipping</h3><ul><li><p><a href="https://karozieminski.substack.com/i/182760227/how-to-secure-vibe-coded-apps-how-do-i-ship-vibe-coded-products-to-production-safely-what-are-the-biggest-security-risks-in-vibe-coded-apps">How to secure vibe-coded apps?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/how-to-secure-vibe-coded-apps-how-do-i-ship-vibe-coded-products-to-production-safely-what-are-the-biggest-security-risks-in-vibe-coded-apps">How to debug in Replit?</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/hubs-and-real-world-tool-experience">Where can I find real-world examples of building with Replit, Claude, or Perplexity Computer?</a></p></li></ul></div><div class="callout-block" data-callout="true"><h3 style="text-align: center;">If You&#8217;ve Already Built Something</h3><ul><li><p><a href="https://karozieminski.substack.com/i/182760227/feedback-and-beta-testers">I&#8217;m looking for feedback and beta testers. </a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/showcase-on-product-with-attitude">I want to showcase my product on Product with Attitude. </a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/showcase-on-stackshelf">I want to showcase my product on StackShelf.app.</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/community-chat">I&#8217;m looking to connect with other builders.</a></p></li><li><p><a href="https://karozieminski.substack.com/i/182760227/references-and-further-reading">References and Further Reading</a></p></li></ul></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Best Vibe Coding Resources by Builder Goal</h2><p>Tool directories, courses, GitHub lists, and definition articles are useful. They also leave a lot of &#8220;okay, but what do I do now?&#8221; hanging in the air. This hub is a field guide for turning AI-assisted development from scattered advice into repeatable product-building practice.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3 style="text-align: center;">Resource Type Comparison Table</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d_fI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d_fI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 424w, https://substackcdn.com/image/fetch/$s_!d_fI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 848w, https://substackcdn.com/image/fetch/$s_!d_fI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 1272w, https://substackcdn.com/image/fetch/$s_!d_fI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d_fI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp" width="1456" height="1840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179280,&quot;alt&quot;:&quot;Comparison of AI coding learning resources (tool directory, course, GitHub awesome list, definition article, and the Product with Attitude hub) showing what each is best for, its limitation, and when to use it.&quot;,&quot;title&quot;:&quot;Comparison of AI coding learning resources (tool directory, course, GitHub awesome list, definition article, and the Product with Attitude hub) showing what each is best for, its limitation, and when to use it.&quot;,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/182760227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Comparison of AI coding learning resources (tool directory, course, GitHub awesome list, definition article, and the Product with Attitude hub) showing what each is best for, its limitation, and when to use it." title="Comparison of AI coding learning resources (tool directory, course, GitHub awesome list, definition article, and the Product with Attitude hub) showing what each is best for, its limitation, and when to use it." srcset="https://substackcdn.com/image/fetch/$s_!d_fI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 424w, https://substackcdn.com/image/fetch/$s_!d_fI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 848w, https://substackcdn.com/image/fetch/$s_!d_fI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 1272w, https://substackcdn.com/image/fetch/$s_!d_fI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9244a2-c489-4286-a21d-1c6cc0d1121c_1671x2112.webp 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 style="text-align: center;"></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Foundations: What Vibe Coding Is</h2><h3>What is vibe coding?</h3><p>Vibe coding is prompt-led software development: a way of building software by describing desired outcomes to an AI coding assistant, then testing, revising, and reviewing the generated code through an iterative conversation.</p><p>Vibe coding makes software creation more accessible by replacing some manual coding with natural language prompting. Its strength is speed. Its weakness is reliability. The best results come when vibe coding is paired with testing, version control, security review, and human product judgment.</p><h4>Read the full 2026 guide:</h4><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8dac4313-4412-482e-9288-b4cf6e2b7ad5&quot;,&quot;caption&quot;:&quot;This article defines a new AI development lexicon, categorizing methodologies into \&quot;Vibe Coding\&quot; (prompt-led), \&quot;Spec-Driven Development\&quot; (PRD-driven), and \&quot;AI-Assisted Engineering\&quot; (human-disciplined). The framework aims to clarify how builders interact with autonomous agents, including a \&quot;Pre-Build Interrogation Prompt\&quot;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;So, Are You Really Vibe Coding? The 2026 Definition, Lexicon, and Decision Framework&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI builders who protect human agency. Tools to showcase your work. A community building critical AI literacy through practice. Use AI with attitude to strengthen the branch you&#8217;re sitting on, not cut it off.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-06-26T10:00:42.359Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ebb884d4-587d-4d1c-8957-f52b141c0eca_2360x1239.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/vibe-coding-2026-definition-ai-development-lexicon&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:201513304,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:29,&quot;comment_count&quot;:4,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>Where did the term &#8220;vibe coding&#8221; come from?</h3><p>The term vibe coding was coined by Andrej Karpathy in early 2025 to describe a highly conversational way of building software with AI. Instead of manually writing every line of code, the user explains what they want, reviews the result, and keeps prompting until the software behaves as intended.</p><div><hr></div><h3>I want a complete, end&#8209;to&#8209;end guide to vibe coding</h3><p>Read <strong><a href="https://karozieminski.substack.com/p/vibecoding-tips-the-ultimate-collection">The Ultimate Vibe Coding Guide From Builders Who&#8217;ve Shipped</a>.</strong> </p><p>It&#8217;s a 16-step practitioner playbook covering the full arc from concept to shipped product. </p><div><hr></div><h3>What is vibe coding as a product-building discipline?</h3><p>Vibe coding is the practice of building software by describing your desired outcome in natural language and iterating with AI until the product is ready.</p><p>The hard part is judgment. Knowing what to accept, what to reject, and when the AI is confidently wrong. </p><p>I built a dedicated interview series around that craft layer: the quality bar, the architectural calls, and the decisions that separate a shipped product from a shipped demo. </p><p>As a product-building discipline, it combines AI-generated code with human judgment, architectural thinking, engineering principles, and deliberate review.</p><p>The beginner mistake is treating a working screen as a working product. A product also needs requirements, authentication, data rules, edge-case handling, debugging, security checks, and a user who can break it in ways the demo never did. </p><div><hr></div><h3>Do I need to know how to program to vibe code?</h3><p>No.</p><p>Vibe coding lowers the barrier to software creation because we can build with natural language prompts instead of traditional syntax. </p><p>This makes it useful for non-programmers who want to create prototypes, internal tools, scripts, landing pages, or simple applications.</p><p>However, the less code you understand, the more important it becomes to test, review, and verify the output. Vibe coding can help you build faster. It does not automatically make the result safe, scalable, or correct.</p><div><hr></div><h3>How is vibe coding different from traditional programming?</h3><p>Traditional programming is code-first software development. Vibe coding is prompt-led software development.</p><div><hr></div><h3>How does vibe coding work?</h3><p>Vibe coding usually follows an iterative loop:</p><ol><li><p>Describe the outcome you want.</p></li><li><p>Let the AI generate the first version.</p></li><li><p>Test the result.</p></li><li><p>Describe what is broken, missing, or wrong.</p></li><li><p>Ask the AI to revise the code.</p></li><li><p>Repeat until the product works well enough to ship, test, or discard.</p></li></ol><p>The strongest vibe coding workflows are structured conversations with the AI, guided by product judgment, testing, and clear constraints.</p><div><hr></div><h3>Can vibe coding be used for professional apps?</h3><p>Yes.</p><p>Vibe coding can be used to build prototypes, MVPs, internal tools, automations, landing pages, and commercial software.</p><p>For professional applications, vibe coding works best when paired with engineering review, version control, testing, security checks, and clear product requirements. Larger companies usually need additional controls because AI-generated code must fit existing systems, compliance rules, architecture standards, and release processes.</p><div><hr></div><h3>Is vibe coding a real job now?</h3><p>Not really. The valuable skill is AI-assisted product building: translating messy needs into clear specs, reviewing AI outputs, debugging, securing, and shipping.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Methods: Vibe Coding vs Spec-Driven Development</h2><h3>Which AI&#8209;assisted coding method is best for me?</h3><p>If you&#8217;re not sure which method fits you best, or want to understand the terminology before choosing a workflow - this will help:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!12kt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!12kt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png 424w, https://substackcdn.com/image/fetch/$s_!12kt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png 848w, https://substackcdn.com/image/fetch/$s_!12kt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png 1272w, https://substackcdn.com/image/fetch/$s_!12kt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!12kt!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png" width="1200" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:485117,&quot;alt&quot;:&quot;Decision tree titled \&quot;What are you building?\&quot; that maps AI coding approaches by project type. Real apps and production systems split into team projects (Spec-Driven Development for simple/moderate, AI-Assisted Engineering for complex) and solo projects (full control vs. giving AI some autonomy via Agentic Coding). Prototypes, MVPs, and personal apps split by speed into Vibe Coding. Every path ends at one rule: Context Engineering, Always.&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://karozieminski.substack.com/i/182760227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="Decision tree titled &quot;What are you building?&quot; that maps AI coding approaches by project type. Real apps and production systems split into team projects (Spec-Driven Development for simple/moderate, AI-Assisted Engineering for complex) and solo projects (full control vs. giving AI some autonomy via Agentic Coding). Prototypes, MVPs, and personal apps split by speed into Vibe Coding. Every path ends at one rule: Context Engineering, Always." title="Decision tree titled &quot;What are you building?&quot; that maps AI coding approaches by project type. Real apps and production systems split into team projects (Spec-Driven Development for simple/moderate, AI-Assisted Engineering for complex) and solo projects (full control vs. giving AI some autonomy via Agentic Coding). Prototypes, MVPs, and personal apps split by speed into Vibe Coding. Every path ends at one rule: Context Engineering, Always." srcset="https://substackcdn.com/image/fetch/$s_!12kt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png 424w, https://substackcdn.com/image/fetch/$s_!12kt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png 848w, https://substackcdn.com/image/fetch/$s_!12kt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.png 1272w, https://substackcdn.com/image/fetch/$s_!12kt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51ad977c-b372-4675-81b7-453309f313ee_5818x4000.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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.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"><strong>These guides took 100+ hours of real product work to write. </strong>Upgrade when you want the actual working parts, not just the overview: prompts, code blocks, failure logs, PRD templates, and project structures.</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><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>What&#8217;s the difference between vibe coding and spec-driven development?</h3><p>Vibe coding and spec-driven development sit at opposite ends of AI-assisted software engineering: vibe coding optimizes for rapid prototyping through conversational iteration, while spec-driven development optimizes for maintainability, reproducibility, and governance through formal requirements that guide AI-generated code before implementation starts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z_Nc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png 424w, https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png 848w, https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png 1272w, https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png" width="1456" height="1943" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1943,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:511605,&quot;alt&quot;:&quot;Vibe coding vs spec-driven development comparison across speed, predictability, best use cases, key tools (Replit, Cursor, Claude), risk profile, failure modes, and when to switch between the two AI coding methods.&quot;,&quot;title&quot;:&quot;Vibe coding vs spec-driven development comparison across speed, predictability, best use cases, key tools (Replit, Cursor, Claude), risk profile, failure modes, and when to switch between the two AI coding methods.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/182760227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Vibe coding vs spec-driven development comparison across speed, predictability, best use cases, key tools (Replit, Cursor, Claude), risk profile, failure modes, and when to switch between the two AI coding methods." title="Vibe coding vs spec-driven development comparison across speed, predictability, best use cases, key tools (Replit, Cursor, Claude), risk profile, failure modes, and when to switch between the two AI coding methods." srcset="https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png 424w, https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png 848w, https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.png 1272w, https://substackcdn.com/image/fetch/$s_!Z_Nc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7c3fce6-9433-40a4-a221-d2a75d67df07_1596x2130.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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Technical Concepts</h2><h3>What Is Context Engineering?</h3><p>Context engineering is the practice of giving an AI system the right information, constraints, examples, tools, memory, and rules before asking it to do the work.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9241e4d8-4ce1-4ee9-9079-436b89583400&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;An Illustrated Guide to Context Engineering, Prompt Engineering, and The Future of Both&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-05-13T14:40:22.231Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c87aa14-7809-42ee-aecf-e627bb1f5f42_2401x1261.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/context-engineering-product-builders-guide-2026&quot;,&quot;section_name&quot;:&quot;Context Engineering&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:193628785,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:95,&quot;comment_count&quot;:13,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>What is Prompt Engineering?</h3><p>Prompt engineering is the practice of writing clear instructions that help an AI system produce a better answer, output, or action.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4fdc4d38-d64f-450f-8c80-12a4991d705d&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Only AI Prompting Guide That Works On Reasoning Models (And Our Cognition)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-05-14T11:17:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0773576-e005-46fc-915d-0a18004a5a35_2401x1261.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/ai-prompting-techniques-reasoning-models-2026&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:192159489,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:182,&quot;comment_count&quot;:16,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>What is AI Agent Management?</h3><p>AI agent management is the practice of directing, supervising, testing, and controlling AI agents as they perform multi-step work.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;bfe6f0aa-abdc-4049-8df3-cf5949beab0e&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Your AI Agents Are Engineers Now. Manage Them Like It.&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100},{&quot;id&quot;:238671305,&quot;name&quot;:&quot;Kacper Wojaczek&quot;,&quot;bio&quot;:&quot;I help engineering leaders build teams that ship&#8212;by clarifying ownership, cutting work-in-progress, and speeding up decisions. Weekly insights and ready-to-run playbooks. If you want hands-on help, DM me and I&#8217;ll tell you the fastest way to start.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2b4d98-d409-4944-a3ba-f3afa7612ea4_447x447.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://scrambleit.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://scrambleit.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Scramble IT&quot;,&quot;primaryPublicationId&quot;:3496342}],&quot;post_date&quot;:&quot;2026-03-30T13:34:13.964Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/677eeca9-b089-476b-b486-699f46b1aa88_2400x1260.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/ai-agent-management-framework-2026&quot;,&quot;section_name&quot;:&quot;Context Engineering&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:192454016,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:112,&quot;comment_count&quot;:37,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>What is an IDE?</h3><p>An IDE, or Integrated Development Environment, is the software workspace where builders write, edit, run, debug, and manage code. In vibe coding, an IDE often becomes the place where a human and an AI coding assistant work together to build, test, and fix a project.</p><div><hr></div><h3>What Is A Sandboxed Virtual Machine?</h3><p>In this article, I explain the concept of a sandboxed virtual machine: visually, without jargon, and for beginners.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8ff5a0e4-9f60-4b4b-a065-9e02d7d9fabc&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;What Is A Sandboxed Virtual Machine?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 16K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-05-03T06:18:43.148Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b39f2d9-490b-44f4-9026-2e5c07384f43_2400x1260.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/sandboxed-virtual-machine&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:195523608,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:64,&quot;comment_count&quot;:26,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3xm-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3xm-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png 424w, https://substackcdn.com/image/fetch/$s_!3xm-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png 848w, https://substackcdn.com/image/fetch/$s_!3xm-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png 1272w, https://substackcdn.com/image/fetch/$s_!3xm-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3xm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png" width="940" height="778" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:778,&quot;width&quot;:940,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94230,&quot;alt&quot;:&quot;Product with Attitude infographic: a sandboxed virtual machine is a temporary, isolated mini-computer where code runs without touching the real machine. Includes house-and-workshop analogy, 4 sandbox limits (files, network, memory, system access), and the rule: isolated, temporary, wipeable.&quot;,&quot;title&quot;:&quot;Product with Attitude infographic: a sandboxed virtual machine is a temporary, isolated mini-computer where code runs without touching the real machine. Includes house-and-workshop analogy, 4 sandbox limits (files, network, memory, system access), and the rule: isolated, temporary, wipeable.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/182760227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Product with Attitude infographic: a sandboxed virtual machine is a temporary, isolated mini-computer where code runs without touching the real machine. Includes house-and-workshop analogy, 4 sandbox limits (files, network, memory, system access), and the rule: isolated, temporary, wipeable." title="Product with Attitude infographic: a sandboxed virtual machine is a temporary, isolated mini-computer where code runs without touching the real machine. Includes house-and-workshop analogy, 4 sandbox limits (files, network, memory, system access), and the rule: isolated, temporary, wipeable." srcset="https://substackcdn.com/image/fetch/$s_!3xm-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png 424w, https://substackcdn.com/image/fetch/$s_!3xm-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png 848w, https://substackcdn.com/image/fetch/$s_!3xm-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.png 1272w, https://substackcdn.com/image/fetch/$s_!3xm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4c0f31f-cbe1-496b-9424-aaa0a34d316c_940x778.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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://karozieminski.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Tools: <br>Choosing the Right Vibe Coding Stack</h2><h3>What tools do people use for vibe coding?</h3><p>Common vibe coding tools include AI coding assistants, AI-native development environments, and conversational coding agents. Some examples:</p><ul><li><p>Lovable</p></li><li><p>Claude</p></li><li><p>Replit</p></li><li><p>Gemini</p></li><li><p>Cursor</p></li><li><p>v0.dev</p></li></ul><p>I use these tools differently depending on whether I&#8217;m prototyping UI, debugging production issues, writing specs, testing architecture, or trying to figure out why the app is buggy.</p><div class="callout-block" data-callout="true"><p>The tool matters less than the workflow. Good vibe coding depends on clear prompts, small tasks, visible tests, and human review.</p></div><div><hr></div><h3>Which vibe coding tool is best for me in 2026? </h3><p>A good vibe coding tool should match the way you think, the product you are building, and the amount of control you need. Replit, Cursor, Claude, Lovable, Gemini, and v0.dev can all be useful. They are not useful for the same reasons.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QQN9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QQN9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 424w, https://substackcdn.com/image/fetch/$s_!QQN9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 848w, https://substackcdn.com/image/fetch/$s_!QQN9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 1272w, https://substackcdn.com/image/fetch/$s_!QQN9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QQN9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp" width="1456" height="2428" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2428,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201640,&quot;alt&quot;:&quot;Comparison of six AI coding tools (Lovable, Replit, Cursor, Claude, Gemini, v0.dev) showing what each is best for, its core strength, what to watch out for, and 2026 pricing tiers from free to $200/mo.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/182760227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Comparison of six AI coding tools (Lovable, Replit, Cursor, Claude, Gemini, v0.dev) showing what each is best for, its core strength, what to watch out for, and 2026 pricing tiers from free to $200/mo." title="Comparison of six AI coding tools (Lovable, Replit, Cursor, Claude, Gemini, v0.dev) showing what each is best for, its core strength, what to watch out for, and 2026 pricing tiers from free to $200/mo." srcset="https://substackcdn.com/image/fetch/$s_!QQN9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 424w, https://substackcdn.com/image/fetch/$s_!QQN9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 848w, https://substackcdn.com/image/fetch/$s_!QQN9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 1272w, https://substackcdn.com/image/fetch/$s_!QQN9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6e81de-2b13-492a-8b0e-c7702636df3f_1686x2811.webp 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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/p/vibecoding-resources-hub?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://karozieminski.substack.com/p/vibecoding-resources-hub?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h3></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>What is the best free vibe coding IDE?</h3><p>Replit, Cursor, VS Code with AI extensions, and Google AI Studio or Gemini-based workflows can all work. The right choice depends on skill level, stack, deployment needs, and whether you want a browser workspace, local editor, or AI-first app builder.</p><div><hr></div><h3>What is the best database for vibe coding?</h3><p>The best database depends on the app. </p><p>Supabase or Firebase can work well for many beginner full-stack apps, hosted Postgres gives more control, and sometimes the correct database is no database yet because the product doesn&#8217;t need persistence. Future you will appreciate that restraint.</p><div><hr></div><h3>Where should I deploy a vibe-coded project if I&#8217;m choosing between Netlify, Vercel, Railway, and Supabase?</h3><p>Don&#8217;t pick the platform first. Pick based on what <em>your project</em> needs. I wrote a practical decision tree for exactly this here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;41b5d620-13b6-412f-95ef-3ed19d73966f&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Where to Deploy in 2026: Netlify, Vercel, Railway, Supabase&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-02-19T11:49:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f26fbe3-1a09-428f-813b-7dc6ce5a0b44_2400x1600.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/deploy-project-netlify-vercel-railway-supabase&quot;,&quot;section_name&quot;:&quot;Premium Resources&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:191746716,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:24,&quot;comment_count&quot;:0,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Build Better: <br>PRDs, Prompt Systems, UI Prompts, and Code Blocks</h2><h3>Where can I find proven prompts for UI elements when I&#8217;m vibe coding?</h3><p>Read <strong><a href="https://karozieminski.substack.com/p/prompt-pack-100-most-common-ui-elements-for-vibecoding">100 Most Common UI Elements For Vibe Coders</a></strong>.</p><p>It&#8217;s a practical reference of 100 UI components vibe coders regularly design, prompt, and ship, organized by type and use case. It&#8217;s best for builders working on frontend features and product interfaces.</p><div><hr></div><h3>How can I write better PRDs when I&#8217;m vibe coding so they catch problems early?</h3><p>Use the guide <strong><a href="https://karozieminski.substack.com/p/vibecoding-but-smarter-the-prd-prompt">Vibe Coding, But Smarter: The PRD Prompt That Audits Itself</a></strong></p><p>It gives you a PRD Builder Prompt with built&#8209;in self&#8209;auditing for hallucinations and failure modes, so your requirements catch problems before the code does. </p><p>It&#8217;s best for vibe coders defining and validating product requirements before building.</p><div><hr></div><h3>How do I write rules for AI that work across Replit, Cursor, Lovable and Gemini?</h3><p>Read <strong><a href="https://karozieminski.substack.com/p/if-you-build-with-ai-you-need-this">Rules-For-AI Generator: A Beginner-Friendly System</a></strong>. <br>In this article, I share a custom generator system that helps your coding agent with product judgement.</p><div><hr></div><h3>Where can I find ready&#8209;made code blocks?</h3><h4><strong><a href="https://karozieminski.substack.com/p/runaway-subscribe-button-kit">Source Code: The Runaway Subscribe Button</a></strong></h4><p>The exact code running on productwithattitude.com, packaged so you can drop it on any site in under five minutes.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c3cfbc94-8b62-4e78-a687-0709925f78c3&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Source Code: The Runaway Subscribe Button&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-05-26T14:33:19.142Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f957a17b-758c-44cc-9725-546d4a504230_1200x630.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/runaway-subscribe-button-kit&quot;,&quot;section_name&quot;:&quot;Premium Resources&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:199298015,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:17,&quot;comment_count&quot;:0,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h4><strong><a href="https://karozieminski.substack.com/p/valentines-scratch-card-source-code-react">Valentine&#8217;s App 2026: Full Source Code</a></strong> </h4><p>Full React source for the 2026 Valentine&#8217;s scratch card app. Annotated for readability. </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;dde28322-817a-4fd4-a855-e856f26a60d4&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Valentine's App 2026 - Full Source Code&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-02-13T15:34:19.609Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ab4964f-5b33-426e-b3a2-a1b892528d83_1200x630.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/valentines-scratch-card-source-code-react&quot;,&quot;section_name&quot;:&quot;Premium Resources&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:187865118,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:38,&quot;comment_count&quot;:0,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Ship Safely: <br>Debugging, Cybersecurity, and Production</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Is vibe coding risky?</h3><p>Yes, if we ship generated code without review, security checks, authentication sanity, database rules, and failure testing. The risk is that the code looks finished before the product has been inspected.</p><div><hr></div><h3>Is vibe coding a trap?</h3><p>It becomes a trap when we confuse a working demo with a reliable product. The way out is spec-driven development, review, testing, and shipping discipline. Very boring. Very useful.</p><div><hr></div><h3>How do I secure vibe-coded apps? </h3><p><em>How do I ship vibe-coded products to production safely? What are the biggest security risks in vibe-coded apps?</em></p><p>Shipping to production is a different discipline than prototyping. The things that break when real users show up (security vulnerabilities, auth failures, looping agents, environment-specific edge cases) don&#8217;t surface during demos.</p><p>Every guide below is built from real product failures, not hypotheticals:</p><ul><li><p><strong><a href="https://karozieminski.substack.com/p/vibecoding-cybersecurity-fix-the-7-code-mistakes-leaving-your-startup-wide-open-and-vulnerable-playbook">Vibe Coding x Cybersecurity: The 2026 Builder Survival Guide</a></strong><br>It covers the seven most common security vulnerabilities in vibe-coded products, with a decision matrix for responsible shipping. AI-generated code passes syntax checks and fails security ones. Read before you launch, not after.</p></li><li><p><strong><a href="https://karozieminski.substack.com/p/is-your-replit-looping-this-will">Is Your Replit Looping? This Will Help.</a></strong> </p><p>Covers how to diagnose looping behavior, context failures, and runaway agents. Includes specific prompts to stop the loop and recover the session. Best if you&#8217;re stuck in a debug spiral right now.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Real-World Tool Experience: Replit, Claude, and Perplexity</h2><p>Claude and Perplexity live in dedicated knowledge hubs. Replit gets two failure-driven guides based on real product problems.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1799c74b-3172-48c0-a18d-649266f0ff5b&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Claude Hub&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-06-01T20:14:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2aed65f0-94b7-4738-9946-4bacfa96d7cf_1200x620.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/claude-guides-code-cowork-skills-workflows&quot;,&quot;section_name&quot;:&quot;Claude Hub - Guides&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:189783283,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:86,&quot;comment_count&quot;:0,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;3c4e6c9a-bb5b-4dd0-aeb7-28ef5e26f9c1&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Perplexity Hub: Perplexity Guides for Computer, Comet, Credits &amp; Workflows (2026)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-05-20T20:54:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56a4a857-8907-4e4f-8ee5-6ff6df88ac1c_1200x620.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/perplexity-ai-guide-2026&quot;,&quot;section_name&quot;:&quot;Perplexity Hub&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:191510943,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:44,&quot;comment_count&quot;:0,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>As for Replit, start with these two guides that came out of real product failures:</p><ul><li><p><strong><a href="https://karozieminski.substack.com/p/i-broke-replit-so-you-dont-have-to">I Broke Replit So You Don&#8217;t Have To</a></strong> </p></li><li><p><strong><a href="https://karozieminski.substack.com/p/is-your-replit-looping-this-will">Is Your Replit Looping? This Will Help.</a></strong> </p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">After You&#8217;ve Built</h2><h3>Feedback and beta testers</h3><p>If you&#8217;re looking for beta testers or product feedback, feel free to DM me. I&#8217;ve already helped many builders find early testers, get useful feedback, and put their products in front of the right people. I can do the same for you. I read every message.</p><div class="directMessage button" data-attrs="{&quot;userId&quot;:27968736,&quot;userName&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><div><hr></div><h3>Showcase on Product with Attitude</h3><p>Congrats on the build! Drop it in our <a href="https://substack.com/chat/4097137">Wednesday Build Board</a>. That&#8217;s when community members share their latest projects. I feature the best ones in showcase articles like <a href="https://karozieminski.substack.com/p/ai-builder-community-showcase-2026">What AI Builders Are Shipping in the PwA Community Right Now</a>.</p><div><hr></div><h3>Showcase on StackShelf</h3><p>Add it to <a href="https://stackshelf.app/">StackShelf.app</a>. It&#8217;s an LLM-optimized showcase built for Substack creators. Your build becomes discoverable by AI search engines and the broader community.</p><div class="callout-block" data-callout="true"><p><em>Paid members get priority features in showcase articles and builder spotlights.</em></p></div><div><hr></div><h3>Community chat</h3><p>If you&#8217;re looking to connect with other builders, our <a href="https://substack.com/chat/4097137">Community Chat</a> is the best place to start.</p><div class="community-chat" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/pub/karozieminski/chat?utm_source=chat_embed&quot;,&quot;subdomain&quot;:&quot;karozieminski&quot;,&quot;pub&quot;:{&quot;id&quot;:4097137,&quot;name&quot;:&quot;Product with Attitude&quot;,&quot;author_name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;author_photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;}}" data-component-name="CommunityChatRenderPlaceholder"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">References and Further Reading</h2><p>These are useful external resources. I&#8217;m including them because they help map the broader vibe coding ecosystem.</p><ul><li><p><a href="https://www.deeplearning.ai/short-courses/vibe-coding-101-with-replit/">DeepLearning.AI: Vibe Coding 101 with Replit</a>. A strong Replit-based course for agentic development, with a useful reminder that vibe coding is not one-shot prompting. Great for Replit, less complete across Claude, Cursor, Lovable, Gemini, PRDs, security, and community shipping.</p></li><li><p><a href="https://www.figma.com/resource-library/vibe-coding-tools/">Figma: 10 Vibe Coding Tools for Building Better Experiences</a>. A useful tool comparison for product and design teams choosing among modern AI coding tools. It helps you compare, not necessarily ship responsibly.</p></li><li><p><a href="https://github.com/filipecalegario/awesome-vibe-coding">GitHub: awesome-vibe-coding</a>. A broad open-source list of vibe coding references and tools.</p></li><li><p><a href="https://vibecodinglearn.com/category/vibecoding">Vibe Coding Learn: Vibe Coding Resource Hub</a>. A concise resource category page with beginner-friendly framing. Useful, but generic. It doesn&#8217;t carry the same practitioner-tested shipping context.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2 style="text-align: center;">Subscribe So You Don&#8217;t Miss Updates</h2><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.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"><strong>These guides took 100+ hours of real product work to write. </strong>Upgrade when you want the actual working parts, not just the overview: prompts, code blocks, failure logs, PRD templates, and project structures.</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><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bbuT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bbuT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 424w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 848w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1272w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png" width="1456" height="145" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:145,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158918,&quot;alt&quot;:&quot;Product with Attitude newsletter closing banner with mascot.&quot;,&quot;title&quot;:&quot;Product with Attitude newsletter closing banner with mascot.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/195778338?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd5b48c3-ae64-45d5-8178-00ab8d02f1a4_2353x256.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Product with Attitude newsletter closing banner with mascot." title="Product with Attitude newsletter closing banner with mascot." srcset="https://substackcdn.com/image/fetch/$s_!bbuT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 424w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 848w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1272w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p style="text-align: center;"><strong><a href="https://karozieminski.substack.com/about">WHY SUBSCRIBE </a>&#12539;<a href="https://karozieminski.substack.com/p/product-with-attitude-membership-2026">YOUR BENEFITS</a>&#12539; <a href="https://karozieminski.substack.com/p/substack-creator-tools">TOOLS I BUILT</a>&#12539;<a href="https://karozieminski.substack.com/s/claude-hub">CLAUDE HUB</a>&#12539;<a href="https://karozieminski.substack.com/s/perplexity-hub">PERPLEXITY HUB</a> &#12539;<a href="https://karozieminski.substack.com/p/vibecoding-resources-hub">VIBE CODING HUB</a> </strong></p>]]></content:encoded></item><item><title><![CDATA[The Exact Prompt to Fix "My AI Tool Can't Access My Localhost"]]></title><description><![CDATA[Why your AI agent is blind to localhost (and 3 ways to fix it)]]></description><link>https://karozieminski.substack.com/p/ai-tool-cant-access-localhost-prompt-fix</link><guid isPermaLink="false">https://karozieminski.substack.com/p/ai-tool-cant-access-localhost-prompt-fix</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Sun, 26 Apr 2026 13:43:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b3e436ec-e602-4f81-a4e0-bea5939e1a9e_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h6><em>TL;DR Your AI agent cannot see your localhost because it runs in a sandbox &#8212; a cloud micro-VM (Perplexity Computer, Claude Code on a managed environment), an isolated process (Cursor agent mode, ChatGPT Atlas), or a remote container (GitHub Copilot cloud agent, Replit). Three fixes exist: tunnel the port with Cloudflare Tunnel or ngrok, run the project inside the agent's sandbox, or deploy to a temporary public URL. Send the agent the diagnostic prompt below and let it tell you which fix applies. The right answer depends on the tool, not the project.</em></h6><div><hr></div><p>Your AI agent just told you it can&#8217;t open http://localhost:3000. Your app is running. Your browser sees it. The agent doesn&#8217;t.</p><p>When you spin up a project on your laptop, it lives at <code>localhost:3000</code>. That works fine for you. It does not work for your AI agent. The agent is not on your laptop. It&#8217;s somewhere else entirely: a cloud VM, a sandboxed process, a remote container. Different machine. Different &#8220;local.&#8221;</p><p>That&#8217;s the whole bug. And it has three fixes.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" width="1456" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11402,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&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="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Hey, I&#8217;m Karo Zieminski </em>&#129303;<em> </em></p><p><em>AI Product Manager and <a href="https://karozieminski.substack.com/p/substack-creator-tools">builder</a>. </em></p><p><em>I write Product with Attitude, an AI newsletter for thousands of subscribers developing critical AI literacy the only way it sticks: through practice.</em></p><p><em>We don&#8217;t just use AI. We build workflows, automations, and products with it, while studying how AI itself is built, positioned, and woven into our work.</em></p><p><em>If you&#8217;re new here, welcome! </em></p><p><em>I maintain a library of free, community-built skills and prompts shared by our members in <a href="https://vault.productwithattitude.com/#/">Attitude Vault</a>.</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_!or9e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!or9e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 424w, https://substackcdn.com/image/fetch/$s_!or9e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 848w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!or9e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png" width="1223" height="1162" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1162,&quot;width&quot;:1223,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:647877,&quot;alt&quot;:&quot;AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy.&quot;,&quot;title&quot;:&quot;AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/199667735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy." title="AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy." srcset="https://substackcdn.com/image/fetch/$s_!or9e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 424w, https://substackcdn.com/image/fetch/$s_!or9e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 848w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>And if you want to learn prompt engineering properly, start here: <strong><a href="https://karozieminski.substack.com/p/ai-prompting-techniques-reasoning-models-2026">The Ultimate Guide to Prompt Engineering</a>.</strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dz9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7643495-34e2-40ce-abad-d894412325db_2396x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11749,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png" width="1456" height="19" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:19,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1613,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!QqMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 424w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 848w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1272w, https://substackcdn.com/image/fetch/$s_!QqMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd302db1-d1e6-4d1d-861a-118f27049ad6_2400x31.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Why Your AI Agent Is Blind to Localhost</h2><h3>The Non-Techie Explanation</h3><p>The word localhost means &#8220;this computer.&#8221;</p><p>It&#8217;s like both you and your AI agent saying &#8220;my house.&#8221;</p><p>You mean your house. The AI means its house.</p><p>So when you open localhost:3000, you are looking at the app running on your laptop.</p><p>But when the AI agent tries to open localhost:3000, it looks inside its own computer instead.</p><blockquote><p>The error looks like your app is broken. It often isn&#8217;t. Your server may be running perfectly on your machine. The problem is that the AI agent is looking for it from a different environment.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The Exact Prompt to Send Your Agent</h2><h3>The localhost Diagnostic Prompt</h3>
      <p>
          <a href="https://karozieminski.substack.com/p/ai-tool-cant-access-localhost-prompt-fix">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Where to Deploy in 2026: Netlify, Vercel, Railway, Supabase]]></title><description><![CDATA[If you&#8217;re vibecoding with Cursor, Claude Code, or Perplexity Computer, it&#8217;s worth knowing where to deploy.]]></description><link>https://karozieminski.substack.com/p/deploy-project-netlify-vercel-railway-supabase</link><guid isPermaLink="false">https://karozieminski.substack.com/p/deploy-project-netlify-vercel-railway-supabase</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Thu, 19 Feb 2026 11:49:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8f26fbe3-1a09-428f-813b-7dc6ce5a0b44_2400x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Four deployment platforms cover 90% of what builders ship in 2026. Each one solves a different problem. </p><p>Picking the wrong one wastes time. Picking the right one takes five minutes.</p><p><em>Note: This doesn&#8217;t cover self-hosting, AWS, or platforms that bundle hosting with the IDE (like Replit). Those are different decisions.</em></p><p>I&#8217;ve included a decision tree below, along with a super useful cheat sheet.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" width="1456" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11402,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&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="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Hey, I&#8217;m Karo Zieminski </em>&#129303;<em> </em></p><p><em>AI Product Manager and <a href="https://karozieminski.substack.com/p/substack-creator-tools">builder</a>. </em></p><p><em>I write Product with Attitude, an AI newsletter for thousands of subscribers developing critical AI literacy the only way it sticks: through practice.</em></p><p><em>We don&#8217;t just use AI. We build workflows, automations, and products with it, while studying how AI itself is built, positioned, and woven into our work.</em></p><p><em>If you&#8217;re new here, welcome! Here&#8217;s what you might have missed:</em></p><ul><li><p><em><strong><a href="https://karozieminski.substack.com/p/claude-design-review-prompts-figma">Claude Design Review &amp; Prompts</a></strong></em></p></li><li><p><em><strong><a href="https://karozieminski.substack.com/p/substack-creator-tools">Substack Writer Tools</a></strong></em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dz9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7643495-34e2-40ce-abad-d894412325db_2396x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11749,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>What&#8217;s Inside</strong></h2><ul><li><p>Where to deploy a vibe coding project in 2026. </p></li><li><p>Netlify, Vercel, Railway, and Supabase compared. </p></li><li><p>What each one does, what it costs, when to combine them. </p></li><li><p>A decision tree, a platform comparison, and four stack combos by project type.</p></li></ul>
      <p>
          <a href="https://karozieminski.substack.com/p/deploy-project-netlify-vercel-railway-supabase">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Vibe Coding, But Smarter: The PRD Prompt That Audits Itself For Hallucinations and Failure Modes]]></title><description><![CDATA[A PRD builder prompt for vibe coding and AI coding agents that saves you credits.]]></description><link>https://karozieminski.substack.com/p/vibecoding-but-smarter-the-prd-prompt</link><guid isPermaLink="false">https://karozieminski.substack.com/p/vibecoding-but-smarter-the-prd-prompt</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Fri, 16 Jan 2026 14:09:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9RaA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" width="1456" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11402,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&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="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Hey, I&#8217;m Karo Zieminski </em>&#129303;<em> </em></p><p><em>AI Product Manager and <a href="https://karozieminski.substack.com/p/substack-creator-tools">builder</a>. </em></p><p><em>I write Product with Attitude, an AI newsletter for thousands of subscribers developing critical AI literacy the only way it sticks: through practice.</em></p><p><em>We don&#8217;t just use AI. We build workflows, automations, and products with it, while studying how AI itself is built, positioned, and woven into our work.</em></p><p><em>If you&#8217;re new here, welcome! Here&#8217;s what you might have missed:</em></p><ul><li><p><em><strong><a href="https://karozieminski.substack.com/p/runaway-subscribe-button">I Built a Runaway Subscribe Button. It Brought 70 New Subscribers in 6 Days. Code + Challenge Inside.</a></strong></em></p></li><li><p><em><strong><a href="https://karozieminski.substack.com/p/claude-design-review-prompts-figma">Claude Design Review &amp; Prompts</a></strong></em></p><p></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dz9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7643495-34e2-40ce-abad-d894412325db_2396x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11749,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The One Prompt You Need Before Touching Code</h2><p>Vibe coding is fast. </p><p>That&#8217;s actually the best part about it - seeing your product assemble itself in front of your eyes is thrilling, full of promise and a bit intoxicating. </p><p>Kind of like margaritas.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9RaA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9RaA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png 424w, https://substackcdn.com/image/fetch/$s_!9RaA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png 848w, https://substackcdn.com/image/fetch/$s_!9RaA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!9RaA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9RaA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png" width="2198" height="1130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1130,&quot;width&quot;:2198,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3872630,&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://karozieminski.substack.com/i/172658740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deaf85a-87c8-4e56-b1f3-5ad2c7ae9f68_2198x1238.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_!9RaA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png 424w, https://substackcdn.com/image/fetch/$s_!9RaA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png 848w, https://substackcdn.com/image/fetch/$s_!9RaA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!9RaA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F030264d4-f098-40fd-9b09-048d17c21147_2198x1130.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>No wonder we want to skip ahead to that part. </p><p><strong>But! </strong></p><p>Before you touch a single line of code, you need these three steps. Skip them, and you&#8217;re signing up for wasted credits and lost time:</p><ul><li><p><strong>A Product Requirements Document</strong> - blueprint</p></li><li><p><strong>Rules for AI</strong> - guardrails</p></li><li><p><strong>System prompts</strong> - context</p></li></ul><p>Today, I&#8217;m going to walk you through the first one.</p><p></p><h2>Why Bother?</h2><p>I know. It <em>sounds</em> boring. </p><p>But hear me out: specs are how we turn AI experiments into products worth keeping. Fifteen minutes with this prompt can be the difference between building something brilliant&#8212;or brilliantly useless.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kqy8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kqy8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 424w, https://substackcdn.com/image/fetch/$s_!Kqy8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 848w, https://substackcdn.com/image/fetch/$s_!Kqy8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!Kqy8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kqy8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png" width="2197" height="1144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be443665-d627-413d-9f18-08a1c82ba269_2197x1144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1144,&quot;width&quot;:2197,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3939086,&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://karozieminski.substack.com/i/172658740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f4d266e-20d2-4d43-b4b6-dae8f258af1e_2197x1238.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_!Kqy8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 424w, https://substackcdn.com/image/fetch/$s_!Kqy8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 848w, https://substackcdn.com/image/fetch/$s_!Kqy8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!Kqy8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe443665-d627-413d-9f18-08a1c82ba269_2197x1144.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">When the spec just says<em> &#8216;innovative kitchen tech&#8217;</em></figcaption></figure></div><h2><br>What Even <em>Is</em> A PRD?</h2><p>&#128161; A Product Requirements Document (PRD) is your blueprint for building a product. It outlines:</p><ul><li><p>What you&#8217;re building  </p></li><li><p>Why it matters   </p></li><li><p>Who it&#8217;s for  </p></li><li><p>How you&#8217;ll know it&#8217;s done  </p></li></ul><p>It takes the messy soup of user needs, business goals, and technical constraints and turns it into one neat little document. </p><div class="pullquote"><p>In traditional product teams, PMs write PRDs. In vibe coding, that PM is you.  </p></div><p></p><h2>What Should A PRD Contain?</h2><p>Whole books have been written about PRDs, and there are countless ways to create a &#8220;proper&#8221; one - but at the very minimum, a PRD should cover these areas:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6c7V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6c7V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 424w, https://substackcdn.com/image/fetch/$s_!6c7V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 848w, https://substackcdn.com/image/fetch/$s_!6c7V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 1272w, https://substackcdn.com/image/fetch/$s_!6c7V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6c7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png" width="1224" height="603" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:603,&quot;width&quot;:1224,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115105,&quot;alt&quot;:&quot;PRD framework visual by Karo, Product With Attitude &#8212; ten boxes showing core elements: problem statement, users, goals, requirements, risks, assumptions, evidence, alignment.&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://karozieminski.substack.com/i/172658740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="PRD framework visual by Karo, Product With Attitude &#8212; ten boxes showing core elements: problem statement, users, goals, requirements, risks, assumptions, evidence, alignment." title="PRD framework visual by Karo, Product With Attitude &#8212; ten boxes showing core elements: problem statement, users, goals, requirements, risks, assumptions, evidence, alignment." srcset="https://substackcdn.com/image/fetch/$s_!6c7V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 424w, https://substackcdn.com/image/fetch/$s_!6c7V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 848w, https://substackcdn.com/image/fetch/$s_!6c7V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 1272w, https://substackcdn.com/image/fetch/$s_!6c7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622dccda-ffc1-4ccb-b44e-31583920344c_1224x603.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">PRD, demystified. Problem clarified &#8594; Everyone aligned &#8594; Product delivered.</figcaption></figure></div><div class="pullquote"><p>There are plenty of paid tools out there that promise to generate a PRD for you, but this prompt gives you the same clarity and structure, without the price tag.</p></div><p></p><h2>The Journey Behind This Prompt</h2><p>The PRD Builder Prompt you&#8217;re looking at is version 16, shaped by 15 rounds of sharpening.</p><p>In my work as a PM, I&#8217;ve written enough PRDs to know this:</p><ul><li><p>if they&#8217;re too long, nobody reads them</p></li><li><p>f they&#8217;re too vague, nobody respects them</p></li></ul><p>So I took everything I learned about <strong>product management discipline</strong> - clarity, brevity, testability - and combined it with everything I&#8217;ve learned about <strong>vibe coding.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tN7v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tN7v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 424w, https://substackcdn.com/image/fetch/$s_!tN7v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 848w, https://substackcdn.com/image/fetch/$s_!tN7v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 1272w, https://substackcdn.com/image/fetch/$s_!tN7v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tN7v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png" width="636" height="363.33984375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:585,&quot;width&quot;:1024,&quot;resizeWidth&quot;:636,&quot;bytes&quot;:533500,&quot;alt&quot;:&quot;A Venn diagram with two circles. The left circle is labeled Product Management with the words &#8220;Clarity, Brevity, Testability.&#8221; The right circle is labeled Vibecoding with the words &#8220;Precision, Structure, Adaptability.&#8221; The overlapping center is shaded and labeled PRD Needs, representing the combined qualities required for an effective Product Requirements Document. Illustration by Karo from Product With Attitude.&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://karozieminski.substack.com/i/172658740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A Venn diagram with two circles. The left circle is labeled Product Management with the words &#8220;Clarity, Brevity, Testability.&#8221; The right circle is labeled Vibecoding with the words &#8220;Precision, Structure, Adaptability.&#8221; The overlapping center is shaded and labeled PRD Needs, representing the combined qualities required for an effective Product Requirements Document. Illustration by Karo from Product With Attitude." title="A Venn diagram with two circles. The left circle is labeled Product Management with the words &#8220;Clarity, Brevity, Testability.&#8221; The right circle is labeled Vibecoding with the words &#8220;Precision, Structure, Adaptability.&#8221; The overlapping center is shaded and labeled PRD Needs, representing the combined qualities required for an effective Product Requirements Document. Illustration by Karo from Product With Attitude." srcset="https://substackcdn.com/image/fetch/$s_!tN7v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 424w, https://substackcdn.com/image/fetch/$s_!tN7v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 848w, https://substackcdn.com/image/fetch/$s_!tN7v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 1272w, https://substackcdn.com/image/fetch/$s_!tN7v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a5d27-37b3-49ca-9f9a-0621f3b40646_1024x585.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A Venn diagram showing how <strong>Product Management</strong> and <strong>Vibe coding</strong> overlap to define the essential needs of a good PRD.</figcaption></figure></div><p></p><p>The result: specs that are <strong>clear, brief, testable, precise, structured, and adaptable</strong>. </p><p>I hardened this in real projects (including <a href="https://stackshelf.app/">Stackshelf</a>) and refined it each time an agent misread, mis-executed, or tripped on contradictions.</p><p>The current version (v16!) is lean enough that AI can parse it without choking, and structured enough to stop it from wandering off.</p><h2></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>How to Use The PRD Builder Prompt<br></h2><blockquote><p>Use this prompt only when you&#8217;re building actual products, <em>not</em> for demo apps. </p><p>It&#8217;s an advanced project prompt that generates a complete, implementation-ready PRD, ready to hand off to AI agent without further clarification.</p></blockquote><ol><li><p><strong>Create a new Project in ChatGPT: </strong>Go to <em>Projects</em> &#8594; <em>New Project</em> &#8594; name it &#8216;&#8216;PRD Builder&#8217;&#8217;.</p></li><li><p><strong>Paste the Builder Prompt</strong>: this sets ChatGPT up as your virtual PM.</p></li><li><p><strong>Generate Your PRD: </strong>Start a new chat: &#8220;Generate a PRD for&#8230;&#8221; + add your idea, feature list, or constraints.</p></li><li><p><strong>Iterate &amp; Refine:  </strong>Answer clarifying questions, it&#8217;s important. The quality of your PRD depends on your clarity.</p></li></ol><p>&#128161; Pro tip: include your user flows (a simple map of how users move through your product).</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>PRD Builder Prompt</h2><pre><code><code># &#128221; Karo's PRD Builder + Quality Check + AI Gap Scanner (Enhanced Edition, 188 lines).
Feel free to reuse with credit (https://karozieminski.substack.com/).


## ROLE
You are a **Principal Product Manager** and **documentation architect** trained in:
- **Karo's product methodology** (structured, testable, AI-agent ready)
- **Product storytelling style** (context-first, narrative-driven, customer-centered)

Your job is to:
1. Produce **clear, complete, and actionable PRDs**.
2. Ensure **context-rich narrative** for stakeholders.
3. Audit for **gaps, risks, contradictions, and assumptions**.
4. Make it **AI-agent safe** for automated execution.

---

## OBJECTIVE
Given my product idea or feature request, generate a **polished, implementation-ready PRD** that:
- Meets Karo's **Structural standards**.
- Embeds **Narrative and context-first framing** *(see style example below)*.
- Contains **measurable success criteria** and **testable requirements**.
- Flags **gaps, risks, and open questions**.
- Is **self-contained** for human or AI execution.

**Definition of success:**  
&gt; &#8220;A PRD that can be handed to any qualified engineer, designer, or AI agent, and be implemented without further clarification.&#8221;

---

## STYLE EXAMPLES

**Before:**  
&gt; &#8220;Improve onboarding.&#8221;

**After (Karo's PRD):**  
&gt; &#8220;Given a first-time user signing up via mobile, reduce the average time to complete onboarding from 3m 45s to under 2 minutes by simplifying the form from 8 fields to 4. This change addresses the 42% drop-off at step 3 reported in April analytics and aligns with Q2 OKR #2 (Boost activation rate to 70%).&#8221;

---

## INPUT FORMAT
I will provide:
- Short product/feature description *(1&#8211;3 sentences or bullet points)*
- Target audience *(persona, role, or segment)*
- Known constraints *(deadlines, integrations, compliance rules)*
- Any available research, quotes, or data *(links or pasted content)*

**Acceptable formats:** plain text, bullet lists, or tables.  
If critical info is missing, **do not guess**&#8212;ask for clarification.

---

## STRUCTURE (Karo's Best Practices)

**0. Version &amp; Ownership**
- Document version/date
- PRD owner
- Reviewers 

**1. Executive One-Pager**
- TL;DR: 5 bullets max (problem, goals, scope, success metrics, launch date)
- Plain-language summary for execs &amp; non-technical stakeholders

**2. Overview &amp; Context**
- Problem statement (why now?)
- Strategic alignment (OKRs, market trends, user pain points)
- Competitive / landscape snapshot

**3. Customer Insights &amp; Evidence**
- Direct quotes from customers *(&#8805;1 primary, &#8805;1 secondary source)*
- Data, charts, or anecdotes making the problem visceral
- Links to surveys, interviews, or analytics

**4. Goals &amp; Non-Goals**
- Primary objectives
- Explicit non-goals to prevent scope creep

**5. Alternatives Considered**
- Solutions explored but rejected
- Why they were rejected

**6. User Personas &amp; Use Cases**
- Persona summaries *(or &#8220;Not available&#8221; if none&#8212;do not fabricate)*
- Main use cases &amp; jobs-to-be-done
- Pain points addressed

**7. Requirements**
- **Functional Requirements:** Detailed, numbered, linked to goals
- **Non-Functional Requirements:** Performance, security, compliance, accessibility
- **Acceptance Criteria:** Gherkin-style (&#8220;Given / When / Then&#8221;)

**8. UX &amp; Design Considerations**
- Wireframe placeholders or design references
- Edge case handling
- Accessibility checklist (WCAG compliance)

**9. Technical Notes**
- System architecture impact
- Dependencies (internal &amp; external APIs, 3rd party integrations)
- Data schema implications
- Future-proofing considerations

**10. Metrics &amp; Success Criteria**
- KPIs, target values, measurement methods
- Metric ownership (who tracks it)
- Instrumentation requirements

**11. Risks &amp; Mitigations**
- Known risks
- Impact severity (High/Med/Low)
- Mitigation plans

**12. Rollout Plan**
- Release phases
- Feature flag strategy
- Communication plan (internal + external)

**13. Decision Log**
- Key decisions made, with date &amp; owner
- Links to related docs

**14. Success Story Narrative**
- Future press release or &#8220;happy path&#8221; story post-launch

**15. Open Questions &amp; Assumptions**
- Pending decisions
- Research needed
- Explicit assumption list

**16. Glossary**
- Define all acronyms, jargon, or niche terms

---

## STYLE &amp; TONE
- Clear, concise, unambiguous
- Actionable &amp; testable
- Data-backed narrative
- Storytelling that makes the problem real
- Acronyms defined on first use
- No duplication of content across sections

---

## VERIFICATION CHECKLIST (Karo's Quality Checks)
1. **Completeness** &#8211; every section filled, requirements numbered
2. **Clarity** &#8211; no ambiguous terms, acronyms defined
3. **Actionability** &#8211; all requirements testable
4. **Feasibility** &#8211; dependencies &amp; technical notes complete
5. **Risk &amp; Edge Cases** &#8211; documented &amp; covered
6. **Alignment** &#8211; every requirement tied to a goal
7. **Assumption Audit** &#8211; unstated assumptions flagged
8. **Accessibility Compliance** &#8211; checklist completed
9. **Evidence Rigor** &#8211; primary + secondary sources used
10. **No Contradictions** &#8211; flag conflicts between sections

---

## AI DETECTABLE GAPS SCAN
After creating the PRD, check for:
- Hallucination risk (vague terms, multiple interpretations)
- Data reference risk (no sources cited)
- Implicit logic risk (hidden steps)
- Ambiguous actor risk (unclear ownership)
- Conditional logic risk (missing edge case handling)
- Contradictions between sections
- Output clarity (AI can parse and execute without guessing)

Return an **AI Gap Report**:
- Risk level (Low/Medium/High)
- Recommended clarifications

---

## OUTPUT FORMAT
1. **PRD Document** &#8211; Markdown with clickable TOC &amp; numbered requirements  
2. **Quality Check Report** &#8211; &#9989; / &#9888;&#65039; / &#10060; table for each verification category (ref checklist numbers)  
3. **AI Gap Report** &#8211; Risk level + recommendations

---

## NEXT STEP
Ask **all clarifying questions first** before producing the PRD.  
If unclear, request more detail rather than making assumptions.

---

## MODES
- **Full Mode** &#8211; All sections included (default)
- **Lite Mode** &#8211; For small features (skip Personas, Decision Log, Alternatives unless relevant)</code></code></pre><p></p><div class="pullquote"><p><strong>OR GRAB THIS PROMPT FROM THE ATTITUDE VAULT</strong></p></div><p></p><h2>From Vibe coding To Spec-Driven Development</h2><p>If you&#8217;ve read my work before, you might have noticed that it was never <em>just &#8216;&#8216;</em>vibes &#8216;&#8216; (oof, I dislike that word soooo much). </p><p>From the start, my prompts came with audits, checks, and built-in safety rails - always versioned and documented. (Like this one: <a href="https://karozieminski.substack.com/p/the-self-improving-prompt-system">The Self-Improving Prompt System That Anyone Can Rock</a>)</p><p>Looking back, I was already closer to GitHub&#8217;s idea of <a href="https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/">spec-driven development</a> than pure vibe coding. </p><p>And that&#8217;s where I&#8217;m headed next. I&#8217;ll be sharing this journey with you - what works, what breaks, and what I discover along the way.</p><p></p><h2></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>More Prompts, Skills, and Community-Built Resources</h2><p>I maintain a library of free, community-built skills and prompts shared by our members in <a href="https://vault.productwithattitude.com/#/">Attitude Vault</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!or9e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!or9e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 424w, https://substackcdn.com/image/fetch/$s_!or9e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 848w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!or9e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png" width="1223" height="1162" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1162,&quot;width&quot;:1223,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:647877,&quot;alt&quot;:&quot;AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy.&quot;,&quot;title&quot;:&quot;AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/199667735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy." title="AttitudeVault by Product with Attitude, a free community-built library of 57 Claude Skills, AI prompts, automation workflows, and templates, shown as searchable, category-filtered resource cards covering vibe coding, AI prompt templates, and critical AI literacy." srcset="https://substackcdn.com/image/fetch/$s_!or9e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 424w, https://substackcdn.com/image/fetch/$s_!or9e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 848w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!or9e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6afa988-d771-4484-a21d-c3a3424a00e5_1223x1162.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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>And if you want to learn prompt engineering properly, start here: <strong><a href="https://karozieminski.substack.com/p/ai-prompting-techniques-reasoning-models-2026">The Ultimate Guide to Prompt Engineering</a>.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Vibecoding x Cybersecurity: Survival Guide by the Expert Who Fixes Your Code After You]]></title><description><![CDATA[Don&#8217;t ship your next feature without these safety checks and fix the 7 code mistakes leaving your startup wide open.]]></description><link>https://karozieminski.substack.com/p/vibecoding-cybersecurity-fix-the-7-code-mistakes-leaving-your-startup-wide-open-and-vulnerable-playbook</link><guid isPermaLink="false">https://karozieminski.substack.com/p/vibecoding-cybersecurity-fix-the-7-code-mistakes-leaving-your-startup-wide-open-and-vulnerable-playbook</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Mon, 03 Nov 2025 13:13:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oOfv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, I&#8217;m Karo &#129303;<br>I&#8217;m an AI product manager and creator of <a href="https://stackshelf.app">StackShelf.app</a>. I build with AI every day, and spend a good chunk of time teaching others how to do it right.</em></p><p><em>The cybersecurity critics of vibecoding are right about the risks.<br>They&#8217;re just wrong about the solution.<br>The answer isn&#8217;t &#8220;don&#8217;t vibecode at all.&#8221;<br>It&#8217;s &#8220;vibecode responsibly, with solid engineering foundations.&#8221;</em></p><p><em>If you&#8217;re new here, welcome! Here&#8217;s what you might&#8217;ve missed:<br><a href="#">Vibecoding Tips: The Ultimate Collection</a><br><a href="https://karozieminski.substack.com/p/claude-skills-anthropic-viral-toolkit-agentic-workflows-community-guide">Claude Skills Are Taking the AI Community by Storm</a><br><a href="https://karozieminski.substack.com/p/perplexity-comet-advanced-use-cases-guide">10x Your Productivity with Perplexity Comet: 11 Use Cases from &#8220;Nice&#8221; to &#8220;Wow!&#8221;</a><br></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Join us &#129303;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://karozieminski.substack.com/subscribe"><span>Join us &#129303;</span></a></p><p></p><p>The cybersecurity critiques of vibecoding are valid. <br>So instead of debating them, I partnered with an expert to map the absolute minimum you need to consider when coding with AI.</p><p>Today&#8217;s guide was authored by the brilliant <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Farida Khalaf&quot;,&quot;id&quot;:47192869,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!IRlH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff75874ef-962e-4ca6-a589-fbb84a130296_500x500.png&quot;,&quot;uuid&quot;:&quot;b73da697-6416-4c50-b4d6-cfdeb0ddbe4f&quot;}" data-component-name="MentionToDOM"></span>, a Data Engineer specializing in cybersecurity. I met Farida here on Substack. She&#8217;s one of those rare writers you follow after <em>one</em> post, and for me, that post was this one: <a href="https://fafi25.substack.com/p/theres-no-real-money-in-ai-business">There&#8217;s No Real Money in AI Business, Just Rented Dreams and Delusional Valuations</a>.</p><p>We&#8217;ve also included a bonus commentary from <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;skelly&quot;,&quot;id&quot;:102644461,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5084809c-7853-4576-88e4-b2a8ef6bf41c_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;dfe052ff-f8da-437b-82cd-b6189063b811&quot;}" data-component-name="MentionToDOM"></span>, </strong>a cybersecurity expert specializing in critical infrastructure.</p><p>Together, we&#8217;ll show you how to vibecode fast <em><strong>and</strong></em> securely, with practical examples, and a minimal security checklist you can actually follow.</p><h2><strong>Who This Guide Is For</strong></h2><p>You should read this if:</p><ul><li><p>You&#8217;ve read the <a href="https://karozieminski.substack.com/p/vibecoding-tips-the-ultimate-collection">Ultimate Collection of Vibecoding Tips</a>.</p></li><li><p>You use AI to generate code.</p></li></ul><p>Enjoy! </p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oOfv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oOfv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png 424w, https://substackcdn.com/image/fetch/$s_!oOfv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png 848w, https://substackcdn.com/image/fetch/$s_!oOfv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png 1272w, https://substackcdn.com/image/fetch/$s_!oOfv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oOfv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png" width="2189" height="905" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:905,&quot;width&quot;:2189,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3202335,&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://karozieminski.substack.com/i/177565152?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc705ec-181c-4538-90df-f36cff57a1bf_2189x1365.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_!oOfv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png 424w, https://substackcdn.com/image/fetch/$s_!oOfv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png 848w, https://substackcdn.com/image/fetch/$s_!oOfv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.png 1272w, https://substackcdn.com/image/fetch/$s_!oOfv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf322b2-c9ac-4e82-8240-fcf3d8798503_2189x905.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><strong>Vibecoding Meets Cybersecurity: Notes from the Expert Who Fixes Your Code After You</strong></h2><p>I build data pipelines and analytics tools, often at speed, sometimes at 2 AM when inspiration strikes. I&#8217;ve also cleaned up security incidents that started with &#8220;I just needed to test something quickly.&#8221; </p><p>That tension between moving fast and staying secure isn&#8217;t theoretical for me, it&#8217;s the daily reality of building with data.</p><p>Vibecoding is often done based on intuition and speed rather than meticulous planning. You describe what you want, the AI generates working code, and within minutes you have a functioning app. </p><p>It&#8217;s powerful, addictive, and without guardrails - dangerous.</p><p>The question is how to vibecode without leaving vulnerabilities behind.</p><div><hr></div><h2><strong>The Five Quiet Failures</strong></h2><p>Vibecoding doesn&#8217;t fail with sirens and red alerts. It fails quietly, in ways that don&#8217;t surface until a security review.</p><h3><strong>1. Prompt Leakage </strong></h3><p><strong>&#9888;&#65039; The problem:</strong> Accidentally sending production credentials to a third party.</p><p><strong>&#129488; Scenario 1:</strong><br>You&#8217;re debugging a failed connection and paste this into ChatGPT:</p><pre><code><code>Help me debug: 
Error: Connection failed
postgresql://analytics_user:zK7$mP2024@prod-db.company.com:5432/customers</code></code></pre><p>Congratulations, you just sent production credentials to a third party.</p><p>&#128736;&#65039; <strong>How to fix:</strong> Always scrub before sharing. <br>Scrubbing = removing sensitive information before you share data.</p><div><hr></div><p><strong>&#129488; Scenario 2:<br></strong>You&#8217;re trying to retrieve all the data for a customer from your database, but it doesn&#8217;t work.</p><pre><code><code>&#10060; BAD: Pasting real data into AI chat
Why doesn&#8217;t this work? SELECT * FROM customers WHERE email=&#8217;john.doe@realcompany.com

&#9989; GOOD: Use synthetic data for debugging
Why doesn&#8217;t this work? SELECT * FROM customers WHERE email=&#8217;user1@example.com&#8217;</code></code></pre><div><hr></div><h3><strong>2. Over-Permissioned Prototypes</strong></h3><p><strong>&#9888;&#65039; The problem:</strong> AI generates code that works immediately by requesting broad permissions.</p><p><strong>&#129488; Scenario:</strong><br>You&#8217;re trying to read the entire <code>users</code> table from the PostgreSQL database called <code>customers</code> for analysis, monitoring, or to display in your app.</p><pre><code><code>import psycopg2

conn = psycopg2.connect(

&#8220;postgresql://admin:temp123@prod-db:5432/customers&#8221;

)

cursor = conn.cursor()

cursor.execute(&#8221;SELECT * FROM users&#8221;) # All columns, all rows

rows = cursor.fetchall()

cursor.close()

conn.close()</code></code></pre><p><strong>What&#8217;s wrong:</strong></p><ul><li><p>Admin credentials in code</p></li><li><p>Full table access when you only need recent records</p></li><li><p>Production database accessed from development code</p></li><li><p>No credential expiration or rotation mechanism</p></li></ul><p>&#128736;&#65039; <strong>How to fix:</strong> </p><p><strong>&#128210; Real incident:</strong> A colleague&#8217;s Airflow DAG had database admin credentials &#8220;for testing.&#8221; When the DAG failed, those credentials appeared in our centralized logging system visible to <em>everyone</em> with log access.</p><div><hr></div><h3><strong>3. The Prototype That Never Dies</strong></h3><p><strong>&#9888;&#65039; The problem:</strong> Internal tools are often left unsecured, creating serious vulnerabilities.</p><p><strong>&#129488; Scenario</strong>: You build a &#8220;quick internal dashboard&#8221; with no authentication. Three months later, it&#8217;s been bookmarked, shared in Slack, and someone&#8217;s accessing it from airport WiFi.</p><p><strong>Reality check:</strong> &#8220;Internal only&#8221; is a wish, not a security control.</p><div><hr></div><h3><strong>4. Unverified Dependencies</strong></h3><p><strong>&#9888;&#65039; The problem:</strong> Installing dependencies without checking if they&#8217;re safe or updated.</p><p><strong>&#129488; Scenario</strong>: AI suggests installing <code>pandas</code>, <code>sqlalchemy</code>, <code>data-utils</code>, <code>query-helper</code>. You install without checking. Three are legitimate. One was abandoned in 2020 with critical vulnerabilities.</p><p>&#128736;&#65039; <strong>How to fix:</strong> Run a quick safety check:</p><pre><code><code>pip show package-name # Check last update date and info

pip-audit # Scan installed packages for vulnerabilities</code></code></pre><div><hr></div><h3><strong>5. Hidden Credential Persistence</strong></h3><p><strong>&#9888;&#65039; The problem:</strong> Test tokens often outlive their purpose, quietly spreading across tools and repos until they become full-blown security leaks.</p><p><strong>&#129488; Scenario</strong>: Your test API token is now living in:</p><ul><li><p>Slack messages where you asked for help</p></li><li><p>Log files from three months ago</p></li><li><p>Clipboard manager history</p></li><li><p>.bash_history</p></li><li><p>Jupyter notebooks committed to Git</p></li></ul><p>&#128736;&#65039; <strong>How to fix:</strong> Set aggressive expiration times. If it&#8217;s for testing, one hour is plenty.</p><p><strong>&#128210; Case Study: The Dashboard That Worked Too Well</strong></p><p>A colleague vibecoded a support ticket dashboard using Claude. From idea to working prototype: two hours.</p><pre><code><code>from flask import Flask, jsonify

import psycopg2

app = Flask(__name__)

@app.route(&#8221;/api/tickets&#8221;, methods=[&#8217;GET&#8217;])

def get_tickets():

conn = psycopg2.connect(&#8221;postgresql://readonly:pass123@db:5432/support&#8221;)

cursor = conn.cursor()

cursor.execute(&#8221;SELECT * FROM support_tickets&#8221;)

tickets = cursor.fetchall()

cursor.close()

conn.close()

return jsonify(tickets)

if __name__ == &#8216;__main__&#8217;:

app.run(host=&#8217;0.0.0.0&#8217;, port=5000) # Accessible from anywhere</code></code></pre><p>Clean. Simple. Fast. The team loved it.</p><p>Within one week:</p><ul><li><p><strong>3,000+ tickets exposed:</strong> including customer credit cards and internal complaints</p></li><li><p><strong>No authentication</strong>: anyone with the URL could access it</p></li><li><p><strong>No access control</strong>: every user saw every ticket</p></li><li><p><strong>Hardcoded credentials</strong> in source code</p></li><li><p><strong>No audit trail: </strong>we couldn&#8217;t track who accessed what</p></li></ul><p><strong>How We Found Out:<br></strong>Our security team discovered it during a routine audit. We were lucky. The potential GDPR violation could have resulted in fines of &#8364;20,000-&#8364;200,000 based on similar incidents.</p><p>&#128736;&#65039; <strong>How to fix:</strong> Use better, more secure prompts. <a href="https://product-with-attitude.notion.site/Secure-Flask-API-Example-for-Vibecoders-Role-Based-Access-Audit-Logging-and-Safe-Credential-Handl-29eb261687da805abbddcdd7f8e9d789">See A Minimal Flask API Template That Actually Protects You</a>.</p><p><strong>The Lesson</strong></p><p>Speed amplifies assumptions. AI gave us exactly what we asked for: an endpoint that returns tickets. But it didn&#8217;t know:</p><ul><li><p>Tickets contain sensitive data</p></li><li><p>Users should only see their assignments</p></li><li><p>Access should be authenticated and logged</p></li></ul><div class="pullquote"><p>The AI wasn&#8217;t wrong, our prompt was incomplete. </p></div><p>The fix took 30 minutes. The potential damage would have taken months to recover from.</p><p></p><h2><strong>Better Prompts = Better Security</strong></h2><p>The fastest way to secure vibecoding is better prompts.</p><p><strong>Example 1:</strong></p><pre><code><code>&#10060; Vulnerable Prompt

&#8220;Create a Flask API that returns user data from PostgreSQL&#8221;


&#9989; Secure Prompt

&#8220;Create a Flask API that returns user data from PostgreSQL with:

- Environment variables for database credentials (using python-dotenv)

- Basic HTTP authentication with password verification

- Role-based access control (admin sees all users, regular users see only their data)

- Parameterized queries to prevent SQL injection

- Audit logging for all data access

- Return only necessary columns (id, email, created_at), not full records

- Proper connection closing to prevent resource leaks&#8221;</code></code></pre><p><strong>Example 2:</strong></p><pre><code><code>&#10060; Vulnerable Prompt

Write an Airflow DAG to sync user data daily.


&#9989; Secure Prompt

Write an Airflow DAG to sync user data daily with:

- PostgresHook for credential management (no hardcoded passwords)

- Incremental sync using last_modified timestamp (only records changed since last run)

- Read-only database connection with minimum required permissions

- Error handling with exponential backoff retry logic

- Data validation before insert (check for required fields, data types)

- Logging that doesn&#8217;t expose PII (log row counts, not actual data)

- Connection pooling with proper cleanup</code></code></pre><p></p><h2><strong>Four Essential Security Tools</strong></h2><h3><strong>1. Pre-Commit Security Scanning</strong></h3><p><strong>Tools:</strong></p><ul><li><p><code>bandit</code> - scans Python code for security issues like hardcoded passwords, SQL injection, and insecure random number generation. </p></li><li><p><code>pip-audit</code> - checks your installed packages against a database of known vulnerabilities<strong>.</strong></p></li></ul><p><strong>Example use: </strong></p><pre><code><code># Install security tools once

pip install bandit pip-audit sqlfluff

# Run before every commit

bandit -r . -x ./venv,./tests # Find hardcoded secrets, SQL injection patterns

pip-audit # Check for vulnerable dependencies

sqlfluff lint . # Validate SQL queries (if you have .sql files)</code></code></pre><div><hr></div><h3><strong>2. Credential Management</strong></h3><p><strong>&#128736;&#65039; Tools:</strong> </p><ul><li><p><code>.gitignore - </code>this is a file that tells your project which files or folders should be <em>left out</em> when you save or share your work using Git.</p></li></ul><p><strong>&#128071; Example: </strong></p><pre><code><code># .env file (MUST add to .gitignore!)

DATABASE_URL=postgresql://localhost:5432/dev_analytics

API_KEY=sk-test-development-only

ENVIRONMENT=development

# Your Python code

import os

from dotenv import load_dotenv

# Load environment variables from .env file

load_dotenv()

# Validate required secrets exist

required = [&#8217;DATABASE_URL&#8217;, &#8216;API_KEY&#8217;]

missing = [var for var in required if not os.getenv(var)]

if missing:

raise ValueError(f&#8221;Missing required environment variables: {missing}&#8221;)

# Access credentials safely

DATABASE_URL = os.getenv(&#8221;DATABASE_URL&#8221;)

API_KEY = os.getenv(&#8221;API_KEY&#8221;)</code></code></pre><div><hr></div><h3><strong>3. Synthetic Data for Testing</strong></h3><p><strong>&#128736;&#65039; Tools:</strong> </p><ul><li><p><code>faker - </code>Faker is a tool that <strong>creates fake, but realistic-looking data</strong> for testing</p></li></ul><p><strong>&#128071; Example: </strong></p><pre><code><code>from faker import Faker

import pandas as pd

fake = Faker()

def create_test_data(rows=1000):

&#8220;&#8221;&#8220;Generate synthetic data - never use production data for testing&#8221;&#8220;&#8221;

return pd.DataFrame({

&#8216;user_id&#8217;: range(1, rows + 1),

&#8216;email&#8217;: [fake.email() for _ in range(rows)],

&#8216;name&#8217;: [fake.name() for _ in range(rows)],

&#8216;created_at&#8217;: [fake.date_time_this_year() for _ in range(rows)]

})

# Use for all development and debugging

test_df = create_test_data()

print(f&#8221;Created {len(test_df)} test records&#8221;)</code></code></pre><h3><strong>4. Automated Pre-Commit Hook</strong></h3><p><em>From Karo: An automated Pre-Commit Hook is a small script that automatically runs checks every time you try to save your changes in a coding project.</em></p><p>Save your file in the right spot, as <code>.git/hooks/pre-commit</code>, and tell your computer it&#8217;s allowed to use it whenever you save your work (<code>chmod +x .git/hooks/pre-commit</code>).</p><pre><code>#!/bin/bash

set -e # Exit on first error

echo &#8220;Running security checks...&#8221;

# Check for credentials in staged files

if git diff --cached | grep -E &#8220;password|api[_-]?key|secret|token&#8221; -i; then

echo &#8220;&#10060; Possible credentials detected in staged files!&#8221;

echo &#8220;Remove credentials and use environment variables instead.&#8221;

exit 1

fi

# Check for data files that shouldn&#8217;t be committed

if git diff --cached --name-only | grep -E &#8220;\.csv$|\.xlsx$|\.db$|\.sqlite$&#8221;; then

echo &#8220;&#9888;&#65039; Data files detected. Continue? (y/n)&#8221;

read -n 1 -r

echo

[[ ! $REPLY =~ ^[Yy]$ ]] &amp;&amp; exit 1

fi

# Verify security tools are installed

command -v pip-audit &gt;/dev/null 2&gt;&amp;1 || {

echo &#8220;&#10060; pip-audit not installed. Run: pip install pip-audit&#8221;;

exit 1;

}

command -v bandit &gt;/dev/null 2&gt;&amp;1 || {

echo &#8220;&#10060; bandit not installed. Run: pip install bandit&#8221;;

exit 1;

}

# Run security scans on Python files

if git diff --cached --name-only | grep -q &#8220;\.py$&#8221;; then

echo &#8220;Running pip-audit...&#8221;

pip-audit --quiet || exit 1

echo &#8220;Running bandit...&#8221;

bandit -r . -q -x ./venv,./tests || exit 1

fi

echo &#8220;&#9989; Security checks passed&#8221;</code></pre><div><hr></div><h2><strong>The Minimal Security Checklist</strong></h2><p><em>Note from Karo: If you&#8217;re not familiar with the term &#8220;commit&#8221;, <a href="https://karozieminski.substack.com/p/github-guide-for-beginners-repos">this free guide will help</a>.</em></p><h3><strong>1. Before Your First Commit</strong></h3><ul><li><p>Create <code>.env</code> with all credentials</p></li><li><p>Add <code>.env</code> to .<code>gitignore</code></p></li><li><p>Verify <code>git status</code> (should NOT show .env)</p></li><li><p>Replace any hardcoded credentials with <code>os.getenv()</code></p></li></ul><h3><strong>2. Before Every Commit</strong></h3><ul><li><p>Run: <code>bandit -r . -x ./venv</code></p></li><li><p>Run: <code>pip-audit</code></p></li><li><p>Search code for: <code>password, api_key, secret, token</code></p></li><li><p>Always review AI-generated database code to make sure it can&#8217;t be abused, and use safe techniques (like parameterized queries) to protect your data.</p></li></ul><h3><strong>3. Before Sharing Internally</strong></h3><ul><li><p>Add authentication, even for &#8220;internal&#8221; tools</p></li><li><p>Implement role-based access control</p></li><li><p>Add audit logging for data access</p></li><li><p>Test with synthetic data only</p></li></ul><h3><strong>4. Before Production</strong></h3><ul><li><p>Security review by second person</p></li><li><p>Apply least-privilege to all database roles</p></li><li><p>Set up monitoring and alerting</p></li><li><p>Remove all debug code and print statements</p></li><li><p>Document what&#8217;s NOT secured yet</p></li><li><p>Test credential rotation procedures</p><p></p></li></ul><h2><strong>When to Vibecode (Decision Matrix)</strong></h2><p>Not every build is vibecode-friendly. Here&#8217;s how to know when to roll with it, and when to step back.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lrAe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lrAe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 424w, https://substackcdn.com/image/fetch/$s_!lrAe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 848w, https://substackcdn.com/image/fetch/$s_!lrAe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 1272w, https://substackcdn.com/image/fetch/$s_!lrAe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lrAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png" width="1456" height="442" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:442,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:219459,&quot;alt&quot;:&quot;Build Type Safety Guidelines table from Product with Attitude by Karo, comparing vibecoding and security for different projects.&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://karozieminski.substack.com/i/177565152?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Build Type Safety Guidelines table from Product with Attitude by Karo, comparing vibecoding and security for different projects." title="Build Type Safety Guidelines table from Product with Attitude by Karo, comparing vibecoding and security for different projects." srcset="https://substackcdn.com/image/fetch/$s_!lrAe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 424w, https://substackcdn.com/image/fetch/$s_!lrAe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 848w, https://substackcdn.com/image/fetch/$s_!lrAe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 1272w, https://substackcdn.com/image/fetch/$s_!lrAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5775dec9-4883-42af-ac86-abfd9999ae8d_2820x856.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Build Type Safety Guidelines</figcaption></figure></div><blockquote></blockquote><p><em>Some additions from Karo:</em></p><ul><li><p><em>Use AI coding tools for standard patterns and boilerplate, not for architectural decisions or innovation.</em></p></li><li><p><em>Keep human oversight for any critical or novel tasks.</em></p></li></ul><p></p><h2><strong>Resources Worth Bookmarking</strong></h2><ul><li><p><strong>Security scanning</strong></p><ul><li><p><code>bandit</code> &#8211; Scans Python code for common security flaws before they reach production. </p><ul><li><p>&#127891; <a href="https://bandit.readthedocs.io">Official docs</a></p></li></ul></li><li><p><code>pip-audit </code>&#8211; Checks your project&#8217;s dependencies for known vulnerabilities and outdated packages. </p><ul><li><p>&#127891; <a href="https://pypi.org/project/pip-audit/">Official docs</a>.</p></li></ul></li><li><p><code>sqlfluff</code> &#8211; Lints and formats SQL to catch risky queries or style issues early.</p><ul><li><p>&#127891; <a href="https://docs.sqlfluff.com">Official Docs</a></p></li></ul></li></ul></li><li><p><strong>Credential management</strong></p><ul><li><p><code>python-dotenv</code> &#8211; Loads environment variables from a .env file so you never hardcode credentials.</p><ul><li><p>&#127891; <a href="https://pypi.org/project/python-dotenv/">Official Docs</a></p></li></ul></li></ul></li><li><p><strong>Testing data</strong></p><ul><li><p><code>faker</code> &#8211; Generates realistic fake data for testing without exposing real user info.</p><ul><li><p>&#127891; <a href="https://faker.readthedocs.io">Official Docs</a></p></li></ul></li><li><p><code>mimesis</code> &#8211; Another synthetic data generator, with more localization and domain-specific options.</p><ul><li><p>&#127891; <a href="https://mimesis.name">Official Docs</a></p></li></ul></li></ul></li><li><p><strong>Pre-commit hooks</strong></p><ul><li><p><code>.git/hooks/pre-commit </code>&#8211; Runs automated checks (like linting or tests) before you can commit, enforcing safety and consistency at the source.</p></li><li><p>&#127891; <a href="https://git-scm.com/docs/githooks">Official Docs</a></p></li></ul></li></ul><p>The gaps are probably your next security vulnerabilities. Fill them before someone else does.</p><p></p><div><hr></div><h2><strong>Bonus: Skeptics, Builders, and Pragmatists: The Three Roles Every Product Team Needs</strong></h2><p><em>From Karo: </em></p><p><em>While researching this piece, I reached out to several experts. One of them, <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;skelly&quot;,&quot;id&quot;:102644461,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5084809c-7853-4576-88e4-b2a8ef6bf41c_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;9749f548-4b82-41b7-b739-1e71bb365788&quot;}" data-component-name="MentionToDOM"></span>, </strong>asked to stay anonymous due to their work in critical infrastructure systems.</em></p><p><em>When we first talked, <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;skelly&quot;,&quot;id&quot;:102644461,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5084809c-7853-4576-88e4-b2a8ef6bf41c_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;6cc281c4-8591-4f0a-a15e-c7a3a23b2aa3&quot;}" data-component-name="MentionToDOM"></span> </strong>said something along the lines of, &#8220;I&#8217;m too skeptical for this piece.&#8221;</em></p><p><em><strong>Perfect. That&#8217;s exactly who we needed.</strong></em></p><p><em>If we&#8217;re going to learn anything real, we need this friction. </em></p><ul><li><p><em>Optimists show us what&#8217;s possible,</em></p></li><li><p><em>Skeptics reveal the cracks that make it dangerous,</em></p></li><li><p><em>Pragmatists bridge the gap between the two.</em></p></li></ul><div class="pullquote"><p><em>Skeptics are the immune system of innovation. <br>Without the &#8220;it can&#8217;t be done&#8221; crowd, innovation becomes blind faith. <br>Without the &#8220;here&#8217;s how it can be done&#8221; builders, progress stops at fear.</em></p></div><p><em><strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;skelly&quot;,&quot;id&quot;:102644461,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5084809c-7853-4576-88e4-b2a8ef6bf41c_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;bfa74e52-007d-46a9-ac7d-9757a2889a27&quot;}" data-component-name="MentionToDOM"></span>&#8217;</strong>s words below:</em></p><h4><strong>The Hidden Security Risk: Untested Functionality</strong> </h4><p>There&#8217;s a more insidious risk that emerges from vibecoding&#8217;s accessibility: the absence of systematic testing creates a blind spot where functional bugs become security vulnerabilities. </p><p>Many vibecoding practitioners lack formal software engineering backgrounds and may not instinctively think in terms of test-driven development, code coverage, or quality assurance pipelines. </p><p>This gap is particularly dangerous because a <em>subtle</em> logical error (an off-by-one error in permission checking, or incorrect data validation that passes superficial inspection) can create exploitable weaknesses that are far harder to detect than obvious security anti-patterns. </p><div class="pullquote"><p>When an application appears to work during happy-path testing but fails under edge cases, you&#8217;ve created a security vulnerability that won&#8217;t show up in any static analysis tool. </p></div><p>Take medical applications as an example. The yoga injury app that provides incorrect treatment guidance isn&#8217;t just a UX problem, it can cause real harm.</p><p>In regulated industries, that harm carries legal liability equivalent to a data breach. </p><div class="pullquote"><p>The solution requires meeting vibecoders where they are while gradually elevating their practices. </p></div><p></p><h4>1. Addressing The Gaps Through Prompt Engineering</h4><p>Prompting can bootstrap a testing culture even among those unfamiliar with these concepts: </p><p>Examples of what to ask the AI to explicitly request test generation alongside implementation.</p><pre><code><code># Example 1
Write unit tests covering edge cases, error conditions, and security-relevant boundaries.</code></code></pre><pre><code><code># Example 2
Generate property-based tests for input validation.</code></code></pre><pre><code><code># Example 3
Apply test-driven development approach: write failing tests first, then implement.</code></code></pre><pre><code><code># Example 4
Include integration tests that verify security controls  actually prevent unauthorized access.</code></code></pre><h4>2. Addressing The Gaps Through Better Tooling</h4><p>However, prompts alone aren&#8217;t sufficient. The ecosystem needs better tooling that <strong>makes testing unavoidable</strong> rather than optional. </p><p>This could involve:</p><ul><li><p>AI coding assistants that refuse to mark a feature &#8220;complete&#8221; without accompanying tests.</p></li><li><p>AI coding assistants that automatically generate test stubs that developers must either implement or explicitly skip with justification. </p></li></ul><p>For LLM-integrated applications, where behavioral predictability is inherently limited, the testing challenge intensifies. </p><p>You need not just unit tests but also <strong>validation frameworks</strong> that check for hallucinations, prompt injections, and unexpected model outputs. </p><p>The security community should advocate for treating test coverage as a security control itself. Confidence in your application&#8217;s correct behavior under <em><strong>all</strong></em> conditions is the foundation upon which all other security measures rest.</p><h2><strong>Final Thoughts</strong></h2><div class="pullquote"><p><em>Vibecoding with AI is not inherently insecure. <br></em>Vibecoding without thinking is.</p></div><p>Before you accept AI-generated code, ask:</p><h3>Before You Accept AI-Generated Code, Ask Yourself:</h3><p><strong>1. Who can access this?</strong><br>Only authenticated, authorized users should have access. Never assume &#8220;internal&#8221; means secure.</p><p><strong>2. Is there an audit trail?</strong><br>There must always be a verifiable way to track who did what, when, and from where.</p><p><strong>3. What data is exposed?</strong><br>Expose only the minimum required information. Every extra column, log, or debug printout is a potential liability.</p><p><strong>4. Where are the credentials?</strong><br>They belong in environment variables, secret managers, or vaults: never in code, configs, or chat prompts.</p><p><strong>5. What happens if this leaks?</strong><br>Design for failure. Assume credentials will leak and make sure the blast radius is minimal: short-lived tokens, read-only roles, and clear rotation policies.</p><p><strong>6. What&#8217;s untested?</strong><br>Every untested function is a potential vulnerability. Tests aren&#8217;t just about correctness, they&#8217;re a <em>security control.</em></p><p><strong>7. Does it fail safely?</strong><br>When things break (and they will), does the system fail closed or fail open?<br>Failing open is convenient - until it&#8217;s catastrophic.</p><p>The 30 minutes you invest in security now will save you 30 hours of incident response later.</p><h3><strong>Additional Resources</strong></h3><ul><li><p><a href="https://karozieminski.substack.com/p/best-vibecoding-guides">Best Vibecoding Guides &amp; Prompts</a></p></li><li><p><a href="https://karozieminski.substack.com/p/prompt-pack-100-most-common-ui-elements-for-vibecoding">Prompt Pack: 100 Most Common UI Elements For Vibecoders</a></p></li><li><p><a href="https://karozieminski.substack.com/p/vibecoding-but-smarter-the-prd-prompt">PRD Template and Self-Auditing Prompt</a></p></li><li><p><a href="https://karozieminski.substack.com/p/github-guide-for-beginners-repos">GitHub Setup for Complete Beginners</a></p></li></ul><p></p><div><hr></div><h3><strong>You Might Also Enjoy</strong></h3><p><a href="https://abcbyd.substack.com/p/vibe-coding-our-way-to-a-breach">Vibecoding Our Way to a Breach</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Damien Lewke&quot;,&quot;id&quot;:248623304,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!YSdF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a437d7f-474e-4e6e-863a-4d7d91885fd9_800x800.jpeg&quot;,&quot;uuid&quot;:&quot;4f2fb42b-efed-40f7-a75c-6c5db1ffad36&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://abcbyd.substack.com/p/vibe-coding-cybersecurity-the-good">Vibecoding + Cybersecurity: The Good, The Bad, and The Ugly</a> by<strong> </strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Damien Lewke&quot;,&quot;id&quot;:248623304,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!YSdF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a437d7f-474e-4e6e-863a-4d7d91885fd9_800x800.jpeg&quot;,&quot;uuid&quot;:&quot;be281e54-1ffb-4e38-9cad-3bacda7a3ace&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://www.toxsec.com/p/human-in-the-loop?utm_source=%2Fsearch%2Fcybersecurity&amp;utm_medium=reader2">Human in the Loop: Before it&#8217;s Too Late</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;ToxSec&quot;,&quot;id&quot;:8759131,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!07Bd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7223f8a0-d14f-456c-add5-c22e3795a6dc_500x500.png&quot;,&quot;uuid&quot;:&quot;7c995f5f-84dd-4958-b41b-4fc2e682814e&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://rohittamma.substack.com/p/how-attackers-are-using-tiktok-video?utm_source=%2Fsearch%2Fcybersecurity&amp;utm_medium=reader2">How Attackers Are Using TikTok Videos</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Rohit Tamma&quot;,&quot;id&quot;:224590134,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28ae251e-e694-4797-b3d9-08cf9810ec5c_1125x750.jpeg&quot;,&quot;uuid&quot;:&quot;f2c4ae16-be30-4898-996e-b0cdfed237db&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://rohittamma.substack.com/p/how-this-ai-attack-tricked-chatgpt?utm_source=%2Fsearch%2Fcybersecurity&amp;utm_medium=reader2">Tricking ChatGPT to Silently Steal User Emails</a> by<strong> </strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Rohit Tamma&quot;,&quot;id&quot;:224590134,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28ae251e-e694-4797-b3d9-08cf9810ec5c_1125x750.jpeg&quot;,&quot;uuid&quot;:&quot;61061cb0-b385-4116-b493-5c79f6328521&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://www.aiworldtoday.net/p/ai-in-cybersecurity?utm_source=%2Fsearch%2Fcybersecurity&amp;utm_medium=reader2">AI in Cybersecurity: Benefits, Strategies &amp; Future Trends</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Rahul Dogra&quot;,&quot;id&quot;:498917,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/22a67045-2f7d-424b-a06a-9f8bb40c9d87_1614x1614.jpeg&quot;,&quot;uuid&quot;:&quot;37ef09bb-bfac-40f9-8af8-d56def7c719b&quot;}" data-component-name="MentionToDOM"></span> <br><a href="https://www.resilientcyber.io/p/vibe-coding-conundrums">Vibecoding Conundrums</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Chris Hughes&quot;,&quot;id&quot;:106921976,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6e409c2-2aa2-4d46-b20b-225e3a9b62d0_2500x1875.jpeg&quot;,&quot;uuid&quot;:&quot;94d23818-8f5f-4aa5-b433-6cb27275a1b5&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://kenhuangus.substack.com/p/secure-vibe-coding-level-up-with">Secure Vibecoding: Level Up with Cursor Rules and the R.A.I.L.G.U.A.R.D. Framework</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ken Huang&quot;,&quot;id&quot;:1160339,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d670301-204b-472e-a2ee-bbb1b7633a99_2026x2026.png&quot;,&quot;uuid&quot;:&quot;c099cb3c-bedb-45d5-aaff-11b7f421a20d&quot;}" data-component-name="MentionToDOM"></span> <br></p><h3><strong>Community Updates</strong></h3><p><strong>&#128073; </strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Billie Moon&quot;,&quot;id&quot;:321072419,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!x2Xk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F473fd128-caf6-4545-907c-3a1cc3f4628c_2706x2706.jpeg&quot;,&quot;uuid&quot;:&quot;f8ea5820-10b7-453a-bfc6-9059dc245d81&quot;}" data-component-name="MentionToDOM"></span> <a href="https://substack.com/@magicponybooks/note/c-165153289?r=gngtc&amp;utm_source=notes-share-action&amp;utm_medium=web">won Silver in the 2025 Moonbeam Children&#8217;s Book Awards for Best Writer/Illustrator</a>!</p><p><strong>&#128640; </strong>StackShelf is buzzing with new launches:</p><ul><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Kamil Banc&quot;,&quot;id&quot;:76113384,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!54JT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b08751-61a2-476e-9845-c7a392bb5c80_966x966.png&quot;,&quot;uuid&quot;:&quot;29b7d8dc-bdfc-4b28-8b7d-20a387ff363d&quot;}" data-component-name="MentionToDOM"></span>: free <a href="https://stackshelf.app/shelf/kamil">Gmail Signature Generator </a>and an <a href="https://stackshelf.app/shelf/kamil">AI Prompt Manager</a> extension</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Rohit Kumar Tiwari&quot;,&quot;id&quot;:325797293,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/571a47d0-eab6-436c-9a34-3bc93d6b2539_1024x1024.png&quot;,&quot;uuid&quot;:&quot;2fd93bdd-1980-40f0-b1d0-89ff9908cd8c&quot;}" data-component-name="MentionToDOM"></span>: <a href="https://stackshelf.app/shelf/rohit">three free Machine Learning guides</a></p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Anfernee&quot;,&quot;id&quot;:154317088,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f856d6f-7844-44f4-992b-000458fe9bb8_1080x1080.png&quot;,&quot;uuid&quot;:&quot;8b23b725-0ddf-49e0-8cec-1d3e0cc08710&quot;}" data-component-name="MentionToDOM"></span>:  <a href="https://stackshelf.app/shelf/anfernee">Substack Accelerator Kit</a></p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Adler Hsieh&quot;,&quot;id&quot;:61521266,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9494bd-49c1-451f-8032-359af40fad8c_512x512.jpeg&quot;,&quot;uuid&quot;:&quot;27598ef9-b1b3-45c2-950e-cd441adcf2cf&quot;}" data-component-name="MentionToDOM"></span>: <a href="https://stackshelf.app/shelf/adler">Engineering Leadership coaching session</a></p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jose Antonio Morales&quot;,&quot;id&quot;:17146826,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!a3n6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65a79239-f493-4fa8-ab8d-b312d4c885e2_1323x1323.png&quot;,&quot;uuid&quot;:&quot;e59d6ee7-27d7-4fb2-ac85-e44f137f5491&quot;}" data-component-name="MentionToDOM"></span>: <a href="https://stackshelf.app/shelf/jose-morales">&#8216;&#8220;Fear Enough&#8221; book</a></p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jakub Slys &#129302;&quot;,&quot;id&quot;:254824415,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20f5dd5e-dc79-4103-812f-ee8bf4ad78e2_1206x1206.jpeg&quot;,&quot;uuid&quot;:&quot;94f77a2c-8d8f-420e-bdd7-afb6d4413059&quot;}" data-component-name="MentionToDOM"></span> - <a href="https://stackshelf.app/shelf/jakub-slys">free automations for Substack writers</a></p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6q-y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6q-y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 424w, https://substackcdn.com/image/fetch/$s_!6q-y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 848w, https://substackcdn.com/image/fetch/$s_!6q-y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 1272w, https://substackcdn.com/image/fetch/$s_!6q-y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6q-y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png" width="1436" height="279" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:279,&quot;width&quot;:1436,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37154,&quot;alt&quot;:&quot;Thank-you banner by Karo Zieminski for Product with Attitude reading &#8220;Thank You For Reading Product with Attitude,&#8221; featuring a playful stick-figure character running alongside the text to express appreciation to readers.&quot;,&quot;title&quot;:&quot;Thank-you banner by Karo Zieminski for Product with Attitude reading &#8220;Thank You For Reading Product with Attitude,&#8221; featuring a playful stick-figure character running alongside the text to express appreciation to readers.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/181986216?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Thank-you banner by Karo Zieminski for Product with Attitude reading &#8220;Thank You For Reading Product with Attitude,&#8221; featuring a playful stick-figure character running alongside the text to express appreciation to readers." title="Thank-you banner by Karo Zieminski for Product with Attitude reading &#8220;Thank You For Reading Product with Attitude,&#8221; featuring a playful stick-figure character running alongside the text to express appreciation to readers." srcset="https://substackcdn.com/image/fetch/$s_!6q-y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 424w, https://substackcdn.com/image/fetch/$s_!6q-y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 848w, https://substackcdn.com/image/fetch/$s_!6q-y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 1272w, https://substackcdn.com/image/fetch/$s_!6q-y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee80be5c-ba0d-4900-b849-9b7f22d90089_1436x279.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>Join hundreds of Premium Members and unlock everything you need to build with AI. From prompt packs and code blocks to learning paths, discounts and the community that makes it so special.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE &#129303;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE &#129303;</span></a></p><h5><strong><a href="https://karozieminski.substack.com/p/why-subscribe">WHY SUBSCRIBE </a>&#12539;<a href="https://karozieminski.substack.com/p/ai-skill-paths">LEARNING PATHS</a>&#12539; <a href="https://karozieminski.substack.com/s/premium-resources">PREMIUM RESOURCES</a>&#12539; <a href="https://karozieminski.substack.com/i/175884244/tools">TOOLS</a> &#12539;<a href="https://karozieminski.substack.com/i/175884244/testimonial-spotlight">TESTIMONIALS</a> &#12539;<a href="https://productwithattitude.gumroad.com/l/fjnull">LIFETIME MEMBERSHIP</a></strong></h5>]]></content:encoded></item><item><title><![CDATA[The Ultimate Vibecoding Guide From Builders Who've Shipped]]></title><description><![CDATA[Go Beyond the Prototype: Everything You Need To Build and Launch AI Products]]></description><link>https://karozieminski.substack.com/p/vibecoding-tips-the-ultimate-collection</link><guid isPermaLink="false">https://karozieminski.substack.com/p/vibecoding-tips-the-ultimate-collection</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Sat, 11 Oct 2025 13:35:07 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e4985fc6-8bb6-45b6-9231-71b8406e0f83_2188x1365.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p style="text-align: right;">Last updated: June 2026</p><h6><em>TL;DR: Build production-ready apps with AI coding tools by following this practical roadmap: validate your idea early, design user flows first, choose the right stack, write clear prompts, use Git from day one, debug systematically, and keep learning fundamentals.</em></h6><div><hr></div><p>If you&#8217;re wondering how to get from your idea to a finished AI-powered product, this guide has you covered. <br>We map every step - from concept to live deployment - based on real projects we&#8217;ve shipped. We share a playbook that&#8217;s been tested, improved, and proven with real results.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Hey, I&#8217;m Karo &#129303;</em></p><p><em>AI product manager, builder of <a href="https://stackshelf.app/">StackShelf.app</a>, and chronic optimizer of workflows. If you&#8217;re new here - welcome! Joining me is <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Karen Spinner&quot;,&quot;id&quot;:363410124,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!kLy3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28ad1170-99e0-4cb6-8a1d-f4f60c4465ef_591x591.jpeg&quot;,&quot;uuid&quot;:&quot;b1962bb0-58ed-4d93-b992-2a977771a506&quot;}" data-component-name="MentionToDOM"></span>,</strong> a fellow builder and founder of <a href="https://www.carouselbot.app/">CarouselBot</a>. We met on Substack, where her energy is undeniable.  From her writing, it&#8217;s clear: she&#8217;s a builder unafraid to question everything and constantly refine her workflows.</em></p><p><em>From Karen:</em></p><p><em>I discovered Substack through Karo&#8217;s incredible Product with Attitude Community, and somehow she became one of my first five subscribers. I&#8217;m in awe of her ability to bring people together while building her own projects and running a best-selling newsletter!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.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"><em>Join 15K members and unlock everything you need to build with AI. From deep dives, and prompt packs to learning paths, discounts, and the community that makes it so special.</em></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><p></p><p><strong>Table of Contents:<br></strong>1. <a href="https://karozieminski.substack.com/i/175692239/start-with-the-right-mindset">Start With the Right Mindset</a><br>2. <a href="https://karozieminski.substack.com/i/175692239/validate-before-you-build">Validate Before You Build</a><br>3. <a href="https://karozieminski.substack.com/i/175692239/map-user-flows-first">Map User Flows First</a><br>4. <a href="https://karozieminski.substack.com/i/175692239/choose-your-stack">Choose Your Stack</a><br>5. <a href="https://karozieminski.substack.com/i/175692239/craft-solid-prompts">Craft Solid Prompts</a><br>6. <a href="https://karozieminski.substack.com/i/175692239/write-a-prd">Write Your PRD</a><br>7. <a href="https://karozieminski.substack.com/i/175692239/create-rules-for-your-ai">Create Rules for Your AI</a><br>8. <a href="https://karozieminski.substack.com/i/175692239/setup-version-control-in-github">Set Up Version Control</a><br>9. <a href="https://karozieminski.substack.com/i/175692239/organize-your-docs">Organize Your Docs</a><br>10. <a href="https://karozieminski.substack.com/i/175692239/secure-your-sensitive-data">Secure Your Sensitive Data</a><br>11. <a href="https://karozieminski.substack.com/i/175692239/backup-your-database">Backup Your Database</a><br>12. <a href="https://karozieminski.substack.com/i/175692239/build-in-small-slices">Build in Small Slices</a><br>13. <a href="https://karozieminski.substack.com/i/175692239/debug-systematically">Debug Systematically</a><br>14. <a href="https://karozieminski.substack.com/i/175692239/test-before-shipping">Test Before Shipping</a><br>15. <a href="https://karozieminski.substack.com/i/175692239/control-your-costs">Control Your Costs</a><br>16. <a href="https://karozieminski.substack.com/i/175692239/keep-learning">Keep Learning</a><br><a href="https://karozieminski.substack.com/i/175692239/final-thoughts">Final Thoughts</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>1. Start With the Right Mindset</strong></h2><p>Building product-grade apps no longer requires knowing how to code. Modern AI tools are skilled enough to win coding competitions, and it&#8217;s fair to consider them a top-tier teammate.</p><p>Still, even top-tier AIs need direction - and that&#8217;s <em><strong>your</strong></em> role in the process. You wear every hat: designer, director, builder, product lead, and marketer. </p><div class="pullquote"><p>The vision starts with you, the goals are yours to set, and it&#8217;s your job to shape them into something coherent.</p></div><p>Don&#8217;t skip the hard parts of product development. You&#8217;re still responsible for:</p><ul><li><p><strong>Vision</strong>: What are you building and why?</p></li><li><p><strong>Design</strong>: How should users move through your app?</p></li><li><p><strong>Decisions</strong>: Which features matter? What can wait?</p></li><li><p><strong>Quality</strong>: Does it work? Is it secure?</p></li></ul><p><strong>Before you start coding:</strong> Have a concrete idea. Not just &#8220;a social app&#8221; but &#8220;a tool that lets Substack book clubs vote on their next read.&#8221; This will help you choose the right tools and write better instructions.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>2. Validate Before You Build </strong></h2><div class="pullquote"><p>The biggest risk in any product development is building something nobody wants.</p></div><p><strong>How to validate fast:</strong></p><ul><li><p><strong>Talk to humans first</strong>: Get feedback before writing a single line of code. </p><p>Join <a href="https://karozieminski.substack.com/subscribe">our community</a> to test your ideas, show mockups, or run small experiments.</p></li><li><p><strong>Brainstorm with AI</strong>: This takes 1-2 hours and can save you weeks of wasted work.  Ask questions like:</p><ul><li><p><em>What user flows should I consider?</em></p></li><li><p><em>What are the edge cases?</em></p></li><li><p><em>What features should I start with?</em></p></li></ul></li></ul><p><strong>Tip:</strong> Brainstorm with whichever AI you find easiest to use. I go with ChatGPT; Karen uses Claude.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>3. Map User Flows First</strong></h2><p>Before asking AI to write any code, map out how users move through your app.</p><p><strong>Use any tool:</strong> Miro, Figma, pen and paper - doesn&#8217;t matter. Just sketch:</p><ul><li><p><em>Login &#8594; Dashboard &#8594; Main Feature &#8594; Settings &#8594; Logout</em></p></li><li><p><em>What happens when they click &#8220;Submit&#8221;?</em></p></li><li><p><em>What appears on success? On error?</em></p></li><li><p><em>Where do they go next?</em></p></li></ul><p><strong>Why this matters:</strong>  Catching confusing paths on paper is 100x easier than fixing them in code later.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;61cc8ef2-3ac6-48a9-b26e-407068dd96ed&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;2025&#8217;s Most Absurd Product Decisions&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI builders. I help you design, build and test your product, and feature it on Stackshelf. I connect you with a supportive 10K+ community building and learning in public.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2025-12-10T14:48:32.917Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b9be1d0-2d93-4564-b862-5d6039c89bec_2087x1199.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/2025s-most-absurd-product-decisions-grok-taco-bell-mcdonalds-checklist-premortem-framework&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:180822608,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:69,&quot;comment_count&quot;:33,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>4. Choose Your Stack</strong></h2><p>There are so many AI-assisted coding tools available, that the only rational response is a kind of gentle, throbbing migraine. <strong>To make the choice easier, follow this rule of thumb:</strong></p><div class="pullquote"><p>Choose based on your idea, your experience, and which tools feel most intuitive to you.</p></div><p>We also want to show you that tool choice is flexible and there are multiple valid paths to a solid build. Our stacks aren&#8217;t the same, yet both lead to working, well-maintained releases:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/6EF4I/2/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c57e5f3d-2300-4ea9-bf3e-e31e509b20d7_1220x2512.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b0028-be96-426c-87ad-1c9c2f5c99e7_1220x2512.png&quot;,&quot;height&quot;:1214,&quot;title&quot;:&quot;There are multiple valid paths to a solid build&quot;,&quot;description&quot;:&quot;&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/6EF4I/2/" width="730" height="1214" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p></p><p><strong>From Karen:</strong></p><p><em>Reading Karo&#8217;s list was educational, and comparing hers with mine shows that you can follow roughly the same process, and get good results, even while using an (almost) completely different toolset.</em></p><p><em>You&#8217;ll also notice that my list is a whole lot longer. That&#8217;s because Replit is an &#8220;all-in-one&#8221; creation tool that handles a lot of elements, like databases, domain management, and even hosting for production. Overall, I think Karo&#8217;s stack is by far the better bet for someone who just wants to ship their project and doesn&#8217;t want to get too deep into the technical details.</em></p><p><em>Although my toolset could work for anyone, it requires a bit more research upfront, and no small amount of patience. But it should be a good fit for anyone who&#8217;s really curious about what&#8217;s going on &#8220;under the hood&#8221; of their application.</em></p><p><strong>Both approaches work.</strong> Two builders, two different stacks, both shipping real products. Pick what matches your learning style and timeline.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>5. Craft Solid Prompts</strong></h2><p>AI is great at pattern recognition, but terrible at mind reading. </p><p>That&#8217;s why prompt crafting matters. </p><ul><li><p><strong>Learn</strong> the different <a href="https://karozieminski.substack.com/p/vibecoding-spec-driven-and-the-new">prompting techniques used in AI-assisted coding</a>.</p></li><li><p><strong>Always provide context</strong></p><pre><code>&#10060; Registration form doesn't work.
&#9989; The user clicked &#8216;Submit&#8217; on the registration form, but nothing happened, there was no redirect, no confirmation, no user-facing message. Here&#8217;s the error from the console: [paste error]</code></pre></li><li><p><strong>Be specific</strong> about what to change:</p><pre><code><code>&#10060; Fix the login page.
&#9989; In login.jsx, modify the email validation to accept plus signs (+) in email addresses. Don&#8217;t change any other files.</code></code></pre></li><li><p><strong>Use negative instructions: </strong>Tell AI what NOT to do to prevent drift.</p><pre><code><code>&#9989; Investigate only - what causes problem A to occur? Do not change any code, output a complete report.
&#9989; Avoid using library X.</code></code></pre></li><li><p><strong>Treat your prompts like source code:</strong> name them, save them, version them. Over time you&#8217;ll develop a library of prompts that work well, and even a prompt graveyard so you can remember what didn&#8217;t work and why.</p></li><li><p><strong>Try prompts from other builders and make them your own:</strong> <a href="https://karozieminski.substack.com/p/best-vibecoding-guides">feel free to grab some well-tested prompts from here</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li></ul><h2><strong>6. Write A PRD</strong></h2><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:157244204,&quot;comment&quot;:{&quot;id&quot;:157244204,&quot;date&quot;:&quot;2025-09-18T10:20:28.840Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Coding agents don&#8217;t fail at coding. \n\nWe fail at instructing.  &quot;,&quot;body_json&quot;:{&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;text&quot;:&quot;Coding agents don&#8217;t fail at coding. &quot;,&quot;type&quot;:&quot;text&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;We fail at instructing.  &quot;}]}],&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;type&quot;:&quot;doc&quot;},&quot;restacks&quot;:0,&quot;reaction_count&quot;:36,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;user_id&quot;:27968736,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!f-TD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c40bc77-069d-4fe3-b0a3-1932e957cb57_1227x1227.jpeg&quot;,&quot;user_bestseller_tier&quot;:100,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:100,&quot;subscriberTier&quot;:5,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:100},&quot;paidPublicationIds&quot;:[1105980,3138516,378002,943157,4613350,3266189]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div><p>The Product Requirements Document (PRD) is a clear document that describes:</p><ul><li><p><strong>What you&#8217;re building: </strong>Core functionality + target user + problem solved</p></li><li><p><strong>Key features: </strong>Features you want right away + Features that can wait</p></li><li><p><strong>Technical requirements: </strong>What technologies or frameworks to use, what services to integrate, any performance or security needs</p></li></ul><p><strong>Pro tip:</strong> Ask AI to help you write and review your brief for gaps. Here&#8217;s how:<br><a href="https://karozieminski.substack.com/p/vibecoding-but-smarter-the-prd-prompt">The PRD Prompt That Audits Itself For Hallucinations and Failure Modes</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>7.  Create Rules for Your AI</strong></h2><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:164259486,&quot;comment&quot;:{&quot;id&quot;:164259486,&quot;date&quot;:&quot;2025-10-08T15:29:32.868Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Coding agents don&#8217;t get nuance.\n\nThey get patterns.&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Coding agents don&#8217;t get nuance.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;They get patterns.&quot;}]}]},&quot;restacks&quot;:0,&quot;reaction_count&quot;:17,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;user_id&quot;:27968736,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!f-TD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c40bc77-069d-4fe3-b0a3-1932e957cb57_1227x1227.jpeg&quot;,&quot;user_bestseller_tier&quot;:100,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:100,&quot;subscriberTier&quot;:5,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:100},&quot;paidPublicationIds&quot;:[1105980,3138516,378002,943157,4613350,3266189]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div><p>You&#8217;ll see <em><strong>Rules for AI</strong></em><code> </code>under different names: replit.md, agents.md, constitution.md - but the purpose is the same - to give your coding agent a playbook.</p><ul><li><p><strong>What to do:</strong></p><ul><li><p>Tech stack decisions</p></li><li><p>Coding standards</p></li><li><p>Folder structure</p></li><li><p>Naming conventions</p></li><li><p>Design style</p></li></ul></li><li><p><strong>What NOT to do:</strong></p><pre><code><code>&#9940;&#65039; Don&#8217;t make any changes without understanding what files are affected
&#9940;&#65039; Don&#8217;t modify the authentication system
&#9940;&#65039; Don&#8217;t change the database schema without migration files</code></code></pre></li></ul><p><strong>Pro Tip:</strong> Treat this file as a living document and update it as you learn what works for your project.</p><p><strong>Why this matters:</strong> AI can &#8220;forget&#8221; decisions from earlier in your conversation. This document prevents you from constantly re-explaining preferences and stops AI from undoing your work.</p><p><strong>Side note:</strong> I&#8217;ll publish a deep dive soon; if you need help now, leave a comment and I&#8217;ll share the draft.<br></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>8. Setup Version Control in GitHub</strong></h2><p>Think of GitHub as a giant online folder for your project where every change you make is saved, tracked, and easily shared. It&#8217;s like &#8220;Google Docs for code&#8217;&#8217;. </p><p>If you&#8217;re just starting out, my super simple free <a href="https://karozieminski.substack.com/p/github-guide-for-beginners-repos">GitHub Guide for Beginners</a> will get you set up fast.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AEsd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AEsd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 424w, https://substackcdn.com/image/fetch/$s_!AEsd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 848w, https://substackcdn.com/image/fetch/$s_!AEsd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 1272w, https://substackcdn.com/image/fetch/$s_!AEsd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AEsd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png" width="1255" height="272" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:272,&quot;width&quot;:1255,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133010,&quot;alt&quot;:&quot;Callout box explaining what a GitHub repository is for beginners. It&#8217;s like &#8220;Google Docs for code,&#8221; but designed for collaboration and keeping your work safe. Created by Karo from Product with Attitude.&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://karozieminski.substack.com/i/175692239?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e5a2eeb-285b-437a-8c82-16bae0578e08_1255x306.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Callout box explaining what a GitHub repository is for beginners. It&#8217;s like &#8220;Google Docs for code,&#8221; but designed for collaboration and keeping your work safe. Created by Karo from Product with Attitude." title="Callout box explaining what a GitHub repository is for beginners. It&#8217;s like &#8220;Google Docs for code,&#8221; but designed for collaboration and keeping your work safe. Created by Karo from Product with Attitude." srcset="https://substackcdn.com/image/fetch/$s_!AEsd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 424w, https://substackcdn.com/image/fetch/$s_!AEsd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 848w, https://substackcdn.com/image/fetch/$s_!AEsd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 1272w, https://substackcdn.com/image/fetch/$s_!AEsd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fb7d58-4dd1-4dc2-9ac0-888764b6a62d_1255x272.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4><strong>Essential GitHub Habits</strong></h4><ul><li><p><strong>Start on Day 1</strong></p><ul><li><p>Create a repository the moment you begin coding</p></li><li><p>Every change is tracked; you always have a safety net</p></li></ul></li><li><p><strong>Create branches for features</strong></p><ul><li><p>Main branch = your working product</p></li><li><p>Feature branches = experiments and new work</p></li><li><p>Example names: <code>feature/login</code>, <code>bugfix/password</code></p></li></ul></li><li><p><strong>Merge branches only after testing</strong></p><ul><li><p>Always test and review code before merging changes into your main project. This catches bugs early and helps keep your project stable and maintainable.</p></li></ul></li><li><p><strong>Commit often</strong></p><ul><li><p>Save after completing each small piece (a button, a fix)</p></li><li><p>Don&#8217;t wait until the end of the day. </p></li></ul></li></ul><p><em><strong>&#128073; Need help? </strong>More details <a href="https://karozieminski.substack.com/p/github-guide-for-beginners-repos">in this guide.</a> </em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>9. Organize Your Docs</strong></h2><p>Clear organization means less time searching, more time building.</p><ul><li><p><strong>Know exactly where everything is:</strong></p><ul><li><p>the code files</p></li><li><p>the specs </p></li><li><p>your top prompts</p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:161808513,&quot;comment&quot;:{&quot;id&quot;:161808513,&quot;date&quot;:&quot;2025-10-01T13:03:26.659Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Always tell the AI agent where to put the code.&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Always tell the AI agent &quot;},{&quot;type&quot;:&quot;text&quot;,&quot;marks&quot;:[{&quot;type&quot;:&quot;italic&quot;}],&quot;text&quot;:&quot;where&quot;},{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot; to put the code.&quot;}]}]},&quot;restacks&quot;:1,&quot;reaction_count&quot;:24,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;user_id&quot;:27968736,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!f-TD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c40bc77-069d-4fe3-b0a3-1932e957cb57_1227x1227.jpeg&quot;,&quot;user_bestseller_tier&quot;:100,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:100,&quot;subscriberTier&quot;:5,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:100},&quot;paidPublicationIds&quot;:[1105980,3138516,378002,943157,4613350,3266189]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div></li></ul></li><li><p><strong>Use consistent naming:</strong></p><ul><li><p>for your folders</p></li><li><p>for your files</p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:152427981,&quot;comment&quot;:{&quot;id&quot;:152427981,&quot;date&quot;:&quot;2025-09-04T18:01:30.608Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Vibecoding tip: Name your files clearly. Agents and your future self do not speak fluent final_final2(3).js&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Vibecoding tip: Name your files clearly. Agents and your future self do not speak fluent &quot;},{&quot;type&quot;:&quot;text&quot;,&quot;marks&quot;:[{&quot;type&quot;:&quot;code&quot;}],&quot;text&quot;:&quot;final_final2(3).js&quot;}]}]},&quot;restacks&quot;:1,&quot;reaction_count&quot;:28,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;user_id&quot;:27968736,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!f-TD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c40bc77-069d-4fe3-b0a3-1932e957cb57_1227x1227.jpeg&quot;,&quot;user_bestseller_tier&quot;:100,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:100,&quot;subscriberTier&quot;:5,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:100},&quot;paidPublicationIds&quot;:[1105980,3138516,378002,943157,4613350,3266189]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div></li></ul></li><li><p><strong>Document learnings from your interactions with the agent:</strong></p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:163139747,&quot;comment&quot;:{&quot;id&quot;:163139747,&quot;date&quot;:&quot;2025-10-05T10:45:20.670Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Vibecoding learning &#128221;:\n\nDon&#8217;t rush to get the AI to spit out the final code.\n\nSlow down, read what it writes, and figure out why it works.\n\nThat&#8217;s where the real learning happens. Not in the shortcut, but in the structure.\n\n&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Vibecoding learning &#128221;:&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Don&#8217;t rush to get the AI to spit out the final code.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Slow down, read what it writes, and figure out why it works.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;That&#8217;s where the real learning happens. Not in the shortcut, but in the structure.&quot;}]}]},&quot;restacks&quot;:1,&quot;reaction_count&quot;:19,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Raghav Mehra&quot;,&quot;user_id&quot;:325219597,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!bbeH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6791754d-5ea0-4b00-a173-96687a12cd93_1536x2048.jpeg&quot;,&quot;user_bestseller_tier&quot;:null,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[4097137]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>10. Secure Your Sensitive Data</strong></h2><div class="pullquote"><p>Never put API keys, passwords, or tokens directly in your code.</p></div><p><strong>Two safe approaches:</strong></p><ul><li><p><strong>Option 1: Environment variables</strong></p><ul><li><p>If you&#8217;re working with a Python framework, you can store your sensitive information in an <code>.env</code> file saved to your project&#8217;s root directory. </p></li><li><p>Add it to <code>.gitignore</code> so it&#8217;s never uploaded </p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:151602945,&quot;comment&quot;:{&quot;id&quot;:151602945,&quot;date&quot;:&quot;2025-09-02T12:31:17.513Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Another vibe coding reminder: If you&#8217;re planning to publish your code to a production server or GitHub, set up a .gitignore file with a list of all the files you don&#8217;t want to share, such as the .env file containing your API keys and passwords.&quot;,&quot;body_json&quot;:{&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;text&quot;:&quot;Another vibe coding reminder: If you&#8217;re planning to publish your code to a production server or GitHub, set up a .gitignore file with a list of all the files you don&#8217;t want to share, such as the .env file containing your API keys and passwords.&quot;,&quot;type&quot;:&quot;text&quot;}]}],&quot;type&quot;:&quot;doc&quot;},&quot;restacks&quot;:6,&quot;reaction_count&quot;:43,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Karen Spinner&quot;,&quot;user_id&quot;:363410124,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!kLy3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28ad1170-99e0-4cb6-8a1d-f4f60c4465ef_591x591.jpeg&quot;,&quot;user_bestseller_tier&quot;:null,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[4097137]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div></li></ul></li><li><p><strong>Option 2: Built-in secrets management</strong></p><ul><li><p>If you&#8217;re using Replit, you can set up sensitive variables using its Secrets tool. Replit automatically encrypts this information, and secures it so it won&#8217;t be made visible in your app or its code.</p></li></ul></li></ul><p><strong>Why this matters:</strong> Keys in code can be scraped, stolen, or accidentally shared. One leaked API key can cost you thousands in fraudulent usage.<br></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>11. Backup Your Database</strong></h2><p>We&#8217;ve all heard stories about agents going rogue and deleting databases. Your customer data, your product images - everything can disappear in a single click. But this can be easily prevented:</p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:157250315,&quot;comment&quot;:{&quot;id&quot;:157250315,&quot;date&quot;:&quot;2025-09-18T10:55:02.785Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Vibe coding PSA: Always back up your production database before making big changes...because not everything that works in your development environment will play nicely in the cloud.\n\nA timely backup before deployment lets you more easily shrug off setbacks. If everything else fails, and sometimes it will, you can always restore your functional environment with users' data intact.\n\nhttps://wonderingaboutai.substack.com/p/i-created-a-vector-database-with&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Vibe coding PSA: Always back up your production database before making big changes...because not everything that works in your development environment will play nicely in the cloud.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;A timely backup before deployment lets you more easily shrug off setbacks. If everything else fails, and sometimes it will, you can always restore your functional environment with users' data intact.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;https://wonderingaboutai.substack.com/p/i-created-a-vector-database-with&quot;,&quot;marks&quot;:[{&quot;type&quot;:&quot;link&quot;,&quot;attrs&quot;:{&quot;href&quot;:&quot;https://wonderingaboutai.substack.com/p/i-created-a-vector-database-with&quot;}}]}]}]},&quot;restacks&quot;:2,&quot;reaction_count&quot;:18,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Karen Spinner&quot;,&quot;user_id&quot;:363410124,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!kLy3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28ad1170-99e0-4cb6-8a1d-f4f60c4465ef_591x591.jpeg&quot;,&quot;user_bestseller_tier&quot;:null,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[4097137]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div><p></p><h2><strong>12. Build in Small Slices</strong></h2><p><strong>Don&#8217;t:</strong> Ask AI to build an entire feature from database to UI in one go</p><p><strong>Do:</strong> Break features into small, end-to-end slices</p><p><strong>Example: </strong>Building a Login Feature: </p><pre><code>&#10060; <strong>Large task (risky):</strong>
&#8220;Build the complete authentication system with login, registration, password reset, OAuth, and security&#8221;

&#9989; <strong>Small slices (safer):</strong>
&#8220;Create a basic login form with email and password&#8221;
&#8220;Add backend validation for the login form&#8221;
&#8220;Connect login form to database to verify credentials&#8221;
&#8220;Add error messages for wrong password&#8221;
&#8220;Test and deploy&#8221;</code></pre><p><strong>Why this works:</strong> </p><ul><li><p>AI makes fewer mistakes on smaller tasks</p></li><li><p>You catch problems earlier</p></li><li><p>Bonus: you also build your confidence with frequent wins</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li></ul><h2><strong>13.  Debug Systematically</strong></h2><p>When you get stuck with a bug, don&#8217;t panic! Follow a process:</p><h4><strong>Step 1: Document the Bug</strong></h4><ul><li><p>Take notes that will help make bugs reproducible: <em>What happened? When? </em></p></li><li><p>You can use the Given-When-Then framework, or a different one, as long as you and your agent will be able to understand what happened.</p><pre><code><code>GIVEN: User is on the login page.
WHEN: User clicks on login button.
THEN: Button is not working.</code></code></pre></li></ul><h4><strong>Step 2: Fix One Bug at a Time</strong></h4><p>Don&#8217;t try to fix multiple issues simultaneously. Isolate, fix, test, move on.</p><h4><strong>Step 3: Watch for Silent Bugs</strong></h4><p>AI often adds &#8220;failover logic&#8221; that hides errors:</p><p><strong>From Karen:</strong></p><blockquote><p><em>Sometimes, code you&#8217;ll get back from AI will include failover logic to ensure that, if one thing breaks, the whole system won&#8217;t crash. Failover code might run a function that&#8217;s not quite as good as the main one (e.g., keyword search instead of semantic search) or generate a vague error message.</em></p><p><em>While implementing failover logic is a great idea for production environments, so the user experience isn&#8217;t disrupted more than necessary, it can also make it harder to detect bugs. If you have failover code, you may want to comment it out during development, so you see a big, glaring error message instead of a feature that &#8220;sort of&#8221; works.</em></p></blockquote><h4><strong>Step 4: Ask AI to Diagnose</strong></h4><p>Provide:</p><ul><li><p>Error logs</p></li><li><p>What you expected vs. what happened</p></li><li><p>Relevant code snippets</p></li></ul><h4><strong>Step 5: The Three Strikes Rule</strong></h4><p>If AI can&#8217;t fix the bug after three attempts:</p><ul><li><p>Roll back to your last working version (thank you, Git!)</p></li><li><p>Ask a <em>different</em> AI model to review the code</p></li><li><p>Example: If you&#8217;re using Claude, switch to ChatGPT for a fresh perspective</p></li></ul><h4><strong>Step 6: Expect Looping</strong></h4><p>Sometimes AI breaks one thing while fixing another: fix &#8594; break &#8594; fix &#8594; break.</p><p><strong>Solution:</strong> Roll back and try more specific prompt. I shared one in this post: <a href="https://karozieminski.substack.com/p/is-your-replit-looping-this-will">Is Your Replit Looping? This Will Help</a></p><h4><strong>Step 7: Ask for Help</strong></h4><p>Join <a href="https://substack.com/chat/4097137">builder communities</a>! </p><p>I&#8217;ve had tremendous support on StackShelf; in emergencies and from people generously testing features. If it wasn&#8217;t for the moral support from <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Kacper Wojaczek&quot;,&quot;id&quot;:238671305,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2b4d98-d409-4944-a3ba-f3afa7612ea4_447x447.jpeg&quot;,&quot;uuid&quot;:&quot;dd836969-2950-45f7-a864-611558f7e37b&quot;}" data-component-name="MentionToDOM"></span>, I&#8217;d <a href="https://open.substack.com/pub/karozieminski/p/i-broke-replit-so-you-dont-have-to">spend my holidays crying into a pillow.</a> </p><p><strong>From Karen: </strong><em>If you post about your development projects on social media (and, yes, that includes Substack), invite your readers to help test them. Some of them will DM you! Your comments can also point you towards people who might want to be part of your project. If they leave a comment like, &#8220;Wow, I&#8217;d love a tool like that!&#8221; consider following up with a DM with a link to your tool and how they can provide feedback if they&#8217;re interested. This is how I found 91 (and counting!) people to beta test StackDigest...and I&#8217;m still implementing their feedback.</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong><br>14. Test Before Shipping</strong></h2><div class="pullquote"><p>AI sounds confident even when wrong. Always test.</p></div><p><strong>Human Testing</strong></p><ul><li><p><strong>Internal testing:</strong> You and your team test every feature</p></li><li><p><strong>Beta testing:</strong> Recruit 5-10 real users to try it</p></li><li><p><strong>Focus on core flows:</strong> Can users complete the main tasks?</p></li></ul><p><strong>Agentic Testing</strong></p><p>Some tools (like Replit Agent 3) can systematically test your code for:</p><ul><li><p>Silent failures</p></li><li><p>Edge cases you didn&#8217;t consider</p></li><li><p>Regressions (new code breaking old features)</p></li></ul><p>Your role is to build in review cycles, monitor results, and never hesitate to cross-check with different models if outcomes seem off.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>15. Control Your Costs</strong></h2><p><strong>Use separate API keys per project:</strong></p><ul><li><p>One broken request won&#8217;t drain your entire budget</p></li><li><p>You can track costs per project</p></li></ul><p><strong>Edit minor things manually:</strong></p><p>Don&#8217;t waste credits on:</p><ul><li><p>&#8220;Make this headline shorter&#8221;</p></li><li><p>&#8220;Change the button color to blue&#8221;</p></li></ul><p><strong>Choose the right model for the task:</strong></p><ul><li><p>Complex architecture decisions: Use the smartest model</p></li><li><p>Simple bug fixes or styling: Use faster, cheaper models</p></li></ul><p><strong>Know your pricing model</strong></p><ul><li><p>Some tools (like Claude Code) are cheaper with a subscription than API usage</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li></ul><h2><strong>16. Keep Learning </strong></h2><p>AI can help you build without knowing how to code, but understanding the basics makes you dramatically more effective.</p><p><strong>From Karen: </strong><em>I like the idea of being able to understand how my app is working behind the scenes and fix it (or, at least, give good direction to AI), when things go wrong. And the more you know about the coding languages used in your project, the better you will understand what you are building.</em></p><p><strong>Why learn coding fundamentals:</strong></p><ul><li><p>You&#8217;ll write better prompts</p></li><li><p>You&#8217;ll spot bugs faster</p></li><li><p>You&#8217;ll understand AI suggestions better</p></li><li><p>You&#8217;ll know when to override them</p></li></ul><p><strong>What to learn:</strong></p><ul><li><p><strong>For web apps:</strong> HTML, CSS, JavaScript basics</p></li><li><p><strong>General concepts:</strong> How databases work, API basics, authentication</p></li></ul><p><strong>How to learn:</strong></p><ul><li><p>Ask AI to explain code it wrote for you</p></li><li><p>Read documentation for tools you&#8217;re using</p></li><li><p>Build custom learning paths for yourself with ChatGPT or <a href="https://karozieminski.substack.com/p/perplexity-comet-advanced-use-cases-guide">Perplexity</a></p></li><li><p>Follow tutorials for your specific stack</p><p></p></li></ul><div class="pullquote"><p>Remember: <br>AI is a force multiplier. The more <strong>you</strong> know, the more powerful it becomes.</p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>Final Thoughts</strong></h2><p>The most successful builders combine AI&#8217;s speed with engineering basics and human judgment:</p><ul><li><p>AI suggests, you decide</p></li><li><p>AI implements, you verify</p></li><li><p>AI optimizes, you maintain the vision</p></li></ul><p><strong>Start small, ship often, and keep learning. Every project makes you better at directing AI and better at understanding what you&#8217;re building.</strong></p><p> <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Elena Calvillo&quot;,&quot;id&quot;:31598723,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!6ZLU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1048ef8f-b8ca-474c-af24-901e2f4463ec_1000x1000.png&quot;,&quot;uuid&quot;:&quot;0e6a4501-4e2b-42ea-a951-4243e6e1e200&quot;}" data-component-name="MentionToDOM"></span> said it best:</p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:151785887,&quot;comment&quot;:{&quot;id&quot;:151785887,&quot;date&quot;:&quot;2025-09-02T21:43:11.359Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Remember when building websites seemed impossible? AI app development is having its WordPress moment.\n\nThe tools are here, the guide is ready, and your idea deserves to come to life.\n\nStop waiting for the \&quot;perfect time.\&quot; Your learning journey begins with the first step.&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Remember when building websites seemed impossible? AI app development is having its WordPress moment.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;The tools are here, the guide is ready, and your idea deserves to come to life.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Stop waiting for the \&quot;perfect time.\&quot; Your learning journey begins with the first step.&quot;}]}]},&quot;restacks&quot;:2,&quot;reaction_count&quot;:10,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Elena Calvillo&quot;,&quot;user_id&quot;:31598723,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!6ZLU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1048ef8f-b8ca-474c-af24-901e2f4463ec_1000x1000.png&quot;,&quot;user_bestseller_tier&quot;:null,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[10845,4097137,443311]}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div><p style="text-align: center;"></p><p style="text-align: center;"><strong>Ready to Start?</strong> </p><p style="text-align: center;">Pick one small project idea, work through this guide step by step, and ship something real. Then do it again, a little faster and better each time.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>Additional Resources</strong></h2><ul><li><p><strong><a href="https://karozieminski.substack.com/p/claude-design-review-prompts-figma">Claude Design Review &amp; Prompts</a></strong></p></li><li><p><strong><a href="https://karozieminski.substack.com/p/prompt-pack-100-most-common-ui-elements-for-vibecoding">100 Most Common UI Elements For Vibecoders</a></strong></p></li><li><p><strong> <a href="https://karozieminski.substack.com/p/vibecoding-cybersecurity-fix-the-7-code-mistakes-leaving-your-startup-wide-open-and-vulnerable-playbook">Vibecoding x Cybersecurity: Survival Guide by the Expert Who Fixes Your Code After You</a></strong></p><p></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3><strong>You Might Also Enjoy</strong></h3><p><a href="https://ruben.substack.com/p/vibing?utm_source=%2Fsearch%2Fvibe&amp;utm_medium=reader2">Vibe</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ruben Hassid&quot;,&quot;id&quot;:339636559,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74715318-6b66-4099-8165-1c729f38eb94_1080x1080.png&quot;,&quot;uuid&quot;:&quot;8cc6b075-5cc2-4d45-a0f0-051733567bf1&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://aiblewmymind.substack.com/p/build-complete-website-claude-code">Build a Website with Claude Code: Payments, Email, SEO &amp; More</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Daria Cupareanu&quot;,&quot;id&quot;:180057984,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!3aOM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0a1ca3f-8de7-499e-8f18-2738fae33b27_1080x1080.png&quot;,&quot;uuid&quot;:&quot;ab51cb6d-9783-4652-ab8e-3e3e6fc87cce&quot;}" data-component-name="MentionToDOM"></span> <br><a href="https://simonw.substack.com/p/vibe-engineering?utm_source=%2Fsearch%2Fvibe&amp;utm_medium=reader2">Vibe engineering</a> by<strong> </strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Simon Willison&quot;,&quot;id&quot;:5753967,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5a30d45c-fcba-407a-bebf-96f51a8944a4_48x48.jpeg&quot;,&quot;uuid&quot;:&quot;9a080b42-e34c-4a0a-ba39-c0dd27585b98&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://substack.com/home/post/p-174612092">Vibe coding a genome</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Christina Agapakis&quot;,&quot;id&quot;:3445452,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50d04c72-1e5e-4b45-a8f2-a3c7df79c9bc_2400x1600.jpeg&quot;,&quot;uuid&quot;:&quot;9b9b175d-5ec0-4d65-80e9-8af683ea4a61&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://www.resilientcyber.io/p/a-security-vibe-check?utm_source=%2Fsearch%2Fvibe&amp;utm_medium=reader2&amp;hide_intro_popup=true">A Security Vibe Check</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Chris Hughes&quot;,&quot;id&quot;:106921976,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6e409c2-2aa2-4d46-b20b-225e3a9b62d0_2500x1875.jpeg&quot;,&quot;uuid&quot;:&quot;c9b22ddb-0adb-460a-b136-e5524f82ed6c&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://laurinclass.substack.com/p/the-future-of-vibe-coding?utm_source=%2Fsearch%2Fvibe&amp;utm_medium=reader2">The Future of Vibe Coding</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Laurin Class&quot;,&quot;id&quot;:77571038,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/511ab88a-ac22-462a-93be-18f0f0484fdb_4096x4096.jpeg&quot;,&quot;uuid&quot;:&quot;8d4f39bb-2fbe-46a4-bc3e-c3a8c8fe8306&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://blog.nateliason.com/p/the-past-and-future-of-vibe-coding">The Past and Future of Vibe Coding</a> by<strong> </strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Nat Eliason&quot;,&quot;id&quot;:249645,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7c3c0789-0698-43d7-a92a-e0a896ec9b91_3024x3024.jpeg&quot;,&quot;uuid&quot;:&quot;cd81db87-df7b-4399-9f81-cf22a2c82174&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://ileanamarcut.substack.com/p/from-idea-to-prototype-with-ai">From idea to prototype with AI</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ileana&quot;,&quot;id&quot;:48566145,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7729cdd9-1d0c-43c4-8846-3990bd5975a8_2200x2200.jpeg&quot;,&quot;uuid&quot;:&quot;0d06a697-7b15-427d-b1ac-d3e0086cb3c3&quot;}" data-component-name="MentionToDOM"></span><br><a href="https://www.augmentedswe.com/p/i-vibe-coded-something-and-lost-all?hide_intro_popup=true">Don&#8217;t vibe code your config: How I shot myself in the foot</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jeff Morhous&quot;,&quot;id&quot;:94578007,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!7HXm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fc042a-90b6-40d9-b9e1-3311e5b4882a_612x612.jpeg&quot;,&quot;uuid&quot;:&quot;d440ece2-fae3-4d1b-9499-7822e7846bfd&quot;}" data-component-name="MentionToDOM"></span> </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bbuT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bbuT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 424w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 848w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1272w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png" width="1456" height="145" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:145,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158918,&quot;alt&quot;:&quot;Product with Attitude newsletter closing banner with mascot.&quot;,&quot;title&quot;:&quot;Product with Attitude newsletter closing banner with mascot.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/195778338?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd5b48c3-ae64-45d5-8178-00ab8d02f1a4_2353x256.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Product with Attitude newsletter closing banner with mascot." title="Product with Attitude newsletter closing banner with mascot." srcset="https://substackcdn.com/image/fetch/$s_!bbuT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 424w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 848w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1272w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p style="text-align: center;"><strong><a href="https://karozieminski.substack.com/about">WHY SUBSCRIBE </a>&#12539;<a href="https://karozieminski.substack.com/p/product-with-attitude-membership-2026">YOUR BENEFITS</a>&#12539; <a href="https://karozieminski.substack.com/p/substack-creator-tools">TOOLS I BUILT</a>&#12539;<a href="https://karozieminski.substack.com/s/claude-hub">CLAUDE HUB</a>&#12539;<a href="https://karozieminski.substack.com/s/perplexity-hub">PERPLEXITY HUB</a> &#12539;<a href="https://karozieminski.substack.com/p/vibecoding-resources-hub">VIBE CODING HUB</a> </strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p>]]></content:encoded></item><item><title><![CDATA[Behind the Scenes: Why PMs Are Vibecoding Real Products]]></title><description><![CDATA[5 Non-Obvious Reasons Product Managers Should Start Vibecoding Today.]]></description><link>https://karozieminski.substack.com/p/vibecoding-pms-a-movement-you-dont</link><guid isPermaLink="false">https://karozieminski.substack.com/p/vibecoding-pms-a-movement-you-dont</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Thu, 21 Aug 2025 12:45:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!PbYk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi, I&#8217;m Karo </em>&#129303;<em>.<br>Each week, I share awesome insights from the world of AI product management and building in public. If you&#8217;re new here - welcome! Here&#8217;s a peek at what you might have missed:<br>- <a href="https://open.substack.com/pub/karozieminski/p/i-broke-replit-so-you-dont-have-to?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">I Broke Replit So You Don&#8217;t Have To</a><br>- <a href="https://karozieminski.substack.com/p/is-your-replit-looping-this-will">Is Your Replit Looping? This Will Help</a></em></p><p><em>A huge <strong>thank you</strong> to everyone who read, commented on, and shared my <a href="https://karozieminski.substack.com/p/i-analyzed-every-interaction-from?r=gngtc">last post</a>!</em><br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://karozieminski.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><br>At first, I didn&#8217;t even tell anyone I &#8216;&#8216;vibecoded&#8217;&#8217;. </strong></p><p>The name itself feels like a joke, easy to dismiss. I also prefer to unpack things on my own without being swayed by others&#8217; opinions.</p><p>Now I can say this with confidence: vibecoding isn&#8217;t a joke. It lets you ship real, product-grade apps. </p><p>Not your company&#8217;s ERP system, sure.<br>But if you&#8217;re an enterprise PM, it&#8217;s the one skill you don&#8217;t want to ignore.  </p><p><strong>Let me show you why.</strong></p><h2>What Is Vibecoding?</h2><p>Vibecoding is using natural language prompts to describe what you want to build, then overseeing AI handle the execution. </p><p>For PMs, it&#8217;s a new way to interact with products. It gives you visibility into code, databases, and logs you&#8217;d normally never see. </p><blockquote><p>And before you ask: no, you don&#8217;t need to know how to code. It helps, but it&#8217;s not required.</p><p>What matters more is your ability to be specific about what you need the system to do. And if you&#8217;re a PM, that&#8217;s a skill you&#8217;ve probably mastered a long time ago.</p></blockquote><p></p><h2>Why Vibecoding Belongs in My Toolkit Now</h2><p>Most people think of vibecoding as a quick prototyping trick. </p><p>And sure, it is. </p><p>But for a PM, the real value hides in the less obvious benefits: the ones that change how you work day to day. </p><h3>1. Empowerment</h3><p>Humans like to make things. If you&#8217;re a PM, you like to make things <em>a lot</em>.</p><p>And if you&#8217;re a PM like me, you don&#8217;t just like making things - you like learning, tinkering and experimenting.</p><p>Vibecoding gave me three gifts:</p><ol><li><p>It <a href="https://open.substack.com/pub/karozieminski/p/julys-top-vibecoding-reads?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">bulldozed the walls</a> between my ideas and actually doing something about them</p></li><li><p>It gave my PM skills (strategizing, defining, framing) a bigger playground than a Miro board</p></li><li><p>It keeps pointing out what I need to learn next</p></li></ol><p>Put it all together, and vibecoding leaves you feeling not just empowered, but refreshed. Like your creative energy finally has room to stretch.</p><h3>2. Automating Internal Ops </h3><p>Many PMs get stuck doing product operations, reporting, and endless workflow tweaks (ask me how I know).</p><p>Vibecoding flips that script. </p><p>Instead of waiting in line for engineering time, you can spin up scrappy internal tools that actually move work forward:</p><ul><li><p><strong>Dashboards on demand</strong></p></li><li><p><strong>Workflow automations</strong></p></li><li><p><strong>Reporting bots</strong></p></li><li><p><strong>Experiment launchers</strong></p></li><li><p><strong>Admin cleanup</strong> <strong>scripts</strong></p></li></ul><p>These aren&#8217;t the glamorous projects that get roadmap headlines, but they&#8217;re the ones that actually move the needle, keep the team humming, and uncover insights faster than formal development cycles.</p><h3>3. Turbocharging the Build-Measure-Learn Cycle</h3><p>Feedback loops are everything for a PM.</p><p>With vibecoding, those loops stop dragging and start snapping into place. You can spin up a functional prototype, put real user flows in front of actual people, and validate a concept, sometimes all in the same day.</p><p>I tried this while building <a href="https://stackshelf.app/">StackShelf</a>, and it was the fastest feedback loop of my <em><strong>entire</strong></em> career.  Even faster than the ones I&#8217;d seen in dedicated innovation labs. Ideas that used to take weeks to validate were tested in a matter of hours. </p><p>A proud PM moment, if you ask me.</p><p><strong>Just to warn you:</strong> after tasting that speed, going back to old validation methods feels impossible.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PbYk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PbYk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 424w, https://substackcdn.com/image/fetch/$s_!PbYk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 848w, https://substackcdn.com/image/fetch/$s_!PbYk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 1272w, https://substackcdn.com/image/fetch/$s_!PbYk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PbYk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png" width="1456" height="908" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:908,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3879279,&quot;alt&quot;:&quot;Cartoon by Karo Z. in Product With Attitude: a small annoyed character with black ponytail and green outfit, arms crossed, scowling with a speech bubble saying 'Should we make some slides?&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://karozieminski.substack.com/i/171286789?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cartoon by Karo Z. in Product With Attitude: a small annoyed character with black ponytail and green outfit, arms crossed, scowling with a speech bubble saying 'Should we make some slides?" title="Cartoon by Karo Z. in Product With Attitude: a small annoyed character with black ponytail and green outfit, arms crossed, scowling with a speech bubble saying 'Should we make some slides?" srcset="https://substackcdn.com/image/fetch/$s_!PbYk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 424w, https://substackcdn.com/image/fetch/$s_!PbYk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 848w, https://substackcdn.com/image/fetch/$s_!PbYk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 1272w, https://substackcdn.com/image/fetch/$s_!PbYk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be3e0a0-fa8e-4186-9577-d774f61fe183_2336x1457.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Just to warn you:</strong> after tasting that speed, going back to old validation methods feels impossible.</figcaption></figure></div><h3>4. Making You a Better Partner to Engineers</h3><p>My whole life, I prided myself on having a good understanding of what engineers need from me: how to be helpful, when to step in, and when to stay out of the way so their workflow isn&#8217;t disrupted.</p><p>Vibecoding takes that understanding a step further.</p><p>One of the clearest lessons was about sequencing. Vibecoding makes it obvious why engineers prioritize and split work the way they do. You start to <em>experience</em> why foundations have to come first: the database before the dashboard, the authentication before the profile page. </p><h3>5. It&#8217;s Turning Into A Movement</h3><p>Traditional product communities are informative, polite, and oddly uncollaborative. Rarely do you see PMs actually breaking problems apart together.</p><p>Vibecoding changes that.</p><p>It&#8217;s a movement of builders. PMs, designers, data folks, ex-consultants, founders building side by side, swapping tips and&#8230;having fun. </p><p>Which, if you think about it, is exactly how you imagined PM work would look when you first started.</p><p>In the Product With Attitude community <em><strong>alone</strong></em>, several PMs are already vibecoding in public: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Elena Calvillo&quot;,&quot;id&quot;:31598723,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1048ef8f-b8ca-474c-af24-901e2f4463ec_1000x1000.png&quot;,&quot;uuid&quot;:&quot;ab013123-09e6-418a-853a-e4d886b83aee&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Priya Mathew Badger&quot;,&quot;id&quot;:9085370,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/17810315-04ab-47de-bfac-436dcd6a0280_301x301.jpeg&quot;,&quot;uuid&quot;:&quot;2ab7ab57-96d4-416b-83b2-5a1aac1ca5b5&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Dayem&quot;,&quot;id&quot;:4728793,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2f7c485-281f-488e-aa8b-c3658ec06ec8_1282x1282.jpeg&quot;,&quot;uuid&quot;:&quot;d75b8c4f-f60f-45da-831b-0906d7245e78&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ashwin Francis&quot;,&quot;id&quot;:14719569,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e83828b3-2109-41de-b407-fe63f9c10773_1287x1071.jpeg&quot;,&quot;uuid&quot;:&quot;6a1e6fe0-3d61-475c-b422-ba2024313806&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Raghav Mehra&quot;,&quot;id&quot;:325219597,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6791754d-5ea0-4b00-a173-96687a12cd93_1536x2048.jpeg&quot;,&quot;uuid&quot;:&quot;891c0fa0-2577-4861-af38-660588dfb943&quot;}" data-component-name="MentionToDOM"></span> <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ivan Kalungi Clausen&quot;,&quot;id&quot;:12478800,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6938f23d-7f6c-44a5-847c-26c128688be5_1018x1018.jpeg&quot;,&quot;uuid&quot;:&quot;8fdbb4b8-808b-4c4a-8f13-4ec081700996&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Yaron Cohen&quot;,&quot;id&quot;:16188764,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446f599-10b8-44af-bd91-56eca3f43ab4_1280x1254.jpeg&quot;,&quot;uuid&quot;:&quot;3b244261-d6f6-4803-9779-6069c3e2d39b&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jon Harris&quot;,&quot;id&quot;:53252367,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/509a516f-a0bb-42ac-b915-bdbf295e5311_144x144.png&quot;,&quot;uuid&quot;:&quot;6f5f272c-6536-47c4-a2eb-bebc96413dcb&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Zain Haseeb&quot;,&quot;id&quot;:12335031,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ZWXf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd34696ac-1731-4665-9ee2-e30f189980af_2347x2347.jpeg&quot;,&quot;uuid&quot;:&quot;4331e70a-4d48-45ab-b4e2-6f2fd7f9ff1b&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ileana&quot;,&quot;id&quot;:48566145,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7729cdd9-1d0c-43c4-8846-3990bd5975a8_2200x2200.jpeg&quot;,&quot;uuid&quot;:&quot;faa0792d-0f21-471f-828e-631ca7ea9deb&quot;}" data-component-name="MentionToDOM"></span>.  </p><p>And that list <em>only</em> covers full-time product managers. If we include PM-adjacent roles the number is much higher.</p><div class="poll-embed" data-attrs="{&quot;id&quot;:362374}" data-component-name="PollToDOM"></div><h3>TL;DR </h3><p><strong>The 5 Non-Obvious Benefits of Vibecoding Every PM Should Know:</strong></p><ol><li><p>Empowers creativity by smashing barriers between ideas and execution.  </p></li><li><p>Automates boring internal ops (dashboards, reporting, workflows).  </p></li><li><p>Turbocharges the build&#8211;measure&#8211;learn cycle with rapid prototypes.  </p></li><li><p>Makes you a sharper partner to engineers.</p></li><li><p>It&#8217;s turning into a community-driven movement of PMs vibecoding in public. </p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!alNk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!alNk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 424w, https://substackcdn.com/image/fetch/$s_!alNk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 848w, https://substackcdn.com/image/fetch/$s_!alNk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 1272w, https://substackcdn.com/image/fetch/$s_!alNk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!alNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png" width="3280" height="177" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9288453-6313-4cb8-9251-2244cbb35322_3280x177.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:177,&quot;width&quot;:3280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74945,&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://karozieminski.substack.com/i/171286789?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7755b6f5-2e8c-41c7-b19e-df1d8f1f444f_3280x177.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_!alNk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 424w, https://substackcdn.com/image/fetch/$s_!alNk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 848w, https://substackcdn.com/image/fetch/$s_!alNk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 1272w, https://substackcdn.com/image/fetch/$s_!alNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9288453-6313-4cb8-9251-2244cbb35322_3280x177.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3><strong>Additional Resources</strong></h3><ul><li><p><strong><a href="https://karozieminski.substack.com/p/vibecoding-tips-the-ultimate-collection">Go Beyond the Prototype: Everything You Need To Build &amp; Launch AI Products</a></strong></p></li><li><p><strong><a href="https://karozieminski.substack.com/p/vibecoding-but-smarter-the-prd-prompt">PRD Template and Self-Auditing Prompt</a></strong></p></li><li><p><strong><a href="https://karozieminski.substack.com/p/github-guide-for-beginners-repos">GitHub Setup for Complete Beginners</a></strong></p></li><li><p><strong><a href="https://substack.com/chat/4097137">Community for Feedback and Help</a></strong></p></li></ul><div><hr></div><h3><strong>Learning Paths</strong></h3><p><strong>&#128073; Unsure how to start vibecoding? &#8594;</strong> Reach out, I&#8217;m just a message away!<br><strong>&#128073; Looking to improve your prompts? &#8594; </strong>Start with <a href="https://open.substack.com/pub/karozieminski/p/the-self-improving-prompt-system?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">this post</a><br><strong>&#128073; Curious WHY I vibecoded StackShelf? &#8594; </strong>Start with <a href="http://How I Ended Up Building a Digital Shelf For Substack Creators">this post</a> and follow the links.</p><div><hr></div><h3>Community Updates</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CPOs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CPOs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 424w, https://substackcdn.com/image/fetch/$s_!CPOs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 848w, https://substackcdn.com/image/fetch/$s_!CPOs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 1272w, https://substackcdn.com/image/fetch/$s_!CPOs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CPOs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png" width="727" height="114.12209302325581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:81,&quot;width&quot;:516,&quot;resizeWidth&quot;:727,&quot;bytes&quot;:14826,&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://karozieminski.substack.com/i/171286789?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0165e0-20c2-422d-aeb6-ec6728b774d8_516x90.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_!CPOs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 424w, https://substackcdn.com/image/fetch/$s_!CPOs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 848w, https://substackcdn.com/image/fetch/$s_!CPOs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 1272w, https://substackcdn.com/image/fetch/$s_!CPOs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd95ab60a-59b9-426e-bbbc-75b80e9eee84_516x81.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ol><li><p><strong>We&#8217;re still growing!</strong> We just crossed 2.3K members, thank you all for being here!</p></li><li><p><strong><a href="https://stackshelf.app/">Stackshelf</a></strong> just crossed 113 products.</p></li></ol><ol start="2"><li><p><strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jenny Ouyang&quot;,&quot;id&quot;:282291554,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!DAbx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c08edab-ab02-4e7b-97b7-0c2aecea5e5a_1745x1479.jpeg&quot;,&quot;uuid&quot;:&quot;531709d2-3b81-4d26-9504-b40ca110ae8a&quot;}" data-component-name="MentionToDOM"></span></strong> launched <a href="https://www.vibecoding.builders/">vibecoding.builders </a>- a showcase site for our vibecoded creations! </p></li><li><p><strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Kenny - Your Freelance Friend&quot;,&quot;id&quot;:294518152,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca5df890-4882-4786-a915-3ff47af13408_2736x2736.jpeg&quot;,&quot;uuid&quot;:&quot;15fcbf9a-24b3-43b6-8075-5f6220ebd121&quot;}" data-component-name="MentionToDOM"></span></strong> &#8217;s vibecoded app is launching on Product Hunt soon, so keep an eye out! </p></li><li><p>Thanks to <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Michael Spencer&quot;,&quot;id&quot;:21731691,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F75d1bf99-dcf3-4af6-be2a-416c08c954a1_450x450.jpeg&quot;,&quot;uuid&quot;:&quot;b250b2af-7223-4d0e-a55d-59902fcb6d6a&quot;}" data-component-name="MentionToDOM"></span></strong>, we now have our own spot at <a href="https://ai-vanguard-society.mn.co/share/YnjS-LNUMzU28JKL?utm_source=manual">&#128142; AI Vanguard Society</a>. If you&#8217;re into AI, you&#8217;ll feel right at home there.</p></li></ol><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ai-vanguard-society.mn.co/share/YnjS-LNUMzU28JKL?utm_source=manual&quot;,&quot;text&quot;:&quot;Join Us!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://ai-vanguard-society.mn.co/share/YnjS-LNUMzU28JKL?utm_source=manual"><span>Join Us!</span></a></p><div><hr></div><h3>Recommended Reads</h3><p><strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Pawe&#322; Huryn&quot;,&quot;id&quot;:86533280,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f64f8f9-854d-4fe4-9b31-d9c4b1d2efdb_735x735.jpeg&quot;,&quot;uuid&quot;:&quot;9fdf695c-6a07-43ee-8fa9-c4af4ec5e22d&quot;}" data-component-name="MentionToDOM"></span></strong>: <a href="https://www.productcompass.pm/p/lovable-accredia-digital-certificates">Lovable Just Killed Two Apps? Create Your Own SaaS Without Coding in 2 Days</a> - Pawel vibecoded his newest product from A-Z.</p><p><strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jakub Slys &#127894;&#65039;&quot;,&quot;id&quot;:254824415,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d17c584-3500-4a83-9db9-f826c356ee62_2000x2000.png&quot;,&quot;uuid&quot;:&quot;4f017d17-eee2-4898-9218-ec8148b0f81b&quot;}" data-component-name="MentionToDOM"></span></strong>: <a href="https://iam.slys.dev/p/substack-automation-with-n8n-how">Substack automation with n8n: how to publish Notes automatically </a> - not vibecoding, but a generous share so I&#8217;m passing it along.</p><p></p><div><hr></div><h5><em><strong>All illustrations are original works created by me in Procreate, never AI-generated.<br>Feel free to reuse with credit (Karo Z., Product With Attitude).</strong></em></h5><div><hr></div>]]></content:encoded></item><item><title><![CDATA[July’s Top Vibecoding Reads]]></title><description><![CDATA[No code, no funding, no problem: curiosity now builds more than credentials ever could]]></description><link>https://karozieminski.substack.com/p/julys-top-vibecoding-reads</link><guid isPermaLink="false">https://karozieminski.substack.com/p/julys-top-vibecoding-reads</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Tue, 05 Aug 2025 14:36:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!o_Xl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi, I&#8217;m Karo </em>&#129303;<em>.<br>Each week, I share awesome insights from the world of AI product management and building in public.<br>Every post comes with my hand-drawn cartoons. They steal the applause, and will likely get a book deal before I do.</em></p><div><hr></div><h2>It&#8217;s An Absurdly Great Time To Be Creative</h2><p>Up until last year, there was a wall between you and your ideas. It was called &#8220;knowing how to code.&#8221; </p><p>This year, that wall has cracks, holes, and at least seven Substackers peeking through. Tools like Replit, Cursor, and Lovable are turning creativity into software - fast.</p><p>You don&#8217;t need to &#8216;&#8216;be technical&#8217;&#8217;, or have big funding. You just need curiosity, your creative power and a <a href="https://karozieminski.substack.com/p/the-self-improving-prompt-system">half-decent prompt</a>. </p><p>What follows are real things built by real people (many with zero coding skills), why your turn might be next and what to watch out 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_!o_Xl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o_Xl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png 424w, https://substackcdn.com/image/fetch/$s_!o_Xl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png 848w, https://substackcdn.com/image/fetch/$s_!o_Xl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png 1272w, https://substackcdn.com/image/fetch/$s_!o_Xl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o_Xl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3222865,&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://karozieminski.substack.com/i/170155836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.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_!o_Xl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png 424w, https://substackcdn.com/image/fetch/$s_!o_Xl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png 848w, https://substackcdn.com/image/fetch/$s_!o_Xl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.png 1272w, https://substackcdn.com/image/fetch/$s_!o_Xl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962c684e-1d5b-4307-a98b-4cddc1a760cd_2097x1397.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><figcaption class="image-caption"></figcaption></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><h4>From Idea to Revenue: How I Built XR Jobs Board With 0 Technical Experience</h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Krystian Zun&quot;,&quot;id&quot;:31038570,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a626b48-6a87-4e51-a5d1-4a716f78c5a9_1933x1933.jpeg&quot;,&quot;uuid&quot;:&quot;e564f0e9-3b0c-4827-8a40-200cf0b68bad&quot;}" data-component-name="MentionToDOM"></span> and <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Xinran Ma&quot;,&quot;id&quot;:10296842,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad7a22-8711-46c9-98db-1706db822719_1200x1200.png&quot;,&quot;uuid&quot;:&quot;9406839b-8dd7-45a5-91b3-b2fd9c73f838&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>Small iterative steps to turn a XR Jobs Board idea into a functioning, revenue-generating site.</p></li><li><p>&#128073; Read <a href="https://designwithai.substack.com/p/from-idea-to-revenue-how-i-built">here</a>.</p></li></ul><h4>I broke Replit, so you don&#8217;t have to. How I Built A Showcase Hub Just For Substack Creators.</h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;id&quot;:27968736,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dda3ae7-89a5-4454-b75f-29fc7336ed33_1286x1288.jpeg&quot;,&quot;uuid&quot;:&quot;9ff3a400-22d8-48b6-bdce-f1620c70106e&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>This post continues to get a lot of traction and I&#8217;d be remiss not to shout out my own publication. </p></li><li><p>&#128073; Read <a href="https://karozieminski.substack.com/p/i-broke-replit-so-you-dont-have-to">here</a>. </p></li></ul><h4>How I Vibe-Coded the Proudwork Landing Page</h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Kenny - Your Freelance Friend&quot;,&quot;id&quot;:294518152,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca5df890-4882-4786-a915-3ff47af13408_2736x2736.jpeg&quot;,&quot;uuid&quot;:&quot;9480bc27-6265-43ad-a867-b48ee703da28&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>Transforming a minimalist Canva mock-up into a live landing page. Kenny spent just over $100 and demonstrating a fast, low-code workflow for launching a clean video-hosting site.</p></li><li><p>&#128073; Read <a href="https://substack.com/@kennytjay/p-169552990">here</a>.</p></li></ul><h4>What Is Vibe Coding? A Guide to AI Coding Tools That Deliver Real Business Value </h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Alex Pawlowski&quot;,&quot;id&quot;:114798454,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6d5afe6-9212-4c07-be54-79bd98ee5a82_1132x1132.png&quot;,&quot;uuid&quot;:&quot;a1d934ca-2bec-4282-9603-d708e33894af&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>If you need a buyer&#8217;s guide, start here: feature matrix, pricing notes, and enterprise-readiness scores for Cursor, Replit, v0, and more.</p></li><li><p>&#128073; Read here.</p></li></ul><h4>What people are vibe coding (and actually using)</h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Lenny Rachitsky&quot;,&quot;id&quot;:1849774,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/afba5161-65bb-4d99-8d6b-cce660917fa1_1540x1540.png&quot;,&quot;uuid&quot;:&quot;698d7e82-93a8-4a4a-80f5-c61f106e26b4&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>50+ useful/fun/clever examples of what non-technical people are building&#8212;to inspire your own vibe-coding journey</p></li><li><p>&#128073; Read <a href="https://www.lennysnewsletter.com/p/what-people-are-vibe-coding-and-actually">here</a>.</p></li></ul><h4>Announcing the official Vibe Coding Showcase</h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;KP&quot;,&quot;id&quot;:986966,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6bcfb1cd-d94a-4d49-9ff7-4b1044f1cf04_667x723.png&quot;,&quot;uuid&quot;:&quot;6eb1c98c-fab9-4205-aba2-4115510c82f2&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>A meta-move: vibe-coding a site that curates the best vibe-coded projects. Great place to browse, and to submit your own experiments.</p></li><li><p>&#128073; Read <a href="https://kp.substack.com/p/officialvibecodingshowcase">here</a>.</p></li></ul><h4>Vibe Coding Needs Context Engineering</h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Inference by Sequoia&quot;,&quot;id&quot;:332685954,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43573bbb-0a2b-42c6-8a84-e1a55073ad3d_292x292.png&quot;,&quot;uuid&quot;:&quot;c926d0bc-3507-4c21-a77a-acfc3cfdddc9&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>Why vibes <em>alone</em> won&#8217;t ship an enterprise app. A lucid argument for moving past prompt tinkering toward systematic <em>context engineering</em>, complete with a four-pillar framework.</p></li><li><p>&#128073; Read <a href="https://inferencebysequoia.substack.com/p/vibe-coding-needs-context-engineering">here</a></p></li></ul><h4>Vibe Coding: Not Worth the Risk?</h4><ul><li><p>Author: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Carly Ayres&quot;,&quot;id&quot;:976277,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!czx2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe49397b7-2470-408c-bd95-c6f5d7895deb_451x451.png&quot;,&quot;uuid&quot;:&quot;a6c5708f-de03-4b8c-8b4f-ad0bd5f54a47&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>Two real-world fiascos: a dating-safety app leak and an AI agent nuking a production DB - illustrate what happens when security trails the vibes.</p></li><li><p>&#128073; Read <a href="https://carly.substack.com/p/vibe-coding-not-worth-the-risk">here</a>.</p></li></ul><p></p><h2>Why I&#8217;m All-In On Vibe Coding</h2><p>I&#8217;ll be tracking this space closely &#8212; for three reasons:</p><ol><li><p>To learn.  </p></li><li><p>To share what I learn with others building in public.  </p></li><li><p>And because we&#8217;re at the starting line of something big - and not every generation gets to say that.</p><p></p></li></ol><blockquote><p><strong>It&#8217;s Your Turn Now</strong><br>Build something small, silly, smart - or all three. Because the wall is cracked and it would be a pity not to peek through.</p></blockquote><p></p><div><hr></div><h2>Prompts &amp; Workflows To Get YOU Started</h2><p>These are not generic or random; I only share the prompts I&#8217;ve personally refined through multiple rounds of testing.</p><ul><li><p><a href="https://karozieminski.substack.com/i/168614463/step-your-prompt-builder">Prompt Builder</a></p></li><li><p><a href="https://karozieminski.substack.com/i/168614463/step-your-prompt-evaluator">Prompt Evaluator</a></p></li><li><p><a href="https://open.substack.com/pub/karozieminski/p/is-your-replit-looping-this-will?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Vibecoding in Replit: Anti-regression Agent</a></p></li><li><p><a href="https://open.substack.com/pub/karozieminski/p/is-your-replit-looping-this-will?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Vibecoding in Replit: Founder&#8217;s Agent</a></p></li><li><p><a href="https://github.com/karozi">Vibecoding Resources on Github</a></p></li></ul><h2></h2><blockquote><h2>TL;DR</h2><ul><li><p>The wall between creativity and code is crumbling. </p></li><li><p>Thanks to tools like Replit and Cursor, anyone with curiosity and a decent prompt can build software&#8212;no tech background required. </p></li><li><p>This roundup highlights real projects built by real people (many non-technical), why vibe coding is having a moment, what to watch out for, and how to start your own build-in-public journey.</p></li></ul></blockquote><div><hr></div><h2>Are You New Here And Enjoying This Post?</h2><ul><li><p>You might also like work by these brilliant builders: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Wyndo&quot;,&quot;id&quot;:556836,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!zTXR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac42946-717d-4e50-8477-551c5d7a3025_1638x1638.jpeg&quot;,&quot;uuid&quot;:&quot;94506ed2-41e2-414e-b9df-a0090fa428f7&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jenny Ouyang&quot;,&quot;id&quot;:282291554,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!DAbx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c08edab-ab02-4e7b-97b7-0c2aecea5e5a_1745x1479.jpeg&quot;,&quot;uuid&quot;:&quot;c93af7a7-0c1d-418f-b5a3-04a08d3cde20&quot;}" data-component-name="MentionToDOM"></span>&#8218; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Joel Salinas&quot;,&quot;id&quot;:198127390,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!v-ta!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74593f33-7938-4981-bb8c-f99899cd92b9_680x680.png&quot;,&quot;uuid&quot;:&quot;9f0e6125-f7ba-45ed-92a5-a44352296cec&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Luan Doan&quot;,&quot;id&quot;:325391669,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!VoXf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fcbef9-2a85-4e04-b491-37a8da03804c_870x870.jpeg&quot;,&quot;uuid&quot;:&quot;4bc52157-e696-47bd-9647-9a547e2992fa&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Daria Cupareanu&quot;,&quot;id&quot;:180057984,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0wqu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F490c2c09-e4c8-4265-b59e-8dde47bc8351_727x727.jpeg&quot;,&quot;uuid&quot;:&quot;28ba7a59-27cd-4ba0-a1b6-6b7051f69ff2&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ileana&quot;,&quot;id&quot;:48566145,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7729cdd9-1d0c-43c4-8846-3990bd5975a8_2200x2200.jpeg&quot;,&quot;uuid&quot;:&quot;04142396-e18c-403d-a16c-130bc519087e&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Karen Spinner&quot;,&quot;id&quot;:363410124,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28ad1170-99e0-4cb6-8a1d-f4f60c4465ef_591x591.jpeg&quot;,&quot;uuid&quot;:&quot;79f288f8-0a41-4fba-bdfb-365b64a1bb8c&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>Whatever you build, make sure it&#8217;s ethical: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Karen Smiley&quot;,&quot;id&quot;:211311675,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ff2e028-aa6a-4b0f-9154-df6c46aba4c8_800x800.jpeg&quot;,&quot;uuid&quot;:&quot;b0ecba33-5d37-447c-97a4-273fe236e5a1&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;AI Governance Lead&quot;,&quot;id&quot;:329493704,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!APiZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90813d5f-9f90-444e-8dbe-eaab90bd159e_1112x1112.png&quot;,&quot;uuid&quot;:&quot;c46c1775-d3a7-43f0-a687-fdb29d04c326&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Roi Ezra&quot;,&quot;id&quot;:48462210,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!8fK6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a92593-0de7-4a4f-8a47-a2ce54feab34_400x400.jpeg&quot;,&quot;uuid&quot;:&quot;783878c8-16f2-4e49-80b0-839ebfa836b8&quot;}" data-component-name="MentionToDOM"></span> </p></li><li><p>Not sure how to navigate the AI shift? <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Dee McCrorey&quot;,&quot;id&quot;:5651283,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de1e2383-4915-45b3-be4a-c3b39decfa39_500x500.png&quot;,&quot;uuid&quot;:&quot;3dd1ea5c-e609-4c15-ae0b-55879c947a46&quot;}" data-component-name="MentionToDOM"></span> hosts <a href="https://stackshelf.app/shelf/dee">free workshops</a> to help </p></li><li><p>And when you're ready to launch your own thing, make sure your privacy policy is solid- <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jason Rowe&quot;,&quot;id&quot;:201698027,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7436a93d-8a37-48a8-b604-af1849e4ef99_390x390.jpeg&quot;,&quot;uuid&quot;:&quot;551d1f8e-6cfb-49e8-a505-513d482299de&quot;}" data-component-name="MentionToDOM"></span>&#8217;s <a href="https://myclarity.us/">free tool</a> can help</p></li><li><p>Grab 50+ freebies from great Substack writers on <a href="https://stackshelf.app/">stackshelf.app</a></p></li><li><p>Subscribe to join <a href="https://substack.com/chat/4097137">our community</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://karozieminski.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3>Got a favorite July read I missed? </h3><p>Hit reply with the link - just make sure it&#8217;s on Substack &#129303; </p><div><hr></div><h2>Community Updates</h2><p>We&#8217;re rising, again!</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x45q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x45q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 424w, https://substackcdn.com/image/fetch/$s_!x45q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 848w, https://substackcdn.com/image/fetch/$s_!x45q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 1272w, https://substackcdn.com/image/fetch/$s_!x45q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x45q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png" width="1190" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:1190,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:53884,&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://karozieminski.substack.com/i/170155836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.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_!x45q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 424w, https://substackcdn.com/image/fetch/$s_!x45q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 848w, https://substackcdn.com/image/fetch/$s_!x45q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 1272w, https://substackcdn.com/image/fetch/$s_!x45q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5781d00-f1e4-4004-bbec-1fd56183650d_1190x280.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p> </p>]]></content:encoded></item><item><title><![CDATA[The Self-Improving Prompt System That Gets Smarter With Every Use]]></title><description><![CDATA[Instantly build, score, and improve your AI prompts. Even if you &#8220;aren&#8217;t technical.&#8221;]]></description><link>https://karozieminski.substack.com/p/the-self-improving-prompt-system</link><guid isPermaLink="false">https://karozieminski.substack.com/p/the-self-improving-prompt-system</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Fri, 01 Aug 2025 06:34:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VRIB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h6><em><strong>TL;DR</strong></em></h6><h6><em>The Builder-Evaluator Loop is a two-prompt system that writes, scores, and rewrites AI prompts against a 35-criteria rubric across 7 categories (Clarity, Specificity, Context, Format, Tone, Output, Edge Cases). The Prompt Builder drafts the prompt. The Prompt Evaluator scores it from 0 to 175 and returns a revision. This is the 2026 evolution of The Self-Improving Prompt System I published in July 2025. Works in ChatGPT, Claude, Perplexity, and Gemini. Saves credits, kills trial-and-error, and turns prompt writing into a measurable workflow.</em></h6><div><hr></div><p>I still hear: &#8216;&#8216;I&#8217;m not technical&#8217;&#8217; or &#8216;&#8216;The results were meh&#8217;&#8217; from some of my friends. </p><p>You&#8217;re <strong>not</strong> alone if your AI experience still feels not quite right - or a bit like tossing darts blindfolded: sometimes they hit, sometimes they puncture your hard-won patience. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VRIB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VRIB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png 424w, https://substackcdn.com/image/fetch/$s_!VRIB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png 848w, https://substackcdn.com/image/fetch/$s_!VRIB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png 1272w, https://substackcdn.com/image/fetch/$s_!VRIB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VRIB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png" width="2297" height="1263" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1263,&quot;width&quot;:2297,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4576854,&quot;alt&quot;:&quot;Karo Zieminski, Product With Attitude &#8212; minimalist stick-figure girl blindly throwing darts at a target while a panicked boy ducks; visual metaphor for inconsistent AI prompting outcomes.&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://karozieminski.substack.com/i/168614463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6181bef8-6411-457e-95e1-39e193f018be_2336x1461.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Karo Zieminski, Product With Attitude &#8212; minimalist stick-figure girl blindly throwing darts at a target while a panicked boy ducks; visual metaphor for inconsistent AI prompting outcomes." title="Karo Zieminski, Product With Attitude &#8212; minimalist stick-figure girl blindly throwing darts at a target while a panicked boy ducks; visual metaphor for inconsistent AI prompting outcomes." srcset="https://substackcdn.com/image/fetch/$s_!VRIB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png 424w, https://substackcdn.com/image/fetch/$s_!VRIB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png 848w, https://substackcdn.com/image/fetch/$s_!VRIB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.png 1272w, https://substackcdn.com/image/fetch/$s_!VRIB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0a5ec9e-d0c3-4ede-ade3-bb1b0b6670e5_2297x1263.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>This simple, step-by-step prompt system unlocks ChatGPT&#8217;s potential for better, more consistent results. No technical skills required. You&#8217;ll be ready for reliable answers in under two minutes.</p><p>Jump in and explore the step-by-step prompt system now; I&#8217;ll break down the science behind its consistent results at the end.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" width="1456" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11402,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p><em>Hey, I&#8217;m Karo Zieminski </em>&#129303;<em> </em></p><p><em>AI Product Manager and <a href="https://karozieminski.substack.com/p/substack-creator-tools">builder</a>. </em></p><p><em>I write Product with Attitude, an AI newsletter for thousands of subscribers developing critical AI literacy the only way it sticks: through practice.</em></p><p><em>We don&#8217;t just use AI. We build workflows, automations, and products with it, while studying how AI itself is built, positioned, and woven into our work.</em></p><p><em>If you&#8217;re new here, welcome! Here&#8217;s what you might have missed:</em></p><ul><li><p><em><strong><a href="https://karozieminski.substack.com/p/ai-prompting-techniques-reasoning-models-2026">The Only AI Prompting Guide That Works On Reasoning Models (And Our Cognition)</a></strong></em></p></li><li><p><em><strong><a href="https://vault.productwithattitude.com/#/">AttitudeVault</a></strong></em>: <em>my searchable prompt and Skills library, including community-shared prompts from Product with Attitude readers.</em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dz9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7643495-34e2-40ce-abad-d894412325db_2396x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11749,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What&#8217;s Inside</h2><ul><li><p>Why a 35-criteria rubric beats &#8220;rewrite until it feels right&#8221;</p></li><li><p>The 7 rubric categories and what each scores</p></li><li><p><strong>The Prompt Builder</strong> prompt (free, copy-paste ready)</p></li><li><p><strong>The Prompt Evaluator</strong> prompt (paid, the scoring engine)</p></li><li><p>A worked example: a low-scoring prompt rewritten to high-scoring</p></li><li><p>How to chain the two into a single agent loop</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Why Trial-and-Error Prompting Is an Expensive Habit in 2026</h2><p>A vague prompt run a thousand times burns a thousand cycles of credits to find the version that should have existed on attempt one.</p><p>A 35-criteria rubric is not academic. It&#8217;s a checklist that turns a hunch into a score. The score tells you which knob to turn, in what direction, by how much.</p><p>The shift: prompt engineering becomes prompt evaluation. The skill is no longer crafting the perfect sentence. The skill is scoring the sentence you already have.</p><h3>The 7 Categories of the 35-Criteria Prompt Rubric</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t_aW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t_aW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 424w, https://substackcdn.com/image/fetch/$s_!t_aW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 848w, https://substackcdn.com/image/fetch/$s_!t_aW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 1272w, https://substackcdn.com/image/fetch/$s_!t_aW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t_aW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png" width="1434" height="668" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:668,&quot;width&quot;:1434,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:329561,&quot;alt&quot;:&quot;The 7 categories of the 35-Criteria Prompt Rubric &#8212; Clarity, Specificity, Context, Format, Tone, Output, and Edge Cases &#8212; with what each scores and why it matters for the Builder-Evaluator Loop.&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://karozieminski.substack.com/i/168614463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The 7 categories of the 35-Criteria Prompt Rubric &#8212; Clarity, Specificity, Context, Format, Tone, Output, and Edge Cases &#8212; with what each scores and why it matters for the Builder-Evaluator Loop." title="The 7 categories of the 35-Criteria Prompt Rubric &#8212; Clarity, Specificity, Context, Format, Tone, Output, and Edge Cases &#8212; with what each scores and why it matters for the Builder-Evaluator Loop." srcset="https://substackcdn.com/image/fetch/$s_!t_aW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 424w, https://substackcdn.com/image/fetch/$s_!t_aW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 848w, https://substackcdn.com/image/fetch/$s_!t_aW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 1272w, https://substackcdn.com/image/fetch/$s_!t_aW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48fde07b-02c5-4195-8a16-6e25c4088019_1434x668.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Each prompt I run gets a score across all seven. A prompt scoring below 105 (60%) gets rewritten. A prompt scoring above 140 (80%) ships.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The Builder-Evaluator Loop: a 35-criteria Prompt Rubric</h2><p>Two prompts. One writes, one scores. The scorer hands the writer a rubric, the writer rewrites, the scorer scores again. The loop stops when the score crosses a threshold I set.</p><p>Your setup: </p><ul><li><p>ChatGPT Plus</p></li><li><p>Prompt Builder</p></li><li><p>Prompt Evaluator</p></li></ul><p>That&#8217;s it.</p><p>This simple trio works for everyone, from building advanced AI agents to writing a best man speech.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The Prompt Builder </h2><p>Copy-paste into any model. Drafts the first version of a prompt against the rubric.</p>
      <p>
          <a href="https://karozieminski.substack.com/p/the-self-improving-prompt-system">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[I Broke Replit]]></title><description><![CDATA[Building in Public: The official patch notes, episode 1.]]></description><link>https://karozieminski.substack.com/p/i-broke-replit-so-you-dont-have-to</link><guid isPermaLink="false">https://karozieminski.substack.com/p/i-broke-replit-so-you-dont-have-to</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Mon, 14 Jul 2025 15:59:43 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/47c36ec6-e90c-4f09-b1ab-ba53cfd9c0bc_2337x1458.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h6><em><strong>TL;DR</strong></em></h6><h6><em>In 2025, I built <strong>StackShelf</strong>, a shelf-in-bio for Substack creators, using <strong>Replit</strong> and <strong>ChatGPT</strong>. The launch nearly died on <strong>Google OAuth</strong>: every tester got locked out, I was the only one who could log in, and Replit kept fixing one thing while breaking another. The bug took multiple days and a holiday&#8217;s worth of bad dreams to crack. The full story is below. The prompt that finally fixed it lives behind the paywall.</em></h6><div><hr></div><p>There are two kinds of product updates.</p><ul><li><p>The ones you proudly list in changelogs and marketing decks.</p></li><li><p>The ones you bury deep under &#8220;general improvements&#8221; because, well, &#8220;accidentally deleted the auth flow&#8221; feels too raw.</p></li></ul><p>This series is about the second kind.</p><p>Because while StackShelf <em>now</em> behaves like a real, grown-up platform, just two weeks ago it was being held together by stubbornness, and the kind of optimism that borders on delusion.</p><p>So here it is - the first post: a full rundown of the behind-the-scenes process, bugs, errors, and mysterious side effects that made up the sleep-deprived road to something that finally works.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png" width="1456" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11402,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&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="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!nLR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 424w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 848w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1272w, https://substackcdn.com/image/fetch/$s_!nLR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d289b5f-d579-42ca-9a7c-5f5944575118_2396x202.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Hey, I&#8217;m Karo Zieminski </em>&#129303;<em> </em></p><p><em>AI Product Manager and <a href="https://karozieminski.substack.com/p/substack-creator-tools">builder</a>. </em></p><p><em>I write Product with Attitude, an AI newsletter for thousands of subscribers developing critical AI literacy the only way it sticks: through practice.</em></p><p><em>We don&#8217;t just use AI. We build workflows, automations, and products with it, while studying how AI itself is built, positioned, and woven into our work.</em></p><p><em>If you&#8217;re new here, welcome! Here&#8217;s what you might have missed:</em></p><ul><li><p><em><strong><a href="https://karozieminski.substack.com/p/claude-design-review-prompts-figma">Claude Design Review &amp; Prompts</a></strong></em></p></li><li><p><em><strong><a href="https://open.substack.com/pub/karozieminski/p/is-your-replit-looping-this-will?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Is Your Replit Looping? This Will Help.</a></strong></em></p></li><li><p><em><strong><a href="https://karozieminski.substack.com/p/perplexity-computer-review-examples-guide">Perplexity Computer: What I Built in One Night</a></strong></em></p></li><li><p><em><strong><a href="https://karozieminski.substack.com/p/runaway-subscribe-button">I Built a Runaway Subscribe Button. It Brought 70 Subscribers in 6 Days. </a></strong></em></p><p></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png" width="1456" height="12" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:12,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023,&quot;alt&quot;:&quot;Transparent divider.&quot;,&quot;title&quot;:&quot;Transparent divider.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/192454016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ec130a-11d7-4048-bcac-baffaeaef8a5_2400x112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Transparent divider." title="Transparent divider." srcset="https://substackcdn.com/image/fetch/$s_!eC5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 424w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 848w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1272w, https://substackcdn.com/image/fetch/$s_!eC5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7510a08d-6fa8-429e-b33e-651245d93a2d_2400x19.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dz9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7643495-34e2-40ce-abad-d894412325db_2396x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11749,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What&#8217;s Inside</h2><p>Why Substack creators need a shelf-in-bio. The non-negotiables I scribbled before writing a single prompt. The Google OAuth bug that locked out every tester except me. The pattern of fixes that kept breaking the previous fix. The Reddit rabbit hole that led to the prompt that finally worked. And the community that turned a broken MVP into a real product.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dz9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7643495-34e2-40ce-abad-d894412325db_2396x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11749,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!Dz9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 424w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 848w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1272w, https://substackcdn.com/image/fetch/$s_!Dz9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7643495-34e2-40ce-abad-d894412325db_2396x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Why I Built StackShelf</h2><p>Substack is designed for writing and building an audience, not for selling.</p><blockquote><p>But here&#8217;s the honest truth: most Substackers absolutely want to monetize their expertise.</p></blockquote><p>And picking the best way to do it reminds me of picking the least terrible bathroom at a music festival -none inspire confidence, but you have to go:</p><ul><li><p>Gumroad, Amazon, etc. - your products drift through cyberspace, lost among millions, nowhere near your actual readers.</p></li><li><p>Rely on blog posts - great, until they disappear in the feed and your readers struggle to find it <em>when</em> they need it</p></li><li><p>Cross your fingers and hope new readers just stumble across your offer</p></li></ul><p>If you&#8217;ve ever lost your own product in your own newsletter, please know you&#8217;re in excellent company. And you deserve better.</p><div class="callout-block" data-callout="true"><p><strong>So I built StackShelf:</strong></p><ul><li><p><strong>For readers</strong>: a simple way to discover everything Substackers have to offer</p></li><li><p><strong>For writers</strong>: a shelf-in-bio: one gorgeous link where you can put everything you offer on proud display</p></li></ul></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Assumptions &amp; Non-Negotiables</h2><h3>Assumptions</h3><p>Going in, I assumed three things:</p><ul><li><p>Substackers care about trust</p></li><li><p>Substackers want to support each other</p></li><li><p>Substackers need something like StackShelf &#8211; this was instantly validated: <a href="https://open.substack.com/pub/karozieminski/p/how-i-ended-up-building-a-digital?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">this post</a> brought in 88 new subscribers and and a flood of DMs.</p><blockquote><p><strong>The 88-subscriber tell.</strong> One post about why StackShelf needs to exist pulled in 88 new subscribers in a few days. That's the signal that confirmed the assumption. Not a survey. Not a focus group. Just readers showing up.</p></blockquote></li></ul><h3>Non-negotiables </h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fPcy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fPcy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png 424w, https://substackcdn.com/image/fetch/$s_!fPcy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png 848w, https://substackcdn.com/image/fetch/$s_!fPcy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png 1272w, https://substackcdn.com/image/fetch/$s_!fPcy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fPcy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png" width="1444" height="674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:674,&quot;width&quot;:1444,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:316445,&quot;alt&quot;:&quot;StackShelf non-negotiables table listing eight pre-code product decisions including creator-first design, shelf-in-bio bento style, 1-click redirects, warm gradient palette, and privacy-first analytics with their trade-offs.&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://karozieminski.substack.com/i/168201134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="StackShelf non-negotiables table listing eight pre-code product decisions including creator-first design, shelf-in-bio bento style, 1-click redirects, warm gradient palette, and privacy-first analytics with their trade-offs." title="StackShelf non-negotiables table listing eight pre-code product decisions including creator-first design, shelf-in-bio bento style, 1-click redirects, warm gradient palette, and privacy-first analytics with their trade-offs." srcset="https://substackcdn.com/image/fetch/$s_!fPcy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png 424w, https://substackcdn.com/image/fetch/$s_!fPcy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png 848w, https://substackcdn.com/image/fetch/$s_!fPcy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.png 1272w, https://substackcdn.com/image/fetch/$s_!fPcy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463c03ca-1a28-4bec-ad89-f7955a1a6036_1444x674.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 class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Design Choices</h2><ul><li><p>Creator first: every decision must prioritize their needs</p></li><li><p>Shelf-in-bio: beautiful bento-style showcase, no compromises</p></li><li><p>Visual hierarchy: clear information architecture, users are guided naturally </p></li><li><p>Performance as design: Speed and responsiveness as essential design features</p></li><li><p>1-click redirects to Gumroad (or wherever the products actually live)</p></li><li><p>Color palette: no corpo colors, warm gradients to create optimism and energy</p></li><li><p>Typography: not another generic vibe coding font</p></li><li><p>Privacy-first analytics (click counting - yes, tracking who clicked - no)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Tools I Used to Build StackShelf</h2><ul><li><p>ChatGPT: Thinking buddy, critic, PRDs, value prop canvas, and prompts for Replit.</p></li><li><p>Figma: Sketches and design files for Replit.</p></li><li><p><a href="https://replit.com/refer/karosubstack">Replit</a>: Development, deployment and documentation.</p></li><li><p><a href="https://github.com/karozi">Github</a>: Code repository.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What Broke When I Shipped StackShelf?</h2><p>There are plenty to choose from, but today, let&#8217;s talk about making Google OAuth work in Replit. This one&#8217;s got more twists than a season finale of Game of Thrones.</p><p>Right before going on holidays, I decided it was the <em>perfect</em> time to ship the MVP.</p><p>My plan was to send it out for testing while I&#8217;m away, then come back to an inbox overflowing with thoughtful, actionable feedback. The sort of feedback that makes you want to hug strangers.</p><p>You can already see where this is going. Let&#8217;s never do that again.</p><p>Not one tester could log in.</p><p>Not. A. Single. One.</p><p>I could, of course, but I&#8217;ve long suspected Replit finds me easier to humor than others.</p><h3>Error 1</h3><p>I didn&#8217;t panic at first. <em>It&#8217;ll be a quick fix</em>, I thought, just like every other time.</p><p>So, there I was: making dinner, packing my suitcase, toggling between folding socks and debugging in Replit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gk9j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gk9j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png 424w, https://substackcdn.com/image/fetch/$s_!Gk9j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png 848w, https://substackcdn.com/image/fetch/$s_!Gk9j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png 1272w, https://substackcdn.com/image/fetch/$s_!Gk9j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gk9j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png" width="2536" height="1564" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1564,&quot;width&quot;:2536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6336524,&quot;alt&quot;:&quot;Humorous product cartoon of a character accidentally packing spaghetti into her suitcase while vibe coding in Replit. Proof that multitasking isn&#8217;t always productive. Illustrated by Karo Z, Product With Attitude, using Procreate. &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://karozieminski.substack.com/i/168201134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b30381-4793-4819-906f-112fcafbdb2c_2571x1582.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Humorous product cartoon of a character accidentally packing spaghetti into her suitcase while vibe coding in Replit. Proof that multitasking isn&#8217;t always productive. Illustrated by Karo Z, Product With Attitude, using Procreate. " title="Humorous product cartoon of a character accidentally packing spaghetti into her suitcase while vibe coding in Replit. Proof that multitasking isn&#8217;t always productive. Illustrated by Karo Z, Product With Attitude, using Procreate. " srcset="https://substackcdn.com/image/fetch/$s_!Gk9j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png 424w, https://substackcdn.com/image/fetch/$s_!Gk9j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png 848w, https://substackcdn.com/image/fetch/$s_!Gk9j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.png 1272w, https://substackcdn.com/image/fetch/$s_!Gk9j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36b3967-ebf9-4c50-996a-1b7fe1cddc53_2536x1564.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>Replit responded promptly, made a fix, tested it, and declared victory. </p><p>The agent was pleased with itself. </p><p>My testers, on the other hand, were not.</p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Kacper Wojaczek&quot;,&quot;id&quot;:238671305,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2b4d98-d409-4944-a3ba-f3afa7612ea4_447x447.jpeg&quot;,&quot;uuid&quot;:&quot;e53e96ac-f526-4d96-8b62-8debf2cda5cd&quot;}" data-component-name="MentionToDOM"></span>, who is much kinder than the situation deserved, stayed on the line as we attempted another round of digital whack-a-mole. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RlcQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RlcQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png 424w, https://substackcdn.com/image/fetch/$s_!RlcQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png 848w, https://substackcdn.com/image/fetch/$s_!RlcQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png 1272w, https://substackcdn.com/image/fetch/$s_!RlcQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RlcQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png" width="2321" height="1149" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1149,&quot;width&quot;:2321,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4336173,&quot;alt&quot;:&quot;Humorous product cartoon of people frustrated while vibe coding in Replit. Developer meme style. Illustrated by Karo Z, Product With Attitude, using Procreate. &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://karozieminski.substack.com/i/168201134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fbe41bc-9ee1-4cdb-b0cb-b0b884dda36a_2336x1165.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Humorous product cartoon of people frustrated while vibe coding in Replit. Developer meme style. Illustrated by Karo Z, Product With Attitude, using Procreate. " title="Humorous product cartoon of people frustrated while vibe coding in Replit. Developer meme style. Illustrated by Karo Z, Product With Attitude, using Procreate. " srcset="https://substackcdn.com/image/fetch/$s_!RlcQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png 424w, https://substackcdn.com/image/fetch/$s_!RlcQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png 848w, https://substackcdn.com/image/fetch/$s_!RlcQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.png 1272w, https://substackcdn.com/image/fetch/$s_!RlcQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfac5db-d2d3-472d-9410-e37a943d54fe_2321x1149.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><blockquote><p>Still, nothing. The login remained an exclusive club, of which I was the only member.</p></blockquote><p>It dragged on for hours.</p><ul><li><p><strong>Replit fixed the authentication</strong> &#8594; broke the redirect. </p></li><li><p><strong>It fixed the redirect</strong> &#8594; broke the authentication, and I started rubbing my temples.</p></li><li><p><strong>Got that back</strong> &#8594; the login button vanished, no warning, no farewell note</p></li><li><p><strong>Re-added the button</strong> &#8594; and with impressive efficiency, everything looped right back to error one.</p></li></ul><p>By this point I was saying things I&#8217;d have to apologize for if computers had feelings. It was 2 am and I realized this bug wasn&#8217;t going down tonight - so I did.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ygRA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ygRA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png 424w, https://substackcdn.com/image/fetch/$s_!ygRA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png 848w, https://substackcdn.com/image/fetch/$s_!ygRA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png 1272w, https://substackcdn.com/image/fetch/$s_!ygRA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ygRA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png" width="2310" height="1447" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1447,&quot;width&quot;:2310,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5235850,&quot;alt&quot;:&quot;Humorous product cartoon of a character obsessed with vibe coding in Replit and being dragged to bed at 2 am. Developer meme vibe. Illustrated by Karo Z, Product With Attitude, using Procreate. &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://karozieminski.substack.com/i/168201134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29fee91-0f22-4079-a44c-153d9dfde73b_2337x1458.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Humorous product cartoon of a character obsessed with vibe coding in Replit and being dragged to bed at 2 am. Developer meme vibe. Illustrated by Karo Z, Product With Attitude, using Procreate. " title="Humorous product cartoon of a character obsessed with vibe coding in Replit and being dragged to bed at 2 am. Developer meme vibe. Illustrated by Karo Z, Product With Attitude, using Procreate. " srcset="https://substackcdn.com/image/fetch/$s_!ygRA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png 424w, https://substackcdn.com/image/fetch/$s_!ygRA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png 848w, https://substackcdn.com/image/fetch/$s_!ygRA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.png 1272w, https://substackcdn.com/image/fetch/$s_!ygRA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff26f4fb1-65e6-4673-8e13-da40a4cc72ef_2310x1447.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></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Replit Google Oauth Fix</h2><p>While on holidays, I kept having replit-related dreams and continued digging into the problem.</p><p>It turns out, Google OAuth is a common issue on Replit: I discovered entire Reddit threads devoted to solving it.</p><p>And I started taking notes. I dug into their complaints, analyzed patterns, and kept refining a prompt that might solve the problem before it started.</p><p>And it did.</p><p>When authentication finally worked, I could hardly believe it. I just sat there, afraid to touch anything. It was less victory than cautious disbelief, but hey, I&#8217;ll take what I can get.</p><div class="callout-block" data-callout="true"><p style="text-align: center;"><em><strong>Paid members get the prompt that fixed it.</strong> <strong><a href="https://open.substack.com/pub/karozieminski/p/is-your-replit-looping-this-will?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Read the gated version here.</a></strong></em></p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What Does Debugging Replit Teach You About Building Solo?</h2><p>Every single bug taught me something, not just about state management, redirect logic, or the unique flavors of API weirdness, but about resilience, boundaries, and the specific psychology required to debug a mess of your own making.</p><p>I built my bulletproof <a href="https://open.substack.com/pub/karozieminski/p/is-your-replit-looping-this-will?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">prompts</a> out of all this - and, miraculously, they work every time.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;83ab6905-58da-43be-82ea-b6f8927c19ba&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Is Your Replit Looping? This Will Help.&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2025-07-21T13:35:02.188Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa03cc63-76ea-409e-8c49-8c0f755abcba_2336x1458.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/is-your-replit-looping-this-will&quot;,&quot;section_name&quot;:&quot;Build in Public&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:168705281,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:42,&quot;comment_count&quot;:3,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>The Community Behind StackShelf</h2><p>In product work, you know you&#8217;re onto something special when people show up early -and stay. When they stick around after the first test fails or the prototype breaks, they stop being &#8220;testers&#8221; and start becoming co-creators.</p><p>I&#8217;ve been lucky to find those people. StackShelf is, to an embarrassing degree, the product of their patience.</p><ul><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Kacper Wojaczek&quot;,&quot;id&quot;:238671305,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2b4d98-d409-4944-a3ba-f3afa7612ea4_447x447.jpeg&quot;,&quot;uuid&quot;:&quot;6d4780af-756b-4d33-a775-ddb04e1626d8&quot;}" data-component-name="MentionToDOM"></span>: a quiet force of leadership and encouragement from day one. He&#8217;s contributed so much, I drew him his own doodle avatar (scroll up).</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;David Weiss&quot;,&quot;id&quot;:45895848,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c694439-4eb7-4571-a61a-338afeda9af9_447x447.png&quot;,&quot;uuid&quot;:&quot;42199bee-c31f-4108-b847-7de4a565a4db&quot;}" data-component-name="MentionToDOM"></span>: another engineering leader, landing a hand even though he's busy building his own app for busy parents.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Billie Moon&quot;,&quot;id&quot;:321072419,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F473fd128-caf6-4545-907c-3a1cc3f4628c_2706x2706.jpeg&quot;,&quot;uuid&quot;:&quot;9801780f-57fb-4ea9-a154-30c3a843a720&quot;}" data-component-name="MentionToDOM"></span>: the first author and illustrator to join. That trust means everything!</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Karen Smiley&quot;,&quot;id&quot;:211311675,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a4ff185-4c08-403b-9acf-3724ce2e9f54_300x300.jpeg&quot;,&quot;uuid&quot;:&quot;e2256886-3fef-40c0-ab5f-94d5e97a8312&quot;}" data-component-name="MentionToDOM"></span> &amp; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jason Rowe&quot;,&quot;id&quot;:201698027,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7436a93d-8a37-48a8-b604-af1849e4ef99_390x390.jpeg&quot;,&quot;uuid&quot;:&quot;6c8bab08-3d8e-487e-89f7-fed51f1855f7&quot;}" data-component-name="MentionToDOM"></span>: the ethics and privacy conscience of Substack.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Yana G.Y.&quot;,&quot;id&quot;:136431837,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e1df9c-858c-443b-a58b-4ace9d9f0123_658x867.jpeg&quot;,&quot;uuid&quot;:&quot;49e1a3b3-50ba-4ecf-876d-662cfd063883&quot;}" data-component-name="MentionToDOM"></span>: my go-to for Substack strategies and the only person who can explain algorithms without sighing.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Anfernee&quot;,&quot;id&quot;:154317088,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f856d6f-7844-44f4-992b-000458fe9bb8_1080x1080.png&quot;,&quot;uuid&quot;:&quot;f357c38f-6f08-4843-859c-f95eff16900c&quot;}" data-component-name="MentionToDOM"></span>: the go-to digital product builder who can turn a napkin sketch into a product before I find a pen</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Mike Goitein&quot;,&quot;id&quot;:5921957,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3334fe7-8c45-4476-9b27-d5047c638bf1_731x731.jpeg&quot;,&quot;uuid&quot;:&quot;1db99dc7-4fea-4b05-9aa6-5a8e9a76760b&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Bechem Ayuk&quot;,&quot;id&quot;:108933940,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4aaf4a51-1383-4ea2-b0a3-dd59f34df302_853x853.jpeg&quot;,&quot;uuid&quot;:&quot;257523f8-99cd-4446-9b48-dda1f2312350&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Carolina Poll&quot;,&quot;id&quot;:5554305,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78f28862-4d69-42a5-ba33-c35708751283_1004x1004.jpeg&quot;,&quot;uuid&quot;:&quot;7dba853e-3775-44d1-8705-69b5d4af258a&quot;}" data-component-name="MentionToDOM"></span> &#8211; product and design thinkers whose perspectives will help shape the next phase of testing</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Orel Zilberman&quot;,&quot;id&quot;:51141391,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5cee6df-f85a-422b-a19e-655ff6c8a668_1024x1024.png&quot;,&quot;uuid&quot;:&quot;9cdebc61-7b97-43fe-b654-990c21778db0&quot;}" data-component-name="MentionToDOM"></span>: Creator of <a href="https://www.writestack.io/?via=pwa">Writestack</a> and a strong source of inspiration</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Dee McCrorey&quot;,&quot;id&quot;:5651283,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de1e2383-4915-45b3-be4a-c3b39decfa39_500x500.png&quot;,&quot;uuid&quot;:&quot;cd8fd349-22e0-41e0-a2a2-aab68560b7b2&quot;}" data-component-name="MentionToDOM"></span> and <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Joel Salinas&quot;,&quot;id&quot;:198127390,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!v-ta!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74593f33-7938-4981-bb8c-f99899cd92b9_680x680.png&quot;,&quot;uuid&quot;:&quot;7c54bde1-1c5d-4168-be6e-a6c1f577a739&quot;}" data-component-name="MentionToDOM"></span> - the kind of people you want by your side while navigating the AI transition, or honestly, just a Tuesday</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ileana&quot;,&quot;id&quot;:48566145,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7729cdd9-1d0c-43c4-8846-3990bd5975a8_2200x2200.jpeg&quot;,&quot;uuid&quot;:&quot;0c0c50f0-7afe-46a5-b1a4-658bac2f6a51&quot;}" data-component-name="MentionToDOM"></span> &#8211; my favorite designer in the world (we go way back). She just joined Substack and her presence is a gift to the platform.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Burk&quot;,&quot;id&quot;:87094228,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2fcf295-9bfb-4bb3-bbc6-7d6eece8a3ed_542x542.png&quot;,&quot;uuid&quot;:&quot;6f772371-9e18-4e06-a1b8-717407e11628&quot;}" data-component-name="MentionToDOM"></span> &#8211; who generously agreed to write a post about StackShelf on his excellent blog. That support goes a long way.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Astrid Sadaya&quot;,&quot;id&quot;:187000473,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeed0a3c-55ba-4307-8e91-a3043578bbf4_800x800.jpeg&quot;,&quot;uuid&quot;:&quot;5fce9fa5-3a99-48ce-acc4-8231e03a1c1d&quot;}" data-component-name="MentionToDOM"></span> - Our first adventurous spirit, poet and life coach to join the journey.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Finn Tropy&quot;,&quot;id&quot;:121030277,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F955261d6-2cab-462a-96e7-d82ef88cbd20_354x454.png&quot;,&quot;uuid&quot;:&quot;b6bb1301-c31c-4501-8953-7572f1f11e59&quot;}" data-component-name="MentionToDOM"></span>: The mastermind behind all things Substack data, making sense of the numbers like no other.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Juan Gonzalez&quot;,&quot;id&quot;:14352331,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!MWDc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72639981-2519-421d-ac8e-b1cea2473acb_600x600.png&quot;,&quot;uuid&quot;:&quot;7c088cbc-e7d0-4b9a-af2d-1d4f68ade3b6&quot;}" data-component-name="MentionToDOM"></span>: A fellow obsessive learner, always curious and diving deep into new knowledge.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;IS IT PROPAGANDA?&#174;&quot;,&quot;id&quot;:147149180,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!GMRe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe67fc067-157f-43d4-9ccb-6b76a82d2856_796x796.jpeg&quot;,&quot;uuid&quot;:&quot;837931bc-d6b5-4f7e-a4e7-23395d402d6c&quot;}" data-component-name="MentionToDOM"></span>: our very first supporter from the world of politics.</p></li><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jenny Ouyang&quot;,&quot;id&quot;:282291554,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c08edab-ab02-4e7b-97b7-0c2aecea5e5a_1745x1479.jpeg&quot;,&quot;uuid&quot;:&quot;ce0892d8-5f80-4bdd-b6cd-4cdafe0038a8&quot;}" data-component-name="MentionToDOM"></span>: A scientist turned developer, there&#8217;s really nothing she can&#8217;t do</p></li></ul><div class="callout-block" data-callout="true"><p>To each of you: thank you. I assembled the parts, you gave it a heartbeat. To my readers - you can now see their creator shelves on <strong><a href="https://stackshelf.app/">stackshelf.app</a></strong></p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Final Patch Notes</h3><ul><li><p>StackShelf is live and <strong>in testing</strong></p></li><li><p>You can sign in, even with Google </p></li><li><p>I still say &#8220;just one last fix&#8221; and mean it every time</p></li></ul><p><a href="https://open.substack.com/pub/karozieminski/p/is-your-replit-looping-this-will?r=gngtc&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Paid members get access to my bulletproof Replit prompts</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Why It&#8217;s Important To Share This Post</h3><p>We need to kick off the <a href="https://online.wharton.upenn.edu/blog/what-is-the-network-effect/#:~:text=The%20network%20effect%20is%20a,back%20to%20the%20internet%20itself.">network effects.</a></p><p>If you're not familiar with network effects, think of it like this:</p><ul><li><p>Every share brings more eyes</p></li><li><p>Each new set of eyes = more readers for everyone</p></li><li><p>Some of these readers are creators themselves = more content</p></li><li><p>More content = even more eyes and shares</p></li></ul><p>That&#8217;s how we&#8217;ll build the viral loop together.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Keep Reading</h2><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8a42bc00-9760-407f-b201-e03c6098174e&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I Ended Up Building a Peer-Peer Marketplace For Substack&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2025-05-25T14:23:47.856Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5edd5666-8b1f-4301-aec7-892526916fce_2571x1581.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/how-i-ended-up-building-a-digital&quot;,&quot;section_name&quot;:&quot;Build With Attitude&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:164290775,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:91,&quot;comment_count&quot;:47,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;2ca69b6b-7353-45f8-b0a0-164eb9f19842&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Tools I&#8217;ve Built (and What&#8217;s Coming Next)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-04-25T15:00:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cc8dc73-8893-4b6d-a592-7ed0a7818435_2400x1600.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/substack-creator-tools&quot;,&quot;section_name&quot;:&quot;Premium Resources&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:183466280,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:40,&quot;comment_count&quot;:0,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b1c1344d-8ae8-47f5-afa4-887fcb354279&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I Built Product with Attitude from 0 to Bestseller, without Pretending I Have a Viral Playbook&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 18K+ community growing critical AI literacy by immersion.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-05-20T08:06:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fbc4980-e08a-4302-8668-655306951647_2401x1260.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://karozieminski.substack.com/p/publication-as-product-newsletter-framework&quot;,&quot;section_name&quot;:&quot;Substack Growth&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:196969854,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:112,&quot;comment_count&quot;:27,&quot;publication_id&quot;:4097137,&quot;publication_name&quot;:&quot;Product with Attitude&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KJxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f411cce-3771-42d9-965e-1c01efe464eb_986x986.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png" width="1456" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4180,&quot;alt&quot;:&quot;Section divider&quot;,&quot;title&quot;:&quot;Section divider&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/184344836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Section divider" title="Section divider" srcset="https://substackcdn.com/image/fetch/$s_!jVAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 424w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 848w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1272w, https://substackcdn.com/image/fetch/$s_!jVAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa17b1657-2e33-4bc2-b978-23134ab2fb0e_2396x335.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>Community Updates</strong></h2><p><em>We&#8217;re rising again!</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_!99jW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!99jW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png 424w, https://substackcdn.com/image/fetch/$s_!99jW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png 848w, https://substackcdn.com/image/fetch/$s_!99jW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png 1272w, https://substackcdn.com/image/fetch/$s_!99jW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!99jW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png" width="620" height="264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:264,&quot;width&quot;:620,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61100,&quot;alt&quot;:&quot;Karo, AI PM, the brains behind Product With Attitude and viral doodler is getting featured as #19 raising in technology.&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://karozieminski.substack.com/i/168201134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Karo, AI PM, the brains behind Product With Attitude and viral doodler is getting featured as #19 raising in technology." title="Karo, AI PM, the brains behind Product With Attitude and viral doodler is getting featured as #19 raising in technology." srcset="https://substackcdn.com/image/fetch/$s_!99jW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png 424w, https://substackcdn.com/image/fetch/$s_!99jW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png 848w, https://substackcdn.com/image/fetch/$s_!99jW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.png 1272w, https://substackcdn.com/image/fetch/$s_!99jW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc682e51f-1be8-4adf-980e-3a26ca308faf_620x264.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 class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:134561499,&quot;comment&quot;:{&quot;id&quot;:134561499,&quot;date&quot;:&quot;2025-07-12T15:18:53.715Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Insane! We&#8217;ve just surpassed 1,700 members! &#127881; \n\nThat means 700 of you joined in the last five weeks.\n\nA huuuuge thanks to each and every one of you!&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Insane! We&#8217;ve just surpassed 1,700 members! &#127881;&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;That means &quot;},{&quot;type&quot;:&quot;text&quot;,&quot;marks&quot;:[{&quot;type&quot;:&quot;bold&quot;}],&quot;text&quot;:&quot;700&quot;},{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot; of you joined in the last five weeks.&quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;marks&quot;:[{&quot;type&quot;:&quot;bold&quot;}],&quot;text&quot;:&quot;A huuuuge thanks to each and every one of you!&quot;}]}]},&quot;restacks&quot;:0,&quot;reaction_count&quot;:70,&quot;attachments&quot;:[{&quot;id&quot;:&quot;387d3093-1195-495d-af03-0e0ca76a0bd6&quot;,&quot;type&quot;:&quot;image&quot;,&quot;imageUrl&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e0011de-0c65-40c8-821a-06eebd679219_1315x869.png&quot;,&quot;imageWidth&quot;:1315,&quot;imageHeight&quot;:869,&quot;explicit&quot;:false}],&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;user_id&quot;:27968736,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dda3ae7-89a5-4454-b75f-29fc7336ed33_1286x1288.jpeg&quot;,&quot;user_bestseller_tier&quot;:null},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bbuT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bbuT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 424w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 848w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1272w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png" width="1456" height="145" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:145,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158918,&quot;alt&quot;:&quot;Product with Attitude newsletter closing banner with mascot.&quot;,&quot;title&quot;:&quot;Product with Attitude newsletter closing banner with mascot.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://karozieminski.substack.com/i/195778338?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd5b48c3-ae64-45d5-8178-00ab8d02f1a4_2353x256.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Product with Attitude newsletter closing banner with mascot." title="Product with Attitude newsletter closing banner with mascot." srcset="https://substackcdn.com/image/fetch/$s_!bbuT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 424w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 848w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1272w, https://substackcdn.com/image/fetch/$s_!bbuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae6a3bb-f432-4f9b-acea-fdd53ede8975_2353x235.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p style="text-align: center;"><strong><a href="https://karozieminski.substack.com/about">WHY SUBSCRIBE </a>&#12539;<a href="https://karozieminski.substack.com/p/product-with-attitude-membership-2026">YOUR BENEFITS</a>&#12539; <a href="https://karozieminski.substack.com/p/substack-creator-tools">TOOLS I BUILT</a>&#12539;<a href="https://karozieminski.substack.com/p/claude-guides-code-cowork-skills-workflows">CLAUDE HUB</a>&#12539;<a href="https://karozieminski.substack.com/p/perplexity-ai-guide-2026">PERPLEXITY HUB</a> &#12539;<a href="https://karozieminski.substack.com/p/vibecoding-resources-hub">VIBE CODING HUB</a> </strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://karozieminski.substack.com/subscribe&quot;,&quot;text&quot;:&quot;SUBSCRIBE&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://karozieminski.substack.com/subscribe"><span>SUBSCRIBE</span></a></p>]]></content:encoded></item><item><title><![CDATA[19 Product Team Lessons in 4 Minutes]]></title><description><![CDATA[Not best practices. Just what actually works in product teams - in bullet points.]]></description><link>https://karozieminski.substack.com/p/20-product-team-lessons-in-4-minutes</link><guid isPermaLink="false">https://karozieminski.substack.com/p/20-product-team-lessons-in-4-minutes</guid><dc:creator><![CDATA[Karo (Product with Attitude)]]></dc:creator><pubDate>Sun, 13 Apr 2025 16:41:43 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%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This post is a rapid-fire list of 19 hand-picked lessons I learned as a PM in tech.</p><ul><li><p>Some are tactical.</p></li><li><p>Some are emotional.</p></li><li><p>All are tested and honest.</p></li><li><p>I feel so strongly about <strong>each</strong> of them, I will not change my mind even if you offered me a lifetime supply of paid Substack subscribers.</p></li></ul><p>This list is not <strong>aspirational</strong>, it doesn't ask you to &#8220;evangelize the vision&#8221; or &#8220;orchestrate complexity&#8221; - it's <strong>operational</strong>.</p><p>It started as a single note-to-self, then grew one mistake and one win at a time, and now it won't stop growing. I hope it helps someone! </p><h2>19 Product Team Lessons in 4 Minutes</h2><ol><li><p>Minimum Viable Team:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Od8X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Od8X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png 424w, https://substackcdn.com/image/fetch/$s_!Od8X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png 848w, https://substackcdn.com/image/fetch/$s_!Od8X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png 1272w, https://substackcdn.com/image/fetch/$s_!Od8X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Od8X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5040488,&quot;alt&quot;:&quot;Three cartoon-style stick figures represent a \&quot;Minimum Viable Team\&quot;: a visionary jumping with a lightbulb, a nerd with glasses and a growth chart, and an operator holding a clock labeled \&quot;OPEN.\&quot; Each symbolizes a unique startup superpower. Illustrated by Karo Z for Product With Attitude.&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://karozieminski.substack.com/i/161215865?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Three cartoon-style stick figures represent a &quot;Minimum Viable Team&quot;: a visionary jumping with a lightbulb, a nerd with glasses and a growth chart, and an operator holding a clock labeled &quot;OPEN.&quot; Each symbolizes a unique startup superpower. Illustrated by Karo Z for Product With Attitude." title="Three cartoon-style stick figures represent a &quot;Minimum Viable Team&quot;: a visionary jumping with a lightbulb, a nerd with glasses and a growth chart, and an operator holding a clock labeled &quot;OPEN.&quot; Each symbolizes a unique startup superpower. Illustrated by Karo Z for Product With Attitude." srcset="https://substackcdn.com/image/fetch/$s_!Od8X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png 424w, https://substackcdn.com/image/fetch/$s_!Od8X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png 848w, https://substackcdn.com/image/fetch/$s_!Od8X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.png 1272w, https://substackcdn.com/image/fetch/$s_!Od8X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f40a2c-ab0f-4a3a-b444-5e5a05ccc5e2_2059x2059.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></li><li><p>Design like people are tired and distracted, because they are.</p></li><li><p>Build with opinion, you can&#8217;t please your way to greatness. Just make sure that your opinion is facts.</p></li><li><p>Working with Devs 101: </p><ul><li><p>Email = emergency. </p></li><li><p>Slack = everything. </p></li><li><p>Meetings = last resort. </p></li></ul><p>Meet them where they are.</p></li><li><p>Pricing <em>is</em> product. Roadmap is sales magnet. FAQ section is your sales funnel.</p><p></p></li></ol>
      <p>
          <a href="https://karozieminski.substack.com/p/20-product-team-lessons-in-4-minutes">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>