<?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[Harmony]]></title><description><![CDATA[Harmony of Technology, Business, and Entrepreneurship. Featured on the front page of Hacker News. Trusted resource for 100s of PMs and entrepreneurs. I am building-in-public.]]></description><link>https://harshalpatil.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!t5ij!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1400152-361b-4b77-bdf4-ce4e9617ded9_500x500.png</url><title>Harmony</title><link>https://harshalpatil.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 30 May 2026 12:22:11 GMT</lastBuildDate><atom:link href="https://harshalpatil.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Harshal Patil]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[harshalpatil@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[harshalpatil@substack.com]]></itunes:email><itunes:name><![CDATA[Harshal Patil]]></itunes:name></itunes:owner><itunes:author><![CDATA[Harshal Patil]]></itunes:author><googleplay:owner><![CDATA[harshalpatil@substack.com]]></googleplay:owner><googleplay:email><![CDATA[harshalpatil@substack.com]]></googleplay:email><googleplay:author><![CDATA[Harshal Patil]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[What AI Observability Needs to Capture]]></title><description><![CDATA[Funnels, logs, and LLM traces combined cannot explain AI agent failures]]></description><link>https://harshalpatil.substack.com/p/what-ai-observability-needs-to-capture</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/what-ai-observability-needs-to-capture</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 20 May 2026 15:02:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!J_z-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You tell an AI coding agent to update a script. The agent reports success. You check your files and find that the agent changed the wrong file. What happened? If you only observe the prompt and output text, the run still looks successful. You can only evaluate the agent&#8217;s performance by seeing the before and after file state and the UI context that guided the agent.</p><p>This article explains what to observe and why it matters. AI observability must connect user context, agent actions, and product state changes.</p><p>I wrote this article for product managers shipping AI features.</p><p>You need 4 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!J_z-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J_z-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!J_z-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!J_z-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!J_z-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J_z-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png" width="663" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A magnifying glass visualizing the user journey in multiple ways&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A magnifying glass visualizing the user journey in multiple ways" title="A magnifying glass visualizing the user journey in multiple ways" srcset="https://substackcdn.com/image/fetch/$s_!J_z-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!J_z-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!J_z-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!J_z-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ad40ce-497c-4bfc-8f99-cfce512e9d06_663x441.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">A magnifying glass visualizing the user journey in multiple ways</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/what-ai-observability-needs-to-capture">www.harshal-patil.com</a> on Apr 12, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">Day One User Expectations From AI Copilots in 2026</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ai-product-manager-scope-3-extra-jobs">AI Product Management Is SaaS PM Plus Three Extra Jobs</a></p></li><li><p><a href="https://www.harshal-patil.com/post/build-ai-observability-stack-debug-ai-agents-production">How I Built Tooling to debug AI agents in production</a></p></li></ul><h2>What Observability Means in SaaS</h2><p>The goal of observability, telemetry, and user research is to understand user journeys and pain points at scale. This is already known for SaaS Product Managers.</p><p>Traditional SaaS observability combines interviews, session recordings, support escalations, product analytics, and backend telemetry. This stack answers funnel and usage questions well, including where users click, where users drop, and which features users activate.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gPGn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gPGn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png 424w, https://substackcdn.com/image/fetch/$s_!gPGn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png 848w, https://substackcdn.com/image/fetch/$s_!gPGn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png 1272w, https://substackcdn.com/image/fetch/$s_!gPGn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gPGn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png" width="575" height="573" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:573,&quot;width&quot;:575,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;3 ways to measure User Experience&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="3 ways to measure User Experience" title="3 ways to measure User Experience" srcset="https://substackcdn.com/image/fetch/$s_!gPGn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png 424w, https://substackcdn.com/image/fetch/$s_!gPGn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png 848w, https://substackcdn.com/image/fetch/$s_!gPGn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.png 1272w, https://substackcdn.com/image/fetch/$s_!gPGn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec12d297-b5fd-4d6a-99c2-77a505950210_575x573.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">3 ways to measure User Experience</figcaption></figure></div><h2>What AI Observability Needs to Capture</h2><p>Traditional observability answers event questions, for example: &#8220;Did the user click this button?&#8221; AI observability must answer state questions: what context shaped the agent decision, what the agent changed, and what the user saw after each change.</p><p>Standard tools are necessary but incomplete for this job. Product analytics tools like Amplitude, Mixpanel, and Datadog are built for events and funnels. LLM trace tools like LangSmith and Braintrust are built for prompts, model calls, and tool calls. AI product debugging needs both layers connected to product state.</p><p>For AI features observability you need to capture these aspects that aren&#8217;t fully captured by standard tools:</p><ul><li><p>User context (input, visible UI, prior actions, and relevant product state)</p></li><li><p>Agent actions (reads, writes, tool calls, and user-visible outputs)</p></li><li><p>State transitions (before and after content, config, permissions, and execution status)</p></li></ul><p>Without this loop, teams tune prompts but still miss product failures. Teams often need an internal tool or a dedicated pipeline to stitch these records together. Core takeaway: if your team cannot reconstruct user context, agent actions, and state changes, your team cannot reliably improve AI behavior.</p><h2>Examples: What to Observe in Different AI Products</h2><p>Use the same observability pattern across products: capture context, actions, and state changes.</p><p>For a coding agent, capture:</p><ul><li><p>workspace context (open files and active surface, IDE or CLI)</p></li><li><p>agent context retrieval actions (search and command trail)</p></li><li><p>code before/after at each significant agent action</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OzCI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OzCI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png 424w, https://substackcdn.com/image/fetch/$s_!OzCI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png 848w, https://substackcdn.com/image/fetch/$s_!OzCI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png 1272w, https://substackcdn.com/image/fetch/$s_!OzCI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OzCI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png" width="663" height="373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;n8n AI Workflow Builder should know the workflow and user context.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="n8n AI Workflow Builder should know the workflow and user context." title="n8n AI Workflow Builder should know the workflow and user context." srcset="https://substackcdn.com/image/fetch/$s_!OzCI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png 424w, https://substackcdn.com/image/fetch/$s_!OzCI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png 848w, https://substackcdn.com/image/fetch/$s_!OzCI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.png 1272w, https://substackcdn.com/image/fetch/$s_!OzCI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77e7c2c3-2e92-45f5-bdc0-edea15757de1_663x373.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">n8n AI Workflow Builder should know the workflow and user context.</figcaption></figure></div><p>For a <a href="https://www.linkedin.com/pulse/launch-n8n-ai-workflow-builder-its-alternatives-himanshu-sharma-0jlze/">workflow automation agent</a>, capture:</p><ul><li><p>workflow graph and current step context</p></li><li><p>user and agent turns, including edits to steps</p></li><li><p>workflow before/after and sample execution data</p></li></ul><p>For a Notion-like agent, capture:</p><ul><li><p>user prompt, agent response, and selected section context</p></li><li><p>document or database before/after</p></li><li><p>recent user edits and sample data used in formula changes</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3ouu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3ouu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3ouu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3ouu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3ouu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3ouu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg" width="663" height="347" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:347,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Notion AI agent when open should know the context it's open in.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Notion AI agent when open should know the context it's open in." title="Notion AI agent when open should know the context it's open in." srcset="https://substackcdn.com/image/fetch/$s_!3ouu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3ouu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3ouu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3ouu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f88dca-dda6-4ce6-abe0-0e745c56499d_663x347.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Notion AI agent when open should know the context it&#8217;s open in.</figcaption></figure></div><h2>End to End Example: Debugging a Failed AI Workflow Fix</h2><p>A user asks a workflow-building agent to &#8220;fix the error.&#8221; The agent reports success and says the workflow is ready. The user runs it, and the run still fails.</p><p>The product manager reviewed the incident step by step. They compared workflow state before and after the edit. They checked the exact error message and the failing node. They verified the sample input that triggered the failure. They then checked integration context for that user, including which credentials passed and which failed.</p><p>The investigation exposed the real issue. The agent saw only the workflow graph. The agent could not see integration health or the failing data path. The agent guessed a fix and edited the wrong part.</p><p>The team then added a product-level observability flow with five controls:</p><ul><li><p>Capture workflow state before and after every agent edit.</p></li><li><p>Capture integration status before any agent fix attempt.</p></li><li><p>Capture node-level errors with sample payloads.</p></li><li><p>Require the agent to cite the exact node it changed and explain why.</p></li><li><p>Block success messages until a validation run passes.</p></li></ul><h2>How to Start AI Observability</h2><p>Start with one common job, such as updating a workflow step or rewriting a document section. Capture the user prompt, visible context, and before/after state for that first action. Do not instrument the full agent at the start.</p><p>Own this layer as a product responsibility. Build an observability pipeline that integrates with your existing stack.</p><p>Making this actionable for product managers:</p><ul><li><p>Start with failures that current logs cannot explain.</p></li><li><p>For agents that change state, start with the first agent action that changes state.</p></li><li><p>For copilots that advise or answer, start with the first agent response.</p></li></ul><p>Expand in stages:</p><ul><li><p>Stage 1, capture the prompt, visible context, and final output.</p></li><li><p>Stage 2, capture tool calls or agent actions.</p></li><li><p>Stage 3, capture before/after resource state.</p></li><li><p>Stage 4, add replay views or evaluator layers to review failures at scale.</p></li></ul><p>My approach was to connect LangSmith, BigQuery (data lake), PostHog session recordings, Anthropic LLM-as-judge evaluations, and a product-specific viewer that recreated what users saw. The trade-off is added maintenance work. The payoff is faster debugging and better decisions on what to improve next.</p><p>I will share my implementation example in <a href="https://www.harshal-patil.com/post/build-ai-observability-stack-debug-ai-agents-production">an upcoming article</a>.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">Day One User Expectations From AI Copilots in 2026</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ai-product-manager-scope-3-extra-jobs">AI Product Management Is SaaS PM Plus Three Extra Jobs</a></p></li><li><p><a href="https://www.harshal-patil.com/post/build-ai-observability-stack-debug-ai-agents-production">How I Built Tooling to debug AI agents in production</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/what-ai-observability-needs-to-capture">www.harshal-patil.com</a> on Apr 12, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Sample AI-native Product Manager Stack, 2026]]></title><description><![CDATA[Mapping AI tools to the Product Lifecycle]]></description><link>https://harshalpatil.substack.com/p/ai-native-product-manager-2026q1</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/ai-native-product-manager-2026q1</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 13 May 2026 03:00:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tWQl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Mapping AI tools to the Product Lifecycle</em></p><p>I enjoy discussing with product peers how AI is changing product management. I also enjoy using AI in a structured way through reusable workflows, prompts, and templates. Here I share how AI helps me across product lifecycle stages, with examples from day-to-day work.</p><p>AI has improved my PM leverage most when I map it to the product lifecycle and use explicit guardrails for quality.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!tWQl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tWQl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!tWQl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!tWQl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!tWQl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tWQl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png" width="663" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;AI PM workflow including research, analysis, documents, planning, and launch&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AI PM workflow including research, analysis, documents, planning, and launch" title="AI PM workflow including research, analysis, documents, planning, and launch" srcset="https://substackcdn.com/image/fetch/$s_!tWQl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!tWQl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!tWQl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!tWQl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7596b4-5b17-4a33-a205-1f3c4eac33b5_663x441.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">AI PM workflow including research, analysis, documents, planning, and launch</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-native-product-manager-2026q1">www.harshal-patil.com</a> on May 01, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-tech-stack-tools-2025q4">AI Tech Stack: What Have You Built With AI?</a></p></li><li><p><a href="https://www.harshal-patil.com/post/newsletters-to-private-podcast-feed-n8n">Turn Newsletters Into a value-only Private Podcast Feed With n8n and AI</a></p></li><li><p><a href="https://www.harshal-patil.com/post/perplexity-use-cases-entrepreneurship-ex-google">20+ Perplexity (GenAI) Use Cases As Your Entrepreneurship Helper And Google-Killer</a></p></li><li><p><a href="https://www.harshal-patil.com/post/chatgpt-use-cases-cofounder-product-manager">30+ ChatGPT (GPT-4o) Use Cases As Your Virtual Co-Founder and Product Assistant</a></p></li><li><p><a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">Set Up Trello MCP in Cursor To Chat With Your Project Boards</a></p></li><li><p><a href="https://www.harshal-patil.com/post/multi-ai-coding-agents-learnings">Learnings From Using 7 AI Coding Agents to Build Side Projects</a></p></li></ul><h2>Product Lifecycle Map</h2><p>Problem Discovery -&gt; PRD -&gt; Prototyping -&gt; Communication</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dVEZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dVEZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 424w, https://substackcdn.com/image/fetch/$s_!dVEZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 848w, https://substackcdn.com/image/fetch/$s_!dVEZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 1272w, https://substackcdn.com/image/fetch/$s_!dVEZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dVEZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png" width="663" height="59" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:59,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Product lifecycle map&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Product lifecycle map" title="Product lifecycle map" srcset="https://substackcdn.com/image/fetch/$s_!dVEZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 424w, https://substackcdn.com/image/fetch/$s_!dVEZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 848w, https://substackcdn.com/image/fetch/$s_!dVEZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 1272w, https://substackcdn.com/image/fetch/$s_!dVEZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5841a14e-56ad-484c-b35b-dc070e7b8721_663x59.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Product lifecycle map</figcaption></figure></div><h2>1) Problem Discovery</h2><p>This stage gives me faster, better context before and after customer conversations.</p><h3>UX Research</h3><p>I use AI-enabled user research tools when talking to users or customers. <a href="https://heymarvin.com/">HeyMarvin</a> and <a href="https://www.dovetail.com/">Dovetail</a> both have AI capabilities to speed up insight synthesis from interviews and usability studies. I have used <a href="https://www.granola.ai/">Granola</a>, <a href="https://www.fathom.ai/">Fathom-video</a>, and <a href="https://noty.ai/">NotyAI</a> to handle meeting notes and insights. They record meetings, create summaries, and organize notes.</p><h3>Data Analysis</h3><p>I use AI to write SQL queries based on what I want to analyze. For example, I use <a href="https://cursor.com/">Cursor</a> (Composer + Claude Sonnet), the BigQuery extension, and <a href="https://docs.cloud.google.com/bigquery/docs/pre-built-tools-with-mcp-toolbox">BigQuery MCP</a> to inspect schema and draft queries from clear instructions. This setup also checks linting. I can run small queries in Cursor, but I usually copy queries into Metabase or DataStudio.</p><p>I maintain a labeled SQL repository so each new analysis gets faster through reusable query patterns.</p><p>I also use <a href="https://posthog.com/ai">PostHog</a>, which has a really good AI assistant to understand users&#8217; behavior on web pages.</p><h3>Competitive Research</h3><p>I use Perplexity Deep Research for competitive research. I use a <a href="https://www.harshal-patil.com/post/competitive-research-ai-pm-accurate">template</a> to keep analysis consistent.</p><p>In one role, I used up to 27 competitor products directly and brought that evidence to engineering discussions. That helped prove feasibility and segment-level demand faster than customer quotes alone.</p><h3>Market and AI News</h3><p>I use n8n to keep track of competitive, market, and AI news. For example, I have a <a href="https://www.harshal-patil.com/post/newsletters-to-private-podcast-feed-n8n">workflow to extract value</a> from newsletters and blogs and convert them to a private podcast feed. This saves time and improves learning consistency.</p><p>Perplexity and ChatGPT help explain other concepts. I use NotebookLM to understand a topic from many angles, especially complex AI research papers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EwUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EwUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png 424w, https://substackcdn.com/image/fetch/$s_!EwUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png 848w, https://substackcdn.com/image/fetch/$s_!EwUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png 1272w, https://substackcdn.com/image/fetch/$s_!EwUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EwUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png" width="407" height="635" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:635,&quot;width&quot;:407,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Product Manager stack, AI-narratives&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Product Manager stack, AI-narratives" title="Product Manager stack, AI-narratives" srcset="https://substackcdn.com/image/fetch/$s_!EwUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png 424w, https://substackcdn.com/image/fetch/$s_!EwUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png 848w, https://substackcdn.com/image/fetch/$s_!EwUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.png 1272w, https://substackcdn.com/image/fetch/$s_!EwUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39f6c568-c95c-4e08-b576-6be996ae43b5_407x635.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">Product Manager stack, AI-narratives</figcaption></figure></div><h2>2) PRD</h2><p>This stage improves the quality and speed of written thinking before team review.</p><h3>Product Requirements Docs and User Stories</h3><p>I use Notion with Notion AI to write product requirement documents and JTBDs.</p><p>I also use Cursor with a directory of organized markdown files when I need tighter context control across multiple documents. This works very well, with a trade-off in readability and shareability.</p><p>I use pushback prompts in these workflows so AI challenges assumptions instead of only agreeing. I validate critical claims against primary sources and recent customer evidence before socializing a draft.</p><h3>Customer Journey Mapping</h3><p>I use <a href="http://mermaid.ai/">Mermaid diagrams</a> to create customer journey maps. Mermaid is not perfect for CJM depth, but it is fast and reliable for early alignment.</p><h3>Product Roadmap</h3><p>I use Notion to track the product roadmap. It is not purpose-built for roadmaps, but the database features and Notion AI make it effective for roadmapping.</p><h2>3) Prototyping</h2><p>This stage reduces abstract debate and improves alignment by making ideas tangible early.</p><p>I use Lovable, Cursor, and a <a href="https://www.harshal-patil.com/post/multi-ai-coding-agents-learnings">few more coding agents</a> to prototype products or experiences.</p><p>This pattern helped in multiple contexts: I pushed context-engineering changes to production for better generation quality, used model-swap evals to de-risk engineering investment, and built a full webapp mock to support prospect conversations.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!577a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!577a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 424w, https://substackcdn.com/image/fetch/$s_!577a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 848w, https://substackcdn.com/image/fetch/$s_!577a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!577a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!577a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg" width="663" height="230" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:230,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;a product lifecycle&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="a product lifecycle" title="a product lifecycle" srcset="https://substackcdn.com/image/fetch/$s_!577a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 424w, https://substackcdn.com/image/fetch/$s_!577a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 848w, https://substackcdn.com/image/fetch/$s_!577a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!577a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ac45f04-797e-446d-8992-8cd87b209873_663x230.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">a product lifecycle</figcaption></figure></div><h2>4) Communication</h2><p>This stage helps me keep teams aligned while reducing operational overhead.</p><h3>Task Management</h3><p>I use n8n, Cursor, Notion MCP, and Linear MCP to create and update user stories. I use n8n to maintain a higher-quality database in Notion. My n8n workflows read human-updated rows and trigger database updates.</p><p>I have n8n workflows to clean up older tickets or update some status fields in completed tickets.</p><p>I use Trello for side projects or homework. I built an integration with Trello community MCP and an n8n workflow that I can trigger from anywhere, including my phone, to create or update tasks. Having an <a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">AI assistant is a must-have for project management</a>.</p><h3>Stakeholder and Customer Communication</h3><p>I use Loom to tell the user&#8217;s story to my team, customers, or stakeholders. Loom and Descript both have AI features to help edit videos.</p><h3>Early Customer Onboarding</h3><p>Along with colleagues, I integrated an AI assistant with Grafana, which helped analyze user failures and support a white-glove onboarding service. This was most useful for early customers.</p><h2>Missing Tools and Adoption Criteria</h2><p>I have not used Gamma AI yet. Documents are usually enough for my current communication style, so presentation-first workflows are a lower priority. I have not used Claude Code yet, but I use <a href="https://www.harshal-patil.com/post/multi-ai-coding-agents-learnings">coding agents</a> through IDE, web browser, and CLI daily. I have heard Hex is strong, but I have not needed it yet for my current data analysis workflows. I prefer vibe-coded solutions for some tasks, like Opportunity Solution Trees, so I have used less of Figma and Miro AI so far.</p><p>I adopt a new tool only when it improves decision quality, reduces cycle time, or removes repeated manual work in my current stack.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-tech-stack-tools-2025q4">AI Tech Stack: What Have You Built With AI?</a></p></li><li><p><a href="https://www.harshal-patil.com/post/newsletters-to-private-podcast-feed-n8n">Turn Newsletters Into a value-only Private Podcast Feed With n8n and AI</a></p></li><li><p><a href="https://www.harshal-patil.com/post/perplexity-use-cases-entrepreneurship-ex-google">20+ Perplexity (GenAI) Use Cases As Your Entrepreneurship Helper And Google-Killer</a></p></li><li><p><a href="https://www.harshal-patil.com/post/chatgpt-use-cases-cofounder-product-manager">30+ ChatGPT (GPT-4o) Use Cases As Your Virtual Co-Founder and Product Assistant</a></p></li><li><p><a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">Set Up Trello MCP in Cursor To Chat With Your Project Boards</a></p></li><li><p><a href="https://www.harshal-patil.com/post/multi-ai-coding-agents-learnings">Learnings From Using 7 AI Coding Agents to Build Side Projects</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-native-product-manager-2026q1">www.harshal-patil.com</a> on May 01, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Turn Newsletters Into a value-only Private Podcast Feed With n8n and AI]]></title><description><![CDATA[Build notes on extracting the useful parts of emails and blogs, converting them to audio, and listening as a podcast.]]></description><link>https://harshalpatil.substack.com/p/newsletters-to-private-podcast-feed-n8n</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/newsletters-to-private-podcast-feed-n8n</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 06 May 2026 03:00:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jz63!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I made an automation in n8n to extract the value from newsletters and blogs and convert them to a private podcast feed to save time and enable me to learn more. Here are my build notes and demo.</p><p>You need about 3 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.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_!t4Et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t4Et!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 424w, https://substackcdn.com/image/fetch/$s_!t4Et!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 848w, https://substackcdn.com/image/fetch/$s_!t4Et!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 1272w, https://substackcdn.com/image/fetch/$s_!t4Et!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t4Et!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png" width="663" height="128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:128,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Newsletters to Private Podcast Feed flowchart&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newsletters to Private Podcast Feed flowchart" title="Newsletters to Private Podcast Feed flowchart" srcset="https://substackcdn.com/image/fetch/$s_!t4Et!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 424w, https://substackcdn.com/image/fetch/$s_!t4Et!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 848w, https://substackcdn.com/image/fetch/$s_!t4Et!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 1272w, https://substackcdn.com/image/fetch/$s_!t4Et!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c21715-c257-448d-b9ad-2d2d6cc9d168_663x128.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">Newsletters to Private Podcast Feed flowchart</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/newsletters-to-private-podcast-feed-n8n">www.harshal-patil.com</a> on Mar 26, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/multitasking-for-text-to-speech-arbitrage">Multitasking for Text to Speech Arbitrage</a></p></li><li><p><a href="https://www.harshal-patil.com/post/text-to-speech-arbitrage">Text to Speech Arbitrage</a></p></li></ul><h2>Problem Context</h2><p>I want to be informed about the latest news or best practices in product management, entrepreneurship, or AI. Even though I know the right newsletters to follow, I don&#8217;t want to strain my eyes to sit and read them one by one. I usually used to use a text-to-speech software on my phone or laptop to listen to them while I am walking or doing some other menial task.</p><h2>Solution via n8n automation</h2><p><a href="https://www.youtube.com/watch?v=8GQKZFAeDYE&amp;list=PLsRhZObe1lqdApno-RxBpI1Z4Ve-J5Ewe&amp;index=2">Here&#8217;s my automation</a> that converts newsletters and blog posts into a private podcast feed I can listen to later.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jz63!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jz63!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Jz63!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Jz63!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Jz63!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jz63!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg" width="663" height="373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The different components of the newsletter to private podcast feed workflow&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="The different components of the newsletter to private podcast feed workflow" title="The different components of the newsletter to private podcast feed workflow" srcset="https://substackcdn.com/image/fetch/$s_!Jz63!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Jz63!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Jz63!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Jz63!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc528cde3-a53c-4166-a841-0ed29af78995_663x373.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The different components of the newsletter to private podcast feed workflow</figcaption></figure></div><p>My n8n workflow does 3 things:</p><ol><li><p>It extracts only the value (removing headers, footers, and advertisements)</p></li><li><p>It converts that text into a voice version.</p></li><li><p>It creates a private podcast feed that I can listen to later.</p></li></ol><h2>Input of Newsletter emails</h2><p>The automation starts in 2 ways:</p><ul><li><p>First, the n8n automation processes an email. Some emails arrive with labels like Product Hunt, Substack, or other news sources and n8n reads them.</p></li><li><p>In another flow, I forward an email to a specific email address (like name+n8n+automation+newsletter@... instead of name@... email). n8n reads emails sent to this address and processes them.</p></li></ul><p>If something does not work out, the workflow emails me.</p><h2>Input from Telegram or n8n chat</h2><p>Second, I handle &#8220;I want to read this later&#8221; links from Telegram or n8n ChatHub.</p><p>On Telegram, I paste a URL and click enter. Within 3 minutes, the workflow extracts the content and adds it to the podcast feed.</p><h2>Pipeline</h2><ul><li><p>Once the workflow receives content (email or link), it extracts the value components out of it. It removes the parts I do not want to listen to, like headers, footers, and ads from blog posts or newsletter emails.</p></li><li><p>It converts the cleaned content into a long-form audio podcast.</p></li><li><p>The audio gets stored in Google Cloud and added to the private podcast feed one by one.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v8NL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v8NL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png 424w, https://substackcdn.com/image/fetch/$s_!v8NL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png 848w, https://substackcdn.com/image/fetch/$s_!v8NL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png 1272w, https://substackcdn.com/image/fetch/$s_!v8NL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v8NL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png" width="663" height="317" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:317,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The n8n workflow of the newsletter to private podcast feed workflow&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="The n8n workflow of the newsletter to private podcast feed workflow" title="The n8n workflow of the newsletter to private podcast feed workflow" srcset="https://substackcdn.com/image/fetch/$s_!v8NL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png 424w, https://substackcdn.com/image/fetch/$s_!v8NL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png 848w, https://substackcdn.com/image/fetch/$s_!v8NL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.png 1272w, https://substackcdn.com/image/fetch/$s_!v8NL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bba1e9-fd0c-49be-96c6-4aa6fd78c0d7_663x317.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">The n8n workflow of the newsletter to private podcast feed workflow</figcaption></figure></div><h2>Observability</h2><p>To make the automation improve over time, I save two kinds of information:</p><ul><li><p>First, I store telemetry in Supabase to track what is happening across runs. I store the input URL or email subject, the length of input, output, latency, and more.</p></li><li><p>Second, I added an observability loop for the AI extraction decisions. When the AI decides to remove some text from the input, I save these rejected blocks of text. Later, I evaluate whether those decisions are right. If they are wrong, I enhance the AI Agent context and provide more examples of what is acceptable to remove and what should be kept.</p></li></ul><h2>Tech Stack</h2><ul><li><p>n8n for the automation.</p></li><li><p>Supabase for telemetry.</p></li><li><p>Google TTS for audio conversion.</p></li><li><p>Google Cloud Storage for audio storage.</p></li><li><p>AI Agent using OpenAI for extraction and conversion.</p></li><li><p>Telegram for input and output.</p></li><li><p>n8n ChatHub for input and output.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q3lA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q3lA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png 424w, https://substackcdn.com/image/fetch/$s_!Q3lA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png 848w, https://substackcdn.com/image/fetch/$s_!Q3lA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png 1272w, https://substackcdn.com/image/fetch/$s_!Q3lA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q3lA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png" width="663" height="561" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:561,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Tech stack visualizaed: n8n, OpenAI, Google TTS, and more&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Tech stack visualizaed: n8n, OpenAI, Google TTS, and more" title="Tech stack visualizaed: n8n, OpenAI, Google TTS, and more" srcset="https://substackcdn.com/image/fetch/$s_!Q3lA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png 424w, https://substackcdn.com/image/fetch/$s_!Q3lA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png 848w, https://substackcdn.com/image/fetch/$s_!Q3lA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.png 1272w, https://substackcdn.com/image/fetch/$s_!Q3lA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bcdbc7-e0b5-4bf8-81b2-c262af2c5c75_663x561.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">Tech stack visualizaed: n8n, OpenAI, Google TTS, and more</figcaption></figure></div><h2>Learnings</h2><ul><li><p>I tested multiple text-to-speech options and picked the one that handled long newsletters reliably. OpenAI text-to-speech had a character limit. ElevenLabs was expensive, and its n8n node failed while the HTTP request node worked. Google beta long TTS service handled long newsletter and blog content.</p></li><li><p>I compared AWS S3, GitHub Pages, Google Drive, and Google Cloud Storage for podcast files. I chose Google Cloud Storage because audio generation already ran there, and I needed a public bucket instead of a private Google Drive link.</p></li><li><p>I added clear keep and remove examples in the AI agent system prompt. Those examples improved text extraction quality.</p></li><li><p>I started telemetry in n8n datatables, then moved to Supabase to enable external AIs to review the telemetry and because I needed to migrate my personal n8n instance.</p></li><li><p>I built explicit error handling for every critical step. When AI agent, TTS, or feed updates failed telemetry captured the failure or the workflow alerted me on email.</p></li><li><p>Google Cloud Storage has a delay when reading recently updated files. If I read a file again within a minute, Google Cloud Storage may return an old version. I plan to split the automation into two asynchronous workflows. I also explored RabbitMQ and other queueing options.</p></li><li><p>You can build a self-improving AI coding loop by giving it full visibility into telemetry, examples, and database state.</p></li><li><p>GCP setup is a pain.</p></li></ul><h2>What&#8217;s Next</h2><p>This setup adds infrastructure work, but it buys back attention. I spend less time scanning inbox noise and more time consuming the parts that matter.</p><p>Ideas:</p><ul><li><p>Enhance this to also let me submit PDFs.</p></li><li><p>Do a multi-step processing of podcasts themselves by filtering out their advertisements.</p></li><li><p>Another workflow on my radar was to search for AI news sources. Once I can build that, I can connect that as an input to this automation.</p></li></ul><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/multitasking-for-text-to-speech-arbitrage">Multitasking for Text to Speech Arbitrage</a></p></li><li><p><a href="https://www.harshal-patil.com/post/text-to-speech-arbitrage">Text to Speech Arbitrage</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/newsletters-to-private-podcast-feed-n8n">www.harshal-patil.com</a> on Mar 26, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Reflection On 37 Books Read In 2025]]></title><description><![CDATA[Rating And Thoughts On Books In AI Engineering, Wellness, Parenting, and More]]></description><link>https://harshalpatil.substack.com/p/year-in-review-with-books-review-rating-2025</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/year-in-review-with-books-review-rating-2025</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 29 Apr 2026 03:01:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_AEv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In 2025, I read 37 books with the usual focus on health and wellness, but an added focus this year on parenting and AI engineering.</p><p>I reflect on my year through the books I read, similar to a yearly Spotify wrap-up. I use an Impact Rating for each book (explained below) and list books by impact rating.</p><p>You need 4 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!_AEv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_AEv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_AEv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_AEv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_AEv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_AEv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg" width="663" height="373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Collage of all book covers read in 2025&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Collage of all book covers read in 2025" title="Collage of all book covers read in 2025" srcset="https://substackcdn.com/image/fetch/$s_!_AEv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_AEv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_AEv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_AEv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2976fb57-402c-4bca-a595-daee09dab230_663x373.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Collage of all book covers read in 2025</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/year-in-review-with-books-review-rating-2025">www.harshal-patil.com</a> on Mar 15, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/year-books-review-rating-2024">Reflection On 74 Books Read In 2024</a></p></li><li><p><a href="https://www.harshal-patil.com/post/year-in-review-books-like-spotify-2023-p1">Wrapping Up My 2023 Reading Journey Of 106 Books</a></p></li><li><p><a href="https://www.harshal-patil.com/post/measuring-a-year-in-books-my-2022-in-review-inspired-by-spotify">Measuring a year in books: My 2022 in review (Inspired by Spotify)</a></p></li></ul><h2>Yearly comparison</h2><p>I read 37 books in 2025, 74 in 2024, 106 in 2023, and 96 in 2022. I spent far less time reading in 2025 because I had my second child, changed jobs, and spent a lot of time learning AI engineering (but not from books). I also read less because I did not work out for many months, which cut into the time I had to listen to audiobooks. I stopped going for walks and did fewer pickups and drop-offs, which further reduced how much I could listen to audiobooks.</p><h2>Top Picks, my favorite reads of the year</h2><p>My top picks this year were:</p><ul><li><p><a href="https://www.harshal-patil.com/post/masala-lab-the-science-of-indian-cooking">Masala Lab: The Science of Indian Cooking</a>. I used to rely on food science from non-Indian contexts and often did not get support from family or friends when I tried to apply it to Indian cooking. This book helped me connect food science, culinary science, and Indian cooking.</p></li><li><p><a href="https://www.harshal-patil.com/post/determined-a-science-of-life-without-free-will">Determined: A Science of Life without Free Will</a>. It changed how I think about the factors that shape our actions and decisions, and clarified ideas about blame, praise, and free will. I had read a book about the absence of free will 20 years ago, but could never find it again. This book filled that gap in my philosophy.</p></li></ul><h2>Impact Rating For Books, Not Stars</h2><p>I realized that using the conventional star rating system could make my ratings appear objective. My ratings are not objective; they are subjective. So I call it an &#8220;Impact Rating&#8221;. I give an Impact Rating to each book based on:</p><ul><li><p>Change in my beliefs</p></li><li><p>Actions I took in my career or life</p></li><li><p>New information vs my previous knowledge</p></li></ul><p>I rate each book on a scale from 1 to 5, with 5 being the highest. A lower Impact Rating does not mean a book is poor in quality. For example, a book may have great content but I already knew its content. Or a book may have great content but I did not take any actions in my career or life from the book.</p><p>Last year, some readers doubted whether I could truly learn from reading so many books. To address this, I now write about each book&#8217;s impact on me. This practice serves as a forcing function to ensure I extract value from each book and show that I am not just reading for the stats.</p><h2>4 Books on Scaling A Tech Company</h2><p>1 - <a href="https://www.harshal-patil.com/post/ai-engineering-building-applications-with-foundation-models">AI Engineering: Building Applications with Foundation Models</a> 4/5</p><p>2 - <a href="https://www.harshal-patil.com/post/the-innovator-s-dilemma">The Innovator&#8217;s Dilemma</a> 5/5</p><p>3 - <a href="https://www.harshal-patil.com/post/vibe-coding-building-production-grade-software-with-genai-chat-agents-and-beyond">Vibe Coding: Building Production-Grade Software With GenAI, Chat, Agents, and Beyond</a> 4/5</p><p>4 - The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition 2/5</p><h2>6 Books on Health and Wellness</h2><p>5 - <a href="https://www.harshal-patil.com/post/it-s-not-hysteria-everything-you-need-to-know-about-your-reproductive-health">It&#8217;s Not Hysteria: Everything You Need to Know About Your Reproductive Health</a> 2/5</p><p>6 - <a href="https://www.harshal-patil.com/post/the-story-of-the-human-body-evolution-health-and-disease">The Story of the Human Body: Evolution, Health, and Disease</a> 4/5</p><p>7 - <a href="https://www.harshal-patil.com/post/why-we-get-fat-and-what-to-do-about-it">Why We Get Fat: And What to Do About It</a> 3/5</p><p>8 - <a href="https://www.harshal-patil.com/post/the-circadian-code-lose-weight-supercharge-your-energy-and-transform-your-health-from-morning-to">The Circadian Code: Lose Weight, Supercharge Your Energy, and Transform Your Health from Morning to Midnight</a> 1/5</p><p>9 - <a href="https://www.harshal-patil.com/post/the-unexpected">The Unexpected</a> 4/5</p><p>10 - <a href="https://www.harshal-patil.com/post/the-way-we-eat-now-strategies-for-eating-in-a-world-of-change">The Way We Eat Now: Strategies for Eating in a World of Change</a> 3/5</p><h2>2 Books on Psychology and Mindset</h2><p>11 - <a href="https://www.harshal-patil.com/post/10-happier">10% Happier</a> 3/5</p><p>12 - <a href="https://www.harshal-patil.com/post/option-b-facing-adversity-building-resilience-and-finding-joy">Option B: Facing Adversity, Building Resilience, and Finding Joy</a> 2/5</p><h2>2 Books on Productivity and Time Management</h2><p>13 - <a href="https://www.harshal-patil.com/post/getting-things-done-with-work-life-balance">Getting Things Done With Work Life Balance</a> 3/5</p><p>14 - <a href="https://www.harshal-patil.com/post/making-work-visible-exposing-time-theft-to-optimize-work-flow">Making Work Visible: Exposing Time Theft to Optimize Work &amp; Flow</a> 4/5</p><h2>1 Book on Friendships and Community</h2><p>15 - <a href="https://www.harshal-patil.com/post/braving-the-wilderness">Braving the Wilderness</a> 2/5</p><h2>2 Books on Self-Help and Personal Development</h2><p>16 - <a href="https://www.harshal-patil.com/post/not-nice-stop-people-pleasing-staying-silent-feeling-guilty-and-start-speaking-up-saying-no">Not Nice: Stop People Pleasing, Staying Silent, &amp; Feeling Guilty... And Start Speaking Up, Saying No, Asking Boldly, And Unapologetically Being Yourself</a> 4/5</p><p>17 - <a href="https://www.harshal-patil.com/post/the-1-rule-how-to-fall-in-love-with-the-process-and-achieve-your-wildest-dreams">The 1% Rule: How to Fall in Love with the Process and Achieve Your Wildest Dreams</a> 2/5</p><h2>3 Books on Popular Science</h2><p>18 - <a href="https://www.harshal-patil.com/post/masala-lab-the-science-of-indian-cooking">Masala Lab : The Science of Indian Cooking</a> 5/5</p><p>19 - <a href="https://www.harshal-patil.com/post/music-and-the-brain">Music and the Brain</a> 4/5</p><p>20 - <a href="https://www.harshal-patil.com/post/determined-a-science-of-life-without-free-will">Determined: A Science of Life without Free Will</a> 4/5</p><h2>5 Books on Parenting and Family</h2><p>21 - <a href="https://www.harshal-patil.com/post/hunt-gather-parent">Hunt gather parent</a> 3/5</p><p>22 - <a href="https://www.harshal-patil.com/post/your-baby-is-speaking-to-you">Your Baby Is Speaking To You</a> 5/5</p><p>23 - <a href="https://www.harshal-patil.com/post/helping-your-child-with-extreme-picky-eating-a-step-by-step-guide-for-overcoming-selective-eating">Helping Your Child with Extreme Picky Eating: A Step-by-Step Guide for Overcoming Selective Eating, Food Aversion, and Feeding Disorders</a> 5/5</p><p>24 - <a href="https://www.harshal-patil.com/post/siblings-without-rivalry-how-to-help-your-children-live-together-so-you-can-live-too">Siblings Without Rivalry: How to Help Your Children Live Together So You Can Live Too</a> 4/5</p><p>25 - <a href="https://www.harshal-patil.com/post/your-baby-s-bottle-feeding-aversion-reasons-and-solutions">Your Baby&#8217;s Bottle-feeding Aversion: Reasons and Solutions</a> 4/5</p><h2>1 Book on Marketing</h2><p>26 - <a href="https://www.harshal-patil.com/post/forget-the-funnel-a-customer-led-approach-for-driving-predictable-recurring-revenue">Forget the Funnel: A Customer-Led Approach for Driving Predictable, Recurring Revenue</a> 3/5</p><h2>1 Book on Career Growth</h2><p>27 - <a href="https://www.harshal-patil.com/post/so-good-they-can-t-ignore-you-why-skills-trump-passion-in-the-quest-for-work-you-love">So Good They Can&#8217;t Ignore You: Why Skills Trump Passion in the Quest for Work You Love</a> 2/5</p><h2>1 Book on Understanding The World With Data</h2><p>28 - <a href="https://www.harshal-patil.com/post/chip-war-the-fight-for-the-world-s-most-critical-technology">Chip War: The Fight for the World&#8217;s Most Critical Technology</a> 4/5</p><h2>2 Books on Philosophy and Thought</h2><p>29 - <a href="https://www.harshal-patil.com/post/poor-charlie-s-almanack-the-wit-and-wisdom-of-charles-t-munger">Poor Charlie&#8217;s Almanack: The Wit and Wisdom of Charles T. Munger</a> 3/5</p><p>30 - <a href="https://www.harshal-patil.com/post/the-beginning-of-infinity-explanations-that-transform-the-world">The Beginning of Infinity: Explanations That Transform the World</a> 4/5</p><h2>1 Book on Leadership and Management</h2><p>31 - <a href="https://www.harshal-patil.com/post/thinking-in-systems">Thinking in Systems</a> 4/5</p><h2>3 Books on Product Management</h2><p>32 - <a href="https://www.harshal-patil.com/post/articulating-design-decisions-communicate-with-stakeholders-keep-your-sanity-and-deliver-the-best">Articulating Design Decisions: Communicate with Stakeholders, Keep Your Sanity, and Deliver the Best User Experience</a> 3/5</p><p>33 - <a href="https://www.harshal-patil.com/post/design-for-how-people-think">Design for How People Think</a> 2/5</p><p>34 - <a href="https://www.harshal-patil.com/post/the-product-momentum-gap-bringing-together-product-strategy-and-customer-value">The Product Momentum Gap: Bringing together product strategy and customer value</a> 2/5</p><h2>1 Book on History and Culture</h2><p>35 - <a href="https://www.harshal-patil.com/post/a-short-history-of-ireland">A Short History of Ireland</a> 4/5</p><h2>2 Books on Finance</h2><p>36 - <a href="https://www.harshal-patil.com/post/millionaire-next-door">Millionaire next door</a> 4/5</p><p>37 - <a href="https://www.harshal-patil.com/post/main-street-millionaire-how-to-make-extraordinary-wealth-buying-ordinary-businesses">Main Street Millionaire: How to Make Extraordinary Wealth Buying Ordinary Businesses</a> 2/5</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/year-books-review-rating-2024">Reflection On 74 Books Read In 2024</a></p></li><li><p><a href="https://www.harshal-patil.com/post/year-in-review-books-like-spotify-2023-p1">Wrapping Up My 2023 Reading Journey Of 106 Books</a></p></li><li><p><a href="https://www.harshal-patil.com/post/measuring-a-year-in-books-my-2022-in-review-inspired-by-spotify">Measuring a year in books: My 2022 in review (Inspired by Spotify)</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/year-in-review-with-books-review-rating-2025">www.harshal-patil.com</a> on Mar 15, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[A Numberblocks Image Finder And Generator So Kids Can Draw Any Character, Using Lovable]]></title><description><![CDATA[Build Notes for a Numberblocks Images webapp using Lovable]]></description><link>https://harshalpatil.substack.com/p/numberblocks-image-finder-lovable-2026</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/numberblocks-image-finder-lovable-2026</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Sun, 26 Apr 2026 15:02:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9JGf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A small webapp lets my 5-year-old pick a number and get the right Numberblocks image so he can draw or colour it, without hunting across sites or Google Images. I built it with Lovable.</p><p>I spent 45 minutes building this and 35 minutes writing this. You need 1 minute to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!9JGf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9JGf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png 424w, https://substackcdn.com/image/fetch/$s_!9JGf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png 848w, https://substackcdn.com/image/fetch/$s_!9JGf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png 1272w, https://substackcdn.com/image/fetch/$s_!9JGf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9JGf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png" width="663" height="568" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:568,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Numberblocks image finder and generator app&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Numberblocks image finder and generator app" title="Numberblocks image finder and generator app" srcset="https://substackcdn.com/image/fetch/$s_!9JGf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png 424w, https://substackcdn.com/image/fetch/$s_!9JGf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png 848w, https://substackcdn.com/image/fetch/$s_!9JGf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.png 1272w, https://substackcdn.com/image/fetch/$s_!9JGf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2446340f-a6b5-4bd1-a093-7cd265c7ff1f_663x568.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">Numberblocks image finder and generator app</figcaption></figure></div><p>I first published this on <a href="https://www.harshal-patil.com/post/numberblocks-image-finder-lovable-2026">www.harshal-patil.com</a> on Feb 03, 2026.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/count-up-numbers-lovable-2026">Showing a Five-Year-Old What Counting to a Billion Feels Like, Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">Why Vibe Coding Wins Over No-Code In 2025</a></p></li></ul><h2>Problem Context</h2><p>I was repeatedly opening different websites and Googling for images to find the right Numberblock for whatever number my son wanted. He uses those images to draw or colour, sometimes via our SmartArt Sketcher projector so he gets an outline to trace. The hunt for the right image was slow and scattered. I wanted one place that, for any number he picks, gives him the right image fast.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wX1r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wX1r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png 424w, https://substackcdn.com/image/fetch/$s_!wX1r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png 848w, https://substackcdn.com/image/fetch/$s_!wX1r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png 1272w, https://substackcdn.com/image/fetch/$s_!wX1r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wX1r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png" width="663" height="694" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:694,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;generate images using AI, when not found online&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="generate images using AI, when not found online" title="generate images using AI, when not found online" srcset="https://substackcdn.com/image/fetch/$s_!wX1r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png 424w, https://substackcdn.com/image/fetch/$s_!wX1r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png 848w, https://substackcdn.com/image/fetch/$s_!wX1r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.png 1272w, https://substackcdn.com/image/fetch/$s_!wX1r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac44d1d-0fb0-4368-813e-4e6aa462ec47_663x694.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">generate images using AI, when not found online</figcaption></figure></div><h2>Solution Via App</h2><p>App lives here: </p><p><a href="https://numberblock-finder.lovable.app/">https://numberblock-finder.lovable.app/</a></p><p><a href="https://youtube.com/shorts/mH3WjI3-J0Q">Video</a> walkthrough:</p><p>You choose a number; the app returns the Numberblocks image for it. If a Numberblocks does not exist for that number (for example, 555), the app lets you generate an image for it. From there you can use it on a phone, print it, or switch to a black-and-white version. In our case we often use our SmartArt Sketcher projector so he gets a clear outline to draw. Instead of jumping between sites and image search, the app quickly surfaces the right image so he can draw or colour without the friction.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H8w7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H8w7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png 424w, https://substackcdn.com/image/fetch/$s_!H8w7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png 848w, https://substackcdn.com/image/fetch/$s_!H8w7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png 1272w, https://substackcdn.com/image/fetch/$s_!H8w7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H8w7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png" width="663" height="283" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:283,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Using Cursor for a web scraper - hard to recover from initial wrong decisions.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Using Cursor for a web scraper - hard to recover from initial wrong decisions." title="Using Cursor for a web scraper - hard to recover from initial wrong decisions." srcset="https://substackcdn.com/image/fetch/$s_!H8w7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png 424w, https://substackcdn.com/image/fetch/$s_!H8w7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png 848w, https://substackcdn.com/image/fetch/$s_!H8w7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.png 1272w, https://substackcdn.com/image/fetch/$s_!H8w7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb50173f-946b-4526-b94c-7d0ee24e0eb4_663x283.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">Using Cursor for a web scraper - hard to recover from initial wrong decisions.</figcaption></figure></div><p><strong>Stack:</strong> Lovable, Supabase, Firecrawl, Cursor, n8n, and OpenAI.</p><ul><li><p><strong>Lovable:</strong> frontend and primary agent</p></li><li><p><strong>Supabase:</strong> edge functions</p></li><li><p><strong>Firecrawl:</strong> AI-assisted web scraping</p></li><li><p><strong>OpenAI:</strong> image generation</p></li></ul><p>I also tried Cursor to build a bulk image scraper. Cursor did not get the scraper right on the first attempt; that was acceptable. Debugging was harder: I had to run the scraper, review the output, and sometimes ask for debugging statements at different points. The scraper was probably hitting the wrong parts of the site. To fix that, I would have had to understand either the generated code or Firecrawl&#8217;s API.</p><p>I tried n8n&#8217;s workflow builder for a bulk image scraper as well. The workflow was hard to follow, did not run, and fixing it would have required digging into several API specs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nb56!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nb56!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png 424w, https://substackcdn.com/image/fetch/$s_!Nb56!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png 848w, https://substackcdn.com/image/fetch/$s_!Nb56!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png 1272w, https://substackcdn.com/image/fetch/$s_!Nb56!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nb56!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png" width="663" height="417" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:417,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;n8n initial draft workflow for bulk image scraper.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="n8n initial draft workflow for bulk image scraper." title="n8n initial draft workflow for bulk image scraper." srcset="https://substackcdn.com/image/fetch/$s_!Nb56!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png 424w, https://substackcdn.com/image/fetch/$s_!Nb56!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png 848w, https://substackcdn.com/image/fetch/$s_!Nb56!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.png 1272w, https://substackcdn.com/image/fetch/$s_!Nb56!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ebda8f6-cd2f-4cce-a473-3be366b82c4a_663x417.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">n8n initial draft workflow for bulk image scraper.</figcaption></figure></div><h2>Learnings</h2><p>Changes I had to make:</p><ul><li><p>I used the Firecrawl API to scrape Numberblocks, fandom, and wiki sites. I worried that bad actors could abuse my API connection, so I added rate limiting.</p></li><li><p>Rate limiting brought its own challenges. I needed row-level security (RLS) on the backend tables to support it.</p></li><li><p>The app has no login. So IP-based rate limiting, cached URLs, and cached content are all public. I had to choose: add authentication for a kid&#8217;s app, or ship with fewer features.</p></li><li><p>Some numbers do not have a Numberblock. I added an AI image generator for those cases.</p></li><li><p>I started with bulk download in mind. I soon realized a child asks for one image at a time. The choice is random, so a parent cannot know in advance what to bulk download. I made single-image finder the main mode.</p></li><li><p>I used kid-friendly colors, theme, and buttons.</p></li><li><p>I made it mobile-friendly and tested it on phones.</p></li><li><p>Instead of telling the web scraping API to search for any and every source, I told it two or three specific websites based on the human trials I did before.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ankA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ankA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png 424w, https://substackcdn.com/image/fetch/$s_!ankA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png 848w, https://substackcdn.com/image/fetch/$s_!ankA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png 1272w, https://substackcdn.com/image/fetch/$s_!ankA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ankA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png" width="663" height="438" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:438,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Bulk image finder&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Bulk image finder" title="Bulk image finder" srcset="https://substackcdn.com/image/fetch/$s_!ankA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png 424w, https://substackcdn.com/image/fetch/$s_!ankA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png 848w, https://substackcdn.com/image/fetch/$s_!ankA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.png 1272w, https://substackcdn.com/image/fetch/$s_!ankA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314e9322-59e1-46e3-9ff3-accf3cddd1c4_663x438.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">Bulk image finder</figcaption></figure></div><p>One small app replaced the repeated site-hopping and image search: pick a number, get the Numberblocks, then print or project.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/count-up-numbers-lovable-2026">Showing a Five-Year-Old What Counting to a Billion Feels Like, Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">Why Vibe Coding Wins Over No-Code In 2025</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p>I first published this on <a href="https://www.harshal-patil.com/post/numberblocks-image-finder-lovable-2026">www.harshal-patil.com</a> on Feb 03, 2026.</p>]]></content:encoded></item><item><title><![CDATA[Learnings From Using 7 AI Coding Agents to Build Side Projects]]></title><description><![CDATA[Approach, Learnings, and Opinions on Each Agent]]></description><link>https://harshalpatil.substack.com/p/multi-ai-coding-agents-learnings</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/multi-ai-coding-agents-learnings</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 22 Apr 2026 03:00:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kzFK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>While working on my <a href="https://www.harshal-patil.com/build">side projects</a>, I hit a simple constraint: my AI usage habits outpaced my plan limits. That constraint pushed me into a multi-agent workflow. I now rotate tools based on credits, strengths, and friction.</p><p>In this article, I share my approach on building a habit of using 7 agents together and opinions and learnings.</p><p>You need 9 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!kzFK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kzFK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png 424w, https://substackcdn.com/image/fetch/$s_!kzFK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png 848w, https://substackcdn.com/image/fetch/$s_!kzFK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png 1272w, https://substackcdn.com/image/fetch/$s_!kzFK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kzFK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png" width="663" height="663" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:663,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;7 AI agents used together to build a side project.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="7 AI agents used together to build a side project." title="7 AI agents used together to build a side project." srcset="https://substackcdn.com/image/fetch/$s_!kzFK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png 424w, https://substackcdn.com/image/fetch/$s_!kzFK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png 848w, https://substackcdn.com/image/fetch/$s_!kzFK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.png 1272w, https://substackcdn.com/image/fetch/$s_!kzFK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e2aa191-0b5c-43ea-aa2b-827f9d672357_663x663.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">7 AI agents used together to build a side project.</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/multi-ai-coding-agents-learnings">www.harshal-patil.com</a> on Mar 15, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">Day One User Expectations From AI Copilots in 2026</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ai-tech-stack-tools-2025q4">AI Tech Stack: What Have You Built With AI?</a></p></li></ul><h2>Learnings</h2><ul><li><p>Do not tell two different agents to edit the same files. They overwrite each other&#8217;s edits. I learned this after many failed releases when, I asked multiple agents to work in parallel, and some changes did not show up in the webapp in production. I was not aware of the recommended approach at the time, so I tried it from first principles and learned that this setup does not work. Use Git worktree (or multiple branches) so that each agent works on the same area of the codebase in parallel but in a separate copy. Merge the results later. I have not yet started using worktree or multiple branches. My workaround is to implement one plan while making future plans in parallel.</p></li><li><p>Agents that handle Git well are more valuable. Some agents did a better job than others.</p></li><li><p>Allowlists work differently across agents. Cursor lets you allow certain actions across sessions. AMP and Droid let you allow all actions within one conversation. I prefer allowing specific actions across all conversations, with an override per conversation to allow all actions when needed. Codex needs you to allow each specific action, which is more cumbersome.</p></li><li><p>With multiple agents, you need a way to get notified when an agent completes its work. Then you can come back, review the work, and plan the next step. Otherwise you lose development time.</p></li><li><p>I sometimes used the plan mode from one agent, broke that plan into tasks, and gave those tasks to different agents. That was another way to use each agent for what it did best.</p></li><li><p>Cursor extensions required me to connect them to MCP servers in every new profile or new project. I had many Cursor projects. The MCP connection to Cursor agents carried across projects, which was much easier.</p></li></ul><h2>Why I Started Using Multiple Agents</h2><p>In my previous Product Management job, I had access to enterprise plans for Cursor, n8n, and Lovable. I used AI a lot and coded fast. When I started side projects and kept using Cursor at the same rate on a free account, I exhausted my monthly limit in 3 days. I signed up for the paid plan and exhausted that in 1 week.</p><p>I choose to first change my tool mix instead of stopping my AI adoption habit. I found discounted and free AI coding tools, signed up for each, and experimented with multiple agents. I built a habit of using several agents together, prioritized by availability of free credits. I treated agents like a portfolio, prioritized by availability of free credits and capabilities. I share this process to show why I ended up juggling many agents.</p><p>Note that I am on different plans for each tool, so this is not a fair comparison. My goal is to share the experience I had with each tool at the plan I could access. I am not trying to rank tools.</p><p>These are the agents I used:</p><ul><li><p><strong>Lovable</strong>: Paid plan (100 credits per month)</p></li><li><p><strong>Cursor</strong>: Paid plan (~$20/month, with a monthly usage allowance)</p></li><li><p><strong>Amp</strong>: Promotional offer ($15 daily free usage, free plan)</p></li><li><p><strong>Factory Droid</strong>: Promotional offer (20 million tokens per month)</p></li><li><p><strong>Codex (OpenAI)</strong>: ChatGPT Plus subscriber, which includes limited free Codex usage</p></li><li><p><strong>AntiGravity (Google Gemini)</strong>: Free plan (very limited usage)</p></li><li><p><strong>Comet (Perplexity)</strong>: Paid plan for AI browsing</p></li></ul><h2>Multi-agent habit</h2><p>My approach is plan first, then implement. At a high level it works like this:</p><ol><li><p>I start with <a href="https://www.harshal-patil.com/post/chatgpt-use-cases-cofounder-product-manager">ChatGPT</a> and <a href="https://www.harshal-patil.com/post/perplexity-use-cases-entrepreneurship-ex-google">Perplexity</a>. I search the web, find examples and screenshots, and brainstorm with these agents. Paid plans give generous usage, so I get the database schema ready and screenshots from similar apps or mocks. I will add Mobbin to this mix.</p></li><li><p>I give that information to Lovable and get the first version of the web app.</p></li><li><p>I enable Lovable cloud and back up Lovable&#8217;s work to GitHub.</p></li><li><p>I pull the code to my laptop and review it in Cursor.</p></li><li><p>I use Cursor&#8217;s ask mode to query the codebase.</p></li><li><p>I use Lovable, Codex, and Cursor in plan mode to plan changes.</p></li><li><p>I use Amp and Factory Droid in edit mode to implement changes. Cursor&#8217;s agent also implements changes effectively.</p></li><li><p>I use Codex to review the codebase.</p></li><li><p>I use Amp for version control: add, commit with clear messages, push, and resolve merge conflicts. I ask Cursor or Codex to create plans. I use Cursor, Amp, Factory Droid, and AntiGravity to implement those plans or parts of them.</p></li><li><p>For most tasks, I create a plan first, then implement it. That workflow keeps the work predictable and on track with fewer surprises</p></li><li><p>For database changes, a local agent gives me the SQL to run, or I explain the intent to Lovable and it applies the changes. When something breaks and local agents cannot fix it, I switch to Lovable as the most capable agent.</p></li></ol><p>Overall, I research and scope with ChatGPT and Perplexity, build the first version in Lovable, then plan and implement across Cursor, Codex, Amp, and others, with Lovable as the fallback for database work and hard fixes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_G4x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_G4x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png 424w, https://substackcdn.com/image/fetch/$s_!_G4x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png 848w, https://substackcdn.com/image/fetch/$s_!_G4x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png 1272w, https://substackcdn.com/image/fetch/$s_!_G4x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_G4x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png" width="663" height="860" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:860,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Flowchart of a multi-agent workflow from research to planning, implementation, review, and Git operations.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Flowchart of a multi-agent workflow from research to planning, implementation, review, and Git operations." title="Flowchart of a multi-agent workflow from research to planning, implementation, review, and Git operations." srcset="https://substackcdn.com/image/fetch/$s_!_G4x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png 424w, https://substackcdn.com/image/fetch/$s_!_G4x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png 848w, https://substackcdn.com/image/fetch/$s_!_G4x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.png 1272w, https://substackcdn.com/image/fetch/$s_!_G4x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd4f2c10-2ae9-4f57-8b1f-d4066ac03249_663x860.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">Flowchart of a multi-agent workflow from research to planning, implementation, review, and Git operations.</figcaption></figure></div><h2>Lovable</h2><p>I build the first version of most apps in <a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Lovable</a>. When Lovable credits run low, I back the project to GitHub, pull it to my laptop, and use Cursor. I kept using the 5 daily Lovable credits and the Try to Fix button when Builder had issues. I used Lovable for database changes because I could not make those through GitHub. Lovable delivered consistent results, but I felt strong credit anxiety for small changes because each change still consumed many credits. Editors with token-based usage limits suited those small, frequent edits better. I made those changes in local coding agents and synced back via GitHub. Across all my agents and projects, Lovable was the most effective at checking whether the webapp it built matched my intent and solved my actual need. Only Lovable could look across the database, telemetry, frontend, backend, session recordings, app screenshots, and web search to decide where to intervene and improve. This aligns with OpenAI Codex team&#8217;s find <a href="https://openai.com/index/gpt-codex-analysis-and-interpretation/">here</a> .</p><p>Local coding agents (IDE, CLI) were better for specific, narrow edits. For example, to align a few icons or add text to icons, Lovable might make those edits but also introduce other changes. Local agents made more precise edits. I found it easier to spot check the work of local coding agents, and their explanation for every small change was also more detailed. They were also cheaper.</p><h2>Cursor IDE</h2><p>Cursor is my primary interface for writing blogs, home assistant and n8n automations, scripts and analysis, and websites, products, and prototypes. I kept using it with Lovable projects. The main limit was seeing what I had built on my local machine. I asked the AI to change the repository so it ran in both Lovable and on <a href="http://localhost">localhost</a>. Cursor&#8217;s diff view is a strong feature. See changes in every file and accept or reject each edit. Neither the CLI agents nor the other IDE extensions offered that level of visibility. Switch between preview and markdown mode when needed. The Model Context Protocol (MCP) connections in Cursor carry across projects, so I did not reconfigure them per project. The Composer model worked well. Bugs and errors with the auto model selector pushed me to Claude 4.5 Sonnet in Cursor, but I then hit my paid plan&#8217;s monthly usage limit. With multiple Cursor projects (Home Assistant, n8n, Writing, Building), each project had to load the Codex and Amp extensions on its own. That loading often got stuck and pushed me toward CLI-style agents.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hImo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hImo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png 424w, https://substackcdn.com/image/fetch/$s_!hImo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png 848w, https://substackcdn.com/image/fetch/$s_!hImo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png 1272w, https://substackcdn.com/image/fetch/$s_!hImo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hImo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png" width="663" height="359" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:359,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Cursor IDE along with Amp, Droid, and Codex.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Cursor IDE along with Amp, Droid, and Codex." title="Cursor IDE along with Amp, Droid, and Codex." srcset="https://substackcdn.com/image/fetch/$s_!hImo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png 424w, https://substackcdn.com/image/fetch/$s_!hImo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png 848w, https://substackcdn.com/image/fetch/$s_!hImo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.png 1272w, https://substackcdn.com/image/fetch/$s_!hImo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3978225-4e96-4959-aea6-d58d71b11ae2_663x359.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">Cursor IDE along with Amp, Droid, and Codex.</figcaption></figure></div><h2>SourceGraph Amp IDE extension</h2><p>I installed the Amp extension in Cursor. The interface differed as it did not have an explicit mode switcher. I could tell it to invoke the oracle to plan, and that worked for me, but it would make me anxious as it was not an explicit read-only mode. I could not choose the model, only between smart, rush, and deep, so I left it on smart. Each agent also referenced files differently. Spawning sub-agents to tackle different parts of the task feels very satisfying. It was harder to attach external files and images to Amp. Amp handled code tasks and Git well in smart mode. In rush mode it drew wrong conclusions on Git. In smart mode (Opus 4.6) it handled merges and commits with clear messages. Amp often picked the wrong folder or file and applied changes in the wrong place. A promotional offer gave me a fixed amount of free usage per day. Within a few days my usage exceeded it. I looked for other options.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vq2K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vq2K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png 424w, https://substackcdn.com/image/fetch/$s_!vq2K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png 848w, https://substackcdn.com/image/fetch/$s_!vq2K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png 1272w, https://substackcdn.com/image/fetch/$s_!vq2K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vq2K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png" width="663" height="584" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:584,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Amp uses a selection of models for different tasks, which is very interesting.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Amp uses a selection of models for different tasks, which is very interesting." title="Amp uses a selection of models for different tasks, which is very interesting." srcset="https://substackcdn.com/image/fetch/$s_!vq2K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png 424w, https://substackcdn.com/image/fetch/$s_!vq2K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png 848w, https://substackcdn.com/image/fetch/$s_!vq2K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.png 1272w, https://substackcdn.com/image/fetch/$s_!vq2K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd2df7-b1c4-4cf5-b99b-987ac0292a8e_663x584.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">Amp uses a selection of models for different tasks, which is very interesting.</figcaption></figure></div><h2>OpenAI Codex IDE extension</h2><p>OpenAI&#8217;s Codex extension runs in Cursor. With ChatGPT Plus I get some free usage per day. I set it up and use it. The extension is slow at making code changes. That may be a Windows issue or improve on Linux; it runs heavy commands for every patch and even when reading a file. I found that confusing. Codex did not handle Git well. It planned well and could enter plan mode. I used the Codex extension only for work I could leave running, and I accepted the long runtimes. The permission flow is painful. The extension does nothing until I repeatedly click allow. Codex was the first agent I gave full PC access, because it needed that to be useful. Eventually I used Codex only for creating plans. Asking it to edit code keeps it busy for a long time and blocks other work. Asking it to create a plan uses reads, not writes, so other agents can edit files in parallel.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rio2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rio2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png 424w, https://substackcdn.com/image/fetch/$s_!rio2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png 848w, https://substackcdn.com/image/fetch/$s_!rio2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png 1272w, https://substackcdn.com/image/fetch/$s_!rio2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rio2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png" width="663" height="1045" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1045,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Codex's 100 steps to make an edit.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Codex's 100 steps to make an edit." title="Codex's 100 steps to make an edit." srcset="https://substackcdn.com/image/fetch/$s_!rio2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png 424w, https://substackcdn.com/image/fetch/$s_!rio2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png 848w, https://substackcdn.com/image/fetch/$s_!rio2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.png 1272w, https://substackcdn.com/image/fetch/$s_!rio2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdb9cf3-4531-4f90-bfb9-6917771a7bb3_663x1045.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">Codex&#8217;s 100 steps to make an edit.</figcaption></figure></div><h2>Google Gemini AntiGravity</h2><p>After I exhausted the usage limits of the above options, I moved to Google&#8217;s AntiGravity, which is similar to Cursor. It is a reskinned Visual Studio Code IDE. The free plan includes some daily usage. I exhausted that within a few hours, but the interface matched Cursor and worked well. On the free version I hit per-model rate limits on the more capable models (Gemini Pro, GPT-OSS, Opus Sonnet). I switched to Gemini Flash, which has a higher allowance. That model was often oversubscribed and AntiGravity showed a &#8220;servers are overloaded&#8221; error. The rate-limit display per model was confusing. I could not tell whether I had hit my own limit or the service was saturated.</p><h2>Perplexity Comet AI browser</h2><p>I will write a separate article about the use cases I found for the AI browser. Here are two examples close to building side projects:</p><ul><li><p>I use Comet to upload files in my web app or click through many buttons.</p></li><li><p>I use Comet when I need to create new devices or entities. It opens the Home Assistant dashboard and goes through the clicks to update the dashboard. I do the actual automation separately.</p></li></ul><p>I still ran out of my monthly usage limits even though I was on the paid plan.</p><h2>CLI form factor</h2><p>I explored the CLI form factor because my Lenovo laptop was struggling with multiple Cursor windows open, each with multiple AI extensions and the Comet agentic browser. The CLI worked, but I did not like it. I found it harder to mix shell commands with AI prompts. In Cursor I had a separate terminal window. In the CLI I found it harder to review folders or files before passing them to a prompt and harder to run multiple agent tabs at once. I could not easily see how much I had used versus my limit. My hypothesis is that the CLI form factor likely works better for developers on enterprise accounts who do not need to track usage.</p><h2>Factory Droid AI CLI</h2><p>Factory AI has a coding agent called Droid. I installed and tried it. It did a good job at coding, but the interface was tricky. I hit the same CLI limitations: no parallel threads, no easy way to queue messages, tagging files was hard, and reading long plans was hard when the terminal scrolled to the end and expected me to pick an option. Viewing diffs was difficult. I had a one-year promotional paid plan but ran out of monthly credits after one week. Droid handles Git well. Because it runs in the terminal, I could not connect a Model Context Protocol (MCP) server to it, so I stopped using it for MCP. Factory Droid was the only CLI out of the ones I tried that could handle images as inputs.</p><h2>SourceGraph Amp CLI</h2><p>I also used Amp in its CLI form. It worked well. Starting March 2026, Amp will only be available on CLI, not as an IDE extension. That is disappointing because the IDE extension worked well. I couldn&#8217;t pass it images as inputs.</p><h2>Cursor CLI</h2><p>I also used Cursor in its CLI form. I often noticed that I would give it a command and it would do nothing, with no visible explanation for the hang. I couldn&#8217;t pass it images as inputs.</p><h2>OpenAI Codex CLI</h2><p>I also used Codex in its CLI form. It worked well, but only on WSL, not in PowerShell. I couldn&#8217;t pass it images as inputs.</p><h2>Claude Code</h2><p>I didn&#8217;t mention Claude code, Claude desktop, or Claude co-work because I don&#8217;t have an Anthropic subscription for my side projects. I don&#8217;t need to take one, given most of my needs are getting met from the other products. But I definitely love the Anthropic models themselves and use them a lot through the other products.</p><h2>Multi-agent coding is an Ops Problem</h2><p>I expected multi-agent coding to be a model problem. It is more of an ops problem. Credits, permissions, Git behavior, and feedback loops decide the outcome. To summarize: success depends on ops (limits, permissions, Git, feedback), not on which model you use.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">Day One User Expectations From AI Copilots in 2026</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ai-tech-stack-tools-2025q4">AI Tech Stack: What Have You Built With AI?</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/multi-ai-coding-agents-learnings">www.harshal-patil.com</a> on Mar 15, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[AI-Assisted Debugging To Uplevel Smart Home Heating]]></title><description><![CDATA[Combined Cursor, n8n, Lovable, and more to diagnose and fix Tado API rate limits in Home Assistant]]></description><link>https://harshalpatil.substack.com/p/tado-ha-n8n-rate-limits-2026</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/tado-ha-n8n-rate-limits-2026</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Tue, 31 Mar 2026 03:00:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/lmThFJOFPx8" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For several hours daily my smart home heating controls stopped working: some rooms went cold, others overheated. I used n8n, Home Assistant, AI coding assistants (including Cursor), and a BYO API usage dashboard to see why my <a href="https://www.harshal-patil.com/post/how-i-learnt-about-saas-system-architecture-by-building-my-smart-home">smart home</a> pinged the heating system 20,000 times a day to burn through rate limits. This helped redesign the automations, and stay warm and within both Tado&#8217;s and n8n&#8217;s quotas.</p><p>You need about 6 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><a href="https://youtu.be/lmThFJOFPx8">Video walkthrough</a> of the project:</p><div id="youtube2-lmThFJOFPx8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;lmThFJOFPx8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/lmThFJOFPx8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/tado-ha-n8n-rate-limits-2026">www.harshal-patil.com</a> on Mar 15, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/annual-review-personal-okrs-2024-other">Annual Review &amp; Personal OKRs 2024: Other Reflections</a></p></li><li><p><a href="https://www.harshal-patil.com/post/demystifying-my-home-s-electricity-and-gas-heating-expenses-in-ireland">Demystifying Home Utility Costs in Ireland</a></p></li><li><p><a href="https://www.harshal-patil.com/post/smart-home-overview-ha-dashboard-2026">Smart Home Architecture and HA Dashboard Overview</a></p></li><li><p><a href="https://www.harshal-patil.com/post/how-i-learnt-about-saas-system-architecture-by-building-my-smart-home">Lessons from Building a Smart Home: SaaS System Architecture</a></p></li><li><p><a href="https://www.harshal-patil.com/post/byo-n8n-insights-dashboard-2026">Build Your Own n8n Insights Dashboard To Track Workflow Executions Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/byo-api-usage-dashboard-2026">Build Your Own API Usage Dashboard To Track Multiple Providers Using Lovable</a></p></li></ul><h2>Learnings In AI Assisted Debugging</h2><p>Here are the principles that helped; the rest of the post shows how they played out in this setup.</p><ul><li><p><strong>Persistence and audit trail:</strong> Storing samples and sending telemetry into a few sinks (e.g. tables, sheets, dashboards) gives you an audit trail. Tracing trends over time makes it obvious when usage changes after upgrades or new devices. In this post I used an n8n datatable, Google Sheets, and a Lovable dashboard.</p></li><li><p><strong>Visualization:</strong> Seeing usage over time (charts, dashboards) makes it much easier to check that a change actually improved things. Below I use QuickChart, a custom API usage dashboard, and an n8n Insights-style view.</p></li><li><p><strong>Runaway automations:</strong> When many automations or integrations hit the same API, a few can dominate usage and blow the limit. Finding which flows or triggers are the heaviest is half the fix. In my case, one workflow would have consumed over 100% of my monthly execution quota.</p></li><li><p><strong>Sampling over full logging:</strong> You often do not need every event. Regular snapshots (e.g. every few hours) gave almost all the insight while keeping extra quota use low.</p></li><li><p><strong>Knowing the limits of low-code:</strong> Low-code and no-code tools get you far, but reliability and insight often depend on understanding their limits and adding your own logging, alerting, and visibility.</p></li></ul><h2>Problem Context</h2><p>We were <a href="https://www.harshal-patil.com/post/demystifying-my-home-s-electricity-and-gas-heating-expenses-in-ireland">spending a lot on gas heating</a>. So, I used <a href="https://www.harshal-patil.com/post/smart-home-overview-ha-dashboard-2026">Home Assistant</a> and Tado to make my Irish house heating smart. I had already <a href="https://www.harshal-patil.com/post/annual-review-personal-okrs-2024-other">cut heating usage by 52%</a> with room-by-room automations that turned heating on/off in rooms by detecting presence. After many months of bliss, Tado changed its API rate limits. I started getting rate limited. For a few hours daily, none of my heating controls worked. This is a story of how I used Cursor, n8n, Lovable, and more to diagnose and fix the problem.</p><p>First hard part was diagnosis. I had many flows across rooms and purposes. I needed to know which automations were consuming API calls, which to turn off or optimize, and whether I was moving in the right direction after changes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y8OT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y8OT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y8OT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y8OT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y8OT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y8OT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg" width="728" height="409.5686274509804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:663,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Node-RED flows in Home Assistant showing many automations across rooms: heating, hot water, presence, motion, with rate-limiting nodes.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Node-RED flows in Home Assistant showing many automations across rooms: heating, hot water, presence, motion, with rate-limiting nodes." title="Node-RED flows in Home Assistant showing many automations across rooms: heating, hot water, presence, motion, with rate-limiting nodes." srcset="https://substackcdn.com/image/fetch/$s_!y8OT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y8OT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y8OT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y8OT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea28766a-25c5-4d82-ba06-8a08f3efc6f2_663x373.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Node-RED flows in Home Assistant showing many automations across rooms: heating, hot water, presence, motion, with rate-limiting nodes.</figcaption></figure></div><h2>Diagnosis</h2><p>I wanted to understand the limit and redesign the logic.</p><p>I was hitting the cap: 20,000 API calls per day. With some automations disabled I was around 10K to 17K. Hot water and attic heating turned out to be major contributors.</p><p>I exported the automations from Node-RED and Home Assistant into Cursor and used AI assistance to brainstorm and streamline the logic. That produced a large flowchart using Mermaid Diagram. I used this as the specification/PRD and iterated over it. Then, asked AI to implement the revised automation in Home Assistant.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LKcj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LKcj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 424w, https://substackcdn.com/image/fetch/$s_!LKcj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 848w, https://substackcdn.com/image/fetch/$s_!LKcj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 1272w, https://substackcdn.com/image/fetch/$s_!LKcj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LKcj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png" width="728" height="188.86274509803923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:172,&quot;width&quot;:663,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Flowchart of hot water automation with triggers, priority-based decisions for heating on/off, and rate-limiting conditions such as 'Did hot water turn ON/OFF within 3 minutes?' and T1 minute exclude time.Mermaid Chart - Create complex, visual diagrams with text.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Flowchart of hot water automation with triggers, priority-based decisions for heating on/off, and rate-limiting conditions such as 'Did hot water turn ON/OFF within 3 minutes?' and T1 minute exclude time.Mermaid Chart - Create complex, visual diagrams with text." title="Flowchart of hot water automation with triggers, priority-based decisions for heating on/off, and rate-limiting conditions such as 'Did hot water turn ON/OFF within 3 minutes?' and T1 minute exclude time.Mermaid Chart - Create complex, visual diagrams with text." srcset="https://substackcdn.com/image/fetch/$s_!LKcj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 424w, https://substackcdn.com/image/fetch/$s_!LKcj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 848w, https://substackcdn.com/image/fetch/$s_!LKcj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 1272w, https://substackcdn.com/image/fetch/$s_!LKcj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c925fd2-33ee-47cd-9732-c93df4fd4334_663x172.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Flowchart of hot water automation with triggers, priority-based decisions for heating on/off, and rate-limiting conditions such as &#8216;Did hot water turn ON/OFF within 3 minutes?&#8217; and T1 minute exclude time.Mermaid Chart - Create complex, visual diagrams with text.</figcaption></figure></div><h2>Checking API Usage in Real Time</h2><p>I needed a way to see how many Tado API requests were left and how usage behaved over time. I built an n8n workflow. It had a one-time branch for Tado auth and token storage, and a recurring branch that ran on a schedule (every 3 hours in the final setup; I had started with every 10 minutes). The recurring flow got the stored refresh token, refreshed the access token, called the Tado API to read rate limit info, parsed it, and saved each sample to an n8n datatable.</p><p>Each check used one of the 20,000 daily Tado API calls. I was doing 144 checks a day. So I reduced the check frequency to balance visibility with quota. The datatable made it possible to see patterns over time. I could see that the counter reset around 12 noon, which explained why heating often failed in the late morning.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W9GN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W9GN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png 424w, https://substackcdn.com/image/fetch/$s_!W9GN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png 848w, https://substackcdn.com/image/fetch/$s_!W9GN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png 1272w, https://substackcdn.com/image/fetch/$s_!W9GN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W9GN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png" width="725" height="343.3634992458522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:314,&quot;width&quot;:663,&quot;resizeWidth&quot;:725,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;n8n workflow with one-time auth flow and recurring flow that runs every few hours to probe Tado rate limits and save results to an n8n datatable. &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="n8n workflow with one-time auth flow and recurring flow that runs every few hours to probe Tado rate limits and save results to an n8n datatable. " title="n8n workflow with one-time auth flow and recurring flow that runs every few hours to probe Tado rate limits and save results to an n8n datatable. " srcset="https://substackcdn.com/image/fetch/$s_!W9GN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png 424w, https://substackcdn.com/image/fetch/$s_!W9GN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png 848w, https://substackcdn.com/image/fetch/$s_!W9GN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.png 1272w, https://substackcdn.com/image/fetch/$s_!W9GN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca624ae-4f63-4fb9-bee0-47a02840a953_663x314.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">n8n workflow with one-time auth flow and recurring flow that runs every few hours to probe Tado rate limits and save results to an n8n datatable.</figcaption></figure></div><h2>Visualizing Usage: Charts and Telegram</h2><p>Viewing the datatable alone was not enough as I preferred a visual for a quick overview. I added a n8n workflow that ran on a daily schedule. It read the n8n datatable and used QuickChart to generate a chart of remaining requests over the course of the day. It sent the chart as a photo to Telegram. I also had periodic text messages with the percentage of requests remaining so I could see at a glance whether I was close to the limit. It also exported the datatable data to Google Sheets to make it easy to do further analysis.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!izvK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!izvK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png 424w, https://substackcdn.com/image/fetch/$s_!izvK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png 848w, https://substackcdn.com/image/fetch/$s_!izvK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png 1272w, https://substackcdn.com/image/fetch/$s_!izvK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!izvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png" width="728" height="266.8235294117647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:243,&quot;width&quot;:663,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;n8n workflow with Schedule Trigger, data from datatable/sheet, Sort, Limit, conditional for many data points, Aggregate, QuickChart, and notify on Telegram (send photo and text). &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="n8n workflow with Schedule Trigger, data from datatable/sheet, Sort, Limit, conditional for many data points, Aggregate, QuickChart, and notify on Telegram (send photo and text). " title="n8n workflow with Schedule Trigger, data from datatable/sheet, Sort, Limit, conditional for many data points, Aggregate, QuickChart, and notify on Telegram (send photo and text). " srcset="https://substackcdn.com/image/fetch/$s_!izvK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png 424w, https://substackcdn.com/image/fetch/$s_!izvK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png 848w, https://substackcdn.com/image/fetch/$s_!izvK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.png 1272w, https://substackcdn.com/image/fetch/$s_!izvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66d729-018a-4ab8-b018-9e2f5eb7711c_663x243.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">n8n workflow with Schedule Trigger, data from datatable/sheet, Sort, Limit, conditional for many data points, Aggregate, QuickChart, and notify on Telegram (send photo and text).</figcaption></figure></div><p>The QuickChart node in n8n hit URL length limits when using GET requests above a 250+ data points. The fix was to use a POST-based approach (e.g. a quickchart_post-style node) so the chart config is not sent in the URL. This would&#8217;ve required additional time to setup HTTP Request nodes, so I instead added data sampling (e.g. picking every 3rd data point).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eMbS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eMbS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png 424w, https://substackcdn.com/image/fetch/$s_!eMbS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png 848w, https://substackcdn.com/image/fetch/$s_!eMbS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png 1272w, https://substackcdn.com/image/fetch/$s_!eMbS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eMbS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png" width="663" height="894" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52aeb955-976e-498a-a741-e28d88d577b3_663x894.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:894,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Telegram chat with automated Tado API rate limit updates: percentage remaining, exact count out of 20,000, and timestamps; plus an embedded line chart showing remaining requests over several days with a sawtooth pattern and reset near noon. &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Telegram chat with automated Tado API rate limit updates: percentage remaining, exact count out of 20,000, and timestamps; plus an embedded line chart showing remaining requests over several days with a sawtooth pattern and reset near noon. " title="Telegram chat with automated Tado API rate limit updates: percentage remaining, exact count out of 20,000, and timestamps; plus an embedded line chart showing remaining requests over several days with a sawtooth pattern and reset near noon. " srcset="https://substackcdn.com/image/fetch/$s_!eMbS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png 424w, https://substackcdn.com/image/fetch/$s_!eMbS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png 848w, https://substackcdn.com/image/fetch/$s_!eMbS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.png 1272w, https://substackcdn.com/image/fetch/$s_!eMbS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52aeb955-976e-498a-a741-e28d88d577b3_663x894.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">Telegram chat with automated Tado API rate limit updates: percentage remaining, exact count out of 20,000, and timestamps; plus an embedded line chart showing remaining requests over several days with a sawtooth pattern and reset near noon.</figcaption></figure></div><h2>Feeding the API Usage Dashboard</h2><p>I already had <a href="https://www.harshal-patil.com/post/byo-api-usage-dashboard-2026">a Lovable-built API usage dashboard that tracks multiple providers</a>. I wanted Tado daily usage to appear there.</p><p>So I added a webhook-triggered n8n workflow: when the dashboard called the webhook, the workflow got rows from the datatable for the day, computed the maximum usage (or similar metric) for that day, formatted the response, and responded to the webhook.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RVes!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RVes!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png 424w, https://substackcdn.com/image/fetch/$s_!RVes!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png 848w, https://substackcdn.com/image/fetch/$s_!RVes!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png 1272w, https://substackcdn.com/image/fetch/$s_!RVes!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RVes!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png" width="725" height="299.6229260935143" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:274,&quot;width&quot;:663,&quot;resizeWidth&quot;:725,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;n8n workflow with webhook trigger that gets max usage for the day from the datatable and responds to the webhook for the dashboard. &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="n8n workflow with webhook trigger that gets max usage for the day from the datatable and responds to the webhook for the dashboard. " title="n8n workflow with webhook trigger that gets max usage for the day from the datatable and responds to the webhook for the dashboard. " srcset="https://substackcdn.com/image/fetch/$s_!RVes!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png 424w, https://substackcdn.com/image/fetch/$s_!RVes!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png 848w, https://substackcdn.com/image/fetch/$s_!RVes!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.png 1272w, https://substackcdn.com/image/fetch/$s_!RVes!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec55647-57d6-4767-b1ca-c58186ef8c8a_663x274.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">n8n workflow with webhook trigger that gets max usage for the day from the datatable and responds to the webhook for the dashboard.</figcaption></figure></div><p>The dashboard then pulled that data and displayed Tado usage and cost trends alongside the other APIs.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZOD3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZOD3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 424w, https://substackcdn.com/image/fetch/$s_!ZOD3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 848w, https://substackcdn.com/image/fetch/$s_!ZOD3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 1272w, https://substackcdn.com/image/fetch/$s_!ZOD3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZOD3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png" width="728" height="232.7843137254902" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:212,&quot;width&quot;:663,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;API Usage Dashboard widget showing Tado usage and cost trends: bar chart of daily API calls over time, with total usage and cost. &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="API Usage Dashboard widget showing Tado usage and cost trends: bar chart of daily API calls over time, with total usage and cost. " title="API Usage Dashboard widget showing Tado usage and cost trends: bar chart of daily API calls over time, with total usage and cost. " srcset="https://substackcdn.com/image/fetch/$s_!ZOD3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 424w, https://substackcdn.com/image/fetch/$s_!ZOD3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 848w, https://substackcdn.com/image/fetch/$s_!ZOD3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 1272w, https://substackcdn.com/image/fetch/$s_!ZOD3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c8a488e-4007-443d-8ce0-5525a46deeae_663x212.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">API Usage Dashboard widget showing Tado usage and cost trends: bar chart of daily API calls over time, with total usage and cost.</figcaption></figure></div><h2>Hitting n8n Usage Limits</h2><p>Checking Tado rate limits every 10 minutes meant the &#8220;Check Tado API Rate Limits&#8221; workflow would have consumed 170% of my monthly usage quota if I had left it running at that frequency. I got an alert from n8n that I was reaching my usage limit. So, I used the <a href="https://www.harshal-patil.com/post/byo-n8n-insights-dashboard-2026">n8n Insights dashboard</a> to see execution counts per workflow. I then reduced how often the Tado check runs and tuned other workflow triggers so I stayed within both Tado&#8217;s and n8n&#8217;s limits.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HU29!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HU29!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png 424w, https://substackcdn.com/image/fetch/$s_!HU29!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png 848w, https://substackcdn.com/image/fetch/$s_!HU29!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png 1272w, https://substackcdn.com/image/fetch/$s_!HU29!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HU29!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png" width="724" height="295.9336349924585" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/becf9f7d-a357-405c-958c-9561fac55b55_663x271.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:271,&quot;width&quot;:663,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;n8n Insights or Analytics dashboard showing workflow execution counts, with the Tado rate limit check workflow highlighted and its high execution count visible. &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="n8n Insights or Analytics dashboard showing workflow execution counts, with the Tado rate limit check workflow highlighted and its high execution count visible. " title="n8n Insights or Analytics dashboard showing workflow execution counts, with the Tado rate limit check workflow highlighted and its high execution count visible. " srcset="https://substackcdn.com/image/fetch/$s_!HU29!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png 424w, https://substackcdn.com/image/fetch/$s_!HU29!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png 848w, https://substackcdn.com/image/fetch/$s_!HU29!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.png 1272w, https://substackcdn.com/image/fetch/$s_!HU29!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbecf9f7d-a357-405c-958c-9561fac55b55_663x271.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">n8n Insights or Analytics dashboard showing workflow execution counts, with the Tado rate limit check workflow highlighted and its high execution count visible.</figcaption></figure></div><h2>Findings for Tado and Home Assistant</h2><ul><li><p><strong>Rate limit reset time:</strong> Seeing the datatable and charts made it obvious the Tado counter resets around noon. That explained why heating failed in the late morning: the quota was exhausted until the next reset.</p></li><li><p><strong>Monitoring consumes quota:</strong> Each rate-limit check uses one Tado API call. Balance check frequency against how much visibility you need so you do not burn the limit on monitoring alone.</p></li><li><p><strong>Two kinds of limits:</strong> Tado&#8217;s daily API cap and n8n&#8217;s monthly execution cap both matter. The n8n Insights dashboard showed which workflow was using most executions; I reduced that workflow&#8217;s frequency and kept the rest of the automations within both limits.</p></li></ul><p>The setup is still mostly n8n and Home Assistant. What changed was adding my own visibility: rate-limit checks, charts, and the API dashboard. That is the difference between vibe engineering and making it reliable.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/annual-review-personal-okrs-2024-other">Annual Review &amp; Personal OKRs 2024: Other Reflections</a></p></li><li><p><a href="https://www.harshal-patil.com/post/demystifying-my-home-s-electricity-and-gas-heating-expenses-in-ireland">Demystifying Home Utility Costs in Ireland</a></p></li><li><p><a href="https://www.harshal-patil.com/post/smart-home-overview-ha-dashboard-2026">Smart Home Architecture and HA Dashboard Overview</a></p></li><li><p><a href="https://www.harshal-patil.com/post/how-i-learnt-about-saas-system-architecture-by-building-my-smart-home">Lessons from Building a Smart Home: SaaS System Architecture</a></p></li><li><p><a href="https://www.harshal-patil.com/post/byo-n8n-insights-dashboard-2026">Build Your Own n8n Insights Dashboard To Track Workflow Executions Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/byo-api-usage-dashboard-2026">Build Your Own API Usage Dashboard To Track Multiple Providers Using Lovable</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/tado-ha-n8n-rate-limits-2026">www.harshal-patil.com</a> on Mar 15, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Day One User Expectations From AI Copilots in 2026]]></title><description><![CDATA[Nine capabilities users treat as table stakes, not differentiators]]></description><link>https://harshalpatil.substack.com/p/ai-copilot-expectations-day-one</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/ai-copilot-expectations-day-one</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 25 Mar 2026 03:00:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Bf8o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Users judge new AI copilots against mature systems on day one. That comparison feels unfair. That comparison still sets the bar. Users bring muscle memory from ChatGPT and Claude. Users expect a copilot to operate the product, not only talk about the product. I tested many AI copilots and build some personally and for work. I used or built them for edits, triage, debugging, and admin chores. I wrote this because I kept seeing the same gap in copilot launches: demos focus on language quality, while users test operational reliability. Users ask, &#8220;Can it see what I see, take the action, and avoid surprises?&#8221; This article lists the day-one expectations users apply, even when a team ships &#8220;v1.&#8221; Each expectation includes examples, so the list stays practical. I wrote this based on examples from AI copilots in Notion, Microsoft Copilot, n8n, Zapier, Cursor, Amp, Codex, Descript, Mermaid Diagrams, Gmail (Gemini), Slack, Perplexity, Comet, MCP implementations (Trello, Zoho CRM, Zoho Projects), AWS Q, and other recent products.</p><p>You need 7 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!Bf8o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bf8o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png 424w, https://substackcdn.com/image/fetch/$s_!Bf8o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png 848w, https://substackcdn.com/image/fetch/$s_!Bf8o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png 1272w, https://substackcdn.com/image/fetch/$s_!Bf8o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bf8o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png" width="663" height="436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;9 user expectations from AI copilots&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="9 user expectations from AI copilots" title="9 user expectations from AI copilots" srcset="https://substackcdn.com/image/fetch/$s_!Bf8o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png 424w, https://substackcdn.com/image/fetch/$s_!Bf8o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png 848w, https://substackcdn.com/image/fetch/$s_!Bf8o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.png 1272w, https://substackcdn.com/image/fetch/$s_!Bf8o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c016dc-a2f0-4f16-9a9b-2d852034758d_663x436.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">9 user expectations from AI copilots</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">www.harshal-patil.com</a> on Mar 01, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-product-trends-2026q1">AI Copilot Trends, 2026 Q1</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">AI And The Future Of Work 2025</a></p></li><li><p><a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">Why Vibe Coding Wins Over No-Code In 2025</a></p></li></ul><h2>Broad Terms</h2><p>I had a few specific products in my mind when I was thinking of each expectation, but to make the sections apply broadly, I defined some generic terms.</p><ul><li><p><strong>Surface:</strong> The UI state the user sees (view, editor, settings screen).</p></li><li><p><strong>Resource:</strong> The thing the user operates on (doc, record, automation, project, image).</p></li><li><p><strong>Action:</strong> The state change the user wants (read, create, update, delete, run, share, configure).</p></li><li><p><strong>Constraint:</strong> The blocker that prevents an action (permissions, missing connection, validation).</p></li></ul><h2>The Expectations</h2><p>These are the expectations users have:</p><ul><li><p>See What the User Sees</p></li><li><p>Change Platform Settings</p></li><li><p>Create, Read, Update, and Delete Tasks</p></li><li><p>Web Search</p></li><li><p>Image and Document Input/Output</p></li><li><p>Support Docs Knowledge</p></li><li><p>Persistent Chat and Search</p></li><li><p>Debugging</p></li><li><p>Preview and Revert</p></li></ul><h2>Products Referenced</h2><p>Here are the products I referenced in the article:</p><ul><li><p>Amp</p></li><li><p>AWS Q</p></li><li><p>ChatGPT</p></li><li><p>Codex</p></li><li><p>Comet</p></li><li><p>Cursor</p></li><li><p>Descript</p></li><li><p>Factory Droid</p></li><li><p>Gemini (Gmail)</p></li><li><p>Granola</p></li><li><p>Home Assistant</p></li><li><p>Lovable</p></li><li><p>Mermaid Diagrams</p></li><li><p>Microsoft Copilot</p></li><li><p>n8n</p></li><li><p>NotebookLM</p></li><li><p>Notion AI</p></li><li><p>Perplexity</p></li><li><p>PostHog</p></li><li><p>Slack</p></li><li><p>Trello (MCP)</p></li><li><p>Zapier</p></li><li><p>Zoho CRM (MCP)</p></li><li><p>Zoho Projects (MCP)</p></li></ul><h2>See What the User Sees</h2><p>Users expect the copilot to read the current surface state and take the same actions the surface permits. Edit the selected section. Detect a missing connection in one automation step, even if other steps work. When the copilot cannot see the current UI state, it suggests actions the UI does not allow, or it edits the wrong thing.</p><p>Examples:</p><ul><li><p>Microsoft Copilot Vision can see a shared app window.</p></li><li><p>Gemini in Gmail can draft a reply using the email thread context.</p></li><li><p>Cursor can edit the selected section.</p></li><li><p>Notion AI can edit the database, columns formula, page content you see.</p></li><li><p>Notion AI or Gemini can see what the user has access to, and cannot see what the user does not have access to.</p></li><li><p>n8n or Zapier copilots can see example data attached to a step and detect missing credentials.</p></li><li><p>PostHog&#8217;s Max AI can edit any part of the webpage.</p></li></ul><h2>Change Platform Settings</h2><p>Every platform buries settings in a different place. Adding users, sharing a page, and changing notification preferences each live behind different menus. Chat is universal. Users expect the copilot to handle common settings actions through chat, not menu hunting.</p><p>Examples:</p><ul><li><p>Notion AI earlier couldn&#8217;t edit or create databases.</p></li><li><p>Mermaid AI couldn&#8217;t change diagram format earlier.</p></li><li><p>n8n AI Workflow Builder earlier couldn&#8217;t change workflow or instance settings.</p></li></ul><h2>Create, Read, Update, and Delete Tasks</h2><p>Users expect the copilot to create, read, update, and delete resources across the workspace, not only the resource the user is currently working on. Users expect the copilot to navigate across resources when a task spans multiple places.</p><p>Examples:</p><ul><li><p>Coding agents like Cursor can read, create, update files in the project not open in the editor.</p></li><li><p>Lovable recently added support to reference other Lovable projects in your workspace from a project.</p></li><li><p>Comet does not review other tabs open in the browser.</p></li><li><p>ChatGPT and Perplexity added support to remember context across chat sessions.</p></li><li><p>n8n AI Workflow Builder can draft a workflow, but cannot yet create or execute other workflows.</p></li></ul><h2>Web Search</h2><p>Users expect the copilot to fetch public information outside the product when the task requires it. Users use web search to confirm what the current docs say, instead of relying on model&#8217;s training data. When the copilot answers from memory and drifts from current docs, users cannot trust the instructions and need to copy paste between the AI copilot and web/AI search.</p><p>Examples:</p><ul><li><p>Lovable, Cursor, Amp, Codex, Factory Droid copilots can read integration docs to confirm an API supports the needed action.</p></li><li><p>Notion AI or Gemini should read about the Minto Pyramid or CIRCLES framework, as needed, before structuring a doc.</p></li><li><p>n8n, Zapier, Lovable AI copilots should explain Google Cloud credential setup.</p></li><li><p>Microsoft Copilot Vision can see my desktop and every page, but it still did not help me fetch the right docs or resolve the issue.</p></li><li><p>Users often use Perplexity for AI-first web search.</p></li></ul><h2>Image and Document Input/Output</h2><p>Users expect the copilot to read and write non-text resources, not only text. Users also need visual outputs sometime, not just text.</p><p>Examples:</p><ul><li><p>Lovable, Cursor, Factory Droid, or Notion AI can pull requirements from a PDF or image.</p></li><li><p>Lovable, Cursor, or Factory Droid can create mermaid diagram outputs as part of their explanation. Workflow tools would also benefit from this ability. Mermaid diagrams have become a de-facto standard for workflow diagrams.</p></li><li><p>Mermaid, UI design tools, n8n copilot generate visual outputs, so would benefit from the ability to read an image.</p></li><li><p>When an Agent needs to generate a workflow diagram for Home Assistant or n8n.</p></li><li><p>Granola lets you add images to your notes.</p></li><li><p>ChatGPT can export a PDF summary of decisions or outcomes in a chat.</p></li></ul><h2>Support Docs Knowledge</h2><p>Users expect the copilot to ground answers in the product&#8217;s support resources and know of changes in the latest product version. Troubleshooting and setup, administrative tasks, and day-to-day usage all depend on current documentation.</p><p>Examples:</p><ul><li><p>Notion AI earlier could not explain how to do something in Notion, now it can.</p></li><li><p>n8n Ask AI assistant can explain any error code based on documentation and community knowledge.</p></li><li><p>PostHog&#8217;s AI gives thorough explanations for any issue and offers to one-click solve it too.</p></li></ul><h2>Persistent Chat and Search</h2><p>Users expect the copilot to persist chat history across sessions and make that history searchable. When users treat the copilot as their main interface, they need to reference past actions, especially recent ones. They expect chat history to persist after exiting and returning to the tool. Prompt reuse makes persistence even more important: effective prompts are valuable, and users want to store and reuse them. Without persistent history, users repeat context and lose continuity. Chat never becomes a reliable work record.</p><p>Examples:</p><ul><li><p>LinkedIn messages (not an AI copilot example) used to disappear across sessions, now they persist.</p></li><li><p>ChatGPT improved its UX by making chat history searchable, like workspace search.</p></li><li><p>NotebookLM projects persist the same source set of files across sessions, so you can reference back to previous conversations.</p></li></ul><h2>Debugging</h2><p>Users expect the copilot to debug failures using surface state, errors, logs, docs, and known workarounds. This saves time. The AI can see what users see, identify likely issues, choose a solution, and implement it. Users no expect to read documentation, search the web, or navigate platform settings.</p><p>Examples:</p><ul><li><p>Mermaid AI can debug a Mermaid diagram syntax error.</p></li><li><p>Cursor&#8217;s debug mode reflects this workflow, where it temporarily adds verbose output, reads logs, and later removes the verbose output.</p></li><li><p>Lovable detects a failure and offers to fix it for users.</p></li><li><p>Microsoft Copilot Vision on Lenovo could see the error state on screen and read them out, but the challenge was it did not debug any error.</p></li><li><p>Descript AI could not explain a render failure, e.g. converting a slideshow into a video.</p></li><li><p>Users expect n8n AI to review their execution error and suggest fixes.</p></li></ul><h2>Preview and Revert</h2><p>Users expect the copilot to support preview and undo for every action that changes resources. Users want to see the changes before they are applied, and be able to revert them if needed. When intent is ambiguous, users expect the copilot to ask clarifying questions before it changes resources, which is another way to &#8220;preview&#8221; the changes.</p><p>When users fear irreversible edits, they stop experimenting, even when the copilot could help.</p><p>Examples:</p><ul><li><p>Cursor Ask mode and Plan mode let users review a plan before applying changes.</p></li><li><p>Lovable, Cursor, and Notion AI have revert option after AI makes a change.</p></li><li><p>Notion AI makes bulk changes to one page first, to let you preview the changes before they are applied in bulk.</p></li></ul><h2>Great AI Copilot Means Predictability</h2><p>Users need predictability. Users accept limits, but reject surprises. A narrow copilot with clear boundaries beats a broad copilot with erratic behavior.</p><p>Predictability comes from product decisions, not only model upgrades. Make predictability explicit at the copilot&#8217;s input and output:</p><ul><li><p>Define what the copilot does: name a small set of jobs to be done.</p></li><li><p>Define what the copilot needs: list required inputs and ask for missing context.</p></li></ul><p>One challenge is guessing. A copilot that asks one clarifying question at the right time often beats a copilot that guesses.</p><p>Another challenge is launch scope. A copilot on launch cannot do everything. Set expectations by making task boundaries explicit, what it can do and what it cannot do. Then the copilot can point users to do things on their own instead of doing something poorly.</p><p>None of these nine expectations require a better model. They require better product work. Context access, state management, undo, search, and documentation grounding are engineering and design decisions, not LLM model capabilities.</p><p>Products that close these gaps early earn user trust. Teams that ship without predictable usability lose users after the first real task.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-product-trends-2026q1">AI Copilot Trends, 2026 Q1</a>.</p></li><li><p><a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">AI And The Future Of Work 2025</a>.</p></li><li><p><a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">Why Vibe Coding Wins Over No-Code In 2025</a>.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">www.harshal-patil.com</a> on Mar 01, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[AI Copilot Product Trends, Q1 2026]]></title><description><![CDATA[Context engineering won to build AI products. Now manage it.]]></description><link>https://harshalpatil.substack.com/p/ai-copilot-product-trends-2026q1</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/ai-copilot-product-trends-2026q1</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 18 Mar 2026 03:00:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1gGh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI product work moved from model selection to context and adoption. A year ago, the AI conversation centered on model selection and fine-tuning. Today, product teams talk about adoption speed, context engineering, and context management. I have had this conversation with product teams repeatedly. This post summarizes what I learned from AI Product Management work at <a href="https://www.harshal-patil.com/post/pivot-to-ft-pm-role-flexai-july2024">FlexAI</a> and <a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025">n8n</a>.</p><p>Here are 4 trends I see in the AI application layer in Q1 2026 and why they matter for product teams in 2026.</p><p>You need 3 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!1gGh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1gGh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!1gGh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!1gGh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!1gGh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1gGh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png" width="663" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;AI copilot enabling many apps.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AI copilot enabling many apps." title="AI copilot enabling many apps." srcset="https://substackcdn.com/image/fetch/$s_!1gGh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!1gGh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!1gGh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!1gGh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a4ca775-0030-496a-96ef-dcb1ab7084cc_663x441.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">AI copilot enabling many apps.</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-copilot-product-trends-2026q1">www.harshal-patil.com</a> on Feb 13, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">AI and the Future of Work</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">AI Copilot Expectations</a></p></li><li><p><a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">Vibe Coding Wins Over No-Code</a></p></li></ul><h2>1. AI copilots reset usability expectations</h2><p>AI copilots moved from &#8220;nice to have&#8221; to table stakes.</p><p>Why this matters:</p><ul><li><p>Complex SaaS products become easier when an AI copilot guides users through the product.</p></li><li><p>Chat does not need to be the primary interface, but chat became a major interface for platform interaction.</p></li><li><p>A copilot reduces the learning cost. Users avoid new UI patterns, niche languages like <a href="https://www.twilio.com/docs/voice/twiml">TwiML</a>, and platform-specific concepts (Bubble, n8n).</p></li></ul><p>Consider two mature products in the same category. One product adds a copilot that actually helps users finish work. That product wins on usability for existing users. New users now look for AI help during evaluation. The product without a copilot can lose before the trial starts.</p><p>Low-code and no-code platforms face pressure from a different direction. These products simplified building for non-developers. AI coding tools (Cursor, Claude Code, Codex) now let non-developers build useful solutions without learning the underlying stack. That shrinks the advantage <a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">low-code and no-code platforms</a> used to have.</p><h2>2. Fine-Tuning Lost to Context Engineering</h2><p>When LLMs arrived, fine-tuning drew enormous attention. Dozens of MLOps platforms launched to serve the demand. SemiAnalysis counted more than 100 <a href="https://newsletter.semianalysis.com/p/ai-neocloud-playbook-and-anatomy">neocloud offerings</a> at one point.</p><p>That wave slowed for two reasons:</p><ol><li><p><strong>Fine-tuning is high effort.</strong> Cost and complexity did not drop much. Fine-tuning still takes work. Training a small model still takes work. Most effort sits in data preparation.</p></li><li><p><strong>Foundation models improved.</strong> OpenAI, Anthropic, and Google improved capabilities quickly. Context engineering and prompt design now extract enough value without retraining.</p></li></ol><p>Most companies do not need heavy fine-tuning. Start with an off-the-shelf model (Claude Sonnet, OpenAI GPT, Gemini) and invest in context engineering. These models already cover the breadth of tasks most products need. Fine-tuning costs engineering time, training infrastructure, and ongoing maintenance. Context engineering costs less and adapts faster when requirements change.</p><h2>3. Context Management Is the New Bottleneck</h2><p>Every major model now offers large context windows. That does not mean you should fill them. <a href="https://cloud.google.com/transform/the-prompt-what-are-long-context-windows-and-why-do-they-matter">Empirical results</a> show that answer quality and consistency <a href="https://www.applied-ai.com/newsletter/issue-02-2025-07-10/">drop well before</a> the hard token limit. The bottleneck shifted from context window size to context relevance.</p><p>The goal is to give the model the minimum relevant context, even though it can technically handle much more. This shows up in several areas:</p><ul><li><p><strong>MCP, skills, and tools:</strong> Standardize how context flows between systems. Anthropic improved MCP and tool handling to <a href="https://www.anthropic.com/engineering/advanced-tool-use">reduce context bloat</a>.</p></li><li><p><strong>Better retrieval:</strong> Pull in the right information, not all information.</p></li><li><p><strong>Context harness engineering:</strong> Select, rank, and prune context before it reaches the model. Effective harnesses enable agents to run longer without degradation, as described in Anthropic&#8217;s <a href="https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents">harness guide</a>.</p></li></ul><h2>4. Markdown, Mermaid, and Code Are the Language of AI</h2><p>Markdown (text) and Mermaid (diagrams) became default formats for giving context to a model and reading a model&#8217;s output. These formats work for technical tasks and non-technical tasks.</p><p>LLMs write code well. Machines execute code reliably. That makes <a href="https://youtu.be/pcP1BND6_-g?si=3zPe0FvOyzUQQ2Hq&amp;t=64">code the primary way for LLMs to interact with the world</a>. You can see this pattern quickly. Ask an agent to analyze a document and the agent often writes code to parse the document instead of reading the document like a human.</p><h2>How These Trends Connect</h2><p>Teams adopt AI because users expect copilots (trend 1). Then teams learn that model choice matters less than expected (trend 2). Context management becomes the discipline that separates reliable products from unreliable ones (trend 3). Teams standardize on Markdown and Mermaid, and they expect agents to write and run code (trend 4).</p><p>One framing helps across all four trends. Treat AI as augmentation, not replacement. That framing leads to faster adoption and better outcomes. I wrote more about AI augmenting humans <a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">here</a>.</p><p>Use these questions in roadmap reviews:</p><ul><li><p>Where does the copilot remove the most learning cost for users?</p></li><li><p>What context does the model need for that task, and what context is noise?</p></li><li><p>What breaks when context grows past &#8220;helpful&#8221; into &#8220;bloat&#8221;?</p></li><li><p>Which failures come from retrieval, tooling, or pruning (not the model)?</p></li></ul><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">AI and the Future of Work</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">AI Copilot Expectations</a></p></li><li><p><a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">Vibe Coding Wins Over No-Code</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-copilot-product-trends-2026q1">www.harshal-patil.com</a> on Feb 13, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[AI Copilot Is Now a Must-Have, Here's An Anecdote]]></title><description><![CDATA[AI Copilot Is Now a Must-Have, Here's An Anecdote]]></description><link>https://harshalpatil.substack.com/p/ai-copilot-must-have-zoho-projects-trello-2026q1</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/ai-copilot-must-have-zoho-projects-trello-2026q1</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Sun, 15 Mar 2026 12:00:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T9Mj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I started losing tasks at the moment I needed to capture them. A task would pop into my head. It was often a small house task or a small personal task. I had maybe 30 seconds. If I opened a project management tool, I would click around, lose momentum, and postpone. Sometimes I would forget the task.</p><p>Trello MCP changed that capture moment for me. This experience made one thing clear to me. AI copilots are now a must-have feature for products to be successful. If a tool does not support an AI copilot well, that tool feels slower and harder to use.</p><p>I heard about Trello MCP on the <a href="https://pocketcasts.com/podcast/how-i-ai/29804190-0039-013e-0c58-0e1d7f698bfd/claude-code-for-product-managers-research-writing-context-libraries-custom-to-do-system-and-more-teresa-torres/0a72d2db-d7d4-46b8-b7b0-54d6307dce50">How I AI podcast, where Teresa Torres</a> was the guest. I wanted to try it because I was wasting a lot of time opening different task boards and updating them. My goal was to give an AI agent a command and have the agent handle most board updates.</p><p>Most of the time, I use voice (Wispr Flow) with Cursor. That workflow works well. I can dictate the task to the agent to create or update the card in Trello. This is why I moved from Zoho Projects to Trello.</p><p>I&#8217;ll share the different trials I did and learnings.</p><p>You need 7 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!T9Mj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T9Mj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png 424w, https://substackcdn.com/image/fetch/$s_!T9Mj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png 848w, https://substackcdn.com/image/fetch/$s_!T9Mj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png 1272w, https://substackcdn.com/image/fetch/$s_!T9Mj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T9Mj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png" width="663" height="663" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:663,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;simple Kanban board, glowing with an AI copilot&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="simple Kanban board, glowing with an AI copilot" title="simple Kanban board, glowing with an AI copilot" srcset="https://substackcdn.com/image/fetch/$s_!T9Mj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png 424w, https://substackcdn.com/image/fetch/$s_!T9Mj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png 848w, https://substackcdn.com/image/fetch/$s_!T9Mj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.png 1272w, https://substackcdn.com/image/fetch/$s_!T9Mj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05e1203-c218-4c5d-a7d8-b22567585d19_663x663.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">simple Kanban board, glowing with an AI copilot</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-copilot-must-have-zoho-projects-trello-2026q1">www.harshal-patil.com</a> on Mar 15, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">Day One User Expectations From AI Copilots in 2026</a></p></li><li><p><a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">Set Up Trello MCP in Cursor To Chat With Your Project Boards</a></p></li></ul><h2>Problem context: my multi-board reality</h2><p>I use multiple boards:</p><ul><li><p>With my wife, for house tasks like paperwork and smart home fixes</p></li><li><p>With freelancers, for data analysis, programming, and automations</p></li><li><p>With a personal assistant, for data entry and web research tasks</p></li></ul><p>This setup enables me to not drop the ball or coordinate with others. But if I am slow at making small updates, the backlog gets stale and I lose time.</p><p>I noticed this impact:</p><ul><li><p>Cards are more likely to have labels and more context.</p></li><li><p>I update cards more often, especially small edits like adding labels or extra context.</p></li></ul><h2>Takeaways From Trials</h2><p>Two things stood out from this migration:</p><ul><li><p><strong>AI changes product usability.</strong> Trello and Zoho Projects do not have built-in AI, but I could connect one better than the other. The one I could connect became faster and easier to use.</p></li><li><p><strong>Test at a small scale before writing a bulk script.</strong> An AI coding agent can generate a complete Python script immediately, but I needed to understand the process first. Migrating one task with MCP helped me give better context to the agent before migrating all tasks.</p></li><li><p><strong>No plan means failure.</strong> Building without a clear plan, a concrete end goal, or an easy way to test almost always leads to problems, even if you are exploring or experimenting. For example, finding the API spec for a product you want to integrate with.</p></li><li><p><strong>AI builders need feedback.</strong> AI builder agents work best when they can test and debug what they build. Make feedback and testing easy, so your AI builder can see the results and improve its output. For example, a disconnected coding agent cannot test the Chrome extension it is building.</p></li></ul><h2>Approaches considered</h2><ul><li><p>Zoho built-in MCP with Cursor</p></li><li><p>Trello community MCP (Cursor, Codex, AMP)</p></li><li><p>Zoho in n8n</p></li><li><p>Trello in n8n (free MCP template)</p></li><li><p>Trello in n8n (paid template)</p></li><li><p>Zapier MCP for Trello</p></li><li><p>Chrome extension as Zoho co-pilot</p></li><li><p>Migrate to Trello and use Trello MCP</p></li></ul><h2>Zoho Projects with MCP</h2><p>I tried to build an n8n workflow to act as a co-pilot for Zoho Projects, but with no existing nodes, I would need to create HTTP Request Nodes for each resource and operation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sokh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sokh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png 424w, https://substackcdn.com/image/fetch/$s_!sokh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png 848w, https://substackcdn.com/image/fetch/$s_!sokh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png 1272w, https://substackcdn.com/image/fetch/$s_!sokh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sokh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png" width="663" height="315" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:315,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!sokh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png 424w, https://substackcdn.com/image/fetch/$s_!sokh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png 848w, https://substackcdn.com/image/fetch/$s_!sokh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.png 1272w, https://substackcdn.com/image/fetch/$s_!sokh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b54b0b-f9bd-4997-8509-1e540b14cd49_663x315.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>Zoho has a built-in MCP</p><p>I used the <a href="https://www.zoho.com/mcp/">Zoho built-in MCP</a> with Cursor. It made Cursor crash. There were too many tools exposed by the MCP. My guess is the tool descriptions were too long but still not clear. Cursor would often forget how to use the MCP or the MCP ran into authentication issues.</p><p>I also tried it with n8n, but that didn&#8217;t work well either.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BiFS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BiFS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png 424w, https://substackcdn.com/image/fetch/$s_!BiFS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png 848w, https://substackcdn.com/image/fetch/$s_!BiFS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png 1272w, https://substackcdn.com/image/fetch/$s_!BiFS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BiFS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png" width="663" height="373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!BiFS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png 424w, https://substackcdn.com/image/fetch/$s_!BiFS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png 848w, https://substackcdn.com/image/fetch/$s_!BiFS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.png 1272w, https://substackcdn.com/image/fetch/$s_!BiFS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9734613e-5d1b-430b-aec2-2ad1ba179990_663x373.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>Starter Zoho Projects Agent using n8n and Zoho MCP</p><h2>Zoho Projects Chrome extension</h2><p>Next, I built a Chrome extension using Cursor to work as an AI co-pilot for Zoho Projects. But, my mistake was in not reviewing the plans or providing precise spec with API endpoint specific details. My hope was that whenever I have Zoho Projects open, I can open this sidebar and it would act as an AI assistant. I got this idea because I saw some such community products built for n8n. I built this extension by telling the coding agent of Cursor to look up the API specification of Zoho projects and implement a copilot for it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kQlA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kQlA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png 424w, https://substackcdn.com/image/fetch/$s_!kQlA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png 848w, https://substackcdn.com/image/fetch/$s_!kQlA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png 1272w, https://substackcdn.com/image/fetch/$s_!kQlA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kQlA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png" width="227" height="527" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:527,&quot;width&quot;:227,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!kQlA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png 424w, https://substackcdn.com/image/fetch/$s_!kQlA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png 848w, https://substackcdn.com/image/fetch/$s_!kQlA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.png 1272w, https://substackcdn.com/image/fetch/$s_!kQlA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ecb668-462b-4d13-a20f-86486b7f525d_227x527.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>Zoho Projects Agent using Chrome extension</p><p>I found it very helpful to also think in terms of enabling users to customize settings instead of hard coding anything. I put my built-in public hat on to think of if I need to publish this code on GitHub, then what would keep it secure? A lot of these are standard development practices, and I realize that the more I built a project, the more likely I was to come back and follow standard development practices.</p><p>My AI co-pilot did not work well.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VmKO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VmKO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png 424w, https://substackcdn.com/image/fetch/$s_!VmKO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png 848w, https://substackcdn.com/image/fetch/$s_!VmKO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png 1272w, https://substackcdn.com/image/fetch/$s_!VmKO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VmKO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png" width="541" height="1469" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1469,&quot;width&quot;:541,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!VmKO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png 424w, https://substackcdn.com/image/fetch/$s_!VmKO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png 848w, https://substackcdn.com/image/fetch/$s_!VmKO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.png 1272w, https://substackcdn.com/image/fetch/$s_!VmKO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89bdbd13-7787-4e83-99a4-4895cbe3c64b_541x1469.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>Settings customization for Chrome Extension</p><h2>Trello MCP in n8n</h2><p>I could build an n8n workflow using the <a href="https://n8n.io/workflows/11202-manage-trello-tasks-with-ai-assistants-via-mcp-server/">Manage Trello tasks with AI assistants via MCP server</a> template that I could trigger from my phone or laptop, anywhere, to update my board. n8n had built-in Trello nodes, but they didn&#8217;t cover all the features I wanted, especially getting all the boards and lists. It expected me to know my board ID and list ID. I could solve this using HTTP request nodes. The Trello MCP template worked well for straightforward tasks written in very clear, precise language but could not handle even a little bit of ambiguity or just a difference in phrasing of the request.</p><p>I triggered my n8n workflow from Telegram. I could input images, audio, documents, or text. It used the MCP to respond back to me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LE5R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LE5R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png 424w, https://substackcdn.com/image/fetch/$s_!LE5R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png 848w, https://substackcdn.com/image/fetch/$s_!LE5R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png 1272w, https://substackcdn.com/image/fetch/$s_!LE5R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LE5R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png" width="663" height="325" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:325,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!LE5R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png 424w, https://substackcdn.com/image/fetch/$s_!LE5R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png 848w, https://substackcdn.com/image/fetch/$s_!LE5R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.png 1272w, https://substackcdn.com/image/fetch/$s_!LE5R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ee92240-08ea-4ca0-9586-69accfbaed69_663x325.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>n8n workflow (left) using Trello MCP template (right)</p><p>I found a paid n8n template that worked with Trello: <a href="https://n8n.io/workflows/5079-trello-tool-mcp-server-all-41-operations/">Trello tool MCP server (all 41 operations)</a> via n8n It had several tools so it was more comprehensive, but because it was paid, I shelved it to try other build-your-own approaches first. A potential next step for me would have been to give a screenshot of this paid template and an example smaller Trello MCP workflow to Cursor and ask it to re-create it.</p><p>I also noticed a <a href="https://zapier.com/mcp/trello">Zapier Trello MCP</a>, but I did not try it.</p><h2>Trello Community MCP with Cursor</h2><p>I found two community MCPs for Trello and chose the one recommended by Perplexity. This MCP had several tools so it was more comprehensive, but because it was community, I was not sure how reliable it was. Thankfully Teresa Torres had used it successfully, so I went ahead and set up Trello MCP with Cursor, Codex, and AMP. They all worked. And they worked very well. I considered <a href="https://github.com/delorenj/mcp-server-trello">delorenj/mcp-server-trello</a> and <a href="https://github.com/kocakli/trello-desktop-mcp">kocakli/trello-desktop-mcp</a>.</p><p>I&#8217;ve written more on this in <a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">Set Up Trello MCP in Cursor To Chat With Your Project Boards</a>.</p><h2>Trello AI vs Zoho Projects AI</h2><p>This difference in experience made me rethink how I use Trello and Zoho Projects. My content backlog was in Zoho Projects, but my Household Tasks Backlog and Personal Assistant Board were in Trello. I liked Trello&#8217;s UI more, but I had premium Zoho Projects through the Zoho One pricing plan. I wanted to stick to one fully paid for tool, instead of using two project management tools at the same time.</p><p>At first, the free version of Trello had limits for my setup. I could not build the automations I wanted. I also could not clearly see epics or task priorities. I couldn&#8217;t sort the cards by priority.</p><p>But now,</p><ul><li><p>I noticed that labels show full text when I click them, and remain visible.</p></li><li><p>I use Comet browser to make changes in Trello.</p></li><li><p>I discovered the Trello API. So, I could build n8n automations (e.g. auto-archiving old cards).</p></li><li><p>I can use Trello MCP to chat with my boards, and that could reduce my need to look at an unsorted board.</p></li></ul><p>That solved most of the concerns I had about using Trello&#8217;s free version.</p><h2>Migration script using Cursor, MCP, and API</h2><p>I built a migration Python script with Cursor. The script reads every item in an export from Zoho Projects and uses the Trello API to create missing cards.</p><p>Workflow:</p><ol><li><p>Export tasks from Zoho Projects (CSV or similar).</p></li><li><p>Use Trello MCP in Cursor to get board ID, list IDs, and label IDs.</p></li><li><p>Write a Python script that reads the export and calls the Trello API.</p></li><li><p>Run the script (test with a small batch first).</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aYHd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aYHd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png 424w, https://substackcdn.com/image/fetch/$s_!aYHd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png 848w, https://substackcdn.com/image/fetch/$s_!aYHd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png 1272w, https://substackcdn.com/image/fetch/$s_!aYHd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aYHd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png" width="663" height="290" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:290,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!aYHd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png 424w, https://substackcdn.com/image/fetch/$s_!aYHd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png 848w, https://substackcdn.com/image/fetch/$s_!aYHd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.png 1272w, https://substackcdn.com/image/fetch/$s_!aYHd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dfba5f-7969-49d9-8864-ebb346f7de06_663x290.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>Identified IDs from MCP then used for API</p><p>I ran a dry run first with one item to verify all field mappings. For the full transfer, the script had verbose logging that reported how many items it imported. I compared that count to the exported CSV. The script also reported two items it could not import. I checked those in the logs to understand why and confirm completeness.</p><p>Task name (card title), description, due date, labels, list placement transferred. Attachments, comments, subtasks, time logs, task dependencies did not transfer.</p><p>I first used Cursor MCP to get basic information and understand the API and board structure. Then I used that context to build a deterministic script from CSV to Trello.</p><p>This way I could use AI to do the ambiguous parts, which was figuring out the board and a tile list ID, or maybe creating new labels or new lists. I could use the API, which is much cheaper, faster, more reliable, and deterministic, to do the bulk transfer of hundreds of items.</p><h2>My Takeaway</h2><p>AI copilots change how usable a product feels. If your tool does not integrate well with one, it will feel slower than alternatives that do. If you&#8217;re evaluating tools, test copilot support first. If you are building a product, AI copilot is a must-have feature to be successful.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-copilot-expectations-day-one">Day One User Expectations From AI Copilots in 2026</a></p></li><li><p><a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">Set Up Trello MCP in Cursor To Chat With Your Project Boards</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/ai-copilot-must-have-zoho-projects-trello-2026q1">www.harshal-patil.com</a> on Mar 15, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Set Up Trello MCP in Cursor To Chat With Your Project Boards]]></title><description><![CDATA[Cursor, Community MCP, And Trello = AI chat-first UX for project management]]></description><link>https://harshalpatil.substack.com/p/trello-mcp-cursor-ai-chat-2026</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/trello-mcp-cursor-ai-chat-2026</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 11 Mar 2026 03:00:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dJv5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI chat is now foundational UX for interacting with any product. I wanted the same chat-first experience for Trello, so I set up Cursor with Trello MCP. Here are a few build notes.</p><p>This takes 2 minutes to read.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!dJv5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dJv5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!dJv5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!dJv5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!dJv5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dJv5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png" width="663" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca671946-5eac-4e28-8697-29be52f997df_663x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;project management mouse pain vs trello AI agent&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="project management mouse pain vs trello AI agent" title="project management mouse pain vs trello AI agent" srcset="https://substackcdn.com/image/fetch/$s_!dJv5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!dJv5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!dJv5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!dJv5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca671946-5eac-4e28-8697-29be52f997df_663x441.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">project management mouse pain vs trello AI agent</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">www.harshal-patil.com</a> on Mar 01, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/byo-n8n-insights-dashboard-2026">Build Your Own n8n Insights Dashboard To Track Workflow Executions Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/byo-api-usage-dashboard-2026">Build Your Own API Usage Dashboard To Track Multiple Providers Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li></ul><h2>AI Chat As Foundational UX</h2><p>Here are common ways I use AI chat:</p><ul><li><p>Ask questions on support websites</p></li><li><p>Analyze or edit meeting recordings</p></li><li><p>Create or summarize engineering tickets, like Jira</p></li><li><p>Search the web, like Perplexity</p></li><li><p>Edit photos, videos, and audio</p></li><li><p>Learn a new product, like building n8n or Zapier automations</p></li><li><p>Analyze and visualize data, like PostHog, Hex, or Metabase</p></li><li><p>Edit documents, like Notion or Google Drive</p></li></ul><h2>Problem Context</h2><p>I use multiple boards in Trello:</p><ul><li><p>With my wife, for house tasks like paperwork and smart home fixes (our &#8220;Family Firm&#8221; board)</p></li><li><p>With freelancers, for data analysis, programming, or automations</p></li><li><p>With a personal assistant (a freelancer), for data entry and web research tasks</p></li></ul><p>Trello&#8217;s mouse-heavy interface and lack of bulk actions (on the free plan) make it hard to use when inspiration strikes or I have many ideas. AI chat is now foundational UX. When established tools like Zoho or Trello lack a chat interface, the gap feels real.</p><h2>Solution</h2><p>Teresa Torres spoke about Trello MCP on the <a href="https://pocketcasts.com/podcast/how-i-ai/29804190-0039-013e-0c58-0e1d7f698bfd/claude-code-for-product-managers-research-writing-context-libraries-custom-to-do-system-and-more-teresa-torres/0a72d2db-d7d4-46b8-b7b0-54d6307dce50">How I AI podcast</a>, so I reproduced it.</p><p>Here&#8217;s what I got:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d03E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d03E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png 424w, https://substackcdn.com/image/fetch/$s_!d03E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png 848w, https://substackcdn.com/image/fetch/$s_!d03E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png 1272w, https://substackcdn.com/image/fetch/$s_!d03E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d03E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png" width="663" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Using Trello MCP Using Cursor&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Using Trello MCP Using Cursor" title="Using Trello MCP Using Cursor" srcset="https://substackcdn.com/image/fetch/$s_!d03E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png 424w, https://substackcdn.com/image/fetch/$s_!d03E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png 848w, https://substackcdn.com/image/fetch/$s_!d03E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.png 1272w, https://substackcdn.com/image/fetch/$s_!d03E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aacb86-21a6-401c-bcd2-c1f1b93c1050_663x716.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">Using Trello MCP Using Cursor</figcaption></figure></div><h2>Approaches Considered for Trello MCP</h2><p><strong>For Cursor or Claude Code users:</strong></p><ul><li><p>Community MCP: <a href="https://github.com/delorenj/mcp-server-trello">https://github.com/delorenj/mcp-server-trello</a> (I used this in WSL)</p></li><li><p>Community MCP: <a href="https://github.com/kocakli/trello-desktop-mcp">https://github.com/kocakli/trello-desktop-mcp</a></p></li></ul><p><strong>For n8n or Zapier users:</strong></p><ul><li><p>Paid template: <a href="https://n8n.io/workflows/5079-trello-tool-mcp-server-all-41-operations/">https://n8n.io/workflows/5079-trello-tool-mcp-server-all-41-operations/</a></p></li><li><p>Built-in MCP server: <a href="https://zapier.com/mcp/trello">https://zapier.com/mcp/trello</a></p></li><li><p>Recreate a Trello MCP server in n8n using the Trello sub-nodes, but enhance the tool descriptions</p></li></ul><p><strong>Alternatives:</strong></p><ul><li><p>Point Lovable, Bolt, or v0 to the Trello API documentation or the community MCP GitHub. These coding agents can create a chat interface. Or use <a href="https://docs.openwebui.com/">OpenWebUI</a>.</p></li></ul><h2>Impact</h2><p>Within 10 minutes of setting up the MCP, I tagged and assigned every ticket in two boards. The setup added fun to project management. Next, I started thinking about habits I can change to work chat-first with Trello.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1tdJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1tdJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png 424w, https://substackcdn.com/image/fetch/$s_!1tdJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png 848w, https://substackcdn.com/image/fetch/$s_!1tdJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png 1272w, https://substackcdn.com/image/fetch/$s_!1tdJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1tdJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png" width="663" height="710" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:710,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Trello MCP output&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Trello MCP output" title="Trello MCP output" srcset="https://substackcdn.com/image/fetch/$s_!1tdJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png 424w, https://substackcdn.com/image/fetch/$s_!1tdJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png 848w, https://substackcdn.com/image/fetch/$s_!1tdJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.png 1272w, https://substackcdn.com/image/fetch/$s_!1tdJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f18ab2c-93d6-43c1-be89-0c25d7f22dd0_663x710.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">Trello MCP output</figcaption></figure></div><h2>Learnings</h2><ul><li><p>Test and iterate on your setup. For example, Cursor often misbehaves with MCPs. It works the first day, then it works worse later.</p></li><li><p>Watch tool count. For example, Zoho MCP had 200+ tools, and that seemed to overload the model&#8217;s context window.</p></li><li><p>You can allowlist most read actions in the MCP by default, but rarely allowlist the delete options.</p></li><li><p>The MCP client has information about the Trello board, but it needs information from other sources to derive more value. For example: If it knows my conversations with my assistant, it can do a better job triaging tasks on my assistant board. If it knows bugs my automations face, it can do a better job creating bug tickets or adding information to my automations board.</p></li></ul><h2>Future Improvements</h2><ul><li><p>Build an MCP integration with n8n to trigger it from Telegram on my phone</p></li><li><p>Add more context so the agent can have opinions on board tasks</p></li></ul><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/byo-n8n-insights-dashboard-2026">Build Your Own n8n Insights Dashboard To Track Workflow Executions Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/byo-api-usage-dashboard-2026">Build Your Own API Usage Dashboard To Track Multiple Providers Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/trello-mcp-cursor-ai-chat-2026">www.harshal-patil.com</a> on Mar 01, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Build Your Own n8n Insights Dashboard To Track Workflow Executions Using Lovable]]></title><description><![CDATA[Build Notes for an n8n execution tracker using Lovable, Supabase, and n8n API]]></description><link>https://harshalpatil.substack.com/p/byo-n8n-insights-dashboard-2026</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/byo-n8n-insights-dashboard-2026</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 04 Mar 2026 03:00:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sJFy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I show here how you can track n8n workflow aggregated execution counts and success rates across all workflows. You can build your own (&#8221;BYO&#8221;) dashboard with Lovable, Supabase, and the n8n API.</p><p>You need 2 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!sJFy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sJFy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png 424w, https://substackcdn.com/image/fetch/$s_!sJFy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png 848w, https://substackcdn.com/image/fetch/$s_!sJFy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png 1272w, https://substackcdn.com/image/fetch/$s_!sJFy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sJFy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png" width="663" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18675755-eb6f-4634-a962-9603840bed58_663x556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;BYO n8n Insights Dashboard To Track Workflow Executions&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="BYO n8n Insights Dashboard To Track Workflow Executions" title="BYO n8n Insights Dashboard To Track Workflow Executions" srcset="https://substackcdn.com/image/fetch/$s_!sJFy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png 424w, https://substackcdn.com/image/fetch/$s_!sJFy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png 848w, https://substackcdn.com/image/fetch/$s_!sJFy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.png 1272w, https://substackcdn.com/image/fetch/$s_!sJFy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18675755-eb6f-4634-a962-9603840bed58_663x556.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">BYO n8n Insights Dashboard To Track Workflow Executions</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/byo-n8n-insights-dashboard-2026">www.harshal-patil.com</a> on Feb 13, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/byo-api-usage-dashboard-2026">Build Your Own API Usage Dashboard To Track Multiple Providers Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/how-i-ditched-no-code-and-used-chatgpt-to-launch-a-product-in-2-hours">How I Ditched No-Code and Used ChatGPT to Launch a Product in 2 Hours</a></p></li></ul><p>I work at n8n, but this blog represents my personal technical exploration and opinions, not official n8n policy or product guidance. The approaches described are my own experiments.</p><h2>Problem Context</h2><p>The n8n executions tab shows execution history. That helps track individual runs. But you may want aggregated execution data across all your workflows. Specifically:</p><ul><li><p>Total execution counts per workflow over time</p></li><li><p>Success versus failure rates over time</p></li><li><p>Manual execution stats apart from production executions</p></li><li><p>Preserved historical trends for a long time</p></li></ul><p>This lets you understand your automation usage and prioritize improvements on workflows with high execution counts or frequent failures.</p><h2>Solution Via App</h2><p>This dashboard gives you aggregated execution data and preserves history over time.</p><p>App lives here: <a href="https://n8n-usage-insights.lovable.app/">n8n Usage Insights Dashboard</a></p><p>Video walkthrough: </p><div id="youtube2-K7noOsCSyto" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;K7noOsCSyto&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/K7noOsCSyto?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Open the dashboard to see execution counts and success rates for all workflows. The dashboard tracks:</p><ul><li><p><strong>Execution counts:</strong> Aggregated by workflow</p></li><li><p><strong>Execution type:</strong> Production versus manual executions</p></li><li><p><strong>Success versus failure split:</strong> Per workflow and overall</p></li><li><p><strong>Historical data:</strong> Stored in Supabase DB, preserved over time</p></li></ul><p>Anyone can use this dashboard by entering their n8n instance URL and API key.</p><h3>Features</h3><ul><li><p>Aggregated execution counts across workflows</p></li><li><p>Success and failure split visualization</p></li><li><p>Production and manual execution tracking</p></li><li><p>Data persistence over time</p></li><li><p>Light and dark mode</p></li><li><p>Auto-sync on first daily visit</p></li><li><p>Privacy ensured because without a matching instance URL and API key, you cannot view your data, even if you persisted it.</p></li><li><p>API Key is only used within the browser.</p></li></ul><h3>Tech Stack</h3><ul><li><p><strong>Lovable</strong> - frontend and AI copilot</p></li><li><p><strong>Supabase</strong> - backend for data persistence, edge functions to fetch from n8n API</p></li><li><p><strong>n8n API</strong> - fetch execution data and workflow names</p></li><li><p><strong>OpenAI, Gemini, Google Drawings</strong> - make the logo</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!idV7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!idV7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png 424w, https://substackcdn.com/image/fetch/$s_!idV7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png 848w, https://substackcdn.com/image/fetch/$s_!idV7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png 1272w, https://substackcdn.com/image/fetch/$s_!idV7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!idV7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png" width="724" height="337.42986425339365" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:309,&quot;width&quot;:663,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Get an API Key for your n8n instance.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Get an API Key for your n8n instance." title="Get an API Key for your n8n instance." srcset="https://substackcdn.com/image/fetch/$s_!idV7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png 424w, https://substackcdn.com/image/fetch/$s_!idV7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png 848w, https://substackcdn.com/image/fetch/$s_!idV7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.png 1272w, https://substackcdn.com/image/fetch/$s_!idV7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31e040f-4dbf-43f4-8273-4e830e0c7336_663x309.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">Get an API Key for your n8n instance.</figcaption></figure></div><h2>Learnings</h2><ul><li><p><strong>Data persistence:</strong> Check whether the data source you are fetching for your app has data persistence for the length of time you want. If not, then build a data persistence layer. Example, I stored n8n execution data in Supabase to preserve history beyond its 7-day retention in my personal cloud instance.</p></li><li><p><strong>Alternative data persistence:</strong> You could log every execution to an n8n data table or Google Sheet by adding nodes to each workflow. I skipped that approach because it requires modifying every workflow and increases execution counts. Fetching from the API is simpler. You could have a cron job in Supabase to fetch the data every few days.</p></li><li><p><strong>Daily sync trigger:</strong> The dashboard syncs data on first daily visit, not on every visit. This reduces API calls and latency to show info to users.</p></li><li><p><strong>Data structure:</strong> The n8n API returns execution data by execution ID. I used a Supabase edge functions aggregate and normalize this data for the dashboard.</p></li><li><p><strong>Multi-user support:</strong> From other Lovable projects, I felt multi-user project with authentication has a lot of security holes. So instead, I build the dashboard to accept any n8n instance URL and API key. Anyone can use it for their own instance.</p></li></ul><h2>Future improvements</h2><ul><li><p>Add an n8n MCP (Model Context Protocol) integration for the instance to enable AI chat-based customization.</p></li><li><p>Add filtering by date range.</p></li><li><p>Add execution time tracking per workflow.</p></li><li><p>Add time saved tracking</p></li></ul><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/byo-api-usage-dashboard-2026">Build Your Own API Usage Dashboard To Track Multiple Providers Using Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/byo-n8n-insights-dashboard-2026">www.harshal-patil.com</a> on Feb 13, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Map Your Content Pipeline From Ideas to Results]]></title><description><![CDATA[2 Startup Content Pipeline and Backlog Examples]]></description><link>https://harshalpatil.substack.com/p/map-your-content-pipeline-from-ideas-to-results</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/map-your-content-pipeline-from-ideas-to-results</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 25 Feb 2026 03:00:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Gnn_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When you think about creating content, chart your content pipeline from capturing ideas to getting juice from that content. That forces you to see the steps in between, the different sources of ideas, and what you need beyond publishing to get juice. For anyone shipping content regularly, alone or with freelancers, that clarity pays off.</p><p>Without a pipeline, startups new to content get too attached to one idea or paralyzed by the possibilities in front of them. A pipeline helps them see the first next step. Without a place to park ideas, you feel pressure to execute on an idea immediately when you get it, which is daunting. You might get five ideas in one day and five in another month, but you cannot write five in one day. A pipeline gives you a backlog, which frees you to think of more possibilities.</p><p>As examples, I have used 2 pipelines. One was for a client. The other is how I track my content creation.</p><p>I spent 60 minutes writing and visualizing this blog. You need 2 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!Gnn_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gnn_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png 424w, https://substackcdn.com/image/fetch/$s_!Gnn_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png 848w, https://substackcdn.com/image/fetch/$s_!Gnn_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png 1272w, https://substackcdn.com/image/fetch/$s_!Gnn_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gnn_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png" width="663" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Content pipeline illustration going from an idea to moving metrics&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Content pipeline illustration going from an idea to moving metrics" title="Content pipeline illustration going from an idea to moving metrics" srcset="https://substackcdn.com/image/fetch/$s_!Gnn_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png 424w, https://substackcdn.com/image/fetch/$s_!Gnn_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png 848w, https://substackcdn.com/image/fetch/$s_!Gnn_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.png 1272w, https://substackcdn.com/image/fetch/$s_!Gnn_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e007520-0b11-4e4b-ba8f-ca632734a541_663x497.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">Content pipeline illustration going from an idea to moving metrics</figcaption></figure></div><p><em>I first published this on <a href="https://www.harshal-patil.com/post/map-your-content-pipeline-from-ideas-to-results">www.harshal-patil.com</a> on Feb 23, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/content-operations-2-0-how-to-build-and-scale-your-content-ops">Content Operations 2.0: How to Build and Scale Your Content Ops</a></p></li><li><p><a href="https://www.harshal-patil.com/post/how-to-multiply-your-organic-traffic-by-following-emilia-s-content-operations-playbook">How to Multiply Your Organic Traffic by following Emilia&#8217;s Content Operations playbook</a></p></li><li><p><a href="https://www.harshal-patil.com/post/coping-with-6-challenges-in-content-creation-and-community-curation">Coping With 6 Challenges In Content Creation And Community Curation</a></p></li></ul><h2>Client pipeline</h2><p>It separates how ideas are sourced and how much time goes where. I recommended this client spend 60% of content time on customer and market research (evergreen content) and 40% on trends or fads (incremental visibility). Once we choose an idea, we create job details: format and SEO expectations. Then we post the job on boards for freelancers or renew with existing freelancers. The in-house content team reviews the output, then the piece goes into the content management system (CMS, markdown, often via pull request) and we schedule it from the content calendar. We distribute on social (Reddit, LinkedIn, others) and solicit backlinks.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G5Ow!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G5Ow!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 424w, https://substackcdn.com/image/fetch/$s_!G5Ow!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 848w, https://substackcdn.com/image/fetch/$s_!G5Ow!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 1272w, https://substackcdn.com/image/fetch/$s_!G5Ow!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G5Ow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png" width="663" height="174" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/463eedd6-f029-4ab5-a583-f591730da985_663x174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:174,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Pipeline for a B2C SaaS product&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Pipeline for a B2C SaaS product" title="Pipeline for a B2C SaaS product" srcset="https://substackcdn.com/image/fetch/$s_!G5Ow!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 424w, https://substackcdn.com/image/fetch/$s_!G5Ow!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 848w, https://substackcdn.com/image/fetch/$s_!G5Ow!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 1272w, https://substackcdn.com/image/fetch/$s_!G5Ow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F463eedd6-f029-4ab5-a583-f591730da985_663x174.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Pipeline for a B2C SaaS product</figcaption></figure></div><h2>My pipeline</h2><p>I track steps on a Kanban board:</p><ol><li><p>Ideas go into an ideas backlog.</p></li><li><p>When I have more thoughts, I create an outline.</p></li><li><p>I pick from the outline or ideas bucket and write.</p></li><li><p>First draft, then edit, then publish, then snippets for social. I consider it done when I have shared on social. When items reach &#8220;publish content,&#8221; I hand them to a freelancer who does the publishing task. My goal is to minimize work in progress: few items in &#8220;write content&#8221; or &#8220;edit content&#8221; at once.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vofn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vofn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png 424w, https://substackcdn.com/image/fetch/$s_!Vofn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png 848w, https://substackcdn.com/image/fetch/$s_!Vofn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png 1272w, https://substackcdn.com/image/fetch/$s_!Vofn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vofn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png" width="663" height="1031" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1031,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Content pipeline for a tech-business blogs&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Content pipeline for a tech-business blogs" title="Content pipeline for a tech-business blogs" srcset="https://substackcdn.com/image/fetch/$s_!Vofn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png 424w, https://substackcdn.com/image/fetch/$s_!Vofn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png 848w, https://substackcdn.com/image/fetch/$s_!Vofn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.png 1272w, https://substackcdn.com/image/fetch/$s_!Vofn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3419daf-117c-43aa-aafa-f2e7ebeba7f5_663x1031.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">Content pipeline for a tech-business blogs</figcaption></figure></div><h2>Content Pipeline And Backlog Benefits</h2><p>Having a content pipeline helps:</p><ul><li><p>Think of more ideas.</p></li><li><p>Have ideas available whenever you have capacity to pick up.</p></li><li><p>You and your team remember what you/they are working on.</p></li><li><p>Move multiple ideas forward at once when needed (for example when guest writers are unavailable).</p></li><li><p>Track work across freelancers and scale content creation.</p></li></ul><h2>What&#8217;s Your Content Pipeline?</h2><p>Chart yours from capture to juice. The steps in between and the sources of ideas become obvious once you draw them.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/content-operations-2-0-how-to-build-and-scale-your-content-ops">Content Operations 2.0: How to Build and Scale Your Content Ops</a></p></li><li><p><a href="https://www.harshal-patil.com/post/how-to-multiply-your-organic-traffic-by-following-emilia-s-content-operations-playbook">How to Multiply Your Organic Traffic by following Emilia&#8217;s Content Operations playbook</a></p></li><li><p><a href="https://www.harshal-patil.com/post/coping-with-6-challenges-in-content-creation-and-community-curation">Coping With 6 Challenges In Content Creation And Community Curation</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on <a href="https://www.harshal-patil.com/post/map-your-content-pipeline-from-ideas-to-results">www.harshal-patil.com</a> on Feb 23, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[Co-Founder Skills, Building Gong, And What PMs Do Best]]></title><description><![CDATA[Insights From Eilon Reshef (Co-Founder And CPO, Gong)]]></description><link>https://harshalpatil.substack.com/p/chat-eilon-reshef-product-sales-founders</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/chat-eilon-reshef-product-sales-founders</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 18 Feb 2026 03:00:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9qJc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spoke with Eilon Reshef, co-founder and CPO at Gong, some time ago, and kept coming back to some of the learnings. I&#8217;m using this post to share my learnings from that conversation. Eilon shared about co-founders, product, AI, and Product Management. Gong is a deep-tech, AI-powered B2B product built for sales. In this conversation, he shared practical lessons on how to pick co-founders, build deep-tech products, use untapped data, choose a GTM motion, and more. This article distills those lessons into clear, actionable ideas.</p><p>I spent 1 hour 35 minutes writing this. You need 7 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!9qJc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9qJc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png 424w, https://substackcdn.com/image/fetch/$s_!9qJc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png 848w, https://substackcdn.com/image/fetch/$s_!9qJc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png 1272w, https://substackcdn.com/image/fetch/$s_!9qJc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9qJc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png" width="663" height="585" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:585,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Eilon with illustrations of going from data to graphs and leveling up.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Eilon with illustrations of going from data to graphs and leveling up." title="Eilon with illustrations of going from data to graphs and leveling up." srcset="https://substackcdn.com/image/fetch/$s_!9qJc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png 424w, https://substackcdn.com/image/fetch/$s_!9qJc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png 848w, https://substackcdn.com/image/fetch/$s_!9qJc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.png 1272w, https://substackcdn.com/image/fetch/$s_!9qJc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20ada981-3d5b-49b9-91dc-0574033f8e71_663x585.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">Eilon with illustrations of going from data to graphs and leveling up.</figcaption></figure></div><p><em>I first published this on<a href="https://www.harshal-patil.com/post/chat-eilon-reshef-product-sales-founders"> www.harshal-patil.com</a> on Jun 31, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/startup-first-pm-stefan-bahador-amanda-tips">3 Conversations On Navigating The First Product Manager Role At Startups</a></p></li><li><p><a href="https://www.harshal-patil.com/post/founding-sales-the-startup-sales-handbook">Founding Sales - The Startup Sales Handbook</a></p></li></ul><h2>Why This Conversation Matters</h2><p>Founders face similar problems: choosing the right mix of skills in the founding team, deciding how deep the technology must be, and understanding real customer needs instead of building from guesses (a challenge for PMs too). Deep-tech and AI products are especially hard because they rely on new or underused data and must turn noisy raw data into useful, explainable insights. Eilon shows how to start narrow, learn from real usage, and align sales motion, product choices, and data strategy. The rest of this article breaks those ideas down into specific decisions you can reuse as a Product Manager or a Founder.</p><h2>1. Finding Startup Co-Founders</h2><p>Pick two or three co-founders with complementary skills across product, engineering, sales, and marketing so you can move fast and make clear decisions. At the start you need sales more than marketing; after roughly five B2B customers, marketing starts to matter. It is common to see two co-founders - one covering product and engineering, one covering marketing and sales. Do not start with 4 co-founders. Two or three is better, to improve decision-making velocity.</p><p><a href="https://www.harshal-patil.com/post/founding-sales-the-startup-sales-handbook">Founding Sales</a> also highlights the importance of founders selling the product.</p><p>For example, Eilon and Amit (CEO) split responsibilities this way. Eilon was the de facto CTO at first and coded the first version of Gong. Later he hired a head of R&amp;D and moved fully into product while Amit owned sales and marketing. That split - product/tech on one side, sales/marketing on the other - worked and stayed stable as the company grew.</p><p>Meeting a co-founder is a bit like meeting a spouse: luck and timing matter and there is no fixed playbook. Eilon met Amit through a mutual friend during a sabbatical after selling a startup. It took more than one meeting to decide to work together, which is a reminder that co-founder decisions are built over repeated conversations, not one moment.</p><h2>2. Deep Tech Products</h2><p>Be honest about how deep the technology in your product really is. If you are reasonably technical, you can often build a B2B SaaS MVP yourself. You can put up a landing page, stitch together tools, and ship something basic to real users.</p><p>But if the product is truly deep-tech&#8212;like Gong&#8217;s use of NLP on sales conversations - you need a strong technical founder to own that area. Deep-tech products depend on real advances in data collection, modeling, and error-rate reduction, not just glue code around existing tools. In that case, treat &#8220;deep technical leadership&#8221; as a founding skill, not an afterthought or a paid hire.</p><p>It is also better to avoid hiring a full development team before you have funding and validation. Early on, keep the team small, use your own skills to learn quickly, and save the heavy hiring for after you know customers care enough to pay.</p><h2>3. Take Sabbaticals</h2><p>Use sabbaticals as an intentional reset between big chapters. Eilon recommends taking a sabbatical after selling a company or ending a major chapter because new chapters often start there. Time away from execution creates space to think, explore, and meet people without the pressure of a roadmap.</p><p>During his sabbatical, Eilon took many meetings, and one of those meetings led him to Amit. Gong came from that period. The pattern is simple: close a chapter, take time off, meet many people, and let new ideas and relationships emerge instead of jumping straight into the next job.</p><h2>4. Luck And Data For Product-Market Fit</h2><p>Aim for product&#8211;market fit by combining a real, felt pain with luck and a new data source.</p><p>For example, Amit, Gong&#8217;s CEO, had already seen the pain: despite having a CRM, leaders lacked visibility into why sales were low. That context helped them recognize a problem that had a willing target market. Gong also uncovered a new data source: sales calls were not being recorded or analyzed before. Many AI startups only analyze existing data like email, where everyone has access and the moat is thin. New or underused data (such as phone call audio at Gong) is where much of the opportunity lies, because it lets you see behavior others cannot.</p><h2>5. Vertical Focus</h2><p>Resist the temptation to build for many verticals at once. Choose one problem, one vertical, and a simple first product, then use adoption and willingness to pay as your guide.</p><p>For example, the first version of Gong was simple: record, transcribe, comment, and share sales calls. It focused on integration with WebEx, because this was before Zoom, and targeted sales teams. They gave this early product away for free to businesses to learn from real usage and to collect data. This let them watch how people used the product, improve the experience, and validate that the problem was real. When they started charging, 11 of 12 (formerly-free) customers paid, which was a strong signal that the solution to the narrow problem in the narrow vertical were working.</p><h2>6. B2B Top-down Sales</h2><p>Do not be afraid to go top-down in B2B if the buying process demands it. Product-led growth and bottoms-up adoption make for great stories, but many companies still make a lot of money every year through traditional enterprise sales. Even very product-led companies like Twilio or n8n still hire sales teams. The pattern is: let the product be strong and easy to try where possible, but design your motion around how buyers in your space really purchase, not just around idealized PLG stories.</p><p>For example, Gong chose a top-down motion with sales as the entry point into organizations. Legal and compliance often care whether calls are recorded, so a single salesperson cannot always just sign up and use the product. You may need to win over leaders, legal, and security before usage can spread.</p><h2>7. Data To Wisdom</h2><p>Treat data as a ladder from raw signals to practical wisdom, and be clear about where your product lives on that ladder. Frame it as Data &#8594; Information &#8594; Knowledge &#8594; Wisdom. Not all data is informative, and not all information is valuable on its own.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OiKI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OiKI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png 424w, https://substackcdn.com/image/fetch/$s_!OiKI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png 848w, https://substackcdn.com/image/fetch/$s_!OiKI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png 1272w, https://substackcdn.com/image/fetch/$s_!OiKI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OiKI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png" width="663" height="688" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:688,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!OiKI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png 424w, https://substackcdn.com/image/fetch/$s_!OiKI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png 848w, https://substackcdn.com/image/fetch/$s_!OiKI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.png 1272w, https://substackcdn.com/image/fetch/$s_!OiKI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb291ac10-b890-4e72-ab8c-5b045fa08c26_663x688.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>For example:</p><ul><li><p>A phone call transcript is data.</p></li><li><p>Topic detection on that transcript is information.</p></li><li><p>Recommendations about what to do based on those topics are wisdom.</p></li></ul><p>Predictions sound exciting, but business users often care more about understanding than about abstract predictions. They want to know what happened, why it happened, and what to do next in a way they can trust and act on.</p><p>For example, One of Gong&#8217;s AI products had limited success because the recommendations were hard to explain and hard to act on in real time. Gong instead focused on reducing time to consume information (for example, by ~50x with topic detection) and steadily improving NLP error rates from around 30% to around 10%. They trained on sales conversations and CRM context, such as customer name, not on generic academic datasets like reviews. Gong also chose not to overload reps with too much real-time feedback because it can distract them in the moment. Across all of this, the goal was efficiency and better decisions, not replacing people. The product succeeds when it turns noisy, hard-to-use data into clear, trustworthy insight that fits into how sales teams already work.</p><h2>8. PMs = Customer-needs</h2><p>Make &#8220;understanding customer needs firsthand&#8221; the core of the PM role. For example, every new PM should talk to 10 customers before starting any work. The most valuable part of product management is customer needs discovery, alongside the broader responsibility of helping build the right product.</p><p>PMs should not rely only on summaries. If a customer says something important in a call, AI may tag it. But instead of just reading the tags, PMs can go directly to the source recording rather than hearing a second-hand explanation. This creates a steady stream of information from real usage into the product team.</p><p>I captured some more tips on <a href="https://www.harshal-patil.com/post/startup-first-pm-stefan-bahador-amanda-tips">Navigating The First Product Manager Role At Startups</a>.</p><p>The pattern is: structure your org so PMs keep talking to customers, listening to raw calls, and grounding prioritization in lived customer pain rather than internal debates or slides.</p><h2>9. Target Budget-holding ICPs</h2><p>Choose an Ideal Customer Profile that both feels the pain and holds a budget. When building a startup, it is not enough that a group of users benefits from your product; they also need to be able to buy it.</p><p>For example, sales and marketing leaders often have a budget for new tools, while PMs usually do not hold the same kind of buying authority. An enterprise SaaS startup often needs to make around $1,000 per seat annually. Companies can justify that for sales productivity, but they rarely can for PM productivity in the same way.</p><p>For example, Gong does not sell to PMs, even though the product helps PMs too. The paying customer and ICP is the sales organization. The lesson is to align your product, messaging, and go-to-market with budget-holding personas, not just with the people who benefit indirectly.</p><h2>10. Write In public</h2><p>Write in public so people can see how you think before they work with you. Writing and public thinking help when people evaluate you, especially in high-stakes transitions. If your startup is being acquired, buyers will research the people involved and look for public thinking. Having your views and writing out there helps during due diligence because it makes your reasoning style and values visible. Public writing is also a forcing function. It pushes you to clarify your own thinking on products, markets, and decisions, which in turn makes you a better founder, PM, or product leader.</p><h2>What Stayed With Me</h2><p>From this conversation with Eilon, a few themes stood out to me. Co-founding teams work best when they are small, complementary, and clear about who owns product/engineering versus sales/marketing. Sabbaticals and prior experience create the space and context that lead to the next chapter, including spotting real pain and being ready when luck arrives.</p><p>The data-to-wisdom ladder is a useful lens: focus less on flashy predictions and more on turning new, underused data into explanations that save time and improve decisions. Along the way, PMs should own direct customer understanding, ICPs should be budget holders, and consistent public writing should show how you think.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/startup-first-pm-stefan-bahador-amanda-tips">3 Conversations On Navigating The First Product Manager Role At Startups</a></p></li><li><p><a href="https://www.harshal-patil.com/post/founding-sales-the-startup-sales-handbook">Founding Sales - The Startup Sales Handbook</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on<a href="https://www.harshal-patil.com/post/chat-eilon-reshef-product-sales-founders"> www.harshal-patil.com</a> on Jun 31, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[AI Product Management Is SaaS PM Plus Three Extra Jobs]]></title><description><![CDATA[Add Observability, Evals, And Research To PM Fundamentals]]></description><link>https://harshalpatil.substack.com/p/ai-product-manager-scope-3-extra-jobs</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/ai-product-manager-scope-3-extra-jobs</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 11 Feb 2026 03:01:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LoaD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I worked in AI product management at n8n and FlexAI. I learned that an AI product manager does the SaaS PM fundamental tasks, plus three extra buckets.</p><p>These are the 4 buckets of work for an AI PM:</p><ol><li><p>SaaS PM fundamentals</p></li><li><p>Customize AI observability</p></li><li><p>Define AI evals</p></li><li><p>Read AI research</p></li></ol><p>Buckets 2, 3, and 4 are the added responsibilities compared to a software PM.</p><p>I spent 80 minutes writing this. You need 2 minutes to read this.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LoaD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LoaD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!LoaD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!LoaD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!LoaD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LoaD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png" width="663" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;AI PM has additional responsibilities over Fundamentals&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AI PM has additional responsibilities over Fundamentals" title="AI PM has additional responsibilities over Fundamentals" srcset="https://substackcdn.com/image/fetch/$s_!LoaD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!LoaD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!LoaD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!LoaD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2593db36-a66f-4235-bd0e-d5cc98daab88_663x441.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">AI PM has additional responsibilities over Fundamentals</figcaption></figure></div><p><em>I first published this on<a href="https://www.harshal-patil.com/post/ai-product-manager-scope-3-extra-jobs"> www.harshal-patil.com</a> on Feb 03, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/pivot-to-ft-pm-role-flexai-july2024">Landing A GenAI Product Manager Role: Career Pivot</a></p></li><li><p><a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025">Joining n8n As An AI Product Manager</a></p></li><li><p><a href="https://www.harshal-patil.com/post/balancing-customer-and-internal-focus-as-a-pm">Balancing Customer and Internal Focus as a PM</a></p></li></ul><h2>1. SaaS PM fundamentals</h2><p>AI PMs still owns the SaaS PM fundamental tasks. Do user research. Find gaps for customers (big or small). Prioritize the right gaps. Deep dive into each gap you plan to solve. These gaps drive your roadmap. Then work with design and engineering to shape a solution (Shape-Up) or write and execute on a Product Requirements Document (PRD).</p><p>Jobs:</p><ul><li><p>customer research and problem discovery</p></li><li><p>data analysis, user interviews, and session recordings</p></li><li><p>triage with customer support and sales</p></li><li><p>prioritization (roadmap)</p></li><li><p>product + design + engineering collaboration to define the problem and solution</p></li><li><p>product launch</p></li></ul><h2>2. Customize AI observability</h2><p>The second bucket is customizing observability for AI.</p><p>Use traditional tools (Mixpanel, Amplitude, Posthog, Datadog, Sentry). Then add what those tools miss in AI products: the full user context.</p><p>See what your users see. For example:</p><ul><li><p>If customers build an automation, review the automation they built with your AI copilot.</p></li><li><p>If customers use an AI chatbot in an email platform, review the user messages, AI responses, and the surrounding screen context.</p></li></ul><p>Sometimes this means building (or specifying) a new internal system. This system can look different from existing observability platforms. It may be homegrown.</p><h2>3. Define AI evals</h2><p>The third bucket is defining AI evals. What used to be a few bullet points in your PRD (user acceptance criteria) becomes a clear rubric.</p><p>Then run tests where an AI model grades outputs against that rubric. (This is often called &#8220;model-graded evaluation.&#8221;)</p><p>This work takes iteration. Make the grading consistent. Otherwise the grader marks the same output as a pass in one run and a fail in another.</p><h2>4. Read AI research</h2><p>The fourth bucket is reading AI research to stay current on the AI space. Most companies expect AI product managers to track new capabilities in commercial AI products and research papers from labs or universities. This habit can help the product team gain a competitive advantage.</p><p>For example, should you bet on adding skills or tools to your AI Agent? Should you enhance the context by adding web browsing, documentation, or sample code from some repository? Should you try different models, Context harness, or new benchmarking?</p><h2>Reasons</h2><p>This extra work exists because the field is still young. AI product management changes quickly, and the playbook shifts often. Spend time learning what is possible, what breaks, and what may change in the next 6&#8211;12 months. Then push that learning into your roadmap and risk decisions.</p><p>This extra work also exists because AI products behave differently from traditional software. AI evals and observability do not look like standard metrics or logging. Do not rely only on latency, uptime, and conversion funnels. Define what &#8220;good&#8221; means for model behavior. Build ways to see what went wrong for users inside the AI experience. Without this, you ship features that feel like a demo, not a dependable product.</p><h2>How An AI PM Might Spend Their Time</h2><p>You might wonder: how much time do these extra buckets take?</p><p>My observation:</p><ol><li><p>50%: SaaS PM fundamentals</p></li><li><p>20%: Customize AI observability</p></li><li><p>20%: Define and iterate on AI evals</p></li><li><p>10%: Read AI research</p></li></ol><p>Observability is often front-loaded. Although some might think Evals will be front-loaded, but you will need new evals each cycle as the product evolves and reaches new surfaces.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n_Y8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n_Y8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png 424w, https://substackcdn.com/image/fetch/$s_!n_Y8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png 848w, https://substackcdn.com/image/fetch/$s_!n_Y8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png 1272w, https://substackcdn.com/image/fetch/$s_!n_Y8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n_Y8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png" width="663" height="335" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:335,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;My observation of time allocation for AI PMs is that they add one extra job over existing one&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="My observation of time allocation for AI PMs is that they add one extra job over existing one" title="My observation of time allocation for AI PMs is that they add one extra job over existing one" srcset="https://substackcdn.com/image/fetch/$s_!n_Y8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png 424w, https://substackcdn.com/image/fetch/$s_!n_Y8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png 848w, https://substackcdn.com/image/fetch/$s_!n_Y8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.png 1272w, https://substackcdn.com/image/fetch/$s_!n_Y8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5f82de-654b-4d38-a766-3623f036caeb_663x335.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">My observation of time allocation for AI PMs is that they add one extra job over existing one</figcaption></figure></div><h2>What Next</h2><p>This post has one main point: when AI becomes a core part of the product, an AI PM still does the SaaS PM fundamental tasks. The role also adds three buckets: customize AI observability, define AI evals, and read AI research.</p><p>In a follow-up post, I&#8217;ll share specific tips for software PMs who want to transition into AI PM roles &#8212; including skills to build, types of projects to take on, and how to tell your story when you haven&#8217;t &#8220;owned&#8221; an AI product yet.</p><p>Once I figure it out, I&#8217;ll also share how an AI PM&#8217;s work can be sustainable instead of feeling like 2 jobs at once.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/pivot-to-ft-pm-role-flexai-july2024">Landing A GenAI Product Manager Role: Career Pivot</a></p></li><li><p><a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025">Joining n8n As An AI Product Manager</a></p></li><li><p><a href="https://www.harshal-patil.com/post/balancing-customer-and-internal-focus-as-a-pm">Balancing Customer and Internal Focus as a PM</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on<a href="https://www.harshal-patil.com/post/ai-product-manager-scope-3-extra-jobs"> www.harshal-patil.com</a> on Feb 03, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[How I Designed A 3-Day Self-Guided Mindfulness Retreat]]></title><description><![CDATA[A Low-Stimulation Retreat You Can Design And Run On Your Own]]></description><link>https://harshalpatil.substack.com/p/self-guided-mindfulness-retreat-3-days-guide</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/self-guided-mindfulness-retreat-3-days-guide</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 04 Feb 2026 15:01:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NVJA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I designed and went on a solo mindfulness retreat some time ago. It was about avoiding sensory stimulations, being quiet, and being at peace with myself. I am sharing these notes so you can design your own retreat if you want.</p><p>I spent 36 minutes writing this after a 3-day retreat. You need 3 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!NVJA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NVJA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png 424w, https://substackcdn.com/image/fetch/$s_!NVJA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png 848w, https://substackcdn.com/image/fetch/$s_!NVJA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png 1272w, https://substackcdn.com/image/fetch/$s_!NVJA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NVJA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png" width="728" height="1091.450980392157" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:994,&quot;width&quot;:663,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Morning calm on the patio, slow tea sips, then a nature walk&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Morning calm on the patio, slow tea sips, then a nature walk" title="Morning calm on the patio, slow tea sips, then a nature walk" srcset="https://substackcdn.com/image/fetch/$s_!NVJA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png 424w, https://substackcdn.com/image/fetch/$s_!NVJA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png 848w, https://substackcdn.com/image/fetch/$s_!NVJA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.png 1272w, https://substackcdn.com/image/fetch/$s_!NVJA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0dc00ca-6eee-413a-9b3d-c85b9c3329f6_663x994.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">Morning calm on the patio, slow tea sips, then a nature walk</figcaption></figure></div><p><em>I first published this on<a href="https://www.harshal-patil.com/post/self-guided-mindfulness-retreat-3-days-guide"> www.harshal-patil.com</a> on Jan 26, 2026.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/falling-awake">Falling Awake</a></p></li><li><p><a href="https://www.harshal-patil.com/post/10-happier">10% Happier</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ruby-wax-s-no-brainer">Ruby Wax&#8217;s No Brainer</a></p></li></ul><h2>Knowledge Sources</h2><p>I built the retreat plan using the following sources:</p><ul><li><p><a href="https://www.harshal-patil.com/post/falling-awake">Falling Awake by Jon Kabat-Zinn</a></p></li><li><p>A Mindfulness Guide for the Frazzled by Ruby Wax</p></li><li><p>Lessons from a sleep expert</p></li><li><p>Sample meditation and retreat schedules from event hosting platforms and blogs</p></li></ul><h2>Intent Behind This Structure</h2><p>I needed my meditation retreat to be purpose-driven. If I spent 3 days with a book and a pen, I would enjoy writing and reflecting. That was not the goal.</p><p>The goal was neither to produce content nor to consume content. The goal was to sit with myself without external input. I deliberately reduced sensory stimulation to notice subtle experiences.</p><p>I stopped to smell flowers. I noticed shifting shadows. I felt machine vibrations. I paid attention to the texture of food.</p><h2>Basics</h2><p>I booked a golf course hotel as the retreat location so I can be away from the city.</p><h3>Hotel Amenities</h3><p>I wanted comfort but not luxury. I used:</p><ul><li><p>Jacuzzi</p></li><li><p>Sauna</p></li><li><p>Steam</p></li><li><p>Nature walk around the grounds</p></li></ul><p>I avoided activities that added stimulation or performance goals. Hotel amenities I didn&#8217;t use:</p><ul><li><p>Swimming pool</p></li><li><p>Health club or gym</p></li><li><p>Spa treatment</p></li><li><p>Gold driving range</p></li></ul><h3>People And Technology</h3><p>I wanted solitude and introspection. I was not looking to connect with people. But, I still needed basic structure.</p><p>I allowed a few tools that supported structure without distraction:</p><ul><li><p>An AI voice assistant to set reminders, timers, and small factual questions</p></li><li><p>My phone camera for an occasional selfie to share with family later</p></li><li><p>Herbal tea to create a calming ritual</p></li></ul><p>In hindsight, I should have indulged in the small factual questions and set reminders and timers via software rather than AI.</p><p>Did not use:</p><ul><li><p>Phone calls, WhatsApp, email, internet, YouTube</p></li><li><p>Exercise or yoga</p></li><li><p>Guided meditation</p></li><li><p>Music</p></li><li><p>Drawing, coloring, or writing</p></li><li><p>Podcasts, audiobooks, books, and radio</p></li></ul><h2>Activities By Theme</h2><p>The activities I chose followed a few recurring themes that supported mindfulness. I describe those activities and what worked for me next.</p><p>I write those sections in a more instructional tone so you can borrow or adapt ideas for your own retreat.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YD-B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YD-B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png 424w, https://substackcdn.com/image/fetch/$s_!YD-B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png 848w, https://substackcdn.com/image/fetch/$s_!YD-B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png 1272w, https://substackcdn.com/image/fetch/$s_!YD-B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YD-B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png" width="728" height="514.9803921568628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:469,&quot;width&quot;:663,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mindfulness retreat activities by theme&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Mindfulness retreat activities by theme" title="Mindfulness retreat activities by theme" srcset="https://substackcdn.com/image/fetch/$s_!YD-B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png 424w, https://substackcdn.com/image/fetch/$s_!YD-B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png 848w, https://substackcdn.com/image/fetch/$s_!YD-B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.png 1272w, https://substackcdn.com/image/fetch/$s_!YD-B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fbe715-d11e-48c5-9bc4-8234339db2c4_663x469.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">Mindfulness retreat activities by theme</figcaption></figure></div><h3>Mindfulness</h3><p><strong>Meditation:</strong></p><p>Sit quietly in a chair with feet flat on the floor. Take time to breathe and reflect. When thoughts come, notice them, then return to the breath. Let go of any distractions or stress.</p><p><strong>Gratitude Journal:</strong></p><p>Write 5 things you are thankful for. It resets the mind toward appreciation.</p><p><strong>Gentle Slow Stretching:</strong></p><p>Stretch while moving slowly. Pay attention to how your body feels with every stretch.</p><h3>Sensory Awareness</h3><p><strong>Mindful Walking:</strong></p><p>Take a walk around the resort grounds. Focus on one of your senses (sight, sound, smell, touch) and fully experience your surroundings.</p><p><strong>Mindful Eating:</strong></p><p>Eat your meals mindfully, slowly. Pay attention to the flavors, textures, and smells of your food. Eat slowly and savor each bite.</p><p><strong>STOP Technique:</strong></p><p>If you feel overwhelmed, use the STOP technique.</p><ul><li><p>Stop.</p></li><li><p>Take a breath.</p></li><li><p>Observe your thoughts and feelings without judging.</p></li><li><p>Proceed with calm attention.</p></li></ul><h3>Reflection and Presence</h3><p><strong>Journaling:</strong></p><p>Describe what you observe. This journaling is not to plan your days or weeks ahead as that takes you away from mindfulness in your present.</p><p><strong>Mindfulness in Small Tasks</strong></p><p>Cleaning the room, arranging your things, drinking water&#8212;all can be meditation if done with focus. On a retreat, hear the leaves crunch under your shoes, the drip of water, the whirr of the machines.</p><h3>Relaxation and Stillness</h3><p><strong>Sensory Enjoyment:</strong></p><p>Feel the morning or evening air, hear the quiet, notice fading light. Stand in one place and feel the wind, the ground, and the sounds.</p><p><strong>Herbal Tea Ritual:</strong></p><p>Sip slowly. Focus on warmth, aroma, and taste.</p><p><strong>Warm Bath:</strong></p><p>Notice the comfort of warm water in the bath tub.</p><p><strong>Night Sleep</strong>:</p><p>Follow <a href="https://www.cci.health.wa.gov.au/-/media/CCI/Mental-Health-Professionals/Panic/Panic---Information-Sheets/Panic-Information-Sheet---05---Progressive-Muscle-Relaxation.pdf">progressive body relaxation</a>.</p><p>You can use the five senses:</p><ol><li><p>Touch: feel the bed surface</p></li><li><p>Taste: notice the taste of air</p></li><li><p>Sound: enjoy the quiet</p></li><li><p>Smell: sense the bedding</p></li><li><p>Sight: see the darkness</p></li></ol><h2>Time-wise plan</h2><p>Here&#8217;s a pivot of the techniques by time of the day based on my retreat days.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JuzJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JuzJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png 424w, https://substackcdn.com/image/fetch/$s_!JuzJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png 848w, https://substackcdn.com/image/fetch/$s_!JuzJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png 1272w, https://substackcdn.com/image/fetch/$s_!JuzJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JuzJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png" width="719" height="890.3453996983409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:821,&quot;width&quot;:663,&quot;resizeWidth&quot;:719,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Visualizing mindfulness retreat activities by time of the day&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Visualizing mindfulness retreat activities by time of the day" title="Visualizing mindfulness retreat activities by time of the day" srcset="https://substackcdn.com/image/fetch/$s_!JuzJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png 424w, https://substackcdn.com/image/fetch/$s_!JuzJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png 848w, https://substackcdn.com/image/fetch/$s_!JuzJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.png 1272w, https://substackcdn.com/image/fetch/$s_!JuzJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963e9d17-a51b-4ec3-880a-92b5b0d7d177_663x821.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">Visualizing mindfulness retreat activities by time of the day</figcaption></figure></div><h3>Morning Start</h3><ul><li><p>Morning meditation for 10-15 minutes</p></li><li><p>Gratitude journal</p></li><li><p>Gentle slow stretching</p></li></ul><h3>Midday Activities</h3><ul><li><p>Mindful Walking</p></li><li><p>Mindful Eating</p></li><li><p>STOP Technique</p></li></ul><h3>Afternoon Reflection</h3><ul><li><p>Journaling</p></li><li><p>Mindfulness in menial tasks</p></li></ul><h3>Evening Wind-Down</h3><ul><li><p>Breathing Exercises:</p></li><li><p>Mindful Sensory Engagement:</p></li><li><p>Gratitude Reflection</p></li></ul><h2>For Your Retreat</h2><p>If you design your own retreat, keep it simple. Reduce inputs before adding structure.</p><p>Notice what you reach for when nothing demands your attention. Notice what calms you without effort.</p><p>If this structure helps, take it and adapt it!</p><h2>My Next Retreat</h2><p>This retreat showed me how to live more mindfully and more slowly. It deepened my appreciation for everyday moments.I plan to do a retreat like this again.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/falling-awake">Falling Awake</a></p></li><li><p><a href="https://www.harshal-patil.com/post/10-happier">10% Happier</a></p></li><li><p><a href="https://www.harshal-patil.com/post/ruby-wax-s-no-brainer">Ruby Wax&#8217;s No Brainer</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on<a href="https://www.harshal-patil.com/post/self-guided-mindfulness-retreat-3-days-guide"> www.harshal-patil.com</a> on Jan 26, 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[A Change Of Pace In My Writing]]></title><description><![CDATA[Protecting My Writing Habit While In High-Growth AI Role]]></description><link>https://harshalpatil.substack.com/p/change-pace-of-writing-2026q1</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/change-pace-of-writing-2026q1</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 28 Jan 2026 15:01:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MPKG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Protecting My Writing Habit While In High-Growth AI Role</em></p><p>I&#8217;m changing pace in blogs on my website and Substack.</p><p>I spent 10 minutes writing this. You need a minute to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!MPKG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MPKG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!MPKG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!MPKG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!MPKG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MPKG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png" width="726" height="482.90497737556564" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:663,&quot;resizeWidth&quot;:726,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Paused writing while getting deeper into tech.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Paused writing while getting deeper into tech." title="Paused writing while getting deeper into tech." srcset="https://substackcdn.com/image/fetch/$s_!MPKG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!MPKG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!MPKG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!MPKG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a40772c-c4c7-48f6-998e-a4561070e8a1_663x441.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">Paused writing while getting deeper into tech.</figcaption></figure></div><p><em>I first published this on<a href="https://www.harshal-patil.com/post/change-pace-of-writing-2026q1"> www.harshal-patil.com</a> on Jan 15, 2025.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025">Joining n8n As An AI Product Manager</a></p></li><li><p><a href="https://www.harshal-patil.com/post/resilience-work-life-stress-2-minute-micro-habits">2-Minute Habits for Mental Strength</a></p></li><li><p><a href="https://www.harshal-patil.com/post/annual-review-personal-okrs-2024-mind">Review Of 2024 Mind Goals</a></p></li></ul><h2>Last Few Months...</h2><p>After joining a high-growth startup with significant responsibility and steep learning demands, I reduced my daily writing time from 30 minutes to 2 minutes. I made this change to protect the habit of clarifying my thoughts while limiting the time it required.</p><p>This shift freed up time to go deeper into the AI space. I spent more energy building AI products and designing agentic workflows. Working with and building with AI was energizing.</p><p>Over several weeks, I used those 2 minutes each night to record how my day unfolded. I wrote about the pressure, uncertainty, and the excitement. My goal was to turn these notes into a blog that captured the highs and lows of ramping up in a startup.</p><p>But because most days I was either taking notes or spending only 2 minutes writing, the number of blogs I published went down drastically.</p><p>Fewer posts was the cost of staying close to the work. I chose depth over cadence during that phase.</p><p>For that period, I published less frequently, but when I did, the writing was raw, short, and close to the work.</p><h2>Going forward&#8230;</h2><p>I am returning to longer reflections.</p><p>At the same time, I will continue building side projects, so continue to see some differences in my blog compared to the last five years.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025">Joining n8n As An AI Product Manager</a></p></li><li><p><a href="https://www.harshal-patil.com/post/resilience-work-life-stress-2-minute-micro-habits">2-Minute Habits for Mental Strength</a></p></li><li><p><a href="https://www.harshal-patil.com/post/annual-review-personal-okrs-2024-mind">Review Of 2024 Mind Goals</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on<a href="https://www.harshal-patil.com/post/change-pace-of-writing-2026q1"> www.harshal-patil.com</a> on Jan 15, 2025.</em></p>]]></content:encoded></item><item><title><![CDATA[AI Tech Stack: What Have You Built With AI?]]></title><description><![CDATA[What AI Tools Have You Used At Work And Personal Life?]]></description><link>https://harshalpatil.substack.com/p/ai-tech-stack-tools-2025q4</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/ai-tech-stack-tools-2025q4</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 26 Nov 2025 15:02:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RUbp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I summarized the AI products I use for work and personal projects. I grouped them by how they help me and included a few ad-hoc notes.</p><p>I collated this summary because companies often ask how you use AI in my day-to-day work during interviews. So, this summary from my trials might also offer you some ideas.</p><p>I spent 30 minutes writing this. You need 2 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!RUbp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RUbp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png 424w, https://substackcdn.com/image/fetch/$s_!RUbp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png 848w, https://substackcdn.com/image/fetch/$s_!RUbp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png 1272w, https://substackcdn.com/image/fetch/$s_!RUbp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RUbp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png" width="663" height="663" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:663,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;An AI banana from NanoBanana&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An AI banana from NanoBanana" title="An AI banana from NanoBanana" srcset="https://substackcdn.com/image/fetch/$s_!RUbp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png 424w, https://substackcdn.com/image/fetch/$s_!RUbp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png 848w, https://substackcdn.com/image/fetch/$s_!RUbp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.png 1272w, https://substackcdn.com/image/fetch/$s_!RUbp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b6c08a8-cbf7-4535-8e27-8719f4067c3d_663x663.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><em>I first published this on<a href="https://www.harshal-patil.com/post/ai-tech-stack-tools-2025q4"> www.harshal-patil.com</a> on Nov 16, 2025.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/perplexity-use-cases-entrepreneurship-ex-google">20+ Perplexity (GenAI) Use Cases As Your Entrepreneurship Helper And Google-Killer</a></p></li><li><p><a href="https://www.harshal-patil.com/post/chatgpt-use-cases-cofounder-product-manager">30+ ChatGPT (GPT-4o) Use Cases As Your Virtual Co-Founder and Product Assistant</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/product-evaluation-pm-case-example-n8n-2025">Hands-On Evaluation of n8n and Peer Products for AI Automations</a></p></li><li><p><a href="https://www.harshal-patil.com/post/kids-party-design-genai-user-journey-map">Kids&#8217; Party Design Using GenAI And Customer Journey Mapping</a></p></li></ul><h2>AI Assistant</h2><p>ChatGPT and Perplexity are my main AI assistants.</p><ul><li><p><a href="https://www.harshal-patil.com/post/perplexity-use-cases-entrepreneurship-ex-google">20+ Perplexity (GenAI) Use Cases As Your Entrepreneurship Helper And Google-Killer</a></p></li><li><p><a href="https://www.harshal-patil.com/post/chatgpt-use-cases-cofounder-product-manager">30+ ChatGPT (GPT-4o) Use Cases As Your Virtual Co-Founder and Product Assistant</a></p></li></ul><h2>AI Browsing</h2><p><a href="https://www.perplexity.ai/comet/">Comet Browser from Perplexity</a>.</p><ul><li><p>I mainly use it to book delivery slots on Tesco for groceries</p></li><li><p>And make updates in expenses management.</p></li><li><p>Sometimes, I use it to download invoices or bills and store them in some file.</p></li><li><p>I&#8217;ve also used it to read up notes on someone and their LinkedIn profile to help me prep for a meeting with them.</p></li></ul><p><a href="https://www.microsoft.com/en-us/microsoft-copilot/for-individuals/get-copilot">Microsoft Copilot on Windows laptop</a> can be my eyes when I am setting up something across many apps. For example, installing a bunch of packages and running into errors because it can see those errors and it can find information or guide me through implementing some steps.</p><h2>AI Meetings</h2><p>I have used <a href="https://www.granola.ai/">Granola</a>, <a href="https://www.fathom.ai/">Fathom-video</a>, and <a href="https://noty.ai/">NotyAI</a> to handle meeting notes and insights. They record meetings, create summaries, and organise notes.</p><p>Any note-taking tools which use OpenAI&#8217;s Wispr model are way more accurate than older generations of tools.</p><h2>AI Coding</h2><p>GitHub Copilot, <a href="https://cursor.com/">Cursor</a>, and OpenAI Codex when I write or review code - usually Python or SQL.</p><p>AI via API to analyse logs from <a href="https://grafana.com/">Grafana</a> when I troubleshoot systems. These tools speed up the loop between problem and fix.</p><p>Cursor is my favorite.</p><h2>AI Prototyping</h2><p>Lovable helps me create prototypes or niche apps. <a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p><h2>AI Diagrams And Images</h2><p>I use <a href="http://mermaid.ai/">Mermaid diagrams</a>, <a href="https://www.midjourney.com/">Midjourney</a>, <a href="https://gemini.google.com/">Gemini</a>, and <a href="https://www.napkin.ai/">NapkinAI</a> to create visuals.</p><ul><li><p>Mermaid helps me draw clear flows.</p></li><li><p>Midjourney and Gemini help me generate images.</p></li><li><p>NapkinAI helps me make infographics or visuals to support my writing.</p></li></ul><h2>AI Voice Dictation</h2><p><a href="https://wisprflow.ai/">Wispr flow</a>, ChatGPT, and Notion help me turn voice into text. I use them when I want to capture ideas quickly.</p><p>I experimented a lot with voice dictation when I was exploring ergonomics after starting to feel carpal tunnel syndrome. <a href="https://www.harshal-patil.com/post/ergonomics-speed-typing-mouse-kinesis">My 5 Step Journey Towards Ergonomic And Fast Typing</a></p><h2>AI Workflows And Agents</h2><p>I&#8217;ve used Zapier and <a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025">n8n</a> to automate tasks. I connect them to tools and trigger actions to remove repeated work. I used <a href="https://www.sparkcreativetechnologies.com/">Zapier for Spark Creative Technologies</a>, but now I choose to build n8n workflows.</p><p>Some tools I tried: <a href="https://www.harshal-patil.com/post/product-evaluation-pm-case-example-n8n-2025">Hands-On Evaluation of n8n and Peer Products for AI Automations</a></p><h2>AI In Tools</h2><p>Many tools I use now have AI inside them. I use AI features in <a href="https://www.notion.com/">Notion</a>, <a href="https://posthog.com/">Posthog</a>, <a href="https://www.loom.com/">Loom</a>, <a href="https://www.descript.com/">Descript</a>, <a href="https://linear.app/">Linear</a>, <a href="https://www.atlassian.com/software/jira">Jira</a>, and <a href="https://slack.com/">Slack</a>. These features help summarise, search, edit, and organise content.</p><p>Notion AI is amazing at handling chores and edits for you.</p><p>Posthog&#8217;s Max AI is amazing at creating charts or debugging analytics.</p><p>Loom and Descript have AI to help edit your video or audio. Loom works reliably. Descript Underlord AI was so-so: <a href="https://www.harshal-patil.com/post/kids-party-design-genai-user-journey-map">Kids&#8217; Party Design Using GenAI And Customer Journey Mapping</a></p><p>Slack AI has so far been underwhelming.</p><p><a href="https://linear.app/docs/product-intelligence">Linear AI with its triage intelligence</a> works very well to find the right place and labels to put a ticket. Jira also has this feature, which works well too.</p><h2>AI For Processes</h2><p>I use AI to support processes like SQL work, CRM updates, writing, and social media. I also use it to find mistakes in my blogs or to challenge my thinking.</p><h2>AI User Experience Research</h2><p><a href="https://heymarvin.com/">HeyMarvin</a> and <a href="https://www.dovetail.com">Dovetail</a> both have AI capabilities to speed up gathering insights from user interviews and usability studies.</p><h2>AI Content</h2><p><a href="https://notebooklm.google/">NotebookLM</a>. I use it when I want to understand a topic from many angles. It helps me reason across long documents and find patterns or gaps.</p><p>I tried <a href="https://coso.ai/">Coso</a> to repurpose my long-form blogs as short-form social media content, but it didn&#8217;t fit my use-case so I stopped using it.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/perplexity-use-cases-entrepreneurship-ex-google">20+ Perplexity (GenAI) Use Cases As Your Entrepreneurship Helper And Google-Killer</a></p></li><li><p><a href="https://www.harshal-patil.com/post/chatgpt-use-cases-cofounder-product-manager">30+ ChatGPT (GPT-4o) Use Cases As Your Virtual Co-Founder and Product Assistant</a></p></li><li><p><a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Insights From Vibe-Coding A Family App With Lovable</a></p></li><li><p><a href="https://www.harshal-patil.com/post/product-evaluation-pm-case-example-n8n-2025">Hands-On Evaluation of n8n and Peer Products for AI Automations</a></p></li><li><p><a href="https://www.harshal-patil.com/post/kids-party-design-genai-user-journey-map">Kids&#8217; Party Design Using GenAI And Customer Journey Mapping</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on<a href="https://www.harshal-patil.com/post/ai-tech-stack-tools-2025q4"> www.harshal-patil.com</a> on Nov 16, 2025.</em></p>]]></content:encoded></item><item><title><![CDATA[Technical Product Research Before Product Management Interviews]]></title><description><![CDATA[Deep-Dive Using My Directus Product Memo Example in 2025]]></description><link>https://harshalpatil.substack.com/p/product-memo-directus-example-2025</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/product-memo-directus-example-2025</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 29 Oct 2025 15:02:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!itup!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In earlier posts, I <a href="https://www.harshal-patil.com/post/framework-9-steps-case-study-pm-interview">shared a framework</a> to write <a href="https://www.harshal-patil.com/post/startup-interview-case-study-research">a case study or product memo</a> when preparing for Product Management interviews.</p><p>Here, I show an example I did for Directus a few months ago when I interviewed with them. All the information I share here was from my own analysis. Since this doesn&#8217;t have Directus employee inputs, the information may not be accurate, but I hope it gives you ideas on the approach.</p><p>I spent 60 minutes writing this after a few hours of research. You need 6 minutes to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!itup!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!itup!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png 424w, https://substackcdn.com/image/fetch/$s_!itup!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png 848w, https://substackcdn.com/image/fetch/$s_!itup!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png 1272w, https://substackcdn.com/image/fetch/$s_!itup!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!itup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png" width="663" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Breadth-first analysis of the business or product.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Breadth-first analysis of the business or product." title="Breadth-first analysis of the business or product." srcset="https://substackcdn.com/image/fetch/$s_!itup!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png 424w, https://substackcdn.com/image/fetch/$s_!itup!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png 848w, https://substackcdn.com/image/fetch/$s_!itup!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.png 1272w, https://substackcdn.com/image/fetch/$s_!itup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72efba9c-35a5-46e6-9f6d-6dbf046d59ee_663x457.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">Breadth-first analysis of the business or product.</figcaption></figure></div><p><em>I first published this on<a href="https://www.harshal-patil.com/post/product-memo-directus-example-2025"> www.harshal-patil.com</a> on Oct 26, 2025.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/startup-interview-case-study-research">Cracking Startup PM Interviews By Doing A Case Study</a></p></li><li><p><a href="https://www.harshal-patil.com/post/framework-9-steps-case-study-pm-interview">Framework For A Product Case Study With Examples To Crack PM Interviews</a></p></li><li><p><a href="https://www.harshal-patil.com/post/research-startup-pm-interview-example-n8n-2025">Product Research Before Product Management Interviews</a></p></li></ul><h2>Tips For Your Product Memos</h2><p>Writing a product memo forced me to structure findings, test assumptions, and explain insights clearly. This made my interviews stronger and my evaluation of the company more grounded. With most companies I spoke to, my research process could identify the red flags these employers wanted to hide and the green flags they wanted to highlight.</p><p>Tips:</p><ul><li><p>Create your own artifacts (scrape forums, test the product, etc.) instead of citing third-party blogs.</p></li><li><p>Talk to actual users or similar personas.</p></li><li><p>Test the product hands-on within a small budget.</p></li><li><p>Use frameworks like SWOT or Business Model Canvas to structure your thinking.</p></li></ul><p>Read more in<a href="https://www.harshal-patil.com/post/startup-interview-case-study-research"> Cracking Startup PM Interviews By Doing A Case Study</a>.</p><h2>1 - Context, Goal</h2><p><strong>Goal:</strong></p><p>Drive product leadership in a company looking to grow into the CMS and Backend-as-a-Service (BaaS) categories.</p><p>Increase developer adoption, convert open-source users into paying enterprise customers, and enable both: a) community-driven innovation and b) commercial growth.</p><p><strong>Desired Outcome:</strong></p><p>Improve time-to-value for both developers and non-technical users building internal tools.</p><p>Some questions I tried to answer:</p><ul><li><p>Should the company focus on community-requested features or enterprise-requested ones?</p></li><li><p>Should the company prioritize Directus Cloud or the self-hosted platform?</p></li><li><p>How do enterprise leads find this product? If it&#8217;s through community, then community is the base / first contact.</p></li><li><p>What is the <a href="https://www.harshal-patil.com/post/ditch-the-funnel-dodge-jobs-to-be-done-instead-use-customer-journey-maps">customer journey map</a> for an enterprise user? What&#8217;s the path for a community user? Is the community user becomingan enterprise user? What&#8217;s the conversion at each step?</p></li></ul><h2>2 - Identify The Users</h2><p><strong>Target Users</strong></p><ul><li><p>Developers and technical teams needing backend scaffolding (auth, API, CRUD, permissions) without building from scratch</p></li><li><p>Data engineers or ops teams needing a visual layer for SQL data</p></li><li><p>Internal tool builders at startups and mid-sized enterprises</p></li><li><p>Citizen developers managing data workflows</p></li></ul><p><strong>Not Target Users</strong></p><ul><li><p>Marketing teams looking for WYSIWYG editors</p></li><li><p>CMS-focused content creators</p></li><li><p>Analytics-only users expecting BI functionality</p></li></ul><h2>3 - Identify User Needs</h2><p>The product serves several distinct user types, each with its own set of needs and frustrations.</p><p>Developers want an instant backend on top of SQL. They care about having full control, API-first access, and no vendor lock-in. Their expectation is a backend-as-a-service that behaves like a headless CMS but keeps developer autonomy intact.</p><p>Data analysts and operations teams need a unified view across multiple SQL sources. They struggle with siloed data, manual exports, and repetitive work when connecting data from different databases. They look for an open data platform that simplifies access and transformation.</p><p>Open-source users want a clear roadmap and transparency in decision-making. They are often frustrated by unpredictable release cycles and lack of visibility into how community feedback influences the product.</p><h2>4a - Notes From Product Test Drive</h2><p>I took the product for a test drive and wrote some notes with the goal of finding areas of improvement.</p><p>Areas of Excellence</p><ul><li><p>Data Modeling Flexibility: Product offers strong schema creation with advanced field types, AI-suggested data models, and JavaScript examples.</p></li><li><p>Integration Paths: Built-in REST API, Data Studio, and Appsmith integration.</p></li><li><p>Automatic API Generation: Instantly generates REST endpoints for all collections.</p></li></ul><p>Areas for Improvement: Onboarding</p><ul><li><p>Password Security: Sends passwords in plain-text emails instead of one-time secrets.</p></li><li><p>Unclear Starting Points: Default templates don&#8217;t align with user needs.</p></li><li><p>Slow Setup: Long project creation delays and unclear status updates.</p></li><li><p>Localization Issues: Sandbox interface switching languages unexpectedly.</p></li><li><p>No First-Step Guidance: New users often feel lost without guided onboarding.</p></li><li><p>Frontend Options: Lacks clarity on how to create public-facing apps from data.</p></li></ul><p>Areas for Improvement: UX</p><ul><li><p>Navigation Confusion: Hard to find data models or switch between content and schema.</p></li><li><p>Hidden Functionality: Important actions buried in &#8220;three dots&#8221; menus.</p></li><li><p>Poor Feedback Loops: Icon searches show no loading or empty-state cues.</p></li><li><p>Side Navigation: Non-expandable, making section names hard to read.</p></li><li><p>Broken Links: Documentation occasionally 404s.</p></li><li><p>Context Switching: Difficult to move between related views (data &#8596; content).</p></li></ul><p>Areas for Improvement: Functionality</p><ul><li><p>API Clarity: No built-in API playground or hierarchy visualization.</p></li><li><p>Bulk Operations: Missing multi-create or multi-import flows.</p></li><li><p>Import/Export: Manual and multi-step, lacks field mapping tools.</p></li><li><p>Frontend Bridge: No clear path from backend data to frontend delivery.</p></li></ul><h2>4b - Competitive Summary</h2><p><strong>Headless CMS competitors:</strong></p><p>Sanity, Contentful, Strapi, Storyblok, Hygraph. Strengths: strong visual editing, templates, cloud-native hosting</p><p><strong>BaaS competitors:</strong></p><p>Supabase, Firebase, Hasura. Strengths: developer-first, integrated auth, strong SDKs</p><p><strong>Low-code data platforms:</strong></p><p>Retool, Appsmith, Metabase. Strengths: rapid internal app development, BI integrations</p><p>The product is between a developer-first backend and a visual data platform. Each direction offers growth but demands trade-offs. There could be a way to make both work, but it sounds like a hard path.</p><p>Competitors increasingly embed AI to assist users. For example, PostHog, Supabase, <a href="https://www.harshal-patil.com/post/lovable-family-app-vibe-coding-2025h1">Lovable</a>, <a href="https://www.harshal-patil.com/post/research-startup-pm-interview-example-n8n-2025">n8n</a>, and Metabase.</p><p>AI-powered onboarding, schema suggestions, and query generation can help Directus shorten time-to-value for new users.</p><h2>5 - Identify Feature Improvements</h2><p>I focused on opportunities that complement the product strengths while addressing gaps:</p><ul><li><p>Complementary product strategy: Build a path from free open-source use to paid enterprise features. That will help find upsell opportunities.</p></li><li><p>AI onboarding: Help users auto-generate schemas or sample dashboards.</p></li><li><p>Template library: Use-case templates for internal tools or content models.</p></li><li><p>Business user handoff: Provide preview modes or shareable environments for non-developers to enable handoff from developers.</p></li></ul><h2>6 - Execution Plan</h2><p>Although I usually prefer to write this section, I did not have a lot of new details to add here that I can also show externally. So, I am showing you that usually we should have this section, but not showing you the details here.</p><h2>7 - Go-To-Market Plan</h2><p>Directus&#8217;s growth has relied heavily on word of mouth within the developer community. Strengthening that engine remains key.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hwit!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hwit!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png 424w, https://substackcdn.com/image/fetch/$s_!Hwit!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png 848w, https://substackcdn.com/image/fetch/$s_!Hwit!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png 1272w, https://substackcdn.com/image/fetch/$s_!Hwit!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hwit!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png" width="728" height="545.7254901960785" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:663,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Directus free usage discovery to Enterprise conversion funnel.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Directus free usage discovery to Enterprise conversion funnel." title="Directus free usage discovery to Enterprise conversion funnel." srcset="https://substackcdn.com/image/fetch/$s_!Hwit!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png 424w, https://substackcdn.com/image/fetch/$s_!Hwit!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png 848w, https://substackcdn.com/image/fetch/$s_!Hwit!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.png 1272w, https://substackcdn.com/image/fetch/$s_!Hwit!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b83aa24-4383-4e64-96b0-ab3a6edf8658_663x497.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">Directus free usage discovery to Enterprise conversion funnel.</figcaption></figure></div><p>In the <strong>discovery stage</strong>, individual developers find Directus through templates, GitHub auto-deploy options, and search visibility. The goal is to make it effortless for them to spin up a project and see value within minutes.</p><p>During the <strong>community stage</strong>, users engage in forums, Q&amp;A threads, and discussions where they share use cases. Growth here depends on strong showcases, gamified engagement, and well-maintained example templates that inspire experimentation.</p><p>At the <strong>evangelism stage</strong>, a satisfied user begins proposing Directus internally at their company. &#8220;Pitch Directus&#8221; kits and ready-to-use internal templates can help advocates make the case to their teams.</p><p>In the <strong>decision-making stage</strong>, company stakeholders review proofs of concept and compare feature sets. Usage analytics, ROI estimation tools, and well-timed upgrade prompts can highlight business value.</p><p>The <strong>conversion stage</strong> follows when the company purchases a license. Smooth paid-plan onboarding, SSO setup, enterprise support, and team billing tools help increase customer usage of the product.</p><p>To continue the flywheel, In the <strong>expansion stage</strong>, more teams within the company start using Directus. Training programs, certification, usage dashboards, and expansion-tier pricing encourage organization-wide rollout and long-term retention.</p><h2>8 - Metrics And Counter-Metrics</h2><p>To measure success, Directus should track product and user engagement metrics along with counter-metrics to maintain balance.</p><p><strong>Cloud activation rate:</strong></p><p>The cloud activation rate should increase as more signups create active projects. Whereas, a rising number of users abandoning the setup flow would signal onboarding issues that need attention.</p><p><strong>Time to value:</strong></p><p>The time to first internal tool built should fall below one day, showing faster time to value. Whereas, a surge in setup-related support tickets would indicate that complexity still exists.</p><p><strong>Upgrade:</strong></p><p>Free-to-enterprise conversion is another key measure, tracking how many open-source users adopt the paid tier. If the open-source roadmap becomes overcomplicated or overly commercialized, it may harm trust.</p><p><strong>User Persona:</strong></p><p>Tracking the ratio of developer to non-developer users shows how the product broadens its audience. Yet if both personas find the interface confusing, that ratio loses meaning.</p><p><strong>Feature Adoption:</strong></p><p>Finally, feature adoption for advanced capabilities like RBAC or WebSockets should reach meaningful use within a few months. Overbuilding features that few users adopt would show misplaced effort.</p><h2>9 - Evaluate Risks And Trade-Offs</h2><p><strong>CMS vs Data platform:</strong></p><p>The company is positioning itself as both a CMS and a data platform. The dual branding can create confusion. If the team can communicate the differentiation well, then it will be in a unique spot.</p><p><strong>Self-hosted vs Cloud:</strong></p><p>A fragmented roadmap between the self-hosted and cloud products could slow innovation. Aligning both is necessary but can make delivery slower.</p><p><strong>Dev vs Business users</strong>:</p><p>Improving user experience may not benefit developer-first users who prefer flexibility and control. Yet ignoring UX limits wider organizational adoption.</p><h2>Reflection</h2><p>This exercise helped me practice evaluating product-market fit, competitive differentiation, and execution trade-offs under ambiguity. It made my interview conversations sharper and helped me see how product direction choices affect long-term strategy.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/startup-interview-case-study-research">Cracking Startup PM Interviews By Doing A Case Study</a></p></li><li><p><a href="https://www.harshal-patil.com/post/framework-9-steps-case-study-pm-interview">Framework For A Product Case Study With Examples To Crack PM Interviews</a></p></li><li><p><a href="https://www.harshal-patil.com/post/research-startup-pm-interview-example-n8n-2025">Product Research Before Product Management Interviews</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on<a href="https://www.harshal-patil.com/post/product-memo-directus-example-2025"> www.harshal-patil.com</a> on Oct 26, 2025.</em></p>]]></content:encoded></item><item><title><![CDATA[Joining n8n As An AI Product Manager]]></title><description><![CDATA[Finding The Intersection Of Startup, Developer-Centricity, AI, And Smart Home]]></description><link>https://harshalpatil.substack.com/p/joining-n8n-ai-product-manager-2025</link><guid isPermaLink="false">https://harshalpatil.substack.com/p/joining-n8n-ai-product-manager-2025</guid><dc:creator><![CDATA[Harshal Patil]]></dc:creator><pubDate>Wed, 08 Oct 2025 15:02:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UfRf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m happy to share that I&#8217;ll be joining <a href="https://n8n.io/">n8n</a> as a Staff Product Manager. My focus will be to enable users to build AI agentic workflows with n8n and to help more users create n8n workflows faster using <a href="https://www.harshal-patil.com/post/vibe-coding-wins-over-no-code-2025">AI vibe-coding</a>.</p><p>I had a few reasons for my interest in n8n when interviewing. I continue to believe in them at the time of joining n8n, and I&#8217;ll share those here.</p><p>I spent 1 hour and 5 minutes writing this. You need 1 minute to read this.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></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_!UfRf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UfRf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!UfRf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!UfRf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!UfRf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UfRf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png" width="663" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A journey leading to joining n8n.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A journey leading to joining n8n." title="A journey leading to joining n8n." srcset="https://substackcdn.com/image/fetch/$s_!UfRf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png 424w, https://substackcdn.com/image/fetch/$s_!UfRf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png 848w, https://substackcdn.com/image/fetch/$s_!UfRf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.png 1272w, https://substackcdn.com/image/fetch/$s_!UfRf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7117f6-72a1-410e-8261-29536b2122c1_663x441.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">A journey leading to joining n8n.</figcaption></figure></div><p><em>I first published this on<a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025"> www.harshal-patil.com</a> on Oct 02, 2024.</em></p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">AI And The Future Of Work 2025</a></p></li><li><p><a href="https://www.harshal-patil.com/post/premortem-ai-pm-role-growth-startup-25q4">Premortem Of My AI Product Manager Role At A Fast-Growing Tech Startup</a></p></li><li><p><a href="https://www.harshal-patil.com/post/research-startup-pm-interview-example-n8n-2025">Product Research Before Product Management Interviews</a></p></li></ul><h2>Why n8n?</h2><ol><li><p>Stage of the company</p></li><li><p>Growth challenges</p></li><li><p>Domain fit</p></li><li><p>Developer focus</p></li><li><p>Engage users</p></li></ol><h2>1 - Stage Of The Company</h2><p><a href="https://www.crunchbase.com/funding_round/n8n-io-series-b--16b22d4c">n8n is at Series B stage</a>. It has product-market fit, and its growth is accelerating. I want to work in a company that is small enough to offer visibility, but one that has already proven product-market fit. That combination means I can contribute to its hocket stick growth.</p><p>I saw this from Crunchbase and <a href="https://trends.google.com/trends/explore?date=2022-08-30%202025-08-04&amp;q=%2Fg%2F11j97lxgb4,%2Fg%2F11cp75b4l6,%2Fg%2F11csrrqr2z,%2Fg%2F11lmlv2_lg&amp;hl=en">Google Trends</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_!7yT7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7yT7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png 424w, https://substackcdn.com/image/fetch/$s_!7yT7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png 848w, https://substackcdn.com/image/fetch/$s_!7yT7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png 1272w, https://substackcdn.com/image/fetch/$s_!7yT7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7yT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png" width="663" height="402" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31609eb9-b37e-414f-be37-8376756b6cee_663x402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:402,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Google Trends showing the popularity of n8n&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Google Trends showing the popularity of n8n" title="Google Trends showing the popularity of n8n" srcset="https://substackcdn.com/image/fetch/$s_!7yT7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png 424w, https://substackcdn.com/image/fetch/$s_!7yT7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png 848w, https://substackcdn.com/image/fetch/$s_!7yT7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.png 1272w, https://substackcdn.com/image/fetch/$s_!7yT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31609eb9-b37e-414f-be37-8376756b6cee_663x402.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">Google Trends showing the popularity of n8n</figcaption></figure></div><h2>2 - Growth Challenges</h2><p>Growing companies face growing pains. I&#8217;ve seen that before at <a href="https://www.harshal-patil.com/post/balancing-customer-and-internal-focus-as-a-product-manager">Twilio</a>. I like working in that environment where things break, improve, and scale.</p><p>n8n has a large and expanding user base, including more than 3,000 enterprise users. I saw this from <a href="https://www.harshal-patil.com/post/research-startup-pm-interview-example-n8n-2025">researching n8n&#8217;s community, users</a>, and <a href="https://n8n.io/case-studies/">case studies</a>.</p><h2>3 - Domain Fit</h2><p>N8n sits at the intersection of <a href="https://www.harshal-patil.com/post/how-i-learnt-about-saas-system-architecture-by-building-my-smart-home">automation</a> and AI. That lets me compound my experience in developer tools and <a href="https://www.harshal-patil.com/post/pivot-to-ft-pm-role-flexai-july2024">AI infrastructure</a>, while expanding into the <a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">broader automation space</a>. This overlap creates more opportunities and more impact.</p><h2>4 - Developer Focus</h2><p>Like <a href="https://www.harshal-patil.com/post/building-and-nurturing-company-culture-by-mini-ceos">Twilio</a>, my <a href="https://www.sparkcreativetechnologies.com/">consulting clients</a>, and FlexAI, n8n builds for developers. I enjoy <a href="https://www.harshal-patil.com/post/product-manager-api-learn-trial-twilio">working with developer-focused products</a> because these users bring ingenuity and problem-solving attitude. That energy makes product management both challenging and rewarding.</p><h2>5 - Engaged Users</h2><p>n8n&#8217;s community is highly invested and vocal. That is a goldmine for improving the product. Feedback is direct, sometimes blunt, and often creative. That is perfect for shaping what comes next. I love shaping product direction <a href="https://www.harshal-patil.com/post/how-to-measure-customer-experience-by-merging-product-analytics-surveys-and-interviews">based on customer needs</a>.</p><p>I saw this when <a href="https://www.harshal-patil.com/post/user-interviews-pm-case-example-n8n-2025-1">researching n8n&#8217;s community</a>.</p><h2>Why AI + Automation Excites Me</h2><p>Automation and AI make work faster, better, or cheaper. Platforms like n8n let developers combine AI, software, and human input in workflows that are dependable and customizable.</p><p>I already live this. I use <a href="https://www.harshal-patil.com/post/how-i-learnt-about-saas-system-architecture-by-building-my-smart-home">Node-RED to automate my smart home</a> and Zapier for <a href="https://www.harshal-patil.com/post/organizing-and-scaling-my-business-as-a-solopreneur">consulting projects</a>. I like simplifying my life through automation. That made n8n a natural next step - because I&#8217;m joining a team that&#8217;s building the kind of product I&#8217;ve always reached for.</p><p>I thought more about the future of work, automations, and AI agents <a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">here</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_!CFFM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CFFM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png 424w, https://substackcdn.com/image/fetch/$s_!CFFM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png 848w, https://substackcdn.com/image/fetch/$s_!CFFM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png 1272w, https://substackcdn.com/image/fetch/$s_!CFFM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CFFM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png" width="663" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:663,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A workflow from a trigger node to the AI Agent node, but about joining n8n.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="A workflow from a trigger node to the AI Agent node, but about joining n8n." title="A workflow from a trigger node to the AI Agent node, but about joining n8n." srcset="https://substackcdn.com/image/fetch/$s_!CFFM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png 424w, https://substackcdn.com/image/fetch/$s_!CFFM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png 848w, https://substackcdn.com/image/fetch/$s_!CFFM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.png 1272w, https://substackcdn.com/image/fetch/$s_!CFFM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91e2a682-9924-4be3-9831-335c7192cfe3_663x497.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 workflow from a trigger node to the AI Agent node, but about joining n8n.</figcaption></figure></div><h2>Preparing For Success And More</h2><p>I am preparing for success by preparing a 3Cs plan to onboard - learning about the customers, competitors, and company. I conducted a premortem to think of problems and mitigations.</p><p>As in previous roles, I&#8217;ll continue to write here, but not explicitly about the company or role internal details.</p><p>Related:</p><ul><li><p><a href="https://www.harshal-patil.com/post/ai-and-the-future-of-work-2025">AI And The Future Of Work 2025</a></p></li><li><p><a href="https://www.harshal-patil.com/post/premortem-ai-pm-role-growth-startup-25q4">Premortem Of My AI Product Manager Role At A Fast-Growing Tech Startup</a></p></li><li><p><a href="https://www.harshal-patil.com/post/research-startup-pm-interview-example-n8n-2025">Product Research Before Product Management Interviews</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://harshalpatil.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://harshalpatil.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><em>I first published this on<a href="https://www.harshal-patil.com/post/joining-n8n-ai-product-manager-2025"> www.harshal-patil.com</a> on Oct 02, 2024.</em></p>]]></content:encoded></item></channel></rss>