<?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[FourZeroThree]]></title><description><![CDATA[Product Design📱 | Technology👨‍💻 | Personal Growth📈 ]]></description><link>https://www.fourzerothree.in</link><image><url>https://substackcdn.com/image/fetch/$s_!OK_E!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f266165-ff6e-4acb-97ad-91ab72bf6017_800x800.png</url><title>FourZeroThree</title><link>https://www.fourzerothree.in</link></image><generator>Substack</generator><lastBuildDate>Thu, 30 Apr 2026 14:36:21 GMT</lastBuildDate><atom:link href="https://www.fourzerothree.in/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[FourZeroThree]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[fourzerothree@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[fourzerothree@substack.com]]></itunes:email><itunes:name><![CDATA[Sanketh Sharathkumar]]></itunes:name></itunes:owner><itunes:author><![CDATA[Sanketh Sharathkumar]]></itunes:author><googleplay:owner><![CDATA[fourzerothree@substack.com]]></googleplay:owner><googleplay:email><![CDATA[fourzerothree@substack.com]]></googleplay:email><googleplay:author><![CDATA[Sanketh Sharathkumar]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Your design system lives in the docs - Building a living context stack]]></title><description><![CDATA[The documents you&#8217;re producing become the &#8220;context layer&#8221; that keeps your design system coherent.]]></description><link>https://www.fourzerothree.in/p/design-system-documentation-ai-context</link><guid isPermaLink="false">https://www.fourzerothree.in/p/design-system-documentation-ai-context</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Sat, 25 Apr 2026 12:31:13 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/167a2dd9-bc2d-46c6-a1fe-370a1dd4125f_805x453.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For the longest time, documentation in design systems work was the part that overwhelmed me. I was building foundations in Figma, components, token architecture, spacing rules and the system was growing. But every non-obvious call I made lived in my head. I&#8217;ll write it all up when things settle, I used to tell myself.</p><p>Things don&#8217;t settle. The system just keeps growing, and the gap between what&#8217;s in your head and what&#8217;s written down keeps widening.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M0kH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M0kH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png 424w, https://substackcdn.com/image/fetch/$s_!M0kH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png 848w, https://substackcdn.com/image/fetch/$s_!M0kH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png 1272w, https://substackcdn.com/image/fetch/$s_!M0kH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M0kH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png" width="1081" height="337" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:337,&quot;width&quot;:1081,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85545,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/195051074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M0kH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png 424w, https://substackcdn.com/image/fetch/$s_!M0kH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png 848w, https://substackcdn.com/image/fetch/$s_!M0kH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.png 1272w, https://substackcdn.com/image/fetch/$s_!M0kH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ce5ce7-5b38-47ca-972e-3042cd368bf7_1081x337.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>That&#8217;s where documentation actually matters. When I started using AI (Claude chat) to help write the docs, 2 things happened.</p><ol><li><p>Documentation stops being a separate job. <br>Bringing Claude in at decision time, iterating on a token name, rationalising a spacing rule, capturing a component decision as it happens - means you're documenting as you build, not after. The overwhelm disappears because you start treating it as a continuous output of the thinking you&#8217;re already doing.</p></li><li><p>The documents you&#8217;re producing aren&#8217;t just for design system documentation. They become the &#8220;context layer&#8221; that keeps your system coherent. <br>Every canonical doc, every micro-decision logged, every motion call captured, is fed back into Claude continuously as the system is being built. By the time you&#8217;re building components in code, the AI isn&#8217;t starting cold. It knows the token vocabulary because it helped build it. It knows why the disabled state fails contrast. The system doesn&#8217;t drift because the reasoning behind it is always in context.</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_!BorS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BorS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 424w, https://substackcdn.com/image/fetch/$s_!BorS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 848w, https://substackcdn.com/image/fetch/$s_!BorS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!BorS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BorS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png" width="1456" height="994" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:994,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:776814,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/195051074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BorS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 424w, https://substackcdn.com/image/fetch/$s_!BorS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 848w, https://substackcdn.com/image/fetch/$s_!BorS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!BorS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23fe4c81-85a3-4866-94e9-94f61eb91217_3337x2279.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Building context first wasn&#8217;t new to me - <a href="https://www.fourzerothree.in/p/build-stable-prototypes-product-design">I&#8217;d been doing it with prototypes</a> for a while. When I started design system work (with AI), the instinct carried over naturally. <a href="https://www.linkedin.com/in/tpitre/">TJ Pitre</a> at <a href="https://southleft.com/">Southleft</a> gave this a proper name - <a href="https://southleft.com/insights/design-systems/context-based-design-systems-a-new-model-for-the-ai-driven-product-lifecycle/">Context-Based Design Systems</a>. I've watched a lot of his work and it's quietly shaped how I think about building design systems with AI. </p><h3>AI should know how you think about your design system</h3><p>The first thing I do when starting a design system is set up a Claude Project (in Claude chat). I feed it two things before anything else: instructions to act as my Design System (DS) co-pilot, and a set of skills <code>.md</code> files that tell it how to handle design system work and DS documentation specifically. </p><p>Most of what I do with the Design Systems Project is brainstorming and iterating decisions with Claude, for example - why is this token named this way, why does this semantic category exist, what&#8217;s the exception and why. By the time I start building components, Claude knows the vocabulary because it helped shape it.</p><p>One thing that accelerated this for me was, I had already written extensively about foundations and token architecture in my <a href="https://www.fourzerothree.in/p/design-system-chronicles-tenet-ui">Design System Chronicles</a> series. I handed those articles directly to Claude. They gave Claude a deep understanding of how and why I&#8217;d architected things the way I had, without me having to re-explain from scratch. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YzKD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YzKD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 424w, https://substackcdn.com/image/fetch/$s_!YzKD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 848w, https://substackcdn.com/image/fetch/$s_!YzKD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 1272w, https://substackcdn.com/image/fetch/$s_!YzKD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YzKD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png" width="1456" height="618" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:618,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:497070,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/195051074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YzKD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 424w, https://substackcdn.com/image/fetch/$s_!YzKD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 848w, https://substackcdn.com/image/fetch/$s_!YzKD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 1272w, https://substackcdn.com/image/fetch/$s_!YzKD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d936b23-77f2-42f5-91a0-bcaa1ec0b651_2487x1055.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you have something similar, use it. If you don&#8217;t, you can do the same thing with reference material from design systems you admire. Study how they&#8217;ve structured their token architecture, adapt it to your organisation and your system, and feed that thinking into Claude as your foundation. The goal is the same - Claude needs to understand not just what your system looks like, but how you think about it.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3>Foundations first - canonical docs</h3><p>The three core foundations of any design system are colour, typography, and numbers. Each one runs on the same underlying logic - a two-layer token model &#8594; primitives that define the raw values, semantics that map those values to meaning and intent.</p><p>Now, for every foundation, I produce two types of files and the distinction matters.</p><ol><li><p>The first is the <strong>canonical docs </strong>(all docs are .md files). This covers the </p><ol><li><p>token architecture - how the primitives and semantic tokens are structured, how they map to each other and </p></li><li><p>the system model - which is where the reasoning lives. The rules, the whys, the exceptions, the decisions that weren&#8217;t obvious. These aren&#8217;t notes. They&#8217;re authored, structured, source-of-truth documentation written with Claude during the creation of tokens and decision making, not after. The doc is the output of the thinking behind it.</p></li></ol></li><li><p>The second is the <strong>JSON export</strong> - all variables out of Figma, exported via a Figma plugin and fed straight into the Claude Project. This is the data layer. </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_!WmWv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WmWv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 424w, https://substackcdn.com/image/fetch/$s_!WmWv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 848w, https://substackcdn.com/image/fetch/$s_!WmWv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 1272w, https://substackcdn.com/image/fetch/$s_!WmWv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WmWv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png" width="354" height="337.4579439252336" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:642,&quot;resizeWidth&quot;:354,&quot;bytes&quot;:78451,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/195051074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WmWv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 424w, https://substackcdn.com/image/fetch/$s_!WmWv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 848w, https://substackcdn.com/image/fetch/$s_!WmWv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 1272w, https://substackcdn.com/image/fetch/$s_!WmWv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517a2ab0-cddd-4105-8656-4ff13dbd2c65_642x612.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The canonical docs give Claude the logic. The JSON gives it the values. Both matter, and both live in the Project from the moment a foundation is done.</p><p>The reason to be disciplined about this isn&#8217;t just organisational tidiness or that it serves as my documentation in Figma. It&#8217;s that every one of these files is context for Claude as you&#8217;re building in Figma, and later for Cursor when you&#8217;re building in code. It&#8217;s what stops Cursor (later) from violating the intent behind tokens and any other type of drift.</p><h4>Elevation</h4><p><strong>Elevation</strong> doesn't get this treatment upfront. Elevation values make sense against real component surfaces. You can't reason your way to the right shadow in the abstract. So I defer it entirely. Build a few components first, place them in real layouts, evaluate elevation visually against them. A doc after this is enough.</p><h4>Motion</h4><p>Motion gets the same deferred treatment - for the same reason. You can't evaluate a transition in the abstract. </p><p>What I do &#8594; vibe code a simple motion prototype app with controls - duration, easing, a replay button and vibe code my components into it (components need not be perfect, they are just artifacts to test motion). I then use these controls to test if a motion feels right for each component (that may need motion). </p><p>The output is a motion table - which components need motion, which values, which don't require them - and from that, a <code>motion.md</code> that captures the tokens and the reasoning behind each call. That goes into the Claude Project.</p><h4>What we&#8217;ve got</h4><p>At the end the Project has canonical docs for foundations</p><ul><li><p><code>colour.md</code> (Note - you could either combine all your docs into one, or have them as separate docs - for example, <code>colour-token-architecture.md</code> and <code>colour-system-model.md</code> and so on. This applies to all your foundations.)</p></li><li><p><code>typography.md</code></p></li><li><p><code>numbers.md</code></p></li><li><p><code>elevation.md</code></p></li><li><p><code>motion.md</code></p></li></ul><p>and their JSON files. Every foundation is accounted for, and all of it is context for AI.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qpbh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qpbh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 424w, https://substackcdn.com/image/fetch/$s_!Qpbh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 848w, https://substackcdn.com/image/fetch/$s_!Qpbh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 1272w, https://substackcdn.com/image/fetch/$s_!Qpbh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qpbh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png" width="391" height="388.7033773861968" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:677,&quot;width&quot;:681,&quot;resizeWidth&quot;:391,&quot;bytes&quot;:81160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/195051074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qpbh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 424w, https://substackcdn.com/image/fetch/$s_!Qpbh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 848w, https://substackcdn.com/image/fetch/$s_!Qpbh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 1272w, https://substackcdn.com/image/fetch/$s_!Qpbh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3c9181e-12b6-449a-9492-6d57e8eb4ab7_681x677.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Building components and logging decisions as you go</h3><p>While building components in Figma, maintain a decisions record, you could call it <code>component-decisions.md</code>. </p><p>Now, this is different from the canonical foundation docs. Canonical docs are authored and structured and they're meant to be read. The decisions record is freeform and continuous. It's a running log of every non-obvious call made during the component build (in Figma), captured as the thinking happens.</p><p>Think of things like:</p><blockquote><p><strong>Button scale</strong> - Small 32px, Large 40px. 48px deferred, no confirmed use case yet.</p></blockquote><blockquote><p><strong>Chip</strong> - Uses <code>spacing/150</code> (12px) padding on both ends. When the dismiss icon button (24px hit target) is present, the invisible 4px padding within the icon button frame creates a visual discrepancy at the trailing end in Figma. This should not exist in code.</p></blockquote><p>Three things it does: </p><ol><li><p>It keeps you honest about decisions you've already made so you don't accidentally override them later. </p></li><li><p>It helps you remember the why behind calls.</p></li><li><p>And it becomes part of the context stack that everything downstream draws from, including component documentation.</p></li></ol><p>These are exactly what produces reasoned outputs later. </p><p>Now, before documenting a single component, do one more piece of work with Claude: research and brainstorm a component documentation template. What sections should every component doc have? What's always present, what's conditional? That way your documentation output stay consistent.</p><p>You could point to several real design systems, use them as a reference and build a template that fits your system. A good template could include the following:  <code>Overview, Anatomy, Props, States &amp; Variants, Behaviour &amp; Interactions, Usage, Accessibility, and Token Callouts.</code></p><p>The template goes into the Claude Project. When it's time to document, Claude has the template.</p><p>Now you have</p><ul><li><p>Foundations canonical docs</p></li><li><p><code>component-decisions.md</code></p></li><li><p><code>component-template.md</code></p></li></ul><p>For component documentation, I connect Figma to Claude or Cursor (if Cursor has all context) via the Figma Console MCP. I pass the component node and the component documentation template. At that point two things are in context simultaneously: </p><ol><li><p>the Figma node - full component tree, bound variables, variant structure, exact measurements and </p></li><li><p>everything accumulated in the foundation docs, and the decisions record.</p></li></ol><p>The output reflects that. &#8220;Token Callouts&#8221; don&#8217;t just list which token is used but explain why that token and not another. The reasoning behind a deliberate accessibility exception isn&#8217;t missing or vague, it&#8217;s there because it was logged when the decision was made. </p><p>The Figma Console MCP gives Claude ground truth from the file. The accumulated context gives it the system thinking. Together they produce documentation that a designer, an engineer, and Cursor can all read and actually use.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f_mD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f_mD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png 424w, https://substackcdn.com/image/fetch/$s_!f_mD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png 848w, https://substackcdn.com/image/fetch/$s_!f_mD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png 1272w, https://substackcdn.com/image/fetch/$s_!f_mD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f_mD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png" width="724" height="277.467032967033" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:558,&quot;width&quot;:1456,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:1347075,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/195051074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f_mD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png 424w, https://substackcdn.com/image/fetch/$s_!f_mD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png 848w, https://substackcdn.com/image/fetch/$s_!f_mD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.png 1272w, https://substackcdn.com/image/fetch/$s_!f_mD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600b2fe2-ceab-4f75-8a02-83e97fedba1b_3414x1309.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>Quite honestly, you'll still need to review and correct and that's not going away. But where you get at with the final component documentation is really good. </p><p>In fact this output becomes a <code>{component-name}.md</code> that can serve as a component spec and supplement the Figma Console MCP when you code (and do Storybook) the component. With so much context established, there is minimal drift.</p><h3>What you've actually built</h3><p>This is what building context-first actually means. A continuous accumulation of decisions and reasoning that runs parallel to the design work, so that when AI enters the loop at any point, it isn't starting cold.</p><p>Every canonical doc, every JSON export, every component <code>.md</code> file - this entire context stack gets fed to Cursor when it's time to build in code. Cursor isn't guessing at your token vocabulary or second-guessing your spacing rules.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;cc2d2263-8e91-468e-98ef-b4df685cc5b9&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">/
&#9500;&#9472;&#9472; colour.md
&#9500;&#9472;&#9472; typography.md
&#9500;&#9472;&#9472; number.md
&#9500;&#9472;&#9472; elevation.md
&#9500;&#9472;&#9472; motion.md
&#9500;&#9472;&#9472; component-decisions.md
&#9500;&#9472;&#9472; component-template.md
&#9500;&#9472;&#9472; Components/
    &#9492;&#9472;&#9472; component-doc-1.md
    &#9492;&#9472;&#9472; component-doc-2.md
    &#9492;&#9472;&#9472; ...
    &#9492;&#9472;&#9472; component-doc-n.md
&#9500;&#9472;&#9472; json-foundations/
    &#9492;&#9472;&#9472; colour-primitive.json
    &#9492;&#9472;&#9472; colour-semantic.json
    &#9492;&#9472;&#9472; ...(the rest of it)
&#9492;&#9472;&#9472; projects/
    &#9492;&#9472;&#9472; your-ds</code></pre></div><p>The system doesn&#8217;t drift because the reasoning behind it is always in context - in Claude, and then in Cursor. A design system built this way stays coherent, because the thinking behind it was never lost.</p><div><hr></div><h4>&#128161;Note:</h4><p>You are also doing yourself a favour by making it easy for AI tools like Cursor. When the context is already there, you dont need premium models to do the work for you. Even Auto mode or Composer-2 handle it very well - which saves you real money! </p><div><hr></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[How I set up Cursor before I start vibe coding]]></title><description><![CDATA[I spend a long time setting up projects in Cursor before writing a single line of code.]]></description><link>https://www.fourzerothree.in/p/cursor-setup-workflow</link><guid isPermaLink="false">https://www.fourzerothree.in/p/cursor-setup-workflow</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Fri, 10 Apr 2026 06:30:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wVwt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spend a long time setting up projects in Cursor before writing a single line of code. This piece is regarding what it looks like.</p><p>I&#8217;ve written a lot about fast prototypes that I&#8217;ve done with tools like Figma Make, Google AI Studio and v0 (you could catch up with a bunch of them here - <a href="https://www.fourzerothree.in/i/106726810/ai-and-product-design">AI &amp; Product design</a>, if you haven&#8217;t). </p><p>That workflow is covered, but this piece isn&#8217;t that. I&#8217;m also not talking about enterprise design-to-code pipelines where designers commit directly to production. </p><p>This is specifically about solo side projects. Things you&#8217;re building for yourself - tools, experiments, workflow explorations. The kind of project where it&#8217;s just you, an idea, and Cursor open. </p><p>I&#8217;m doing this with two projects right now. Tenet UI - my design system, which I want to build in code, with a component playground where anyone can copy-paste code snippets - something like what shadcn does. I know its ambitious and honestly it is overwhelming. </p><p>And &#8220;Loading&#8221; is a craft project, a web experience built around beautifully designed loading screens. Think DOS terminals, VHS tapes, Film countdowns and Cassette rewinds. Both are works in progress - and honestly, I still have a long way to go. But importantly both taught me what the setup needs to look like.</p><h2>Before I open Cursor</h2><p>The starting point is usually Claude (I&#8217;ve replaced ChatGPT with Claude, its way better). I use it as a UX co-pilot before anything else. Brainstorming the idea, thinking through what I actually want to build, sometimes quickly visualising a direction in Google AI Studio.</p><p>From that conversation, I put together a lightweight PRD - just enough structure to give me a clear direction I can carry into Cursor. Alongside that, I sort out a basic style guide, base colour palette, typography. Small decisions, but they feed into the <code>design.md</code> I'll create later with Cursor.</p><h2>Skills before anything else</h2><p>The first thing I do when I open a new Cursor project is set up <strong><a href="https://cursor.com/docs/skills">skills</a></strong>. In Cursor, skills are <code>SKILL.md</code> files that package domain-specific knowledge and instructions the agent can pull in when relevant. Think of them as a capability layer you're giving the agent before it touches anything. </p><p>These are separate from <strong>rules</strong>, which are always-on, skills are dynamic - the agent decides when to apply them based on what it's doing.</p><p>I use a <code>frontend-design</code>, <code>interface-design</code>, and <code>ui-ux-pro-max</code> skill all pulled from <a href="https://www.ui-skills.com/">ui-skills.com</a> a curated resource built specifically for this. You can also create your own skills inside Cursor itself. Ask the agent to interview you about how you work and what you care about, and have it write the SKILL.md<code> </code>from that conversation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r2TL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r2TL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 424w, https://substackcdn.com/image/fetch/$s_!r2TL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 848w, https://substackcdn.com/image/fetch/$s_!r2TL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 1272w, https://substackcdn.com/image/fetch/$s_!r2TL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r2TL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png" width="481" height="314" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:314,&quot;width&quot;:481,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15068,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/193589341?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!r2TL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 424w, https://substackcdn.com/image/fetch/$s_!r2TL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 848w, https://substackcdn.com/image/fetch/$s_!r2TL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 1272w, https://substackcdn.com/image/fetch/$s_!r2TL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeff7c99-83af-4c1d-90e2-115b76cc255e_481x314.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The point is, before the agent touches anything in your project, it knows how to behave. What quality bar it's working toward, how it should handle UI decisions, what it should never do. </p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>The &#8220;prompts&#8221; folder</h2><p>This one I learned entirely from <a href="https://www.talraviv.co/">Tal Raviv</a>. Full props to him! He wrote about <a href="https://www.talraviv.co/p/product-thinking-to-prototyping">how he uses Cursor as a product thinking partner</a>, and maintains a public GitHub repo called <a href="https://github.com/talsraviv/from-thinking-to-coding">from-thinking-to-coding</a> - a set of prompt files that instruct the agent on how to write specs, plans, opportunity assessments, and more.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9439!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9439!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 424w, https://substackcdn.com/image/fetch/$s_!9439!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 848w, https://substackcdn.com/image/fetch/$s_!9439!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 1272w, https://substackcdn.com/image/fetch/$s_!9439!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9439!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png" width="1295" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1295,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57072,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/193589341?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9439!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 424w, https://substackcdn.com/image/fetch/$s_!9439!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 848w, https://substackcdn.com/image/fetch/$s_!9439!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 1272w, https://substackcdn.com/image/fetch/$s_!9439!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f91c7f5-2ac0-49b0-a419-d8a1452ea9fa_1295x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I clone that folder and drop it in my project root at the start of every project. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rDXf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rDXf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png 424w, https://substackcdn.com/image/fetch/$s_!rDXf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png 848w, https://substackcdn.com/image/fetch/$s_!rDXf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png 1272w, https://substackcdn.com/image/fetch/$s_!rDXf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rDXf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png" width="294" height="396.62264150943395" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:572,&quot;width&quot;:424,&quot;resizeWidth&quot;:294,&quot;bytes&quot;:121890,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/193589341?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rDXf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png 424w, https://substackcdn.com/image/fetch/$s_!rDXf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png 848w, https://substackcdn.com/image/fetch/$s_!rDXf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.png 1272w, https://substackcdn.com/image/fetch/$s_!rDXf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98fa5e91-1a0a-451b-bc1d-0dbee27052e5_424x572.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>What this does is give the agent reference material for every document it's going to help me create. For example, when I ask Cursor to write a spec, it reads from the prompts folder to understand what a good spec looks like. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cira!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cira!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 424w, https://substackcdn.com/image/fetch/$s_!cira!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 848w, https://substackcdn.com/image/fetch/$s_!cira!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 1272w, https://substackcdn.com/image/fetch/$s_!cira!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cira!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png" width="477" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:477,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11868,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/193589341?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cira!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 424w, https://substackcdn.com/image/fetch/$s_!cira!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 848w, https://substackcdn.com/image/fetch/$s_!cira!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 1272w, https://substackcdn.com/image/fetch/$s_!cira!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b162c7-9c44-4a03-b02a-9850a722b676_477x280.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ONGK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ONGK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 424w, https://substackcdn.com/image/fetch/$s_!ONGK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 848w, https://substackcdn.com/image/fetch/$s_!ONGK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 1272w, https://substackcdn.com/image/fetch/$s_!ONGK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ONGK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png" width="473" height="273" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:273,&quot;width&quot;:473,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10322,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/193589341?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ONGK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 424w, https://substackcdn.com/image/fetch/$s_!ONGK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 848w, https://substackcdn.com/image/fetch/$s_!ONGK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 1272w, https://substackcdn.com/image/fetch/$s_!ONGK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f20b83-3900-4adf-8ef9-c47b5457f816_473x273.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The output is more disciplined and consistent than anything I'd get from a cold prompt. It also means I'm not rewriting these from scratch every time. Tal has generously done that thinking. I point Cursor to it and move on.</p><p>Either download it from Github and drop it in your root folder manually, or you can tell Cursor or Claude Code to clone the repo directly - give it the GitHub URL and ask it to download the files locally. Once they're there, the agent can read them as documents in your project.</p><h2>Brainstorming inside Cursor</h2><p>Here's where it gets interesting, and where I think most people leave a lot on the table.</p><p>Once skills and the prompts folder are in place, I don't start building. I brainstorm. Inside Cursor, using the agent as an interviewer. The prompt I use is adapted from <a href="https://github.com/talsraviv/from-thinking-to-coding?tab=readme-ov-file#1-write-your-product-opportunity-assessment-before-using-these-prompts">Tal's repo</a>, and it goes something like this:</p><blockquote><p><code>Before we start doing anything, I want you to converse with me and ask me questions to understand the project. I am winging it with you, so things may keep changing, but I'll try to tell you what I want. Think about what's missing, interview me, and pull insights and ideas out of me, and brainstorm with me. Let's converse just enough to make a great lightweight doc from our collaboration. Wait on writing the doc until our conversation is done. Keep it succinct and readable &#8212; no filler &#8212; but capture all the gold. Use our original conversation words for the vivid, evocative stuff. Let this doc be an ever-evolving one.</code></p></blockquote><p>What follows is genuinely good. Cursor asks questions I hadn't thought to ask myself. As Tal puts it in his repo&#8217;s readme: </p><blockquote><p><em>I love having my AI coding agent guide me conversationally, pulling the context out of me.</em></p></blockquote><p>That's exactly it.</p><p>The brainstorm looks different depending on the project, and that's worth saying explicitly.</p><p>With Tenet UI, I was new to a lot of the dev concepts involved. There were a lot of unknown unknowns for me. So the brainstorm was Cursor acting as the technical expert, surfacing the right questions:</p><blockquote><ul><li><p><code>Are Tenet UI components in the same codebase as Tenet Studio, or a separate package/repo?</code></p></li><li><p><code>How do you actually measure the success metrics in Phase 1? Do you have analytics/tracking in place, or is this more of a qualitative observation metric?</code></p></li><li><p><code>For &#8220;installation overview&#8221;&#8212; is this step-by-step instructions with code blocks, or just conceptual guidance pointing to component pages?</code></p></li></ul></blockquote><p>I was learning through the conversation. The agent was filling in the gaps I couldn&#8217;t even see yet.</p><p>With Loading, it was completely different. I had an idea, but it was vague and evocative rather than clear. I knew the feeling I wanted - cinematic, tactile, unconventional, but I couldn&#8217;t fully articulate it. The brainstorm felt like walking around in a dark room with a torch. I&#8217;d take a step in one direction, Cursor would light up what was there, and I&#8217;d decide whether to keep going. I didn&#8217;t know what was in front of me until I started moving toward it.</p><p>Some examples:</p><blockquote><ul><li><p><code>On sound &#8212; are you thinking ambient soundscape per world (the hum of a CRT, tape hiss, projector flicker), sound on interaction (the physical act of flipping a card, a DOS beep on hover), or both?</code></p></li><li><p><code>When you flip a card and enter that world &#8212; DOS, VHS, film &#8212; what happens in there? Is it a single static(ish) screen, slowly animating? Or is there more to explore, more to read, more depth?</code></p></li></ul></blockquote><p>Sometimes the conversation gets messy. I'd hit a question I couldn't answer. I&#8217;d go back to Claude to think it through, then return to Cursor with a better answer. The flow is chaotic. But it's productively chaotic. I end up knowing things about my own project that I wouldn't have figured out any other way.</p><h2>The document stack</h2><p>By the end of the brainstorm, Cursor produces a <code>brief.md</code> - a proper PRD built from the initial context I fed in (including the PRD I wrote with Claude) and everything that came out of our conversation. What the product is, who it's for, rough features, a visual direction. This becomes the foundation for everything that follows.</p><p>From here, I build out the rest of the document stack before any code is written, in this order.</p><p><code>agent-behaviour.mdc</code> - cursor rules. How the agent behaves throughout the entire project like conventions, preferences and non-negotiables. They keep behaviour consistent across sessions so I'm not re-explaining myself every time I open Cursor.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wVwt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wVwt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png 424w, https://substackcdn.com/image/fetch/$s_!wVwt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png 848w, https://substackcdn.com/image/fetch/$s_!wVwt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png 1272w, https://substackcdn.com/image/fetch/$s_!wVwt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wVwt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png" width="479" height="311" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:311,&quot;width&quot;:479,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13525,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/193589341?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wVwt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png 424w, https://substackcdn.com/image/fetch/$s_!wVwt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png 848w, https://substackcdn.com/image/fetch/$s_!wVwt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.png 1272w, https://substackcdn.com/image/fetch/$s_!wVwt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3559f526-ae86-487d-90c7-6f6c7ffe4d6b_479x311.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><code>design.md</code> - a living design system file. Colour palette, typography, spacing decisions. Not exhaustive, but enough for the agent to make consistent visual calls. This gets updated as the project evolves.</p><p><code>spec.md</code> - the architecture. File and folder structure, tech stack, scope, non-goals. This is where the shape of the project becomes concrete. What we&#8217;re building, and just as importantly, what we&#8217;re not.</p><p><code>plan.md</code> - the build plan. Phases, tasks within each phase, what &#8220;done&#8221; looks like for each one. Macro order first, then detail per phase.</p><p><code>agents.md</code> - a living roadmap the agent can read at any point. Current state of the project, key decisions made, what&#8217;s done, what&#8217;s next, gotchas. Lighter than a traditional roadmap but it becomes the single source of truth for build progress. I build this using the <code>agent-instructions</code> file from the prompts folder.</p><p>At this point, before writing a single line of feature code, I have: </p><ul><li><p>skills, </p></li><li><p>a project brief, </p></li><li><p>cursor rules, </p></li><li><p>a living design system, </p></li><li><p>a spec, </p></li><li><p>a build plan, and </p></li><li><p>a roadmap. </p></li></ul><p>That's a lot of documents. But this is the setup that means the actual building doesn't fall apart.</p><h2>Git before you build</h2><p>One last thing before the first phase starts.</p><p>All of the document (brief, spec, plan etc) writing happens on <code>main</code>. I push that once the full document stack is ready - local main and remote main, both with full context, and no code yet .</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OBY2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OBY2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png 424w, https://substackcdn.com/image/fetch/$s_!OBY2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png 848w, https://substackcdn.com/image/fetch/$s_!OBY2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png 1272w, https://substackcdn.com/image/fetch/$s_!OBY2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OBY2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png" width="543" height="870.6578538102644" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1031,&quot;width&quot;:643,&quot;resizeWidth&quot;:543,&quot;bytes&quot;:41284,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/193589341?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OBY2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png 424w, https://substackcdn.com/image/fetch/$s_!OBY2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png 848w, https://substackcdn.com/image/fetch/$s_!OBY2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.png 1272w, https://substackcdn.com/image/fetch/$s_!OBY2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd96e3d-236c-4327-9f85-55e7b43192d5_643x1031.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>Before starting any phase from the plan (plan.md), </p><ul><li><p>I create a new branch. </p></li><li><p>All the vibe coding for that phase happens in that branch. </p></li><li><p>When it&#8217;s working and I&#8217;m happy with it, I commit, merge to main (local), push online (main). </p></li><li><p>Then start the next phase on a new branch.</p></li></ul><h2>Closing notes</h2><p>In the end success with AI tools is about context and collaboration. These initial documents are a shared understanding that makes this possible. Quite honestly, setting all of this up before building can feel like a lot, but remember you needn&#8217;t nail it. </p><p>In fact, I don&#8217;t want to be too prescriptive, and that&#8217;s also why I treat them as &#8220;living&#8221; documents. The brief evolves as the project gets clearer, the design system grows as you build and the roadmap updates as decisions get made. The initial drag of setting everything up is real, but once it&#8217;s taken care of, &#8220;building&#8221; becomes genuinely fun. A lot of the second guessing and correcting the AI is reduced and you start &#8220;moving&#8221; with the AI tool.</p>]]></content:encoded></item><item><title><![CDATA[Loading...]]></title><description><![CDATA[I'm building a small website called "Loading..."]]></description><link>https://www.fourzerothree.in/p/loading</link><guid isPermaLink="false">https://www.fourzerothree.in/p/loading</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Sun, 05 Apr 2026 07:04:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1d1fba0d-cfe5-4d42-a7bd-c02c73686285_1502x882.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;386b3875-2bcd-4d88-906d-20a066683ecd&quot;,&quot;duration&quot;:null}"></div><p>I'm building a small website called "Loading..." - (work in progress - making with Cursor)<br>Shout out: This was inspired by <strong><a href="https://www.linkedin.com/in/josh-puckett-4722736/">Josh Puckett</a></strong>'s - <a href="https://www.interfacecraft.dev/">Interface Craft</a>. His (amazing) work feels very soulful and personal.<br><br>Its built around a simple idea: what if a loading screen could mean something?<br><br>The experience opens in a warm dark room, with a small stack of cards laid out in front of you. Each card holds two things at once: a theme and an emotion. One might feel like a VHS tape on a Sunday evening. Another like a DOS terminal. Another like a film countdown for the version of yourself you promised you&#8217;d become.<br>When you pick a card, it doesn&#8217;t just open. It transports you. The whole world shifts into that card&#8217;s aesthetic, sound, pace, and feeling. Every card is its own little universe, built to delight first, then quietly leave something emotional behind. The interaction always belongs to the world itself, so a VHS card rewinds, a cassette clicks, a terminal waits for exit and so on.<br><br>At its heart, Loading... is about the space between cold systems and warm human feeling. It takes the language of progress bars, old machines, and nostalgic interfaces, and uses it to talk about real things: time, regret, friendship, work, memory, longing, becoming. Each card is a tiny authored moment.<br><br>I want it to feel cinematic, tactile, a little funny, a little melancholic and human.<br><br>Have a lot of cards (and worlds) to go, but here are 2 cards I completed.<br><br>PS: The sounds here of course, were added during editing. But the sounds in the website closely mimic it. Part of the website's experience are the sounds!</p><p>More to come &#128588;<br></p>]]></content:encoded></item><item><title><![CDATA[How to build prototypes that don’t drift]]></title><description><![CDATA[Prototyping is quietly becoming the spec and the unit of alignment inside teams. This is how I keep it stable across tools and iterations.]]></description><link>https://www.fourzerothree.in/p/build-stable-prototypes-product-design</link><guid isPermaLink="false">https://www.fourzerothree.in/p/build-stable-prototypes-product-design</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Wed, 25 Feb 2026 14:07:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/519113d8-38f1-4883-ae64-8bdfe40f86dc_870x283.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Prototyping is quietly becoming the new spec and is becoming an actual unit of alignment inside teams.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_FK2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_FK2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png 424w, https://substackcdn.com/image/fetch/$s_!_FK2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png 848w, https://substackcdn.com/image/fetch/$s_!_FK2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png 1272w, https://substackcdn.com/image/fetch/$s_!_FK2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_FK2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png" width="1456" height="908" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:908,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:988456,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/188886139?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_FK2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png 424w, https://substackcdn.com/image/fetch/$s_!_FK2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png 848w, https://substackcdn.com/image/fetch/$s_!_FK2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.png 1272w, https://substackcdn.com/image/fetch/$s_!_FK2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701ee103-5f2a-4dc0-8847-1f6367c1a462_2284x1425.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>In the past, alignment was a slow climb. We would do the artifacts, static flows, then rough wireframes, then a high fidelity pass that finally made the thing feel real enough for stakeholders to react to.  </p><p>That middle layer is collapsing now. We are skipping wireframes more often. We are jumping straight into near high fidelity prototypes that actually run. You can click through flows, hit edge cases, see empty states, watch errors happen, and test whether the experience holds together.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Sra8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Sra8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 424w, https://substackcdn.com/image/fetch/$s_!Sra8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 848w, https://substackcdn.com/image/fetch/$s_!Sra8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 1272w, https://substackcdn.com/image/fetch/$s_!Sra8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Sra8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png" width="1456" height="538" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:538,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:893091,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/188886139?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Sra8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 424w, https://substackcdn.com/image/fetch/$s_!Sra8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 848w, https://substackcdn.com/image/fetch/$s_!Sra8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 1272w, https://substackcdn.com/image/fetch/$s_!Sra8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b44272b-ae1c-4e46-be85-985ca40702d1_2991x1106.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You are iterating on functionality, features, and behavior while everyone is looking at the same working thing. If you can build prototypes that are real enough to think with, you get alignment earlier, you make better calls, and you waste less time arguing in the abstract. Prototypes are becoming table stakes.</p><h3>The prototype is the unit of alignment</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VIMo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VIMo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 424w, https://substackcdn.com/image/fetch/$s_!VIMo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 848w, https://substackcdn.com/image/fetch/$s_!VIMo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 1272w, https://substackcdn.com/image/fetch/$s_!VIMo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VIMo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png" width="1456" height="436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:259101,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/188886139?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VIMo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 424w, https://substackcdn.com/image/fetch/$s_!VIMo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 848w, https://substackcdn.com/image/fetch/$s_!VIMo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 1272w, https://substackcdn.com/image/fetch/$s_!VIMo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4eb735-c008-4685-bb5e-f761a13e2ba0_3999x1198.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Just think, a good prototype collapses weeks of alignment into a single link. It lets the team feel what the product actually does. The faster you can create that shared reality, the faster everything downstream moves.</p><p>But the catch is, as prototypes get more real, they also get more fragile. The first version is easy. At version five things start to snap. One small change and things start to break. </p><p>A very important part of design today, is not just to prototype fast but to also do it in a way that stays stable under iteration. That stability is not magic though. It&#8217;s a set of habits, constraints, and small decisions you put in early so the prototype can survive complexity without collapsing. </p><h3>A prototype becomes the spec when it survives iteration</h3><p>Speed is increasingly cheap. What&#8217;s not cheap is making a prototype people can trust. You want your team to treat it as a serious alignment artifact. So, the real bar is that it stays coherent after multiple rounds of change.</p><p>Quick note on what I mean by &#8220;prototype&#8221; in this post:</p><ul><li><p>End to end prototypes with real flows and edge cases, and not just one screen demos.</p></li><li><p>Prototypes you can keep iterating on without rebuilding everything each time.</p></li><li><p>Not production ready code, but high fidelity, functional alignment artifacts.</p></li></ul><p>The rest of this piece is the set of dependencies I now treat as baseline, so my prototypes don&#8217;t drift, break, or quietly lose intent as they get more complex.</p><h3>1) Using GPT as a co-pilot</h3><p>To build a prototype that&#8217;s worth aligning on, you need more than a screen idea. You need clarity on the problem, the domain you&#8217;re operating in, who the users are, what they&#8217;re trying to achieve, and what constraints you can&#8217;t violate. I build them through design artifacts (user archetypes, JTBD, user flows, IA), because they force clarity. </p><p>This is where <strong><a href="https://www.fourzerothree.in/p/context-first-design-process">GPT becomes my co-pilot</a></strong>. It&#8217;s my thinking partner to create these design artifacts that shape the prototype. Those artifacts feed my PRD and specs, and more importantly, they discipline how the prototype behaves. </p><blockquote><p><em>In practice, GPT becomes my working memory for the prototype. A place where the artifacts and decisions stay current, so every new iteration starts from the same source of truth.</em></p></blockquote><p>I highly recommend reading this incredible piece &#8594; <a href="https://www.lennysnewsletter.com/p/build-your-personal-ai-copilot">Build your personal AI copilot</a> by <a href="https://www.talraviv.co/">Tal Raviv</a> written in Lenny&#8217;s newsletter.</p><div><hr></div><p>&#128161;PS:<br><a href="https://substack.com/@amankhan1">Aman Khan</a> and <a href="https://substack.com/@exiao">Eric Xiao</a>, in their article - <a href="https://amankhan1.substack.com/p/cursor-for-product-managers">Cursor for Product Managers</a> prefer doing everything inside Cursor, especially if you want your docs and codebase in the same place. </p><p>It&#8217;s an interesting take, and while I agree, it&#8217;s just that, I still prefer ChatGPT Projects for long, iterative conversations because it fits my workflow and budget better. Mostly, this is UX preference. The principle stays the same: your artifacts need a stable home. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jEYn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jEYn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 424w, https://substackcdn.com/image/fetch/$s_!jEYn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 848w, https://substackcdn.com/image/fetch/$s_!jEYn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 1272w, https://substackcdn.com/image/fetch/$s_!jEYn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jEYn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png" width="459" height="534.4877126654064" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0308334-c56f-4350-9619-22a9946608f4_529x616.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:616,&quot;width&quot;:529,&quot;resizeWidth&quot;:459,&quot;bytes&quot;:42531,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/188886139?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jEYn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 424w, https://substackcdn.com/image/fetch/$s_!jEYn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 848w, https://substackcdn.com/image/fetch/$s_!jEYn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 1272w, https://substackcdn.com/image/fetch/$s_!jEYn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0308334-c56f-4350-9619-22a9946608f4_529x616.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hUqo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hUqo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 424w, https://substackcdn.com/image/fetch/$s_!hUqo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 848w, https://substackcdn.com/image/fetch/$s_!hUqo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 1272w, https://substackcdn.com/image/fetch/$s_!hUqo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hUqo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png" width="531" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:531,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30329,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/188886139?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hUqo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 424w, https://substackcdn.com/image/fetch/$s_!hUqo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 848w, https://substackcdn.com/image/fetch/$s_!hUqo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 1272w, https://substackcdn.com/image/fetch/$s_!hUqo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0745966c-34dd-4ba5-9a7e-68ecbc6b714a_531x377.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>2) Instructions to GPT</h3><p>If GPT is going to be my working memory and thinking partner, I can&#8217;t treat it like a blank chat window. I need to set the role it&#8217;s playing, the boundaries it should respect, and how it should behave when reality is unclear.</p><p>This matters because the artifacts I generate are not throwaway. They become the logic that drives the prototype. </p><p>My instruction set usually includes:</p><ul><li><p>the role (senior product designer x Product analyst x UX solution architect)</p></li><li><p>my workflow (artifacts &#8594; prototype)</p></li><li><p>UX and design principles</p></li><li><p>non-negotiables</p></li><li><p>how to handle ambiguity</p></li><li><p>how to think (First principles &#8594; system behavior &#8594; UX implications)</p></li><li><p>pushback and challenge</p></li><li><p>tone and style</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_!697u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!697u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 424w, https://substackcdn.com/image/fetch/$s_!697u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 848w, https://substackcdn.com/image/fetch/$s_!697u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 1272w, https://substackcdn.com/image/fetch/$s_!697u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!697u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png" width="418" height="526.3992537313433" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:536,&quot;resizeWidth&quot;:418,&quot;bytes&quot;:31690,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/188886139?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!697u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 424w, https://substackcdn.com/image/fetch/$s_!697u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 848w, https://substackcdn.com/image/fetch/$s_!697u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 1272w, https://substackcdn.com/image/fetch/$s_!697u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe6272a-dcc2-4736-a159-4dae739260ee_536x675.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3>3) Hitting context limits in GPT</h3><p>Even with Projects and &#8220;intrinsic memory,&#8221; GPT can still feel unreliable especially when a conversation becomes too long, and you have to continue this in another. Because you will always hit context limit, and the thread becomes too long and heavy. </p><p>When that happens, I use a handoff prompt like this:</p><p><code>&#8220;This conversation has reached its context limit. Could you with great detail enumerate all that we discussed with regards to [topic] so I could input this in another conversation?<br>Create a document that can serve as the initial context for a fresh blank LLM thread. Your goal is to preserve approximately 90% of the conversation&#8217;s value and context while reducing its length by ~90%.<br>Act as an expert handing off to another expert who will help me, and set them up for maximum success, as close as possible to having been there all along. Tell the new expert what instructions or behaviors to exhibit that I&#8217;ve implicitly or explicitly requested of you.<br>The idea is to create the document like you are educating me.&#8221;</code></p><p><strong>&#128161;</strong><em><strong>This prompt is courtesy <a href="https://substack.com/@talsraviv">Tal Raviv</a>, from his article - <a href="https://www.lennysnewsletter.com/p/build-your-personal-ai-copilot">Build your personal AI copilot</a>, with small tweaks (almost verbatim).</strong></em></p><p>I save the output as a <code>.md</code> file, add it as a reference in my next conversation and start from there.</p><p>And this really matters, because the &#8220;context feeding&#8221; has to be stable. Otherwise any type of context drift becomes product drift.</p><div><hr></div><p>PS:<br>When I first started off with this workflow, I used to download them (the response) as .txt files and called them &#8220;<a href="https://www.fourzerothree.in/i/171196629/mitigating-long-chats">memory blocks</a>&#8221;. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AoNk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AoNk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 424w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 848w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 1272w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AoNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png" width="1386" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:1386,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98236,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!AoNk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 424w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 848w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 1272w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>4. Why meta-prompting is a super power</h3><p>I was going through this article - <a href="https://www.figma.com/blog/designer-framework-for-better-ai-prompts/#mise-en-place">Cooking with constraints: A designer&#8217;s framework for better AI prompts</a> and found the premise interesting.</p><p>What the author says:</p><blockquote><p><em>I've been building my own prompt framework, and this TC-EBC structure&#8212;Task, Context, Elements, Behavior, Constraints&#8212;has served me well. This kind of structure doesn&#8217;t just help you get better results.</em></p><p><em>For example, let&#8217;s say you&#8217;re designing a prompt for a new <a href="https://www.figma.com/blog/figma-make-general-availability/">Figma Make</a> that generates recipes from pantry photos.</em> </p><p><code>Please build a new app that allows home cooks to take a picture of their pantry or freezer to suggest recipes. Remember any allergies or preferences. Thanks!</code></p><p><em>That&#8217;s the equivalent of throwing all your ingredients into a pot and hoping for a meal.</em></p><p><em>Now let&#8217;s try the same prompt adapted to the TC-EBC format:</em></p><ul><li><p><code>Task: Build an AI-powered meal suggestion app using pantry/fridge photo inputs</code></p></li><li><p><code>Context: Home cooking assistant for households with dietary restrictions</code></p></li><li><p><code>Elements: Camera input, pantry scanner, dietary settings form, meal suggestions list, recipe cards</code></p></li><li><p><code>Behavior: User uploads photos; app scans inventory, filters by diet prefs, suggests recipes</code></p></li><li><p><code>Constraints: Mobile-first, iOS/Android, accessible UI, supports multiple household profiles</code></p></li></ul><p><em>As you can see, the TC-EBC formatted prompt is clear, scannable, and explicit about desired behavior and UI.</em></p></blockquote><p>For this precise reason I rarely write my own prompts inside Figma Make or Google AI Studio. That creates drift. Prompting is an art and I&#8217;d rather do the thinking in GPT, get the constraints and behavior explicit, then (create and) copy-paste the prompt that is actually anchored.</p><p>I call this my <a href="https://www.fourzerothree.in/i/187360795/prototyping">two-tool workflow</a>. ChatGPT handles reasoning and prompt authoring and the prototyping tool handles execution.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rXlS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rXlS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 424w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 848w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png" width="1456" height="866" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:866,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!rXlS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 424w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 848w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.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>Meta-prompting sounds like an extra step, but it buys me stability.</p><p>So this is why my GPT Project and context matters. It is the living product context. Users, JTBD, flows, IA, constraints, and anchor files. When that context is available, the prompt can be precise without being fragile. My (meta) prompts more often than not have the <strong><a href="https://www.figma.com/blog/designer-framework-for-better-ai-prompts/#mise-en-place">TC-EBC structure</a></strong></p><ul><li><p>instruction and goal</p></li><li><p>context</p></li><li><p>what exists in the UI (structure, components, states)</p></li><li><p>how it behaves (interactions, validation, empty and error states)</p></li><li><p>what must not change (layout rules, constraints, system decisions)</p></li></ul><p>This is an example prompt I used when creating a prototype for <a href="https://www.fourzerothree.in/p/designing-behavior-before-code">Tenet UI Studio</a> (This is a shortened example. The structure of the prompt is the point).</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;fcf6f205-3230-4c46-bccc-4558ff7c8536&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">You are working inside an EXISTING Tenet Studio prototype.

CONTEXT (source of truth)
- Task: Build the Chip documentation page for USE MODE only.
- Inputs: screenshots for props/tokens + implementation code.
- Accuracy rule: reflect inputs exactly.
- Do not invent new props, token names, or code structure.

GOAL (what &#8220;good&#8221; looks like)
- Turn the current Chip page into a polished USE MODE page.
- Real code snippets, not toy examples.
- Playground controls map to the public API only.
- UI must stay stable: nav must not break, dropdowns must read correctly.
- Light/Dark mode must be consistent.

SCOPE (what you are allowed to touch)
- Modify the Chip page only.
- Keep global shell and overall layout unchanged.

PAGE STRUCTURE (order is strict)
1) Header (breadcrumb, title, 1-line description)
2) Preview + Playground (two-column)
3) Installation / Import
4) Usage examples (multiple code blocks)
5) Props table (public API only)
6) Accessibility / behavioral notes (short)
7) Do / Don&#8217;t

LOCKED VISUAL RULES
- Neo-brutalist surfaces: thick borders, hard offset shadows, warm grid background.
- Elevation hierarchy: preview strongest, panels medium, secondary light.
- Light mode must not inherit dark panels and fills.

BEHAVIOR + API GUARDRAILS
- Playground controls only what is public: selected/disabled, etc.
- If interaction states exist for demos, keep them internal or label as demo-only.

FINAL QA CHECKLIST
- Sidebar continuity fixed.
- Dropdowns have real affordance (filled + caret).
- Props table matches source screenshots.
- Preview updates live from controls.
- No Learn Mode content, no anatomy/token map/specimen matrix.

OUTPUT
Give one execution prompt for the tool.
Apply changes to the Chip page only.</code></pre></div><div><hr></div><p>&#128161;This is an under-rated technique. The prompts I get are robust and my prototypes seldom break or drift. I do this at work (Enterprise apps) all the time, and I&#8217;ve had good success.</p><div><hr></div><h3>Creating a PRD, Roadmap, light-weight design system</h3><p>Once you start executing the creation of the prototype in the tool of your choice (Figma Make, v0, Google AI Studio, Cursor etc), that tool in the chain also needs the same reality.</p><p>They all make better decisions when they have persistent context about what you are building, what is locked, and what is still in motion.</p><p>So I started shipping a small set of artifacts alongside the prototype:</p><ul><li><p>a lightweight PRD</p></li><li><p>a lightweight design system</p></li><li><p>and (optionally) a roadmap that acts like a living, versioned brief</p></li></ul><p>The key is that these documents are feedable. They can live inside the codebase or the project folder, and the AI tool can reference them whenever it generates UI, components, or flows. </p><p>You could also treat them as live, iterating documents. If you later changed a product decision, or updated the visual (design) system, you would ask the AI tool to modify only the relevant sections. The structure stays intact, and the document accumulates decisions instead of losing them.</p><p>Even if GPT is producing meticulous prompts, these docs act like guardrails. They reduce the number of times you need to restate the same constraints, and they lower the chance of the tool making up structure on it&#8217;s own.</p><div><hr></div><p>&#128161;There is a whole lot of stuff you could do with Cursor - Rules, Skills, Subagents and Commands. That is maybe for another article.</p><div><hr></div><h3>A quick note from the trenches</h3><p>One last thing I&#8217;ll add. Recently, for an enterprise product I&#8217;m working on, I built a fairly complex working prototype in Figma Make. Not just a single flow. A suite of features with real behavior, edge cases, and enough fidelity to make it look close enough to the product.</p><p>I kept the functionality aligned with what we&#8217;d actually want in the working product. For context, it went through roughly 20 forks and 396 prompt-level iterations.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!duE-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!duE-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 424w, https://substackcdn.com/image/fetch/$s_!duE-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 848w, https://substackcdn.com/image/fetch/$s_!duE-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 1272w, https://substackcdn.com/image/fetch/$s_!duE-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!duE-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png" width="417" height="95" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:95,&quot;width&quot;:417,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4956,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/188886139?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!duE-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 424w, https://substackcdn.com/image/fetch/$s_!duE-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 848w, https://substackcdn.com/image/fetch/$s_!duE-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 1272w, https://substackcdn.com/image/fetch/$s_!duE-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece75f25-b6ba-424d-acb0-f953832cdd8f_417x95.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Because the workflow had a stable context layer (artifacts, instructions, prompt framing, and feedable docs), I could keep iterating without the prototype drifting or breaking.</p><p>I can&#8217;t share the exact prompts or screens because of NDA constraints, but the point is simple. When your prototype is built to survive iteration, it actually stops being a mere throwaway demo.</p><p>A prototype becomes powerful if it can survive change without collapsing. And getting there is less about the tool, and more about the system around it.</p>]]></content:encoded></item><item><title><![CDATA[A Context-First design process for 0→1 work (With AI)]]></title><description><![CDATA[A context-first design workflow for 0&#8594;1 work in unfamiliar domains (using AI) -> domain ramp-up, JTBD, flows/IA, AI-assisted prototyping, and design-system-driven UI.]]></description><link>https://www.fourzerothree.in/p/context-first-design-process</link><guid isPermaLink="false">https://www.fourzerothree.in/p/context-first-design-process</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Sun, 15 Feb 2026 14:28:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8dQM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8dQM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8dQM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png 424w, https://substackcdn.com/image/fetch/$s_!8dQM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png 848w, https://substackcdn.com/image/fetch/$s_!8dQM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png 1272w, https://substackcdn.com/image/fetch/$s_!8dQM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8dQM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png" width="1456" height="801" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:801,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1464813,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/187360795?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8dQM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png 424w, https://substackcdn.com/image/fetch/$s_!8dQM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png 848w, https://substackcdn.com/image/fetch/$s_!8dQM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.png 1272w, https://substackcdn.com/image/fetch/$s_!8dQM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50229029-3048-48e0-a03f-ac6ab501b807_1659x913.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>I do a lot of 0&#8594;1 work across unfamiliar domains - working first in a consultancy, and now as a contract consultant for an enterprise product.</p><p>Most of my projects start in a domain I don&#8217;t fully understand yet.</p><p>So my design process is built around one thing: getting to clarity fast. And this is important. Because in new domains, the biggest risk is confidently building the wrong thing.</p><p>AI fits into this workflow everywhere. I treat it like a multiplier: if my context is strong, I move faster with fewer bad iterations.</p><p>So everything I do upfront is about building context first - then using that context to create artifacts, prototypes, and finally polished UI.</p><h3>Stakeholder intake</h3><p>I talk to stakeholders early, but I keep it light.</p><p>In new domains, early conversations are good for constraints and vocabulary - not understanding. So I&#8217;m not trying to &#8220;solve&#8221; anything in these meetings. I&#8217;m just collecting the inputs I&#8217;ll later verify through research: what they think the problem is, what success looks like, and the terms I need to go learn properly.</p><p>That&#8217;s it. The real clarity comes after I do my own digging.</p><h3>Build a context container</h3><p>Right after stakeholder intake, I set up a dedicated <strong><a href="https://www.fourzerothree.in/p/designing-behavior-before-code">GPT Project</a></strong> for that product/feature.</p><p>GPT is not just for conversation. Running long threads in ChatGPT starts to drift. It gives you bad results.</p><p>I keep separate threads for each artifact (research, JTBD, feature mapping, flows/IA, PRD/spec). It sounds like overhead, but it prevents the real slowdown: losing context and re-explaining the domain every time I switch tasks.</p><p>This is the foundation. Once context is organized, everything else moves faster. </p><h3>Domain ramp-up (the real work)</h3><p>After stakeholder intake, I go into heavy domain research.</p><p>I take the terms and concepts I collected, feed them to GPT and reverse engineer them until I can explain them in plain language. I&#8217;ll do a lightweight competitor scan, and I&#8217;ll mine YouTube transcripts from adjacent products, (again) feed this into GPT so it helps me understand how people in the space think and talk, extract patterns, workflows, and pain points.</p><p>This is one of my biggest speed advantages: GPT turns weeks of &#8220;slow ramp-up&#8221; into a few focused hours/days.</p><p>Recently I went to the extent of creating a separate GPT project for domain research itself, to get me up to speed with everything in that domain.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3>Problem framing</h3><p>Once I&#8217;ve ramped up on the domain, I write a problem statement.</p><p>Not a fancy one - just what&#8217;s broken, for whom, and why it matters.</p><h3>User archetypes</h3><p>The goal isn&#8217;t to create a &#8220;persona deck.&#8221; I want to define who the system is really for, using what I learned from domain and competitor research, product constraints / scope and the problem statement</p><h4>How I use GPT here</h4><p>I use GPT to draft archetypes fast, but with strict constraints:</p><ul><li><p>keep it to a) goals, b) daily responsibilities, c) pain points</p></li><li><p>avoid long lists</p></li><li><p>don&#8217;t invent anything</p></li><li><p>if it&#8217;s uncertain, label it as an assumption</p></li></ul><p>This helps me move quickly without turning it into fiction.</p><h4>The check I run (so GPT doesn&#8217;t hallucinate)</h4><p>After it drafts archetypes, I ask:</p><blockquote><p><code>&#8220;Is this backed by our research or are we assuming it?&#8221;</code></p><p><code>&#8220;Mark what is grounded vs inferred vs unknown.&#8221;</code></p><p><code>&#8220;What evidence would confirm/deny this?&#8221;</code></p></blockquote><p>That step is the whole point. I&#8217;m not taking GPT at face value.</p><h3>JTBD + Needs (the bridge from research &#8594; features)</h3><p>Once archetypes are stable, I translate them into Jobs To Be Done.</p><p>I use a strict format: &#8220;When [situation], I want to [motivation], so I can [expected outcome].&#8221;</p><p>Prompt:</p><blockquote><p><code>Let&#8217;s create JTBD for [user type] archetype. The format of the JTBD should be:  </code></p><p><code>&#8220;When [situation], I want to [motivation], So I can [expected outcome]&#8221;.</code></p><p><code>When creating each JTBD, also create a &#8220;Needs&#8221; section that would inform the type of features needed to fulfill the JTBD.</code></p></blockquote><p>Note for every JTBD, I add a &#8220;<strong>Needs&#8221;</strong> section.</p><p>Needs are important because they naturally point toward feature categories without jumping straight into UI.</p><p>That &#8220;Needs&#8221; layer is what makes feature mapping clean 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_!BvRY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BvRY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 424w, https://substackcdn.com/image/fetch/$s_!BvRY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 848w, https://substackcdn.com/image/fetch/$s_!BvRY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 1272w, https://substackcdn.com/image/fetch/$s_!BvRY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BvRY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png" width="618" height="515.64375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:801,&quot;width&quot;:960,&quot;resizeWidth&quot;:618,&quot;bytes&quot;:59589,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/187360795?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BvRY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 424w, https://substackcdn.com/image/fetch/$s_!BvRY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 848w, https://substackcdn.com/image/fetch/$s_!BvRY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 1272w, https://substackcdn.com/image/fetch/$s_!BvRY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80f5f616-cbbf-42e9-99aa-90ce0140ea82_960x801.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Why this part is fast (and still solid)</h3><p>This is one of the places AI genuinely helps me move faster.</p><p>I can generate drafts quickly, but the speed doesn&#8217;t just come from &#8220;automation.&#8221;</p><p>It comes from:</p><ul><li><p>having research already in the context container</p></li><li><p>asking GPT to stay constrained</p></li><li><p>forcing a grounded vs assumption split</p></li></ul><p>So instead of sitting for days trying to wordsmith archetypes and JTBDs, I can get to usable models quickly, then refine as I learn more.</p><h3>Quick prototyping to sharpen fuzzy understanding</h3><p>Sometimes as I shape features, I like to visualize for more clarity. I would take a feature from my notes, reason through it with ChatGPT, then materialize it as a rough UI. A lot of times this back-and-forth turns vague ideas into something more grounded.</p><p>Importantly it surfaces gaps in my understanding much earlier than they would have otherwise. This isn&#8217;t the &#8220;final prototyping&#8221; phase yet. This is something I do occasionally, just to visualize a feature, pressure-test an idea, and surface gaps early.</p><h3>User flow and Information architecture</h3><p>This is where things get interesting. I don&#8217;t have to start with a blank canvas, in fact I could get a jump start with GPT. With a lot of context already established (domain/market research, user archetypes, JTBD, feature list), I start with this prompt:</p><blockquote><p><code>We will be creating user flows in this conversation. Please note that our user flows must be rooted in our project&#8217;s in-scope features.</code></p><p><code>I am attaching certain anchor files/images for your reference (relevant context).</code></p><p><code>I want to create user flows for [user type] for the [module]. I will give you a legend to follow:  </code></p><p><code>&#128998; Screen  </code></p><p><code>&#128311; Dialog / Modal  </code></p><p><code>&#129001; User Action  </code></p><p><code>&#128999; System Response / State  </code></p><p><code>&#128310; Decision  </code></p><p><code>&#129000; Notes  </code></p><p><code>&#129002; Assumptions  </code></p><p><code>&#128994; Open Questions  </code></p><p><code>Each flow must include:  </code></p><p><code>- Full step-by-step sequence (User Action &#8594; System Response &#8594; Next Action).  </code></p><p><code>- States &amp; Edge Cases (empty, loading, error, transitional).  </code></p><p><code>Also, make these user flows verbose and detailed so I can easily visualize them.</code></p></blockquote><p>Note: The anchor files could be anything that is relevant to help produce accurate user flows.</p><p>The sample response:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aZDF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aZDF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png 424w, https://substackcdn.com/image/fetch/$s_!aZDF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png 848w, https://substackcdn.com/image/fetch/$s_!aZDF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png 1272w, https://substackcdn.com/image/fetch/$s_!aZDF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aZDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png" width="567" height="534.3955119214586" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:672,&quot;width&quot;:713,&quot;resizeWidth&quot;:567,&quot;bytes&quot;:35568,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/187360795?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aZDF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png 424w, https://substackcdn.com/image/fetch/$s_!aZDF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png 848w, https://substackcdn.com/image/fetch/$s_!aZDF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.png 1272w, https://substackcdn.com/image/fetch/$s_!aZDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1999a650-020f-4d80-b2c2-4fe39da6c149_713x672.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>This is very handy. </p><p>Of course, I still go through the text and sanity-check what&#8217;s being proposed. A lot of human-in-the-loop decisions need to be made. But it&#8217;s fast and I can iterate from there.</p><p>Another advantage of this process - if something is hard to pin down or hard to visualize, I&#8217;ll paste the flow into another chat and ask GPT to generate a prompt so I can prototype the flow. I&#8217;ll paste that prompt into Figma Make and immediately visualize how the flow behaves, the happy path and the edge cases.</p><p>I usually translate these into visual artifacts in FigJam, export the flows as PDFs, and feed them into GPT to create the IA:</p><blockquote><p><code>We will be creating the Information Architecture for [user archetype] and [user flow] in this conversation.</code></p><p><code>Please note that our IA must be rooted in our project&#8217;s in-scope features and the user flows.</code></p><p><code>I will provide necessary docs and notes. Use anchor files:<br>(a) from our Project folder and (b) the files I have shared here. </code></p><p><code>Legend for the IA</code></p><p><code>&#129001; Screens / Visual States - All navigable screens or distinct render variants.</code></p><p><code>&#11036; Groups / Tabs / Structural containers - Non-navigable sub-sections within a screen (e.g., tabs, collapsible panels).</code></p><p><code>&#128999; Actions - Clickable interactions or triggers (buttons, links, CTAs).</code></p><p><code>&#129002; Notes - Clarifications, constraints, or behavioral explanations (non-UI).</code></p><p><code>&#128997; Open Questions - Items to confirm with stakeholders or developers.</code></p></blockquote><p>The response ends up looking very similar to how the user flows are shaped - which gives me a jump start and helps me finish faster.</p><h3>PRD, roadmap, and a lightweight design system (as guardrails)</h3><p>Before I move into the main prototyping phase, I write three lightweight docs: a PRD, a roadmap, and a design system notes file.</p><ul><li><p><strong>PRD:</strong> problem, users, scope, constraints, success criteria</p></li><li><p><strong>Roadmap:</strong> build order + dependencies (what gets prototyped first vs later)</p></li><li><p><strong>Lightweight design system notes:</strong> colours, token architecture, interaction patterns, light weight implementation notes</p></li></ul><p>These <code>.md</code> files are fed into Figma Make/Google AI studio, so the prototype stays aligned across screens, and I spend less time correcting random UI decisions.</p><h3>Prototyping</h3><p>I don&#8217;t prototype by directly prompting inside Figma Make and hoping it behaves. That approach used to create drift (I most frequently use Figma Make and Google AI studio for prototyping).</p><p>I always very strictly resort to meta-prompting with the help of a <strong>two-tool workflow</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rXlS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rXlS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 424w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 848w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png" width="1456" height="866" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:866,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!rXlS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 424w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 848w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>a) ChatGPT handles prompt authoring (and layout logic)</strong></p><p>I do the thinking in ChatGPT first.</p><p>That means I design the layout <em>in </em>text:</p><ul><li><p>spacing and hierarchy</p></li><li><p>component rules (what exists, how it behaves, what states it has)</p></li><li><p>interaction logic (what happens on click, validation, empty/error/loading, etc.)</p></li></ul><p>Once the layout is approved in text, ChatGPT generates a deterministic Figma Make prompt.</p><p><strong>2) Figma Make handles execution</strong></p><p>Then I paste the prompt into Figma Make and review the output.</p><p>If something breaks, I don&#8217;t keep iterating inside Figma Make. I take a screenshot, return to ChatGPT, and ask for a rectification prompt.</p><p>That loop removes ambiguity and keeps the prototype stable across screens and iterations.</p><h3>From prototype to high-fidelity UI</h3><p>Once the prototype behavior is stable, high-fidelity design becomes much more deliberate.</p><p>Instead of starting from a blank canvas, I&#8217;m tracing over correct behavior and focusing purely on visual quality, coherence, and system-level consistency.</p><p>The prototype gives me a predictable map of:</p><ul><li><p>all screens I need to design</p></li><li><p>interaction patterns (toasts, dialogs, confirmations, inline validations)</p></li><li><p>screen variations and states (loaders, empty, filtered empty, errors, etc.)</p></li><li><p>even small component-level behaviors that would otherwise get missed</p></li></ul><p>So the high-fidelity work becomes a matter of polishing.</p><p><strong>Important note: </strong>Production-ready UI is always done using a design system.</p><h3>A note on high-fidelity (and what I&#8217;m experimenting with)</h3><p>In my main client work, high-fidelity UI still happens in Figma.</p><p>After the prototype is stable, I build the design system foundations (tokens, components, patterns), and then translate the prototype screens into production-ready UI for engineering handover in Figma. That part of the workflow is still very real, especially for enterprise products where flows are complex, data is dense, and edge states are endless. Figma remains the most reliable place for me to design with intention and hand off clearly.</p><p>That said, I&#8217;m experimenting with a side project - <strong><a href="https://www.fourzerothree.in/p/designing-behavior-before-code">Tenet UI Studio</a></strong>, where I&#8217;m skipping high-fidelity design in Figma entirely. </p><p>In that project, I&#8217;m building the design system and the high-fidelity screens <strong>directly in code</strong> using Cursor. The reason this is even possible (and worth trying) is the nature of the product: Tenet UI Studio is a documentation website for a design system I&#8217;m building. The UI is still high-quality, but the surface area is more predictable: it&#8217;s layouts, content, components, and interaction patterns - not a sprawling enterprise app full of conditional flows, heavy tables, permissions, and tangled states.</p><p>So, for me, I don&#8217;t think &#8220;code-first high fidelity&#8221; is a universal replacement for Figma, yet.</p><p>I&#8217;m still in the middle of that experiment, and I&#8217;ll write about it once I have stronger lessons (and more scars). </p>]]></content:encoded></item><item><title><![CDATA[Assisted Overthinking]]></title><description><![CDATA[I didn't realize my 'soul' was just a collection of defensive frameworks and a deep-seated fear of shipping.]]></description><link>https://www.fourzerothree.in/p/ai-assisted-overthinking</link><guid isPermaLink="false">https://www.fourzerothree.in/p/ai-assisted-overthinking</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Mon, 19 Jan 2026 11:36:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!N4Zz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I didn't realize my 'soul' was just a collection of defensive frameworks and a deep-seated fear of shipping.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N4Zz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N4Zz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png 424w, https://substackcdn.com/image/fetch/$s_!N4Zz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png 848w, https://substackcdn.com/image/fetch/$s_!N4Zz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png 1272w, https://substackcdn.com/image/fetch/$s_!N4Zz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N4Zz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png" width="1456" height="801" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:801,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1464813,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/185052106?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N4Zz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png 424w, https://substackcdn.com/image/fetch/$s_!N4Zz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png 848w, https://substackcdn.com/image/fetch/$s_!N4Zz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.png 1272w, https://substackcdn.com/image/fetch/$s_!N4Zz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95eda004-49a3-4610-b951-9b93edffd3fe_1659x913.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><div><hr></div><h2>Related reads</h2><ul><li><p><a href="https://www.fourzerothree.in/p/context-engineering-ai-design">Context &gt; Prompt: A designer&#8217;s system for an AI copilot</a></p></li><li><p><a href="https://www.fourzerothree.in/p/chatgpt-v0-figma-workflow">Riffing With AI: My ChatGPT &#8594; v0 &#8594; Figma Workflow</a></p></li><li><p><a href="https://www.fourzerothree.in/p/designing-behavior-before-code">Designing behavior before code</a></p></li><li><p><a href="https://www.fourzerothree.in/p/ai-portfolio-chatgpt">How I vibe-coded my 90s-game themed portfolio using ChatGPT + Google AI Studio</a></p></li></ul><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Post #11- Design System Chronicles: Designing behavior before code]]></title><description><![CDATA[How I designed Tenet UI Studio by prototyping behavior before code - using ChatGPT, prototypes, and UX reasoning to freeze intent before implementation.]]></description><link>https://www.fourzerothree.in/p/designing-behavior-before-code</link><guid isPermaLink="false">https://www.fourzerothree.in/p/designing-behavior-before-code</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Wed, 14 Jan 2026 07:17:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6Mis!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4>Design System Chronicles (<a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">Tenet UI</a>)</h4><p><strong><a href="https://www.fourzerothree.in/p/component-design">Post #9 - Component design workflow</a> </strong>|<strong> <a href="https://www.fourzerothree.in/p/figma-design-system-to-code">Post #10 - From Figma to Code</a></strong> | Post #11 Designing Behavior Before Code</p><div><hr></div><p>Tenet UI Studio is the first time I&#8217;m doing this kind of work end to end, going from research to implementation without relying on high-fidelity Figma designs. </p><p>I&#8217;ve been using <a href="https://www.fourzerothree.in/p/ai-augmented-prototype-first-ux-case-study">AI-assisted workflows</a> at work for a while, and I also <a href="https://www.fourzerothree.in/p/ai-portfolio-chatgpt">built my portfolio</a> using a similar approach. That gave me some confidence. There seemed to be a system here that I could repeat.</p><p>But Tenet UI Studio raised the stakes for me. I&#8217;ve been designing it directly through exploration, prototypes, and code (no Figma high-fidelity mocks). That means I can&#8217;t rely on visuals to carry unclear thinking. So having a solid system in place matters before I go too far with implementation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wudU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wudU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 424w, https://substackcdn.com/image/fetch/$s_!wudU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 848w, https://substackcdn.com/image/fetch/$s_!wudU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 1272w, https://substackcdn.com/image/fetch/$s_!wudU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wudU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png" width="1456" height="741" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:741,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137407,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wudU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 424w, https://substackcdn.com/image/fetch/$s_!wudU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 848w, https://substackcdn.com/image/fetch/$s_!wudU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 1272w, https://substackcdn.com/image/fetch/$s_!wudU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eeb2c28-1ae0-4bf9-a5bf-81579da422e7_1920x977.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The rough plan has been fairly clear from early: ChatGPT as a design co-pilot, Google AI Studio for quick prototyping and iteration, and Cursor for final implementation.</p><p>What wasn&#8217;t clear was the shape of the product itself.</p><p>Was Tenet UI Studio meant to be an installable npm package, or something closer to shadcn-style copy-paste components? How should a learning layer sit alongside documentation? What does a design system actually look like when it lives in code?</p><p>I had a lot of small, foundational questions like this. I couldn&#8217;t move forward without working through them first.</p><h2>Why I didn&#8217;t jump straight into Cursor</h2><p>It would have been easy to jump straight into Cursor and start building. That&#8217;s tempting, especially with AI making it easy to move fast.</p><p>At this stage, too much was still undefined. I didn&#8217;t know whether Tenet UI Studio should behave like a traditional component library or more like a reference system with copy-paste patterns. I wasn&#8217;t clear on how much abstraction made sense, or how the learning layer should coexist with documentation. These weren&#8217;t details I could safely &#8220;figure out later.&#8221; They shaped the foundation.</p><p>I needed a lower-friction environment first - one where I could reason through ideas, test assumptions, mock things out, and throw them away without consequences, while the shape of the system was still forming.</p><h2>Using ChatGPT as a persistent thinking space</h2><p>Tools like <a href="https://www.fourzerothree.in/p/context-engineering-ai-design">ChatGPT or Claude are helpful for retaining and building context</a>. ChatGPT offers a dedicated space/environment (ChatGPT Projects) to think clearly without locking myself into decisions too early. They can hold a deep, multi-layered context and effectively act as a UX co-pilot. </p><p>Before creating the project itself, I spent some time defining what I wanted ChatGPT to help me with (I talk about this in my previous articles as well - <a href="https://www.fourzerothree.in/p/context-engineering-ai-design">Context &gt; Prompt</a> and <a href="https://www.fourzerothree.in/p/ai-portfolio-chatgpt">Vibe-coding my portfolio</a>).</p><p>I started a regular conversation and gave it detailed context:</p><ul><li><p>what Tenet UI Studio was</p></li><li><p>what I was trying to build</p></li><li><p>what I was unsure about</p></li><li><p>what role GPT should take</p></li><li><p>how I wanted feedback and responses to be framed</p></li></ul><p>From that conversation, I iterated on an <strong>instruction set</strong>. This wasn&#8217;t perfect on the first try. I adjusted it until it reflected how I actually wanted to think and work on the project. Once that felt right, I copied it into the Project instructions. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uqq3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uqq3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 424w, https://substackcdn.com/image/fetch/$s_!uqq3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 848w, https://substackcdn.com/image/fetch/$s_!uqq3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 1272w, https://substackcdn.com/image/fetch/$s_!uqq3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uqq3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png" width="531" height="454.68218623481783" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:846,&quot;width&quot;:988,&quot;resizeWidth&quot;:531,&quot;bytes&quot;:795232,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!uqq3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 424w, https://substackcdn.com/image/fetch/$s_!uqq3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 848w, https://substackcdn.com/image/fetch/$s_!uqq3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 1272w, https://substackcdn.com/image/fetch/$s_!uqq3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acf3535-cecc-4abb-9a38-e84977f17171_988x846.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BnZV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BnZV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 424w, https://substackcdn.com/image/fetch/$s_!BnZV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 848w, https://substackcdn.com/image/fetch/$s_!BnZV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 1272w, https://substackcdn.com/image/fetch/$s_!BnZV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BnZV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png" width="1008" height="532" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:1008,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51303,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!BnZV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 424w, https://substackcdn.com/image/fetch/$s_!BnZV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 848w, https://substackcdn.com/image/fetch/$s_!BnZV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 1272w, https://substackcdn.com/image/fetch/$s_!BnZV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b5e947-1a45-4349-b41e-7a00b46e0a54_1008x532.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Feeding the project with context over time</h3><p>As the project progressed, I started attaching files to the ChatGPT Project.  </p><p>&#8220;Files&#8221; feature is very handy. By attaching files to a Project, I give GPT a curated, evolving source of truth it can keep referencing every time I spin up a new thread. </p><p>Files included:</p><ul><li><p>research notes</p></li><li><p>user archetypes - (FigJam &#8594; PDF)</p></li><li><p>JTBD - (FigJam &#8594; PDF)</p></li><li><p>Information architecture (FigJam &#8594; PDF)</p></li><li><p>rough plans and outlines</p></li><li><p>PRD drafts</p></li></ul><p>Whenever I created a meaningful artifact in a conversation, I fed it back into the Project as a file. Over time, this became growing knowledge base that GPT could reference consistently.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8nm7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8nm7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 424w, https://substackcdn.com/image/fetch/$s_!8nm7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 848w, https://substackcdn.com/image/fetch/$s_!8nm7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 1272w, https://substackcdn.com/image/fetch/$s_!8nm7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8nm7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png" width="1065" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ebc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1065,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:261697,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8nm7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 424w, https://substackcdn.com/image/fetch/$s_!8nm7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 848w, https://substackcdn.com/image/fetch/$s_!8nm7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 1272w, https://substackcdn.com/image/fetch/$s_!8nm7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc3144b-fea7-4bad-b57e-6f709ef8815a_1065x762.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Instead of reminding ChatGPT what we had already discussed, I could start new conversations assuming shared context. That made it easier to:</p><ul><li><p>explore specific questions in isolation</p></li><li><p>sanity-check decisions against earlier thinking</p></li><li><p>avoid contradicting myself without realizing it</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_!6Mis!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Mis!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 424w, https://substackcdn.com/image/fetch/$s_!6Mis!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 848w, https://substackcdn.com/image/fetch/$s_!6Mis!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 1272w, https://substackcdn.com/image/fetch/$s_!6Mis!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Mis!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png" width="1456" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1565410,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!6Mis!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 424w, https://substackcdn.com/image/fetch/$s_!6Mis!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 848w, https://substackcdn.com/image/fetch/$s_!6Mis!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 1272w, https://substackcdn.com/image/fetch/$s_!6Mis!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a000303-ae6b-4713-8689-d9389f350e6e_5534x2813.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>The Workflow in a snapshot</strong></figcaption></figure></div><p>In practice, I spun up separate conversations for different pieces of the work:</p><ul><li><p>separate threads for research and framing</p></li><li><p>another for user archetypes and JTBD</p></li><li><p>another for feature mapping</p></li><li><p>another for IA</p></li><li><p>later, threads focused on specific concepts, doubts, prototyping</p></li></ul><p>Each conversation stayed focused, but all of them pulled from the same underlying project context.</p><p>This let me move between areas of the system without losing continuity. I could pause work on one thing, come back days later, and still pick up where I left off.</p><h2>Prototyping behavior before committing to code</h2><p>Once I had a rough feature map and IA, I realized that feature lists and diagrams weren&#8217;t enough.</p><p>I could describe features in text, but I didn&#8217;t yet understand how they would behave. The fastest way to surface that gap was to visualize the features as actual screens and flows. I needed to see things.</p><h3>From feature lists to behavior</h3><p>Feature mapping and IA helped me understand the scope of the product, but they didn&#8217;t surface interaction complexity. The fastest way to close that gap was to visualize features as actual screens and flows.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w71Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w71Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 424w, https://substackcdn.com/image/fetch/$s_!w71Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 848w, https://substackcdn.com/image/fetch/$s_!w71Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 1272w, https://substackcdn.com/image/fetch/$s_!w71Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w71Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png" width="1456" height="486" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:486,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72336,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!w71Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 424w, https://substackcdn.com/image/fetch/$s_!w71Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 848w, https://substackcdn.com/image/fetch/$s_!w71Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 1272w, https://substackcdn.com/image/fetch/$s_!w71Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fac15f9-e297-4cea-9510-2686f688043f_1521x508.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Artifact - Information Architecture with notes</strong></figcaption></figure></div><h3>Using quick prototypes to sharpen fuzzy understanding</h3><p>As I shaped features and the IA in ChatGPT, I started visualizing each feature alongside that thinking.</p><p>I would take a feature from my notes, reason through it with ChatGPT, then materialize it as a rough UI. Once I had something concrete, I&#8217;d take snapshots back into ChatGPT and iterate again.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;8bbcc2cc-4efc-4719-b0a2-c3a0220cb1f4&quot;,&quot;duration&quot;:null}"></div><p>Some features didn&#8217;t survive this loop. Others changed shape once their behavior became visible.</p><p>This back-and-forth turned vague ideas into something more grounded. </p><blockquote><p><strong>Importantly it surfaced gaps in my understanding much earlier than they would have otherwise.</strong></p></blockquote><h3>Freezing intent before prototyping</h3><p>By this point, my IA and feature list were reasonably stable. I condensed all of that thinking into two documents:</p><ul><li><p>a Tenet-<code>PRD.md</code> that forced me to articulate the product&#8217;s intent, users, mental model, feature boundaries, and non-goals</p></li><li><p>a <code>Styleguide.md</code> that outlined the high-level visual direction - colour, typography, and spacing rhythm</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7l-Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7l-Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 424w, https://substackcdn.com/image/fetch/$s_!7l-Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 848w, https://substackcdn.com/image/fetch/$s_!7l-Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 1272w, https://substackcdn.com/image/fetch/$s_!7l-Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7l-Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png" width="231" height="126" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:126,&quot;width&quot;:231,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5477,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7l-Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 424w, https://substackcdn.com/image/fetch/$s_!7l-Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 848w, https://substackcdn.com/image/fetch/$s_!7l-Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 1272w, https://substackcdn.com/image/fetch/$s_!7l-Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc43662-ff88-49f5-a88b-3834889f8d04_231x126.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>These weren&#8217;t final documents. Rather they were context anchors. Their role was to make sure that both my own thinking and the tools I was using stayed aligned as I moved forward.</p><p>I placed these files in a <code>docs/</code> folder and used them as inputs during the prototyping phase.</p><p>Along with the .md files, I also created an <strong>instruction set</strong> for Google AI Studio. Without this setup, the prototype would drift or hallucinate. With it, the outputs stayed aligned to the system I was trying to build. </p><h3>Committing to a prototype</h3><p>I didn&#8217;t try to prototype the library with all components. Instead, I documented just one component - the Chip component, in depth. </p><p>That was enough to understand how the core ideas behaved: the playground, the learning views, the parity checks, and how tokens showed up across layers. Alongside this, I also built a few auxiliary pages like <strong>Foundations</strong>, <strong>Get Started</strong> (installation), and <strong>About</strong> to see how the system held together beyond the component playground.</p><p>For execution, I leaned on the <a href="https://www.fourzerothree.in/i/179791245/the-fix">two-tool workflow</a> I usually resort to.</p><ul><li><p>Design, reasoning and prompt authoring happened in ChatGPT. </p></li><li><p>Execution and refactoring happened in Google AI Studio.</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_!QuBZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QuBZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png 424w, https://substackcdn.com/image/fetch/$s_!QuBZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png 848w, https://substackcdn.com/image/fetch/$s_!QuBZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png 1272w, https://substackcdn.com/image/fetch/$s_!QuBZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QuBZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png" width="1456" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1135702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QuBZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png 424w, https://substackcdn.com/image/fetch/$s_!QuBZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png 848w, https://substackcdn.com/image/fetch/$s_!QuBZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.png 1272w, https://substackcdn.com/image/fetch/$s_!QuBZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe74cd9f4-7c31-4437-8edc-f5a7afbe27b1_1985x976.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>Through this process, one clarification became clear. Tenet UI Studio worked best as a <strong>reference system</strong> - something you read, inspect, and copy from, rather than an installable npm package or a traditional component library. </p><h3>Pushing the prototype</h3><p>After that, I went a bit further than strictly necessary.</p><p>Out of curiosity, I spent time polishing the prototype. Nothing fancy though. </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;7dd4249d-8d4a-4a33-bc33-4acb9b0f510c&quot;,&quot;duration&quot;:null}"></div><p>I also created multiple forks along the way. Having checkpoints made it easier to experiment without fear of losing work.</p><p>By the end, I had around fifteen forks of the same prototype. Each one represented a moment where the system felt coherent enough to move forward again.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C0LG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C0LG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 424w, https://substackcdn.com/image/fetch/$s_!C0LG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 848w, https://substackcdn.com/image/fetch/$s_!C0LG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 1272w, https://substackcdn.com/image/fetch/$s_!C0LG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C0LG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png" width="1300" height="853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:853,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:504023,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/184309969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C0LG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 424w, https://substackcdn.com/image/fetch/$s_!C0LG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 848w, https://substackcdn.com/image/fetch/$s_!C0LG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 1272w, https://substackcdn.com/image/fetch/$s_!C0LG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F712120e0-8eaa-4e3d-b951-2e6051be3349_1300x853.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Freezing intent before moving on</h2><p>Once the prototype stopped changing in fundamental ways, it felt safe to move on to implementation in Cursor.</p><h2>Closing notes</h2><p>This workflow has been interesting largely because it&#8217;s shifted how I think about making things. Static artifacts are good at showing structure, but not always behavior.</p><p>Working this way moved everything closer to being dynamic. Ideas stopped living as diagrams and started showing up as interactions. When something was unclear, it didn&#8217;t stay abstract for long. It surfaced visually, in behavior, or in the friction of trying to explain it to the tools I was using.</p><p>In theory, I could probably do most of this directly inside Cursor. Over time, that may even become the default as tools get better. But for this project, having a GPT co-pilot outside of the implementation environment mattered. It gave me a space to reason, question, and discard ideas without feeling like I was already committing to code.</p><p>The split workflow - thinking and throwaway prototypes on one side, implementation in Cursor on the other, simply felt more comfortable at this stage. It let me explore without consequence, then switch modes once intent had stabilized.</p><p>I don&#8217;t see this as a settled answer. It&#8217;s more an open question I&#8217;m still sitting with. This is also my first time using Cursor seriously, and there&#8217;s probably room to collapse parts of this workflow into a single tool over time. That&#8217;s something I want to experiment with.</p><p>For now, this approach helped me build enough clarity to trust the next step. From here, the work shifts to execution.</p>]]></content:encoded></item><item><title><![CDATA[The Ontology of Colour Tokens]]></title><description><![CDATA[Technically&#8230;semantic.]]></description><link>https://www.fourzerothree.in/p/the-ontology-of-colour-tokens</link><guid isPermaLink="false">https://www.fourzerothree.in/p/the-ontology-of-colour-tokens</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Fri, 02 Jan 2026 11:45:41 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/97521c85-ce93-4ded-9188-a44a1e80fbb8_1920x1002.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Technically&#8230;semantic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!llNb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!llNb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png 424w, https://substackcdn.com/image/fetch/$s_!llNb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png 848w, https://substackcdn.com/image/fetch/$s_!llNb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png 1272w, https://substackcdn.com/image/fetch/$s_!llNb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!llNb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png" width="476" height="698.9003021148036" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:972,&quot;width&quot;:662,&quot;resizeWidth&quot;:476,&quot;bytes&quot;:716753,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/183230034?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!llNb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png 424w, https://substackcdn.com/image/fetch/$s_!llNb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png 848w, https://substackcdn.com/image/fetch/$s_!llNb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.png 1272w, https://substackcdn.com/image/fetch/$s_!llNb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0983f3b-a401-42b2-9b0a-c1562c76485e_662x972.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><div><hr></div><h2>Related reads</h2><ul><li><p><a href="https://www.fourzerothree.in/p/crafting-a-semantic-colour-system">Crafting a semantic colour system: Fixing the colour chaos, one semantic variable at a time</a></p></li><li><p><a href="https://www.fourzerothree.in/p/organizing-colour-variables-in-figma">Post #3 (Design System Chronicles)- Organizing colour variables in Figma</a></p></li><li><p><a href="https://www.fourzerothree.in/p/semantic-colour-tokens-in-action">Post #5 (Design System Chronicles) - Semantic tokens (colour) in action</a></p></li></ul><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Existential Crisis of the 27th Prop]]></title><description><![CDATA[&#128553; One component.  Twenty-seven props.  Infinite regret!]]></description><link>https://www.fourzerothree.in/p/component-props-design-system-comic</link><guid isPermaLink="false">https://www.fourzerothree.in/p/component-props-design-system-comic</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Tue, 30 Dec 2025 05:09:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d835b0da-2860-44d3-a207-d89576bbff22_1920x1002.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128553; One component.  Twenty-seven props.  Infinite regret!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gqmm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gqmm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png 424w, https://substackcdn.com/image/fetch/$s_!Gqmm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png 848w, https://substackcdn.com/image/fetch/$s_!Gqmm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!Gqmm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gqmm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png" width="541" height="817.6199095022624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1002,&quot;width&quot;:663,&quot;resizeWidth&quot;:541,&quot;bytes&quot;:766759,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/182930204?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gqmm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png 424w, https://substackcdn.com/image/fetch/$s_!Gqmm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png 848w, https://substackcdn.com/image/fetch/$s_!Gqmm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!Gqmm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b30de6-e946-46ce-99e4-6d7383db86ae_663x1002.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><div><hr></div><h2>Related reads</h2><ul><li><p><a href="https://www.fourzerothree.in/p/component-design-case-study">Building for efficiency and usability: A Case Study on Component Design</a></p></li><li><p><a href="https://www.fourzerothree.in/p/crafting-components-with-subcomponents">Crafting Components with Subcomponents and Nested Instances</a></p></li></ul><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[👨‍💻Post #10 - Design System Chronicles: From Figma to Code]]></title><description><![CDATA[In this tenth entry of Design System Chronicles, I document the shift from building Tenet UI in Figma to translating the same design system into code.]]></description><link>https://www.fourzerothree.in/p/figma-design-system-to-code</link><guid isPermaLink="false">https://www.fourzerothree.in/p/figma-design-system-to-code</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Mon, 29 Dec 2025 08:29:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!PQns!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Design System Chronicles - Phase 2</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PQns!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PQns!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png 424w, https://substackcdn.com/image/fetch/$s_!PQns!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png 848w, https://substackcdn.com/image/fetch/$s_!PQns!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png 1272w, https://substackcdn.com/image/fetch/$s_!PQns!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PQns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2641824,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/182836216?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PQns!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png 424w, https://substackcdn.com/image/fetch/$s_!PQns!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png 848w, https://substackcdn.com/image/fetch/$s_!PQns!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.png 1272w, https://substackcdn.com/image/fetch/$s_!PQns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdffd5201-4ca3-4d17-9fc4-dff81dba7815_2699x1512.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><div><hr></div><p>Lately, I&#8217;ve been spending my time building <strong>Tenet UI Studio</strong>.</p><p>The first nine posts in <a href="https://www.fourzerothree.in/p/design-system-chronicles-tenet-ui">Design System Chronicles</a> was about how I built <a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">Tenet UI</a> - a design system in Figma. </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;cbeb954d-cf57-40ee-b4f3-21d92ab6e22c&quot;,&quot;caption&quot;:&quot;Tenet UI is a UI kit/ Figma Design System that I am building to streamline design workflows. My goal is to create a scalable, code-aligned UI kit that prioritizes efficiency, consistency, and adaptability for a wide range of applications.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Design System Chronicles - Tenet UI&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:9514390,&quot;name&quot;:&quot;Sanketh Sharathkumar&quot;,&quot;bio&quot;:&quot;Product/Design Systems designer who loves to read, write and tell stories!&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c620c335-4413-465b-8c42-94d05e8bee8c_431x489.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-01-14T09:35:59.764Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hRRg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54d345bf-c48e-4ae3-b17c-8d4d769fa37c_1920x1080.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.fourzerothree.in/p/design-system-chronicles-tenet-ui&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:154805280,&quot;type&quot;:&quot;page&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:585712,&quot;publication_name&quot;:&quot;FourZeroThree&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!OK_E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f266165-ff6e-4acb-97ad-91ab72bf6017_800x800.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Phase 2 is the next chapter of that journey &#8594; taking the same system and translating it into code.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;067b502d-353d-4d06-a490-bda0c32b91fe&quot;,&quot;duration&quot;:null}"></div><p>The goal is simple (and slightly uncomfortable).</p><p><a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">Tenet UI</a> has tokens, components, variants, states, all neatly structured. Now I want to understand what that system actually looks like when it exists in code, not just on a canvas. And while doing that, I want to layer in a learning experience for designers.</p><p>I&#8217;m treating Tenet UI Studio as a learning experiment in a few directions at once.</p><ul><li><p>I&#8217;m building the foundations and components directly in code. This is not as a production framework, but as reference-quality implementations.</p></li><li><p>Each component comes with copy-able code snippets that can be dropped into real projects. </p></li></ul><p>This has been my way of slowly getting a hang of what a design system really means in code - how tokens flow, how components are composed, how states are handled, and all of that stuff. </p><p>Quite honestly, this has been tough. There are obvious knowledge gaps for me here. But that&#8217;s the point. This is my way of slowly getting a real handle on what a design system actually means in code.</p><p>A core idea I&#8217;m exploring is a split between two modes:</p><ul><li><p><strong>Use mode</strong> - when you just want to copy a code snippet of the component and move on</p></li><li><p><strong>Learn mode</strong> - when you want to understand how the component works under the hood</p></li></ul><h2>Tooling</h2><p>Tooling has played a big role in making this exploration possible.</p><ul><li><p>ChatGPT has been my design co-pilot, helping me think through structure, sanity-check decisions, and reason in systems. I don&#8217;t know how to code, so I&#8217;ve also leaned on it heavily to answer silly questions and help close knowledge gaps.</p></li><li><p>Google AI Studio has been useful for visual direction and quick mockups.</p></li><li><p>Cursor will be where the real implementation happens (that part is honestly a little scary). And I plan to use Figma MCP inside Cursor to build components with proper <strong>Figma &#8596; code parity</strong>.</p></li></ul><p>Visually, I&#8217;m keeping things light and fun for v1 - leaning into a neo-brutalist direction inspired by <a href="https://gumroad.com/">Gumroad.</a></p><p>Right now, this is intentionally a small, low-stakes project. I&#8217;m starting with a light v1, learning as I go, and seeing where it leads before deciding how far to take it.</p><p>I&#8217;m quite excited actually as I&#8217;ll be building, breaking, learning, and documenting this journey.</p><p>Cheers!</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[How to use a Figma Design System effectively in real projects]]></title><description><![CDATA[Practical lessons on using Figma design systems in real product work]]></description><link>https://www.fourzerothree.in/p/use-figma-design-system-real-projects</link><guid isPermaLink="false">https://www.fourzerothree.in/p/use-figma-design-system-real-projects</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Tue, 23 Dec 2025 05:01:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f280e9a0-c065-429c-babe-5d259efbbb87_1980x987.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most of my experience with design systems comes from working in a consultancy setup. </p><p>We were building multiple enterprise products in parallel - different clients, timelines, and designers rotating in and out of projects. Each project had some foundations, some components, and enough structure to ship, but this approach led to fragmented systems, inconsistent outputs, and inefficient workflows.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YWet!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YWet!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 424w, https://substackcdn.com/image/fetch/$s_!YWet!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 848w, https://substackcdn.com/image/fetch/$s_!YWet!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 1272w, https://substackcdn.com/image/fetch/$s_!YWet!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YWet!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png" width="1456" height="967" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:967,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:406577,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YWet!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 424w, https://substackcdn.com/image/fetch/$s_!YWet!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 848w, https://substackcdn.com/image/fetch/$s_!YWet!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 1272w, https://substackcdn.com/image/fetch/$s_!YWet!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb8f32af-c236-40c9-a814-2aca6edf3b60_1896x1259.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is a common problem especially across consultancies, agencies and freelancers simply because of how work functions. Multiple clients over time, multiple designers touching the same product, and very real delivery pressure.</p><p>And that is why, I was tasked with building and maintaining a design system in my consultancy  - a shared system that could support multiple enterprise products, stay consistent as different designers used it, and still adapt to the unique needs of each client project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1mP-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1mP-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 424w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 848w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 1272w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1mP-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png" width="1029" height="418" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:418,&quot;width&quot;:1029,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125117,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1mP-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 424w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 848w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 1272w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Having a shared design system solves a lot of problems. Workflow becomes efficient. Also there is faster delivery, more consistency, less reinvention and all of that stuff.  But there is also the hard part which is helping designers use it effectively in real projects. Which, in practice, means design system designers need to be intentional about how the system is structured, and other designers need clarity on how to work within it.</p><div><hr></div><h4>&#128161;Let me be clear&#8230;</h4><p><em>I&#8217;ll use the term <strong> &#8220;design system&#8221;</strong> throughout this article, even though a lot of Figma community &#8220;design systems&#8221; are closer to a UI kit<strong> </strong>- which includes foundations, design tokens/variables/design decisions, component library and documentation in Figma. </em></p><p><em>Whether an organization pairs this with partial or full code parity is not the focus here. This article is specifically about the <strong>designer workflow inside Figma</strong>.</em></p><div><hr></div><h2>Where things get tricky</h2><p>Consultancies, agencies, freelancers and even small design teams in startups or product companies, in practice usually take one of two paths.</p><ul><li><p>Build a Figma design system over time and work toward code parity with engineers.</p></li><li><p>Start from an existing UI kit - something like <a href="https://www.untitledui.com/">Untitled UI</a> or the <a href="https://www.figma.com/community/file/1380235722331273046/simple-design-system">Simple Design System</a><strong> </strong>and layer their system/decisions on top of this.</p></li></ul><p>Either ways, designers need to know how to use the design system effectively.</p><p>Design folks generally know what a design system is. There&#8217;s no shortage of content on the internet about building one from scratch. But using an existing Figma design system, navigating its constraints, understanding what to touch and what not to, and making practical decisions under real deadlines is a different problem altogether.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>When there are designers using the system, a familiar set of questions crop up.</p><ul><li><p>How am I supposed to add my brand colors to the UI kit for my product?</p></li><li><p>Can I tweak this component, or should I duplicate it?</p></li><li><p>Is it okay if I detach this?</p></li><li><p>Does this custom component live in my project (module) file, or in the design system?</p></li><li><p>How do I cascade changes from the Master Design system to the Project Design system? </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_!P4GW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P4GW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png 424w, https://substackcdn.com/image/fetch/$s_!P4GW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png 848w, https://substackcdn.com/image/fetch/$s_!P4GW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png 1272w, https://substackcdn.com/image/fetch/$s_!P4GW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P4GW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png" width="823" height="847" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:847,&quot;width&quot;:823,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:556578,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P4GW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png 424w, https://substackcdn.com/image/fetch/$s_!P4GW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png 848w, https://substackcdn.com/image/fetch/$s_!P4GW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.png 1272w, https://substackcdn.com/image/fetch/$s_!P4GW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740ab5d0-15fe-413a-90b5-30f73e85dc53_823x847.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>This applies to both,</p><ul><li><p>design system designers tasked with creating a system and </p></li><li><p>designers using the system in their day-to-day project work.</p></li></ul><p>This piece is about the practical side of using a Figma design system in real work. If you&#8217;ve ever opened a design system and thought, &#8220;I know this exists. I&#8217;m just not fully sure how I&#8217;m supposed to use it&#8221;, this article is for you.</p><h2>Getting started</h2><p>There are differences in how a Figma design system is used across consultancy/freelancing versus in-house product teams. Since most of my experience comes from consultancy work, I&#8217;ll anchor the examples from that perspective.</p><h2>Consultancy setup</h2><p>In a consultancy (inclusive of freelancing/agency), a design system typically needs to support multiple client projects.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1mP-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1mP-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 424w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 848w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 1272w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1mP-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png" width="1029" height="418" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:418,&quot;width&quot;:1029,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125117,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!1mP-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 424w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 848w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.png 1272w, https://substackcdn.com/image/fetch/$s_!1mP-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c01645b-c00b-421d-9a2f-2a69b3c82893_1029x418.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>In this setup, I usually work with what I call a <strong>Master Design System (MDS)</strong>. The MDS acts as the source of truth. It contains the foundations, design tokens / variables / rules, component library, and documentation.</p><p>This Master UI kit might be built internally from scratch, or it might be based on a publicly available UI kit like Untitled UI. Either way, this is the system that defines the core decisions and is often the one translated into code.</p><p>The Master Design System is intentionally flexible. It supports multi-theming, multiple component variations, and a broad set of patterns that can work across projects.</p><h4>Project Design System (PDS)</h4><p>Don&#8217;t directly use the MDS. For every new client or product, I would duplicate the MDS. That duplicate becomes the &#8220;<strong>Project Design System (PDS)</strong>&#8221;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UAzj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UAzj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 424w, https://substackcdn.com/image/fetch/$s_!UAzj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 848w, https://substackcdn.com/image/fetch/$s_!UAzj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!UAzj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UAzj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png" width="348" height="507.2542372881356" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1032,&quot;width&quot;:708,&quot;resizeWidth&quot;:348,&quot;bytes&quot;:191683,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!UAzj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 424w, https://substackcdn.com/image/fetch/$s_!UAzj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 848w, https://substackcdn.com/image/fetch/$s_!UAzj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!UAzj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b0204e-5e1b-45a9-a4d6-5464856216b0_708x1032.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The PDS is:</p><ul><li><p>scoped to a single product,</p></li><li><p>the source of truth for that product,</p></li><li><p>and the place where branding, theming, and project-specific adjustments live.</p></li></ul><p>This allows designers to start with a robust system immediately, without rebuilding foundations for every new project.</p><p>Once duplicated, the PDS is published as a library and used by the actual product design files (screens, flows, modules).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9ZeV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9ZeV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png 424w, https://substackcdn.com/image/fetch/$s_!9ZeV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png 848w, https://substackcdn.com/image/fetch/$s_!9ZeV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png 1272w, https://substackcdn.com/image/fetch/$s_!9ZeV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9ZeV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png" width="1456" height="821" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:821,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:421952,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9ZeV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png 424w, https://substackcdn.com/image/fetch/$s_!9ZeV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png 848w, https://substackcdn.com/image/fetch/$s_!9ZeV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.png 1272w, https://substackcdn.com/image/fetch/$s_!9ZeV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ffd8b88-01d2-4c74-8cd9-52e758b49c83_2486x1401.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><h4>&#128161;An important implication</h4><p>Because the PDS is a duplicate, <strong>changes made later to the MDS do not automatically cascade</strong>. If something is improved in the Master Design System, those changes need to be reflected manually in existing PDS files.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ra5L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ra5L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png 424w, https://substackcdn.com/image/fetch/$s_!Ra5L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png 848w, https://substackcdn.com/image/fetch/$s_!Ra5L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png 1272w, https://substackcdn.com/image/fetch/$s_!Ra5L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ra5L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png" width="673" height="285.776354679803" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da7f6de0-7100-4463-b298-114623911e30_1015x431.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:431,&quot;width&quot;:1015,&quot;resizeWidth&quot;:673,&quot;bytes&quot;:124534,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Ra5L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png 424w, https://substackcdn.com/image/fetch/$s_!Ra5L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png 848w, https://substackcdn.com/image/fetch/$s_!Ra5L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.png 1272w, https://substackcdn.com/image/fetch/$s_!Ra5L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7f6de0-7100-4463-b298-114623911e30_1015x431.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>This is intentional. Each PDS represents a stable snapshot tailored to a specific product. Automatic cascading would introduce unexpected changes into live projects.</p><h2>Duplicate &#8594; Publish &#8594; Use</h2><p>Once the MDS is duplicated,</p><ul><li><p>Rename the PDS clearly to match the product.</p></li><li><p>Publish the PDS library.</p></li><li><p>Use the <strong>PDS library</strong>, not the MDS, in your project files.</p></li></ul><p>Note in the example below - <a href="https://www.fourzerothree.in/p/design-system-chronicles-tenet-ui">Tenet UI</a> (<a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">a personal design system I published to the Figma community</a>) is my MDS which I duplicated. The duplicated file (PDS) - in this case &#8220;Tenet UI (duplicate)&#8221;, is the one I publish.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7f2o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7f2o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png 424w, https://substackcdn.com/image/fetch/$s_!7f2o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png 848w, https://substackcdn.com/image/fetch/$s_!7f2o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png 1272w, https://substackcdn.com/image/fetch/$s_!7f2o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7f2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png" width="669" height="566.0769230769231" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2367118b-95c2-4db4-ae13-860c42981501_793x671.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:671,&quot;width&quot;:793,&quot;resizeWidth&quot;:669,&quot;bytes&quot;:36792,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7f2o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png 424w, https://substackcdn.com/image/fetch/$s_!7f2o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png 848w, https://substackcdn.com/image/fetch/$s_!7f2o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.png 1272w, https://substackcdn.com/image/fetch/$s_!7f2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2367118b-95c2-4db4-ae13-860c42981501_793x671.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>In my example, the PDS (Tenet-UI duplicate) is renamed &#8220;RedStack Design System&#8221;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GTjV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GTjV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png 424w, https://substackcdn.com/image/fetch/$s_!GTjV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png 848w, https://substackcdn.com/image/fetch/$s_!GTjV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png 1272w, https://substackcdn.com/image/fetch/$s_!GTjV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GTjV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png" width="358" height="495.1775700934579" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:888,&quot;width&quot;:642,&quot;resizeWidth&quot;:358,&quot;bytes&quot;:263305,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GTjV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png 424w, https://substackcdn.com/image/fetch/$s_!GTjV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png 848w, https://substackcdn.com/image/fetch/$s_!GTjV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.png 1272w, https://substackcdn.com/image/fetch/$s_!GTjV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd15aa4c4-0c44-4f7f-b07d-7f8d196df6ad_642x888.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><h4>&#128161; Note</h4><p>When working with a Master Design System (MDS) and multiple Project Design Systems (PDS), there&#8217;s one mistake that designers might do.</p><p>It&#8217;s tempting to simply <strong>copy-paste components or instances</strong> from the MDS directly into your project files.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L_rn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L_rn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png 424w, https://substackcdn.com/image/fetch/$s_!L_rn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png 848w, https://substackcdn.com/image/fetch/$s_!L_rn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png 1272w, https://substackcdn.com/image/fetch/$s_!L_rn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L_rn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:598241,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L_rn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png 424w, https://substackcdn.com/image/fetch/$s_!L_rn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png 848w, https://substackcdn.com/image/fetch/$s_!L_rn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.png 1272w, https://substackcdn.com/image/fetch/$s_!L_rn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcc124a0-4404-4190-88a7-e9a232900d4a_2978x1229.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>Here&#8217;s what actually happens when you do this:</p><ul><li><p>The pasted components continue to inherit properties from the Master Design System (they don&#8217;t adhere to the local theme and rules of the project).</p></li><li><p>They do not respect the local design decisions made in the Project Design System (PDS)</p></li><li><p>Any changes you make at the project level won&#8217;t behave the way you expect</p></li></ul><p>This is never what you want. Project files should only consume libraries from the PDS. The MDS should stay &#8220;upstream&#8221; and untouched by product work.</p><h4>&#128161;In-house product teams (quick note)</h4><p>In in-house product teams with a single product, this MDS &#8594; PDS split is usually unnecessary.</p><p>There&#8217;s typically one design system, and that system is published and used directly.</p><p>However, for design system designers in product companies, understanding this consultancy model is still useful. It forces clarity around:</p><ul><li><p>what should be customizable,</p></li><li><p>what should remain stable,</p></li><li><p>and how to design systems that others can adapt without breaking.</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dgxe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dgxe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 424w, https://substackcdn.com/image/fetch/$s_!Dgxe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 848w, https://substackcdn.com/image/fetch/$s_!Dgxe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 1272w, https://substackcdn.com/image/fetch/$s_!Dgxe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dgxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png" width="936" height="350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57325,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Dgxe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 424w, https://substackcdn.com/image/fetch/$s_!Dgxe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 848w, https://substackcdn.com/image/fetch/$s_!Dgxe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 1272w, https://substackcdn.com/image/fetch/$s_!Dgxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ca4eac-1bfe-4f8a-a927-27851b3bbc26_936x350.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Manipulating variables/design tokens</h2><p>For the branding and visual language of a product the Project Design System (PDS)<strong> </strong>should be adapted by manipulating variables, mostly &#8220;<strong>primitives&#8221;.</strong></p><pre><code><code>I&#8217;m not going to re-explain variables here, but it helps to understand how any system has been set up before changing anything.
I have a "</code><strong><a href="https://www.fourzerothree.in/p/design-system-chronicles-tenet-ui">Design System Chronicles</a></strong><code>" series where I have written in depth about creating a design system - right from foundations to component manipulation. I recommend going through them, if need be.</code></code></pre><p>The first thing I recommend doing is opening the <strong>variables panel</strong> in the PDS and understanding how the system is set up:</p><ul><li><p>which variables are primitives,</p></li><li><p>which are semantic,</p></li><li><p>and which ones are intended to change per project.</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_!0jZh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0jZh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png 424w, https://substackcdn.com/image/fetch/$s_!0jZh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png 848w, https://substackcdn.com/image/fetch/$s_!0jZh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png 1272w, https://substackcdn.com/image/fetch/$s_!0jZh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0jZh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png" width="341" height="535.0025062656641" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:626,&quot;width&quot;:399,&quot;resizeWidth&quot;:341,&quot;bytes&quot;:83368,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0jZh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png 424w, https://substackcdn.com/image/fetch/$s_!0jZh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png 848w, https://substackcdn.com/image/fetch/$s_!0jZh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.png 1272w, https://substackcdn.com/image/fetch/$s_!0jZh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5620fcd6-f397-42dd-aab6-ac48a7222d2c_399x626.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>In Tenet UI, for example:</p><ul><li><p><a href="https://www.fourzerothree.in/p/organizing-colour-variables-in-figma">color primitives</a> define the raw palette,</p></li><li><p><a href="https://www.fourzerothree.in/p/semantic-colour-tokens-in-action">semantic color variables</a> reference those primitives,</p></li><li><p><a href="https://www.fourzerothree.in/p/typography-variables">typography</a> follows a similar primitive &#8594; semantic structure,</p></li><li><p>numbers (spacing, radius) are usually primitives and rarely change.</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_!Hq0-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hq0-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 424w, https://substackcdn.com/image/fetch/$s_!Hq0-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 848w, https://substackcdn.com/image/fetch/$s_!Hq0-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 1272w, https://substackcdn.com/image/fetch/$s_!Hq0-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hq0-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png" width="1156" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1156,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58413,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Hq0-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 424w, https://substackcdn.com/image/fetch/$s_!Hq0-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 848w, https://substackcdn.com/image/fetch/$s_!Hq0-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 1272w, https://substackcdn.com/image/fetch/$s_!Hq0-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c427ab-2d9d-43ba-9623-4f31d993b5e3_1156x830.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The biggest advantage of this setup is that, in most cases, you only need to change <strong>primitives</strong> in the Project Design System to adapt the system to a product. Components and semantic mappings usually remain untouched.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eYgL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eYgL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png 424w, https://substackcdn.com/image/fetch/$s_!eYgL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png 848w, https://substackcdn.com/image/fetch/$s_!eYgL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png 1272w, https://substackcdn.com/image/fetch/$s_!eYgL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eYgL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png" width="1456" height="688" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:688,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1244851,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eYgL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png 424w, https://substackcdn.com/image/fetch/$s_!eYgL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png 848w, https://substackcdn.com/image/fetch/$s_!eYgL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.png 1272w, https://substackcdn.com/image/fetch/$s_!eYgL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7871b748-19d0-42ba-bc90-7db90866c4c0_4193x1980.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>This of course, is the overarching principle. But, </p><ol><li><p>you could change or introduce new semantic or component specific variables if the project requires it,</p></li><li><p>change the values of a semantic variable. In Tenet UI <code>bg/brand/default</code> = <code>brand 600. </code>Maybe your project demands it to be <code>brand 500. </code>This differs between projects, more specifically with the type of colour palette generated. </p></li></ol><p>Hence its important you assess the needs of the project, understand how the variables in the PDS have been setup and then manipulate them as needed.</p><h2>Working with components in real projects </h2><p>At times, designers feel that working within a design system restricts creativity and leads to cookie-cutter or templated outcomes. In practice, this usually isn&#8217;t true.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZUfX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZUfX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 424w, https://substackcdn.com/image/fetch/$s_!ZUfX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 848w, https://substackcdn.com/image/fetch/$s_!ZUfX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 1272w, https://substackcdn.com/image/fetch/$s_!ZUfX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZUfX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png" width="818" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:818,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37834,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZUfX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 424w, https://substackcdn.com/image/fetch/$s_!ZUfX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 848w, https://substackcdn.com/image/fetch/$s_!ZUfX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 1272w, https://substackcdn.com/image/fetch/$s_!ZUfX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198715d-f320-408e-b4a2-d314d2d3f9f2_818x580.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Reddit conversation on customizing UI kits</strong></figcaption></figure></div><p>Most of the visual character of a product comes from decisions around spacing, layout, borders, corner radii, typography, colour, and iconography. All of these are already adjustable within a well-set-up Project Design System. The system isn&#8217;t preventing customization.</p><h4>Instances are not where changes should happen</h4><p>You can make small adjustments at the instance level. Width and height changes are usually fine. Content changes are expected. But the moment a change needs to be repeated, relied upon, or shared across screens, it no longer belongs in an instance.</p><p>Any meaningful change should happen in the main component, inside the PDS.</p><h2>Making changes the right way: component &#8594; publish &#8594; update</h2><p>Once a change is made to a component in the PDS, it needs to be published.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!30wn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!30wn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png 424w, https://substackcdn.com/image/fetch/$s_!30wn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png 848w, https://substackcdn.com/image/fetch/$s_!30wn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png 1272w, https://substackcdn.com/image/fetch/$s_!30wn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!30wn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png" width="445" height="534.7105788423154" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/def584eb-4704-4056-9119-8dd6229fa25f_501x602.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:602,&quot;width&quot;:501,&quot;resizeWidth&quot;:445,&quot;bytes&quot;:11255,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!30wn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png 424w, https://substackcdn.com/image/fetch/$s_!30wn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png 848w, https://substackcdn.com/image/fetch/$s_!30wn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.png 1272w, https://substackcdn.com/image/fetch/$s_!30wn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef584eb-4704-4056-9119-8dd6229fa25f_501x602.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>Once published, you update the library in your local project or module file. That&#8217;s it. This loop sounds obvious when written down, but it&#8217;s one of the most commonly broken workflows I&#8217;ve seen in real projects.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZEFA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZEFA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 424w, https://substackcdn.com/image/fetch/$s_!ZEFA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 848w, https://substackcdn.com/image/fetch/$s_!ZEFA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 1272w, https://substackcdn.com/image/fetch/$s_!ZEFA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZEFA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png" width="654" height="553.8303797468354" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:669,&quot;width&quot;:790,&quot;resizeWidth&quot;:654,&quot;bytes&quot;:25497,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZEFA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 424w, https://substackcdn.com/image/fetch/$s_!ZEFA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 848w, https://substackcdn.com/image/fetch/$s_!ZEFA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 1272w, https://substackcdn.com/image/fetch/$s_!ZEFA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7279e72b-191a-4ef3-90c5-d0f219b0e4fe_790x669.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Don&#8217;t create custom components unless you actually need to</h2><p>Another common issue designers run into is assuming they need to create new components too early. </p><p>Take a card component as an example. In <a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">Tenet UI</a>, the basic card ships with size variants and a set of properties that control structure and content. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wz5z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wz5z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png 424w, https://substackcdn.com/image/fetch/$s_!wz5z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png 848w, https://substackcdn.com/image/fetch/$s_!wz5z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png 1272w, https://substackcdn.com/image/fetch/$s_!wz5z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wz5z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png" width="404" height="432.46048109965636" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:623,&quot;width&quot;:582,&quot;resizeWidth&quot;:404,&quot;bytes&quot;:28628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wz5z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png 424w, https://substackcdn.com/image/fetch/$s_!wz5z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png 848w, https://substackcdn.com/image/fetch/$s_!wz5z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.png 1272w, https://substackcdn.com/image/fetch/$s_!wz5z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9603a55-c26a-4b65-aad6-123eb6ae0215_582x623.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>At first glance, it might feel limiting. In reality, most designers haven&#8217;t spent the time to explore what those properties can already do. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SN7G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SN7G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png 424w, https://substackcdn.com/image/fetch/$s_!SN7G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png 848w, https://substackcdn.com/image/fetch/$s_!SN7G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png 1272w, https://substackcdn.com/image/fetch/$s_!SN7G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SN7G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png" width="243" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:455,&quot;width&quot;:243,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14382,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SN7G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png 424w, https://substackcdn.com/image/fetch/$s_!SN7G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png 848w, https://substackcdn.com/image/fetch/$s_!SN7G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.png 1272w, https://substackcdn.com/image/fetch/$s_!SN7G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee21b8-7cb0-4382-8834-2c8b7cb9b1e4_243x455.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 more complex components, this takes patience. You need to inspect the component, understand the props, and see what combinations already exist before deciding it doesn&#8217;t fit your use case.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6Oos!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Oos!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png 424w, https://substackcdn.com/image/fetch/$s_!6Oos!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png 848w, https://substackcdn.com/image/fetch/$s_!6Oos!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png 1272w, https://substackcdn.com/image/fetch/$s_!6Oos!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Oos!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png" width="625" height="497.5103021978022" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1159,&quot;width&quot;:1456,&quot;resizeWidth&quot;:625,&quot;bytes&quot;:692198,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6Oos!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png 424w, https://substackcdn.com/image/fetch/$s_!6Oos!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png 848w, https://substackcdn.com/image/fetch/$s_!6Oos!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.png 1272w, https://substackcdn.com/image/fetch/$s_!6Oos!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F702219d2-5aad-4038-b7a9-894738479ce7_1572x1251.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>Apart from cards another common example could be the header or navigation component. Maybe your project needs six menu items, but the component supports only five. Before creating something new, it&#8217;s worth understanding why that limit exists and whether the component can be extended safely.</p><p>In a consultancy catering to many different projects, you cannot have a design system that could have all possible combination of variants needed to cater to your project. On the flip side, such a design system would be flexible enough to give you a good number of variations. </p><p>Hence it becomes important to know the variations that are possible to rule out the need for creating a custom component. If the variation genuinely belongs in the system, you have two options:</p><ul><li><p>extend the existing component by introducing a new property, or</p></li><li><p>create a new component that clearly represents a different pattern.</p></li></ul><p>Once that decision is made, the workflow stays the same. Make the change in the PDS, publish it, and update your project files.</p><h2>Working with atoms instead of forcing complex components</h2><p>Some patterns are inherently complex. <a href="https://www.fourzerothree.in/p/designing-data-tables-in-figma">Tables</a>, <a href="https://www.fourzerothree.in/p/crafting-components-with-subcomponents">side navigation</a>, headers, dense lists. Even when a design system provides these components, manipulating them at the instance level can feel painful.</p><p>In those cases, it&#8217;s often easier to work with the building blocks or &#8220;atoms&#8221; that were used to create them.</p><p>Let me give you an example.</p><p>At work, I have had a designer tell me he never used the table component in our system. Instead, he preferred using the table atoms directly to build what he needed. That feedback shaped how I approached tables in <a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">Tenet UI</a>.</p><p>Rather than shipping a rigid table component, Tenet UI exposes <a href="https://www.fourzerothree.in/p/designing-data-tables-in-figma">flexible table atoms</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_!411S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!411S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png 424w, https://substackcdn.com/image/fetch/$s_!411S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png 848w, https://substackcdn.com/image/fetch/$s_!411S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png 1272w, https://substackcdn.com/image/fetch/$s_!411S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!411S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png" width="1456" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31276,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!411S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png 424w, https://substackcdn.com/image/fetch/$s_!411S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png 848w, https://substackcdn.com/image/fetch/$s_!411S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.png 1272w, https://substackcdn.com/image/fetch/$s_!411S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcffee1cf-8516-4503-8c91-83a859f80edf_1723x639.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>Data cells with strong variant support. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LqBq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LqBq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png 424w, https://substackcdn.com/image/fetch/$s_!LqBq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png 848w, https://substackcdn.com/image/fetch/$s_!LqBq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png 1272w, https://substackcdn.com/image/fetch/$s_!LqBq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LqBq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png" width="616" height="399.9032258064516" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59302873-68f9-499e-be7b-169b2a9843dc_992x644.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:644,&quot;width&quot;:992,&quot;resizeWidth&quot;:616,&quot;bytes&quot;:30375,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LqBq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png 424w, https://substackcdn.com/image/fetch/$s_!LqBq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png 848w, https://substackcdn.com/image/fetch/$s_!LqBq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.png 1272w, https://substackcdn.com/image/fetch/$s_!LqBq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59302873-68f9-499e-be7b-169b2a9843dc_992x644.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>These atoms can be assembled as rows or columns, depending on how a designer prefers to work. The pattern stays consistent, but the construction is flexible.</p><p>The same idea applies to side navigation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k-j-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k-j-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png 424w, https://substackcdn.com/image/fetch/$s_!k-j-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png 848w, https://substackcdn.com/image/fetch/$s_!k-j-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png 1272w, https://substackcdn.com/image/fetch/$s_!k-j-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k-j-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png" width="292" height="613.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:735,&quot;width&quot;:350,&quot;resizeWidth&quot;:292,&quot;bytes&quot;:40883,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k-j-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png 424w, https://substackcdn.com/image/fetch/$s_!k-j-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png 848w, https://substackcdn.com/image/fetch/$s_!k-j-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.png 1272w, https://substackcdn.com/image/fetch/$s_!k-j-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01e49978-70ab-4cec-8cba-b656a1e256ca_350x735.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>Instead of relying on a single, heavy side-nav component, you can often rebuild it quickly using flexible atoms like &#8220;list items&#8221;. When those atoms are well designed and property-rich, assembling a navigation becomes faster and easier than fighting a locked component.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V36F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V36F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png 424w, https://substackcdn.com/image/fetch/$s_!V36F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png 848w, https://substackcdn.com/image/fetch/$s_!V36F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png 1272w, https://substackcdn.com/image/fetch/$s_!V36F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V36F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png" width="1353" height="802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:802,&quot;width&quot;:1353,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72710,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/181036308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V36F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png 424w, https://substackcdn.com/image/fetch/$s_!V36F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png 848w, https://substackcdn.com/image/fetch/$s_!V36F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.png 1272w, https://substackcdn.com/image/fetch/$s_!V36F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62aec47b-4132-4509-9e89-b1f01f589cda_1353x802.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>This approach won&#8217;t look the same in every system. The specifics depend on how your system is built. But the idea holds. When a complex component becomes hard to manipulate, step down a level and work with its parts.</p><h2>Closing thoughts</h2><p>The goal of this article was to show how to use and adapt a design system sensibly in real projects, especially from a consultancy or agency perspective, since that&#8217;s where most of my experience comes from.</p><p>In a follow-up piece, I plan to go deeper into common &#8220;why can&#8217;t I do this?&#8221; questions pulled directly from Reddit and Figma community discussions, with more tactical, tutorial-level answers.</p><p>For now, if this article helps you approach your next project with a little more clarity and a little less frustration, then it&#8217;s job done!</p>]]></content:encoded></item><item><title><![CDATA[🛠️How I vibe-coded my 90s-game themed portfolio using ChatGPT + Google AI Studio]]></title><description><![CDATA[A practical breakdown of how I vibe-coded a 90s-game themed portfolio using ChatGPT and Google AI Studio. Workflow and lessons learnt.]]></description><link>https://www.fourzerothree.in/p/ai-portfolio-chatgpt</link><guid isPermaLink="false">https://www.fourzerothree.in/p/ai-portfolio-chatgpt</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Thu, 04 Dec 2025 04:30:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mMZx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Why vibe-code a portfolio?</h2><p>For the longest time, my newsletter quietly doubled as my &#8220;portfolio.&#8221; All my case studies live here, my writing lives here, and it felt good enough. I never felt a strong need to build a glossy, dedicated portfolio website.</p><p>But looking at some portfolios designers have carved for themselves, I can&#8217;t help but think of it as being more than just displaying work. It&#8217;s a chance to express personality. It&#8217;s a small playground where you can show the kind of creative chops you don&#8217;t always get to use in product work. </p><p>So with the AI tools now available and the experience of having done AI assisted prototypes at work, why not try &#8220;vibe-coding&#8221; my own portfolio and see where it goes?</p><p>Except, I figured, this was going to be a very different kind of challenge. Up to now, all my AI experiments have lived in the &#8220;vibe-design&#8221; bucket - fully working mid to &#8220;highish&#8221; fidelity prototypes that help teams understand flows, UX decisions, and behaviour. Those are functional tools inside my design workflow.</p><p>A portfolio, on the other hand, needs something else entirely.</p><ul><li><p>It has to be expressive.</p></li><li><p>It has to be high fidelity.</p></li><li><p>It needs to feel crafted.</p></li><li><p>Micro-interactions have to be intentional.</p></li><li><p>And it has to exist as a real, deployable website, not just a prototype running in a sandbox.</p></li></ul><div><hr></div><h2><strong>&#127909;</strong>Playing around with my portfolio website</h2><div id="youtube2-W2uM7bDTm9c" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;W2uM7bDTm9c&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/W2uM7bDTm9c?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><div><hr></div><h2>Don&#8217;t start directly in the AI tool (v0/Bolt/Lovable)</h2><p>A lot of AI design tutorials begin the same way &#8594; <em>&#8220;I want to build X. Let&#8217;s open v0/Bolt/Lovable and just prompt it.&#8221;</em></p><p>You describe the website or app, hit enter, and the tool spits out layouts. And you continue to iterate from there. It&#8217;s fast and it gives you something to react to, but it&#8217;s shallow. That approach works for quick UI explorations, but to build anything real with structure, you require a system. </p><blockquote><p><em><strong>A system helps you have a structured, repeatable method of generating artifacts without compromising thinking or quality.</strong></em></p></blockquote><p>Over the past year, I&#8217;ve built a lot of AI-assisted prototypes, some of them complex, with multi-role flows, behavioural logic, and sometimes high-fidelity UI. And here&#8217;s the catch - these prototypes survived because I <strong>established context first</strong> and only then executed inside the AI tool. They usually break badly when you don&#8217;t. </p><p>Tools like ChatGPT or Claude are phenomenal for this. They can hold a deep, multi-layered context and effectively act as a UX co-pilot. This becomes invaluable when you step into execution tools (v0/Lovable), because you&#8217;re no longer prompting from scratch.</p><p>I wrote about this in depth here: <em><a href="https://www.fourzerothree.in/p/context-engineering-ai-design">Context &gt; Prompt: A designer&#8217;s system for an AI copilot</a>.</em></p><p>Tools like v0, Lovable and Google AI Studio are incredible at what they do and they even allow instruction sets, which help a bit. </p><p>You can add additional context inside these tools through things like a <code>roadmap.md</code> or a <code>/guidelines</code> folder in your project (and I&#8217;ll get to that soon). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XQ7-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XQ7-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 424w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 848w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 1272w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png" width="1159" height="588" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:588,&quot;width&quot;:1159,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32703,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!XQ7-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 424w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 848w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 1272w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But the heavy lifting, the reasoning, the design direction, the architectural thinking is something I&#8217;ve learned to do outside the execution tool, before the code begins.</p><p>And that is the core principle behind something I call &#8220;<strong>The Two-Tool Workflow&#8221;.</strong></p><p><em>(<strong>Side note:</strong> Tools like Cursor or Google Antigravity have powerful features like &#8220;Plan&#8221; mode, which can hold even richer context.)</em></p><div><hr></div><pre><code><code>&#128214; Read next: 
- </code><a href="https://www.fourzerothree.in/p/chatgpt-v0-figma-workflow">Context &gt; Prompt: A designer&#8217;s system for an AI copilot</a>
- <a href="https://www.fourzerothree.in/p/chatgpt-v0-figma-workflow">Riffing With AI: My ChatGPT &#8594; v0 &#8594; Figma Workflow</a></code></pre><div><hr></div><h2>The Two-Tool Workflow that powered this build</h2><p>The two-tool workflow on a high level is simple.</p><ul><li><p>Design, reasoning and <strong>prompt authoring</strong> happen in ChatGPT. It&#8217;s my UX co-pilot.</p></li><li><p>Execution and refactoring happen in the AI prototyping tool (Google AI Studio in this case).</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_!mMZx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mMZx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 424w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 848w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 1272w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mMZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png" width="1456" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1135702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mMZx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 424w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 848w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 1272w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.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>This workflow is powerful, especially when building complex apps with numerous flows. This approach has worked consistently for me at work. For a portfolio website however, the approach is the same although a lot simpler (there are lesser UX artifacts). </p><h2>ChatGPT</h2><p>Never have isolated conversations. If you do, you&#8217;ll constantly need to re-feed context This can become cumbersome. </p><p>ChatGPT &#8220;Projects&#8221; solve this.<br>Think of them as folders that remember everything:</p><ul><li><p>instructions</p></li><li><p>files</p></li><li><p>your design philosophy</p></li><li><p>and every conversation inside the project</p></li></ul><p>I created a Project called &#8220;Portfolio website&#8221;. Ideally I also want to feed an <strong>instruction set</strong>, so there is some type of direction for ChatGPT to follow.</p><p>To do this, I started a conversation and gave detailed context as to what my goal was and how I want the instruction set to be (additionally I attached my CV as well). </p><pre><code><strong>Prompt:</strong>
I want to create a fancy design portfolio with the help of AI tools and get it deployed/published. I already have a portfolio at www.fourzerothree.in. Right now fourzerothree is a newsletter side project where I have a section for my case studies. 
It works very well, but I want to get creative with this portfolio of mine. I am thinking of 3 tools to create this with: 
- Google AI studio 
- v0 by Vercel 
- Figma Make 
I actually want to get very creative. I want it to be like a 90s pixelated computer game - think &#8220;Dangerous Dave&#8221;, &#8220;Prince of Persia&#8221;, Wolfenstein 3D&#8221;. You would have to help me build it. 
I am going to start a Project for this here. But first I need a solid (super solid) instruction set so that you know what to do and how to go about doing stuff. The instruction set should be comprehensive.
Remember I am a designer and the instruction set for you should include 
- The AI&#8217;s role 
- The expected tone 
- Your design principles 
- non-negotiables 
- How to handle ambiguity 
- How to retain context 
And add some more if you deem it fit. </code></pre><p>The prompt is detailed, and I talk to ChatGPT as if I am telling a friend of mine what I want to do and &#8220;how I want his help&#8221;. </p><p>I get the instruction set &#8594; read it &#8594; iterate &#8594; and finalise it. I then feed this instruction set to my Project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0sBk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0sBk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 424w, https://substackcdn.com/image/fetch/$s_!0sBk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 848w, https://substackcdn.com/image/fetch/$s_!0sBk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 1272w, https://substackcdn.com/image/fetch/$s_!0sBk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0sBk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png" width="549" height="470.09514170040484" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:846,&quot;width&quot;:988,&quot;resizeWidth&quot;:549,&quot;bytes&quot;:795232,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0sBk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 424w, https://substackcdn.com/image/fetch/$s_!0sBk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 848w, https://substackcdn.com/image/fetch/$s_!0sBk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 1272w, https://substackcdn.com/image/fetch/$s_!0sBk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d5343a-5a8e-49a9-9f6c-40c974abe662_988x846.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3>Conversations</h3><p>All my conversations relating to my portfolio lived within this Project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tjle!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tjle!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 424w, https://substackcdn.com/image/fetch/$s_!Tjle!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 848w, https://substackcdn.com/image/fetch/$s_!Tjle!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 1272w, https://substackcdn.com/image/fetch/$s_!Tjle!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tjle!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png" width="1456" height="857" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:857,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:589504,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Tjle!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 424w, https://substackcdn.com/image/fetch/$s_!Tjle!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 848w, https://substackcdn.com/image/fetch/$s_!Tjle!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 1272w, https://substackcdn.com/image/fetch/$s_!Tjle!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7b3945-b05c-4762-80f1-3d305574b2df_1456x857.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Creating a plan </h3><p>Ideally I would want to create a roadmap for the product. </p><p>For web apps one would ideally start with research &#8594; and then move on to UX artifacts &#8594; UI layout &#8594; build prototype. I could go on, but this is for another article.</p><p>For &#8220;websites&#8221;, it&#8217;s simpler and a bit different. </p><p>a) <strong>Foundation</strong> <br>I would want to define it&#8217;s foundation - stuff like business goals, target audience, value proposition, tone/voice and all that jazz. This was straight forward. This was my portfolio and I wanted it to be creative, playful and themed like a 90s PC game.</p><p>b) <strong>Structure</strong><br>Based on all of this, I would want to create the structure (website pages and sitemap for the website). I knew what pages I wanted. This was a no brainer.</p><p>c) <strong>Content</strong><br>Next, I would want to create the content for each page. This I had to brainstorm with ChatGPT.</p><p>d) <strong>Layout</strong> <br>The content decides the UI layout (brainstorm with ChatGPT).</p><p>Point (d) is important. <strong>Content decides the UI layout</strong>! </p><p>I could directly jump to deciding the content and planning the layout for the pages.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0CWC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0CWC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 424w, https://substackcdn.com/image/fetch/$s_!0CWC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 848w, https://substackcdn.com/image/fetch/$s_!0CWC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 1272w, https://substackcdn.com/image/fetch/$s_!0CWC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0CWC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png" width="560" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:560,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8075,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0CWC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 424w, https://substackcdn.com/image/fetch/$s_!0CWC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 848w, https://substackcdn.com/image/fetch/$s_!0CWC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 1272w, https://substackcdn.com/image/fetch/$s_!0CWC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d47d6c6-0587-4eec-ab8d-b598ecc00729_560x207.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Creative UI direction</h3><p>Before I jump to creating the content and UI layout for the pages, I need to establish some sort of &#8220;UI direction&#8221; I want to head in. </p><p>You could say this is something akin to wireframing but done in high fidelity with the styling, branding and the creative direction. This was primarily because I wanted it to be themed like a 90s PC game and I was starting on a blank canvas.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hsRT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hsRT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 424w, https://substackcdn.com/image/fetch/$s_!hsRT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 848w, https://substackcdn.com/image/fetch/$s_!hsRT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 1272w, https://substackcdn.com/image/fetch/$s_!hsRT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hsRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png" width="523" height="214" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:214,&quot;width&quot;:523,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12737,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hsRT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 424w, https://substackcdn.com/image/fetch/$s_!hsRT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 848w, https://substackcdn.com/image/fetch/$s_!hsRT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 1272w, https://substackcdn.com/image/fetch/$s_!hsRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a1cbc1-15a7-4aae-8f4d-30e9dad7566b_523x214.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Added some inspiration snapshots.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XRsL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XRsL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png 424w, https://substackcdn.com/image/fetch/$s_!XRsL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png 848w, https://substackcdn.com/image/fetch/$s_!XRsL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png 1272w, https://substackcdn.com/image/fetch/$s_!XRsL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XRsL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png" width="531" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:531,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51126,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XRsL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png 424w, https://substackcdn.com/image/fetch/$s_!XRsL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png 848w, https://substackcdn.com/image/fetch/$s_!XRsL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.png 1272w, https://substackcdn.com/image/fetch/$s_!XRsL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a69ee5f-432e-49b5-ad50-8f75e87bdc23_531x441.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><br>At this point I was still exploring possible shells and layouts. That&#8217;s where this iteration loop kicked in.</p><ol><li><p>Generate layouts in ChatGPT</p></li><li><p>Pick the most promising one</p></li><li><p>Convert it into a Google AI Studio prompt</p></li><li><p>Generate UI in AI Studio</p></li><li><p>Review output</p></li><li><p>If broken &#8594; send screenshots back to ChatGPT</p></li><li><p>ChatGPT refines the prompt</p></li><li><p>Repeat</p></li></ol><p>This loop continued until I found a direction I genuinely liked.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mMZx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mMZx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 424w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 848w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 1272w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mMZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png" width="1456" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1135702,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mMZx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 424w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 848w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 1272w, https://substackcdn.com/image/fetch/$s_!mMZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e464c2d-b89b-486b-9778-5bcdb3c75329_1985x976.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>This is an example of my prompt in GPT where I picked a promising layout and asked GPT to author a prompt to build 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_!klWk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!klWk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 424w, https://substackcdn.com/image/fetch/$s_!klWk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 848w, https://substackcdn.com/image/fetch/$s_!klWk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 1272w, https://substackcdn.com/image/fetch/$s_!klWk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!klWk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png" width="687" height="713" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/baee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:713,&quot;width&quot;:687,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36179,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!klWk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 424w, https://substackcdn.com/image/fetch/$s_!klWk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 848w, https://substackcdn.com/image/fetch/$s_!klWk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 1272w, https://substackcdn.com/image/fetch/$s_!klWk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaee51df-d14c-4724-a6ac-dea9b4f92b5f_687x713.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Asking ChatGPT for a Google Studio AI prompt</strong></figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uOt7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uOt7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 424w, https://substackcdn.com/image/fetch/$s_!uOt7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 848w, https://substackcdn.com/image/fetch/$s_!uOt7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 1272w, https://substackcdn.com/image/fetch/$s_!uOt7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uOt7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png" width="1456" height="627" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:627,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1114222,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uOt7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 424w, https://substackcdn.com/image/fetch/$s_!uOt7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 848w, https://substackcdn.com/image/fetch/$s_!uOt7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 1272w, https://substackcdn.com/image/fetch/$s_!uOt7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faae879b6-5eb1-42cc-b218-bc8e84ba4455_1773x764.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Establishing the UI direction in Google Studio</strong></figcaption></figure></div><h3>Why generate prompts in ChatGPT?</h3><ol><li><p>ChatGPT generates prompts that humans simply cannot. <br>My prompts could be short, incomplete, non-specific and lacking in structure.</p></li><li><p>ChatGPT can enforce design-system discipline.<br>All rules stay intact &#8594; Typographic scale, colours, shadows, components, shell layouts.</p></li></ol><h2>Google AI Studio</h2><h3>Instructions</h3><p>Once I got a direction and narrowed down on a shell for the entire website, it was time for me to take things to the next stage. </p><p>I treated Google AI Studio the same way I treated ChatGPT. A teammate that needed orientation.</p><p>I made ChatGPT write a full <strong>instruction set</strong> that covered:</p><ul><li><p>core intent </p></li><li><p>overall style and aesthetic direction</p></li><li><p>interaction philosophy</p></li><li><p>responsive (mobile and tab breakpoints) and accessible behaviour</p></li><li><p>creativity guidelines</p></li><li><p>tone and personality</p></li><li><p>what to avoid</p></li><li><p>content type to expect</p></li><li><p>summary</p></li></ul><p>so I could feed this in Google AI Studio.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r1gN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r1gN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 424w, https://substackcdn.com/image/fetch/$s_!r1gN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 848w, https://substackcdn.com/image/fetch/$s_!r1gN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 1272w, https://substackcdn.com/image/fetch/$s_!r1gN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r1gN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png" width="451" height="420.6681367144432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:846,&quot;width&quot;:907,&quot;resizeWidth&quot;:451,&quot;bytes&quot;:870439,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r1gN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 424w, https://substackcdn.com/image/fetch/$s_!r1gN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 848w, https://substackcdn.com/image/fetch/$s_!r1gN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 1272w, https://substackcdn.com/image/fetch/$s_!r1gN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19302d16-d5af-4f0b-88e2-85819b6c4acc_907x846.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1FIH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1FIH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 424w, https://substackcdn.com/image/fetch/$s_!1FIH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 848w, https://substackcdn.com/image/fetch/$s_!1FIH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 1272w, https://substackcdn.com/image/fetch/$s_!1FIH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1FIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png" width="1238" height="863" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:863,&quot;width&quot;:1238,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1113856,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1FIH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 424w, https://substackcdn.com/image/fetch/$s_!1FIH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 848w, https://substackcdn.com/image/fetch/$s_!1FIH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 1272w, https://substackcdn.com/image/fetch/$s_!1FIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7644bf88-43e2-4261-ac11-2fa6b8d1e0e3_1238x863.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h4>&#128161;Pro tip</h4><p>When prompting ChatGPT for an instruction set, I kept my prompts intentionally loose, without being too specific. Since GPT is my design partner and with the several conversations I have already had, GPT is smart enough to give me a detailed instruction set that pretty much covers all that I/we discussed. The magic lies in being a &#8220;Human in the loop&#8221;: <br><br><strong>read &#8594; add/remove/iterate &#8594; finalise on the instructions.</strong></p><div><hr></div><h3>The Roadmap.md file - A persistent context layer</h3><p>One of the most powerful things I did in this entire project was create a file called <code>MVP Roadmap.md</code> and drop it into a <code>/docs</code> folder.</p><p>This file became kind of the <strong>core memory</strong> of the whole build.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XQ7-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XQ7-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 424w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 848w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 1272w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png" width="1159" height="588" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:588,&quot;width&quot;:1159,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32703,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!XQ7-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 424w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 848w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.png 1272w, https://substackcdn.com/image/fetch/$s_!XQ7-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62e74a1b-a91c-437c-b58c-132e5ad9e57a_1159x588.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>This document held:</p><ul><li><p>the theme strategy</p></li><li><p>the IA structure</p></li><li><p>what was already built</p></li><li><p>what was locked</p></li><li><p>what still needed work</p></li><li><p>which decisions were temporary vs final</p></li><li><p>the aesthetic constraints</p></li><li><p>the scope of the MVP</p></li><li><p>what &#8220;done&#8221; actually meant</p></li></ul><p>Let me reiterate, as to why authoring your prompts in GPT can be a game changer. Once I had the file in my folder, I asked GPT:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AYhW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AYhW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 424w, https://substackcdn.com/image/fetch/$s_!AYhW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 848w, https://substackcdn.com/image/fetch/$s_!AYhW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 1272w, https://substackcdn.com/image/fetch/$s_!AYhW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AYhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png" width="529" height="524" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/269c2bed-1aa0-4274-9682-1b81770da568_529x524.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:524,&quot;width&quot;:529,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:95166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AYhW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 424w, https://substackcdn.com/image/fetch/$s_!AYhW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 848w, https://substackcdn.com/image/fetch/$s_!AYhW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 1272w, https://substackcdn.com/image/fetch/$s_!AYhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F269c2bed-1aa0-4274-9682-1b81770da568_529x524.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The prompt that was authored:</p><pre><code>You are assisting in building a professional design portfolio with a subtle 90s game-inspired interface.  
A file called &#8220;MVP Roadmap.md&#8221; exists inside the /docs folder.  
This file is the SINGLE SOURCE OF TRUTH for project status, decisions, information architecture, and build progress.

Your responsibilities:

1. Always read and reference `/docs/MVP Roadmap.md` before generating any output.
   - Treat it as persistent context.
   - Assume it contains the current vision, structure, IA, and completed work.

2. Anytime I say:
   - &#8220;We&#8217;ve locked this&#8221;
   - &#8220;This is final&#8221;
   - &#8220;Let&#8217;s update the roadmap&#8221;
   - &#8220;Consider this done&#8221;
   - &#8220;Record this&#8221;
   ...you MUST update the roadmap file accordingly.

3. When updating the roadmap:
   - Modify only the relevant sections.
   - Keep the structure clean and chronological.
   - Add a new section called &#8220;Changelog&#8221; at the bottom if needed.
   - Never remove important context unless explicitly told to.
   - Always maintain markdown formatting.

4. The roadmap must always reflect:
   - What is already built (pages/components/content).
   - What visual/styling decisions have been locked (colors, typography, themes).
   - What remains to be done.
   - Which phase we are currently working on (v1.0 shell, v1.1 visuals, etc.).

5. When generating UI, page variations, copy, or prompts:
   - Align with all details currently in the roadmap.
   - Do NOT contradict locked decisions inside the document.

6. If the roadmap becomes outdated or inconsistent:
   - Proactively notify me.
   - Suggest updates for accuracy.

7. All new instructions, locked decisions, and design choices should automatically flow back into `/docs/MVP Roadmap.md`.

In short:
- Use the roadmap as context.
- Keep it updated.
- Treat it like a living project document.
- Ensure all future outputs are consistent with it.
</code></pre><p>This is a crazy detailed prompt that did a lot to help Google Studio understand what it&#8217;s responsibilities as far as the updating and following the &#8220;roadmap&#8221; was concerned.</p><h4>The exact purpose the roadmap served</h4><p>It acted as a:</p><ol><li><p><strong>Single source of truth - </strong>IA, theme, decisions, progress.</p></li><li><p><strong>Contract - </strong>If something was marked &#8220;locked,&#8221; the AI couldn&#8217;t revert or drift.</p></li><li><p><strong>Guardrail - </strong>Even when I wiped a context window, the roadmap had the AI in the correct direction. I could fork different versions and still maintain context.</p></li><li><p><strong>Chronicle - </strong>Doubled as a project log as I moved page by page.</p></li></ol><h3>Forking Projects </h3><p>Every major stage became a save point:</p><ul><li><p>Initial layout working</p></li><li><p>Breakpoints stable</p></li><li><p>Theme switching functional</p></li></ul><p>Because you&#8217;re experimenting continuously. And sometimes trying to execute an idea leads the entire project into a ditch.</p><p>Forking gave me psychological safety.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jb-c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jb-c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 424w, https://substackcdn.com/image/fetch/$s_!jb-c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 848w, https://substackcdn.com/image/fetch/$s_!jb-c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 1272w, https://substackcdn.com/image/fetch/$s_!jb-c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jb-c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png" width="810" height="656" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:656,&quot;width&quot;:810,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68116,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jb-c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 424w, https://substackcdn.com/image/fetch/$s_!jb-c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 848w, https://substackcdn.com/image/fetch/$s_!jb-c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 1272w, https://substackcdn.com/image/fetch/$s_!jb-c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F051c1939-c257-4c75-9dde-7a3c09f90aa7_810x656.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The Canvas Editor: Annotation &gt; Prompting</h3><p>The canvas editor in Google AI Studio is great! </p><p>You can literally:</p><ul><li><p>write/draw on the canvas</p></li><li><p>draw arrows/rectangles</p></li><li><p>add comments</p></li><li><p>add text</p></li></ul><p>and push/add them to chat.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wB_0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wB_0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 424w, https://substackcdn.com/image/fetch/$s_!wB_0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 848w, https://substackcdn.com/image/fetch/$s_!wB_0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 1272w, https://substackcdn.com/image/fetch/$s_!wB_0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wB_0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png" width="796" height="541" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:541,&quot;width&quot;:796,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144474,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wB_0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 424w, https://substackcdn.com/image/fetch/$s_!wB_0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 848w, https://substackcdn.com/image/fetch/$s_!wB_0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 1272w, https://substackcdn.com/image/fetch/$s_!wB_0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3445c65a-a39f-4a39-afe7-aeb571a8ea21_796x541.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Using Excalidraw to create annotated images</h3><p>When making changes inside of Google Studio, I used excalidraw to create annotated images to inform Google better. Surprisingly, this worked really 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_!_pHs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_pHs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 424w, https://substackcdn.com/image/fetch/$s_!_pHs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 848w, https://substackcdn.com/image/fetch/$s_!_pHs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 1272w, https://substackcdn.com/image/fetch/$s_!_pHs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_pHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png" width="1401" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8511b601-3bdb-4525-b471-71544b99f742_1401x601.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1401,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2512592,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_pHs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 424w, https://substackcdn.com/image/fetch/$s_!_pHs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 848w, https://substackcdn.com/image/fetch/$s_!_pHs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 1272w, https://substackcdn.com/image/fetch/$s_!_pHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8511b601-3bdb-4525-b471-71544b99f742_1401x601.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K29B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K29B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 424w, https://substackcdn.com/image/fetch/$s_!K29B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 848w, https://substackcdn.com/image/fetch/$s_!K29B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 1272w, https://substackcdn.com/image/fetch/$s_!K29B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K29B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png" width="1413" height="692" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:692,&quot;width&quot;:1413,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:375848,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/180574073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K29B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 424w, https://substackcdn.com/image/fetch/$s_!K29B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 848w, https://substackcdn.com/image/fetch/$s_!K29B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 1272w, https://substackcdn.com/image/fetch/$s_!K29B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7e1ea4-bb87-4e4f-a5af-f68587f55f47_1413x692.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Wrestling With Breakpoints</h3><p>I generated breakpoint-specific prompts (with GPT) with strict constraints and pasted them into Studio. Then I verified everything manually. </p><p>It wasn&#8217;t glamorous. I did a lot of testing and iterated several times.</p><h2>What this produced</h2><p>By the end of this, I had:</p><ul><li><p>A 90s-style portfolio shell with draggable &#8220;windows&#8221; and a character sheet.</p></li><li><p>A stable layout across desktop + mobile (after lots of breakpoint wrestling).</p></li><li><p>A working deployment at <em><strong><a href="https://portfolio.fourzerothree.in">portfolio.fourzerothree.in</a></strong></em> that now replaces my &#8220;newsletter as a portfolio&#8221; setup.</p></li></ul><h2>Closing Thoughts</h2><p>By the time I had the shell, the instruction sets, the roadmap, and the workflow in place, the rest of the build honestly doesn&#8217;t need a dramatic story.</p><p>The point I want to make here is about the system I had in place to build this the scaffolding, the workflow, the thinking behind vibe-coding something real.</p><p>I think this is part of the building that nobody talks about. People assume the hard part is the prompting. It&#8217;s not. The hard part is creating the structure that keeps the prompts moving in the right direction.</p><p>So that&#8217;s where I&#8217;ll leave this piece.</p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[RedStack: Building a multi-role execution platform using a AI-augmented design workflow - case study]]></title><description><![CDATA[RedStack wasn&#8217;t a typical &#8220;one-user, one-flow&#8221; product. It was a multi-role ecosystem with many moving parts, each with its own portal, rules, responsibilities and each one influencing the others.]]></description><link>https://www.fourzerothree.in/p/ai-augmented-prototype-first-ux-case-study</link><guid isPermaLink="false">https://www.fourzerothree.in/p/ai-augmented-prototype-first-ux-case-study</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Tue, 25 Nov 2025 09:28:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rXlS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>1) Introduction</h2><p>RedStack is a <strong>remote execution platform</strong> where one user (Creator) defines structured procedures (workflows) and another user (Executor) carries them out on-site, step by step. The platform ensures that a workflow designed remotely can be executed safely, consistently, and with a clear audit trail even when the creator isn&#8217;t physically present.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pBLf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pBLf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png 424w, https://substackcdn.com/image/fetch/$s_!pBLf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png 848w, https://substackcdn.com/image/fetch/$s_!pBLf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png 1272w, https://substackcdn.com/image/fetch/$s_!pBLf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pBLf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png" width="1044" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1044,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163382,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pBLf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png 424w, https://substackcdn.com/image/fetch/$s_!pBLf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png 848w, https://substackcdn.com/image/fetch/$s_!pBLf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.png 1272w, https://substackcdn.com/image/fetch/$s_!pBLf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F466de265-a700-42c7-8214-e4bfe17e550a_1044x942.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><div><hr></div><p><em><strong>Note:</strong> This is a redacted case study. Designs, terminology and data have been intentionally modified to respect confidentiality.</em></p><div><hr></div><h4>a) User archetypes</h4><p>At its core, the platform supports five personas:</p><ul><li><p><strong>Creators</strong>, who design structured workflows.</p></li><li><p><strong>Executors</strong>, who execute these workflows on-site.</p></li><li><p><strong>Three admin roles</strong>, who manage resources, billing, and system-wide governance.</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_!Dbx4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dbx4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png 424w, https://substackcdn.com/image/fetch/$s_!Dbx4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png 848w, https://substackcdn.com/image/fetch/$s_!Dbx4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png 1272w, https://substackcdn.com/image/fetch/$s_!Dbx4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dbx4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png" width="1456" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152792,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Dbx4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png 424w, https://substackcdn.com/image/fetch/$s_!Dbx4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png 848w, https://substackcdn.com/image/fetch/$s_!Dbx4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.png 1272w, https://substackcdn.com/image/fetch/$s_!Dbx4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa8971ac-4998-4bde-8dbc-f66857ad3c15_2577x702.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><h4>b) Product evolution</h4><p>The <strong>initial version</strong> focused on validating the core loop: a Creator uploads a workflow, an Executor performs it, and the system captures the results.</p><p>Once the loop proved meaningful, the platform expanded into a multi-role ecosystem. <strong>Phase 2</strong> introduced new admin portals, extended Creator responsibilities, and added modules for materials, billing, and system governance - areas that didn&#8217;t exist in the first version.</p><h2>2) Design Challenge</h2><p>RedStack wasn&#8217;t a typical &#8220;one-user, one-flow&#8221; product. It was a multi-role ecosystem with many moving parts, each with its own portal, rules, responsibilities and each one influencing the others.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SH7i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SH7i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png 424w, https://substackcdn.com/image/fetch/$s_!SH7i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png 848w, https://substackcdn.com/image/fetch/$s_!SH7i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png 1272w, https://substackcdn.com/image/fetch/$s_!SH7i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SH7i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png" width="651" height="417.15865384615387" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:933,&quot;width&quot;:1456,&quot;resizeWidth&quot;:651,&quot;bytes&quot;:182208,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SH7i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png 424w, https://substackcdn.com/image/fetch/$s_!SH7i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png 848w, https://substackcdn.com/image/fetch/$s_!SH7i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.png 1272w, https://substackcdn.com/image/fetch/$s_!SH7i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb464dd2a-e2dd-4203-a709-20c4e9ba5130_1777x1139.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>Main challenges:</p><p>a) <strong>A dedicated portal for each role</strong> needing needed tailored UI, navigation, workflows, and error states. Keeping these portals distinct yet coherent was a core challenge.</p><p>b) <strong>Complex</strong>, branching user flows.</p><p>c) Dense, <strong>data-heavy UI</strong> with complex components.</p><p>d) A deeply <strong>interconnected product ecosystem</strong>.  decision in one portal directly shaped what another user could or couldn&#8217;t do.</p><p>e) Tight <strong>timelines</strong>.</p><div><hr></div><h2>&#127909; Prototype preview</h2><p>Before getting into the workflow itself, here&#8217;s a quick look at the functional prototype I built. The video demonstrates interactions in 2 screens including different states (Empty, loader, error).</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;988a003b-957d-4e17-8754-569f21072ac0&quot;,&quot;duration&quot;:null}"></div><p>This prototype became the source of truth across product, engineering, and design discussions. It grounded every conversation in real behaviour instead of abstract wireframes, and helped us reason about functionality with much more clarity.</p><p><em>Due to NDA constraints, this demo includes only two representative screens. All UI, data, and branding have been intentionally modified for this case study.</em></p><div><hr></div><h2>3) Choosing an AI-Augmented approach</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zfub!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zfub!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 424w, https://substackcdn.com/image/fetch/$s_!zfub!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 848w, https://substackcdn.com/image/fetch/$s_!zfub!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 1272w, https://substackcdn.com/image/fetch/$s_!zfub!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zfub!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png" width="569" height="193.2360992301112" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:1169,&quot;resizeWidth&quot;:569,&quot;bytes&quot;:70412,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zfub!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 424w, https://substackcdn.com/image/fetch/$s_!zfub!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 848w, https://substackcdn.com/image/fetch/$s_!zfub!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 1272w, https://substackcdn.com/image/fetch/$s_!zfub!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cddd84-5048-440a-8d2e-b4762f5758d2_1169x397.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Given the scale and pace of RedStack, I needed a workflow that let me move fast without losing accuracy. With the design challenges I had traditional UX workflows wouldn&#8217;t keep up.</p><p>An AI-augmented workflow became the most practical way to work through this complexity. I had already experimented with it during Phase 1, but Phase 2 is where it evolved into a foundation for the entire design process.</p><h3>Using ChatGPT as a UX co-pilot</h3><p>I used ChatGPT as a structured UX co-designer for research and UX. This allowed me to:</p><ul><li><p>work faster across large modules with many states</p></li><li><p>connect dots across roles, rules, and flows</p></li><li><p>digest dense product logic and turn it into clear UX behaviour</p></li><li><p>maintain accuracy at scale</p></li><li><p>turn UX decisions into working prototypes quickly</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_!O4iO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O4iO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 424w, https://substackcdn.com/image/fetch/$s_!O4iO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 848w, https://substackcdn.com/image/fetch/$s_!O4iO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 1272w, https://substackcdn.com/image/fetch/$s_!O4iO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O4iO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png" width="1456" height="1034" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1034,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:807941,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!O4iO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 424w, https://substackcdn.com/image/fetch/$s_!O4iO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 848w, https://substackcdn.com/image/fetch/$s_!O4iO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 1272w, https://substackcdn.com/image/fetch/$s_!O4iO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef27ddb5-7425-49b5-aa0c-1570acc86608_1670x1186.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Working prototypes</h3><p>For a product of this magnitude, static wireframes would fall behind. With 5 user portals (including a mobile app for the Executor), dozens of states and numerous screens, the design process needed something more dynamic.</p><h4>&#9888;&#65039;Early workflow where things broke!</h4><p>My initial approach was to generate layouts using ChatGPT and then build the full prototype inside v0. It looked promising but quickly ran into practical issues:</p><ul><li><p>v0 hallucinated layouts during regeneration.</p></li><li><p>components broke unless prompts were extremely precise.</p></li><li><p>stateful UI (tables, logs, conditional screens) sometimes got flattened or lost.</p></li><li><p>small changes frequently caused flows to break or disconnect.</p></li></ul><p>I made progress, but maintaining stability required multiple forks and constant patching. This wasn&#8217;t scalable.</p><p>The <strong>root issue for me, was my prompts</strong> in v0. I truly believe this makes or breaks your prototype.</p><h4>&#9989; The Fix</h4><p>I switched to Figma Make and adopted a new pattern: a <strong>two-tool workflow</strong> where each tool had one clear responsibility.</p><p>Instead of designing inside Figma Make (with me doing the prompting and iterating inside Figma Make), the prototype is created through a controlled two-step pipeline:</p><ol><li><p><strong>ChatGPT handles all prompt authoring</strong></p><p>I designed layouts in ChatGPT - spacing, structure, component rules, interaction logic. Once the layout was approved, ChatGPT generated a deterministic Figma Make prompt.</p></li><li><p><strong>Figma Make handles execution</strong></p><p>I pasted the prompt into Figma Make and reviewed the output.<br>If something broke, I returned to ChatGPT with a screenshot and asked for a rectification prompt.</p><p>This loop removed ambiguity and kept the prototype stable. </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_!rXlS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rXlS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 424w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 848w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png" width="1456" height="866" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:866,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:319188,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rXlS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 424w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 848w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!rXlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667d8438-60c1-41d4-a2ad-1255b4197e7b_2485x1478.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>This way I ensured Figma Make received instructions exactly the way it wanted it to. Hallucinations dropped dramatically and prototypes remained stable across screens and iterations.</p><h2>4) From Prototype to High-Fidelity UI</h2><p>Once the prototype behaviour was stable, moving into high-fidelity design became much more deliberate.<br>Instead of starting from a blank canvas, I could trace over correct behaviour and focus purely on visual quality, coherence, and system-level consistency.</p><h3>How the prototype shaped the UI work</h3><p>The prototype gave me a predictable map of every screen, interaction, and edge case I needed to design. It clarified the following:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bQ0F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bQ0F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png 424w, https://substackcdn.com/image/fetch/$s_!bQ0F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png 848w, https://substackcdn.com/image/fetch/$s_!bQ0F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png 1272w, https://substackcdn.com/image/fetch/$s_!bQ0F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bQ0F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png" width="1456" height="708" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:708,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:337341,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bQ0F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png 424w, https://substackcdn.com/image/fetch/$s_!bQ0F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png 848w, https://substackcdn.com/image/fetch/$s_!bQ0F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.png 1272w, https://substackcdn.com/image/fetch/$s_!bQ0F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56b7daf8-d64c-4cde-8f5e-6699f437041a_3408x1657.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>So the high-fidelity work became a matter of <strong>polishing</strong>, not guessing.</p><h3>Design system application</h3><p>From here, I translated each prototype screen into production-ready UI using the design system:</p><ul><li><p><strong>Applied DS tokens</strong> for colours, spacing and typography </p></li><li><p><strong>Created complex reusable components</strong> &#8211; tables, editable tables, multi-step modals, filters, side nav, cards</p></li><li><p><strong>Ensured cross-portal coherence</strong> - five personas, but one unified product feel</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_!rV0q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rV0q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 424w, https://substackcdn.com/image/fetch/$s_!rV0q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 848w, https://substackcdn.com/image/fetch/$s_!rV0q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 1272w, https://substackcdn.com/image/fetch/$s_!rV0q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rV0q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png" width="1456" height="771" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:771,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:632236,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!rV0q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 424w, https://substackcdn.com/image/fetch/$s_!rV0q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 848w, https://substackcdn.com/image/fetch/$s_!rV0q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 1272w, https://substackcdn.com/image/fetch/$s_!rV0q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e812e21-00a1-4029-b16f-9d4aa9271c96_1460x773.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Agu4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Agu4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 424w, https://substackcdn.com/image/fetch/$s_!Agu4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 848w, https://substackcdn.com/image/fetch/$s_!Agu4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 1272w, https://substackcdn.com/image/fetch/$s_!Agu4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Agu4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png" width="1456" height="658" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:658,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/179791245?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Agu4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 424w, https://substackcdn.com/image/fetch/$s_!Agu4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 848w, https://substackcdn.com/image/fetch/$s_!Agu4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 1272w, https://substackcdn.com/image/fetch/$s_!Agu4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98ba733-1110-405c-8d96-6ccdc960bf16_1829x827.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The scale of the UI work</h3><p>Across four portals, I designed <strong>around 100 screens</strong>, including state variations and supporting dialogs.<br>Because the behaviour was locked in early, the UI stage was fast, predictable, and required far fewer revisions.</p><h2>5) What this workflow achieved</h2><ol><li><p><strong>Faster delivery across a massive surface area</strong><br>I designed ~100 screens across four portals (including all state variations, dialogs, loaders, filtered empties, confirmations, errors) with far fewer iterations than a traditional wireframe-first approach.</p></li><li><p><strong>Clearer product conversations</strong></p><p>Every discussion across product, engineering, and design was grounded in real behaviour.<strong> </strong>The prototype removed ambiguity early, especially around edge cases, rules, and logic.</p></li><li><p><strong>Better alignment across a multi-portal ecosystem</strong></p><p>Dependencies between roles (different user archetypes) became easier to map, validate, and design for.</p></li><li><p><strong>A reusable internal workflow</strong></p><p>The &#8220;<strong>ChatGPT (UX and UI layout) &#8594; Figma Make (execution)</strong>&#8221; loop evolved into a repeatable method I can now apply to complex systems work going forward.</p></li></ol><h2>6)Reflection</h2><p>This project fundamentally reshaped how I work.</p><p>A five-persona, rule-heavy ecosystem with tight timelines would have been extremely difficult to tackle with a traditional wireframe-first design workflow. By treating AI as a structured co-designer, I was able to move fast without sacrificing depth.</p><p>The biggest shift for me was realising that <strong>behaviour-first design unlocks clarity</strong>. Once behaviour is correct and testable inside a prototype, everything downstream - UI, components, states, edge cases become predictable.</p><p>This experience has changed how I approach large systems going forward -<br>anchor behaviour early, ground discussions in real interactions, and use AI tools intentionally to scale clarity, not replace craft.</p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Riffing With AI: My ChatGPT → v0 → Figma Workflow]]></title><description><![CDATA[Every designer is experimenting with AI workflows. Here&#8217;s my ChatGPT &#8594; v0 &#8594; Figma loop and the trade-offs that make it work.]]></description><link>https://www.fourzerothree.in/p/chatgpt-v0-figma-workflow</link><guid isPermaLink="false">https://www.fourzerothree.in/p/chatgpt-v0-figma-workflow</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Thu, 18 Sep 2025 13:30:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DVIo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every designer today is experimenting with AI workflows. You see people talk about &#8220;prompt &#8594; riff &#8594; refine&#8221; loops. But the truth is: no one has a perfect workflow yet. Most tools are either great at blasting out ideas (0&#8594;1) - your AI tools or polishing details (1&#8594;n) - Figma, but clumsy in between.</p><p>Recently I cam across Tom Johnson&#8217;s tweet on X that got me excited:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://x.com/tomjohndesign/status/1952752285861208374" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dDUQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png 424w, https://substackcdn.com/image/fetch/$s_!dDUQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png 848w, https://substackcdn.com/image/fetch/$s_!dDUQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png 1272w, https://substackcdn.com/image/fetch/$s_!dDUQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dDUQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png" width="527" height="677.451355661882" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:627,&quot;resizeWidth&quot;:527,&quot;bytes&quot;:53819,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://x.com/tomjohndesign/status/1952752285861208374&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/173861738?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dDUQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png 424w, https://substackcdn.com/image/fetch/$s_!dDUQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png 848w, https://substackcdn.com/image/fetch/$s_!dDUQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.png 1272w, https://substackcdn.com/image/fetch/$s_!dDUQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc023e77-2a31-48dc-b52e-fffd9de509d6_627x806.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>For Tom, the loop is &#8220;Make &#8594; Canvas &#8594; Make.&#8221;</p><p>For me its more of a ChatGPT &#8594; v0 &#8594; ChatGPT loop to get things close to what I want, and then go to Figma to refine it to high fidelity.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DVIo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DVIo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 424w, https://substackcdn.com/image/fetch/$s_!DVIo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 848w, https://substackcdn.com/image/fetch/$s_!DVIo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 1272w, https://substackcdn.com/image/fetch/$s_!DVIo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DVIo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png" width="548" height="340" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:340,&quot;width&quot;:548,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:16339,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/173861738?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DVIo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 424w, https://substackcdn.com/image/fetch/$s_!DVIo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 848w, https://substackcdn.com/image/fetch/$s_!DVIo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 1272w, https://substackcdn.com/image/fetch/$s_!DVIo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07e6cac-15c0-42f7-93be-758ec3e05d5a_548x340.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The idea is the same, but my stack leans heavier on GPT for structure and v0 for riffs.</p><div><hr></div><h4>&#128161;Here are some other more comprehensive pieces I&#8217;ve been writing on AI &amp; Product design:</h4><ul><li><p><em><a href="https://www.fourzerothree.in/p/context-first-design-process">A Context-First design process for 0&#8594;1 work (With AI)</a></em></p></li><li><p><em><a href="https://www.fourzerothree.in/p/build-stable-prototypes-product-design">How to build prototypes that don&#8217;t drift</a></em></p></li><li><p><em><a href="https://www.fourzerothree.in/p/designing-behavior-before-code">Designing behavior before code</a></em></p></li></ul><div><hr></div><p>The &#8220;ChatGPT &#8594; v0 &#8594; ChatGPT&#8221; loop is akin to making the wireframes, albeit this is faster, you can see how your flows work right in front of you, get your edge cases and error states sorted and keep it in the mid-fidelity.</p><p>Let me elaborate:</p><h2>High-Level Flow</h2><ol><li><p>User flows + IA in ChatGPT &#8594; bring them to life in FigJam </p></li><li><p>UI layout (text based) in ChatGPT</p></li><li><p>Use v0 to bring these layouts to life</p></li><li><p>Keep &#8220;riffing&#8221; and forking in v0</p></li><li><p>Debug with ChatGPT</p></li><li><p>Back to v0</p></li><li><p>Export to Figma using the &#8220;<a href="https://www.figma.com/community/plugin/1159123024924461424/html-to-design-by-divriots-import-websites-to-figma-designs-web-html-css">HTML to Design</a>&#8221; (Figma) plugin</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtrB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtrB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 424w, https://substackcdn.com/image/fetch/$s_!CtrB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 848w, https://substackcdn.com/image/fetch/$s_!CtrB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 1272w, https://substackcdn.com/image/fetch/$s_!CtrB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtrB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png" width="639" height="226.65384615384616" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:332,&quot;width&quot;:936,&quot;resizeWidth&quot;:639,&quot;bytes&quot;:42886,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/173861738?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtrB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 424w, https://substackcdn.com/image/fetch/$s_!CtrB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 848w, https://substackcdn.com/image/fetch/$s_!CtrB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 1272w, https://substackcdn.com/image/fetch/$s_!CtrB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecca6c1-67f9-4b50-9e69-eb21638b7a92_936x332.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Step-by-Step walkthrough - the guts of the workflow</h2><p><strong>1. Flows &amp; IA in GPT</strong></p><p>Instead of starting in Figma, I start in GPT. I get it to spell out user flows, edge cases, error states, and all the awkward stuff like empty/loading states.</p><p>GPT is great at exhaustiveness. It doesn&#8217;t forget to ask: &#8220;What happens if the user cancels halfway?&#8221; or &#8220;What if the server fails?&#8221; (If it doesn&#8217;t I can ask for it). It helps me catch those details upfront.</p><p>For me, this is like having the entire &#8220;canvas&#8221; already in my head before I even start drawing.</p><p><strong>2. Loose UI Layout in GPT</strong></p><p>Once I know the flows, I&#8217;ll ask GPT to sketch a <strong>UI structure in plain text</strong>. Top to bottom, section by section: layout details, content blocks, patterns, components wherever necessary.</p><p>I&#8217;m not asking GPT to make it pretty. Think of it as my blueprint. It keeps me from staring at a blank page in v0 (which is half the battle) and start from scratch.</p><p><strong>3 and 4. Bring them to life and keep forking in v0</strong></p><p>This is where the <strong>riffing</strong> happens. I paste the layout into v0 and let it generate a first pass. Then I start forking:</p><ul><li><p>Trying different layouts.</p></li><li><p>Shuffling components.</p></li><li><p>Seeing variations side by side.</p></li></ul><p>The magic of v0 is speed. I can throw around 3&#8211;4 versions in minutes. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zxIq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zxIq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 424w, https://substackcdn.com/image/fetch/$s_!zxIq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 848w, https://substackcdn.com/image/fetch/$s_!zxIq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 1272w, https://substackcdn.com/image/fetch/$s_!zxIq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zxIq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png" width="709" height="251.48290598290598" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d502414d-0639-49f7-8969-41582476cc8e_936x332.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:332,&quot;width&quot;:936,&quot;resizeWidth&quot;:709,&quot;bytes&quot;:41755,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/173861738?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zxIq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 424w, https://substackcdn.com/image/fetch/$s_!zxIq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 848w, https://substackcdn.com/image/fetch/$s_!zxIq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 1272w, https://substackcdn.com/image/fetch/$s_!zxIq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd502414d-0639-49f7-8969-41582476cc8e_936x332.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><strong>5. Problem-Solving (Debug) with GPT</strong></p><p>When I get stuck (which happens a lot), I don&#8217;t fight v0. Instead, I snapshot the code or layout, paste it into GPT, and say: <em>&#8220;Here&#8217;s the problem. Fix it.&#8221;</em></p><p>GPT becomes my debugging partner. It gives me solutions, tweaks the code, gives me great prompts to fix the problem in v0, and helps unblock me. Meanwhile, v0 stays my riffing playground.</p><p><strong>6. Back and Forth (GPT &#8596; v0)</strong></p><p>This is the core loop.</p><ul><li><p>Fork in v0.</p></li><li><p>Hit a problem.</p></li><li><p>Debug in GPT.</p></li><li><p>Feed it back into v0.</p></li><li><p>Refine, fork again.</p></li></ul><p><strong>7. Export HTML &#8594; Figma</strong></p><p>Once I have something semi-stable, I use <strong><a href="https://www.figma.com/community/plugin/1159123024924461424/html-to-design-by-divriots-import-websites-to-figma-designs-web-html-css">HTML-to-Figma</a></strong> (or similar plugins) to bring the designs into Figma. This step is where I bridge from AI riffing &#8594; designer craft.</p><h2>High-Fidelity in Figma</h2><p>Finally, polish mode. Now it&#8217;s pure Figma:</p><ul><li><p>Setting up tokens.</p></li><li><p>Fine-tuning typography, spacing, grids.</p></li><li><p>Refining components for reuse.</p></li></ul><p>At this point, v0 has done its job. It helped me avoid the blank canvas problem. Figma is where I bring the final design home.</p><h2>Trade-offs and mitigation</h2><h4>Forks in v0</h4><p>In step 4, where I keep forking in v0, I can get stuck in a <strong>vicious loop</strong> where things keep breaking, and instead of exploring ideas, I am firefighting errors. </p><p>My fix &#8594; when this happens, I don&#8217;t force v0 to handle the whole flow. I generate screens <strong>one-off</strong>, so each page works in isolation. Later, I stitch them together if needed.</p><h4>v0 costs money</h4><p>Riffing in v0 with prompts <strong>costs money</strong>. Every broken fork = more tokens burned. The trick is to lean on GPT as your debugging partner. Be precise with prompts, fix issues cleanly, and only loop back into v0 once you know what you&#8217;re testing.</p><h2>Closing thoughts</h2><p>Now, half the time it feels like duct-taping three tools together. But honestly, that&#8217;s also the point: designing is not a straight line. For me, &#8220;ChatGPT + v0 loop&#8221; and back to Figma for high fidelity is enough to keep ideas flowing, avoid the blank canvas freeze, and get to high fidelity faster than I ever could before. Until the tools catch up,  this messy loop is how I ship.</p>]]></content:encoded></item><item><title><![CDATA[Context > Prompt: A designer’s system for an AI copilot]]></title><description><![CDATA[Prompts can get you started, but context is what makes AI reliable. This is my system for using GPT as a true design partner.]]></description><link>https://www.fourzerothree.in/p/context-engineering-ai-design</link><guid isPermaLink="false">https://www.fourzerothree.in/p/context-engineering-ai-design</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Sun, 14 Sep 2025 12:37:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/80b65620-38db-489e-80e3-e9ecfff1f26f_771x413.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At work, I was part of a team tasked with an open-ended but challenging goal: <em>&#8220;experiment with AI and figure out how it could actually make our design process faster and more efficient.&#8221;</em></p><p>That task turned into a crash course in AI-augmented design. Sure, I started by testing prompts to get decent outputs but the real challenge came when I tried to push through long conversations. The context window just couldn&#8217;t keep up. Long conversations meant hitting context window limits. </p><p>This problem was obvious when I started exploring. The challenge, I then realized was <strong>carrying over context </strong>across conversations. If I wanted GPT to act as a &#8220;copilot<strong>&#8221;</strong>, I couldn&#8217;t just prompt it once and hope for the best. </p><p>So, while prompts get all the attention, it&#8217;s actually <strong>context engineering</strong> that makes or breaks an AI-augmented workflow. Context, by far, is the only way you&#8217;d get consistent, high-quality outputs across the full design process. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w3_X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w3_X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png 424w, https://substackcdn.com/image/fetch/$s_!w3_X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png 848w, https://substackcdn.com/image/fetch/$s_!w3_X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png 1272w, https://substackcdn.com/image/fetch/$s_!w3_X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w3_X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png" width="512" height="452.50152905198775" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:578,&quot;width&quot;:654,&quot;resizeWidth&quot;:512,&quot;bytes&quot;:63277,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!w3_X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png 424w, https://substackcdn.com/image/fetch/$s_!w3_X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png 848w, https://substackcdn.com/image/fetch/$s_!w3_X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.png 1272w, https://substackcdn.com/image/fetch/$s_!w3_X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350a9aba-c2ab-46ad-8963-fdac42f0076a_654x578.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><div><hr></div><p>&#128161;Here are some other more comprehensive pieces I&#8217;ve been writing on AI &amp; Product design:</p><ul><li><p><em><a href="https://www.fourzerothree.in/p/context-first-design-process">A Context-First design process for 0&#8594;1 work (With AI)</a></em></p></li><li><p><em><a href="https://www.fourzerothree.in/p/build-stable-prototypes-product-design">How to build prototypes that don&#8217;t drift</a></em></p></li><li><p><em><a href="https://www.fourzerothree.in/p/designing-behavior-before-code">Designing behavior before code</a></em></p></li></ul><div><hr></div><h2>Clever prompts are not enough</h2><p>This piece isn&#8217;t about &#8220;prompts&#8221;. What I want to put forward instead, is the scaffolding around those prompts, the way you hold context so that GPT builds on itself instead of drifting off, no matter how polished (or sloppy) your actual prompt is. That&#8217;s been the real breakthrough in my work.</p><p>My process has been messy, full of dead ends and restarts. And that&#8217;s taught me how to set GPT up so it doesn&#8217;t drift, how to carry decisions across conversations, how to keep the AI acting like a teammate instead of a vending machine. For me, it&#8217;s closer to asking a friend for advice - the more context you give them, the better the advice you get.</p><p>This piece is my two cents about the scaffolding I&#8217;ve stitched together to make AI a reliable copilot in the design process.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>Context engineering</h2><h3>Mitigating long chats</h3><p>Like I said, the first and very obvious challenge was getting around long chats. Long chats drift and break. The only way around this is to start a new one, but you hand over context so you can continue where you left off.</p><p><em>This is a lot easier with &#8220;Projects&#8221; in ChatGPT (Claude too, has Projects and Gemini has an equivalent called &#8220;Gems&#8221;) but I&#8217;ll get to this later.</em></p><div><hr></div><p><strong>&#128161;In this piece, I&#8217;ll focus on &#8220;Projects&#8221; in ChatGPT</strong></p><div><hr></div><p>When I first started and was still figuring my way out in ChatGPT, I used to prompt GPT to give me a summary or context of our current conversation so I could input that into another window to carry on where I left off. Additionally I used to tell ChatGPT to store the context in global memory.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eDZN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eDZN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png 424w, https://substackcdn.com/image/fetch/$s_!eDZN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png 848w, https://substackcdn.com/image/fetch/$s_!eDZN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png 1272w, https://substackcdn.com/image/fetch/$s_!eDZN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eDZN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png" width="602" height="249.30572472594397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:340,&quot;width&quot;:821,&quot;resizeWidth&quot;:602,&quot;bytes&quot;:94393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eDZN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png 424w, https://substackcdn.com/image/fetch/$s_!eDZN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png 848w, https://substackcdn.com/image/fetch/$s_!eDZN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.png 1272w, https://substackcdn.com/image/fetch/$s_!eDZN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe778da0e-831a-414c-ab9d-ae57eaa70fb3_821x340.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>This then evolved to this prompt,</p><blockquote><p><em>I want to start [fill this up accordingly] in another window. Give me a detailed prompt with all the context of this conversation, so I could carry it over to the next window. Also give this to me in a downloadable .txt file.</em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AoNk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AoNk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 424w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 848w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 1272w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AoNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png" width="1386" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:1386,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98236,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AoNk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 424w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 848w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.png 1272w, https://substackcdn.com/image/fetch/$s_!AoNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe55030fc-b823-4390-8d41-c5fe73a165a6_1386x590.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>These downloadable <code>txt</code> files with the context served as <strong>memory blocks</strong>. I could use these blocks in any conversation to help GPT remember what we had done.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!REkK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!REkK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 424w, https://substackcdn.com/image/fetch/$s_!REkK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 848w, https://substackcdn.com/image/fetch/$s_!REkK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 1272w, https://substackcdn.com/image/fetch/$s_!REkK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!REkK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png" width="655" height="232.32905982905982" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:332,&quot;width&quot;:936,&quot;resizeWidth&quot;:655,&quot;bytes&quot;:54153,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!REkK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 424w, https://substackcdn.com/image/fetch/$s_!REkK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 848w, https://substackcdn.com/image/fetch/$s_!REkK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 1272w, https://substackcdn.com/image/fetch/$s_!REkK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc25aa2f8-ee3e-44af-aca7-a920de414809_936x332.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Using &#8220;Projects&#8221;</h3><p>The design process is long-winded. It rarely moves in a straight line, and it almost always spans multiple artefacts: <strong>research &#8594; user archetypes &#8594; JTBDs &#8594; flows &#8594; IA &#8594; UI layouts</strong>. Each stage has its own mess of decisions, and together they form the scaffolding of a product.</p><p>That&#8217;s exactly why I lean on Projects. In my workflow, each artefact becomes its own conversation inside a Project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KU2S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KU2S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png 424w, https://substackcdn.com/image/fetch/$s_!KU2S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png 848w, https://substackcdn.com/image/fetch/$s_!KU2S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png 1272w, https://substackcdn.com/image/fetch/$s_!KU2S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KU2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png" width="619" height="311.6295871559633" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:439,&quot;width&quot;:872,&quot;resizeWidth&quot;:619,&quot;bytes&quot;:19399,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KU2S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png 424w, https://substackcdn.com/image/fetch/$s_!KU2S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png 848w, https://substackcdn.com/image/fetch/$s_!KU2S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.png 1272w, https://substackcdn.com/image/fetch/$s_!KU2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12531a0e-4043-463b-8032-ccd65e1eb393_872x439.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">Every artefact is a conversation inside the Project</figcaption></figure></div><p>Projects are basically smart workspaces. Think of them as folders that remember everything from instructions, files, and your chats.</p><h4>Instructions</h4><p>Set detailed instructions about who GPT should be and how it should respond. Kind of like what values and behaviours we want it to have. This is a great way to bypass the need to reiterate this in every conversation. </p><p>Instructions could get tricky, I mean, how good is an instruction? What I usually do is, open a window and give a brain dump of who I want GPT to be and the kind of instruction set I expect.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ovmy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ovmy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png 424w, https://substackcdn.com/image/fetch/$s_!ovmy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png 848w, https://substackcdn.com/image/fetch/$s_!ovmy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png 1272w, https://substackcdn.com/image/fetch/$s_!ovmy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ovmy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png" width="497" height="634.945551128818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80bee192-4644-426c-8e88-8005df1197e2_753x962.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:962,&quot;width&quot;:753,&quot;resizeWidth&quot;:497,&quot;bytes&quot;:571209,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ovmy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png 424w, https://substackcdn.com/image/fetch/$s_!ovmy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png 848w, https://substackcdn.com/image/fetch/$s_!ovmy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.png 1272w, https://substackcdn.com/image/fetch/$s_!ovmy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bee192-4644-426c-8e88-8005df1197e2_753x962.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>Notice its an unorganized brain dump. ChatGPT would then give me a detailed instruction set which I could feed into my Project.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_J85!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_J85!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 424w, https://substackcdn.com/image/fetch/$s_!_J85!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 848w, https://substackcdn.com/image/fetch/$s_!_J85!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 1272w, https://substackcdn.com/image/fetch/$s_!_J85!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_J85!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png" width="1354" height="254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:254,&quot;width&quot;:1354,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13633,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_J85!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 424w, https://substackcdn.com/image/fetch/$s_!_J85!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 848w, https://substackcdn.com/image/fetch/$s_!_J85!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 1272w, https://substackcdn.com/image/fetch/$s_!_J85!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a9c15b-ca65-4d9c-a311-45c77c095837_1354x254.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Memory</h4><p>By far the most useful feature is the memory that comes with Projects. Your project is always self-contained. So even if your global memory can&#8217;t hold more, the Project itself carries context through its stored files, instructions, and chats. This becomes extremely handy in preserving context of all our conversations within a Project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lDIW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lDIW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png 424w, https://substackcdn.com/image/fetch/$s_!lDIW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png 848w, https://substackcdn.com/image/fetch/$s_!lDIW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png 1272w, https://substackcdn.com/image/fetch/$s_!lDIW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lDIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png" width="591" height="330" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:330,&quot;width&quot;:591,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20065,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lDIW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png 424w, https://substackcdn.com/image/fetch/$s_!lDIW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png 848w, https://substackcdn.com/image/fetch/$s_!lDIW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.png 1272w, https://substackcdn.com/image/fetch/$s_!lDIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81a86b30-5b57-4844-b329-e263b2ef3c15_591x330.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><h4>Files</h4><p>Talking about files - PRDs, artefacts or relevant documentation could always be fed on a Project level.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xZ6R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xZ6R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png 424w, https://substackcdn.com/image/fetch/$s_!xZ6R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png 848w, https://substackcdn.com/image/fetch/$s_!xZ6R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png 1272w, https://substackcdn.com/image/fetch/$s_!xZ6R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xZ6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png" width="875" height="257" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:257,&quot;width&quot;:875,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47862,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xZ6R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png 424w, https://substackcdn.com/image/fetch/$s_!xZ6R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png 848w, https://substackcdn.com/image/fetch/$s_!xZ6R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.png 1272w, https://substackcdn.com/image/fetch/$s_!xZ6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43520eb1-7065-4a42-9dc5-4009839a6cb8_875x257.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>By attaching files to a Project, I give GPT a curated, evolving source of truth it can keep referencing every time I spin up a new thread.</p><p>In practice, this has been huge. After finishing a round of research, I&#8217;ll often drop the summary deck or notes file (remember memory blocks?) straight into the Project. When I move on to the next conversation, GPT already has that research context at hand without me pasting walls of text again.</p><p>Think of files as <strong>the long-term memory of a Project</strong>. Conversations may come and go, but the files stay, grounding AI in the reality of the work. And because I can update them over time, the memory evolves with the project.</p><p>The best part about this is, it can &#8220;connect the dots&#8221; across everything I&#8217;ve given it. For example, it knows the research that shaped the JTBDs, the flows that grew from those JTBDs, and the UI layouts that emerged at the end. This has proved especially useful when there are complex product specs. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ACsH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ACsH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 424w, https://substackcdn.com/image/fetch/$s_!ACsH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 848w, https://substackcdn.com/image/fetch/$s_!ACsH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 1272w, https://substackcdn.com/image/fetch/$s_!ACsH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ACsH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png" width="635" height="205.56089743589743" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:303,&quot;width&quot;:936,&quot;resizeWidth&quot;:635,&quot;bytes&quot;:38551,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ACsH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 424w, https://substackcdn.com/image/fetch/$s_!ACsH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 848w, https://substackcdn.com/image/fetch/$s_!ACsH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 1272w, https://substackcdn.com/image/fetch/$s_!ACsH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072a20cc-eed5-4a97-ae6b-620d4d1e8b83_936x303.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Branching in GPT</h2><p>What if you&#8217;ve had a very long conversation and want to revisit an idea midway? I manually copy-paste a &#8220;snapshot&#8221; of the conversation into a new chat and keep going. I still do this, but lately the &#8220;branching&#8221; feature in ChatGPT could be an antidote for this.</p><p>Also there are times I have spun up a conversation for the sake of particular artefact and randomly gone on a tangent. I run out of window bandwidth and have to unnecessarily create another conversation to continue.</p><p>I can fork a conversation at exactly the point I want to explore, and GPT carries the Project memory and files with it. This kind of feels a lot closer to how I&#8217;d actually ideate in real life.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fWzL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fWzL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 424w, https://substackcdn.com/image/fetch/$s_!fWzL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 848w, https://substackcdn.com/image/fetch/$s_!fWzL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 1272w, https://substackcdn.com/image/fetch/$s_!fWzL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fWzL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png" width="339" height="162" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:162,&quot;width&quot;:339,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7666,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fWzL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 424w, https://substackcdn.com/image/fetch/$s_!fWzL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 848w, https://substackcdn.com/image/fetch/$s_!fWzL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 1272w, https://substackcdn.com/image/fetch/$s_!fWzL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2705b4e-ad91-40ca-9a47-f241a4b65301_339x162.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Carrying context into AI design tools</h2><p>The importance of context doesn&#8217;t end inside ChatGPT. It carries forward when you move into AI-powered design tools like v0, Magic Patterns, or Lovable. </p><p>What I&#8217;ve found useful is to carry over my<strong> memory blocks</strong> into these tools. I paste the context we&#8217;ve already built together in ChatGPT - PRD, the flows, IA, sitemap. That way, v0 or Magic Patterns aren&#8217;t guessing blind; they&#8217;re working with the same background as my copilot. </p><p>This back-and-forth loop has become a big part of my workflow:</p><ol><li><p>Draft layouts in ChatGPT.</p></li><li><p>Carry the context into v0 to render the prototype.</p></li><li><p>Bring the output back into ChatGPT for critique and refinement.</p></li><li><p>Iterate until the design actually feels right.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!auzt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!auzt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 424w, https://substackcdn.com/image/fetch/$s_!auzt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 848w, https://substackcdn.com/image/fetch/$s_!auzt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 1272w, https://substackcdn.com/image/fetch/$s_!auzt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!auzt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png" width="1456" height="256" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b244a99e-070b-445e-b282-022ee77fd647_4668x820.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:256,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:364644,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171196629?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!auzt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 424w, https://substackcdn.com/image/fetch/$s_!auzt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 848w, https://substackcdn.com/image/fetch/$s_!auzt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 1272w, https://substackcdn.com/image/fetch/$s_!auzt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb244a99e-070b-445e-b282-022ee77fd647_4668x820.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Closing thoughts</h2><p>Looking back, what started as an experiment at work has changed the way I design. Every project I take on now runs through this lens: how do I carry context from across (AI) conversations and even into the tools I prototype with? </p><p>Its a shift every designer can make. When you treat AI like a teammate and set it up with the right scaffolding, the results stop feeling like one-off wins and start becoming repeatable. That, to me, is the real unlock for designers.</p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Designing a no-code e-learning platform for dentistry - a case study]]></title><description><![CDATA[Dental education could be overwhelming - dense textbooks, expensive resources, and endless exams. Students needed a resource that was visual, lighthearted, and accessible anywhere.]]></description><link>https://www.fourzerothree.in/p/designing-a-no-code-platform-case-study</link><guid isPermaLink="false">https://www.fourzerothree.in/p/designing-a-no-code-platform-case-study</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Fri, 05 Sep 2025 07:38:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LExT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.hackdentistry.com">HackDentistry</a> was my first end-end (entrepreneurial) product built from scratch with no-code tools, and eventually used by 5,000+ learners across 40 countries.</p><p>Starting with simple sketch/comic-style videos, it grew into a full learning platform - complete with a structured curriculum, revision notes, and interactive question banks, used by a global community of students and educators.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-g_D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-g_D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png 424w, https://substackcdn.com/image/fetch/$s_!-g_D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png 848w, https://substackcdn.com/image/fetch/$s_!-g_D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png 1272w, https://substackcdn.com/image/fetch/$s_!-g_D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-g_D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png" width="1044" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:408,&quot;width&quot;:1044,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36740,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-g_D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png 424w, https://substackcdn.com/image/fetch/$s_!-g_D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png 848w, https://substackcdn.com/image/fetch/$s_!-g_D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.png 1272w, https://substackcdn.com/image/fetch/$s_!-g_D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b0fd23-a14a-4340-b186-1fcabf299da5_1044x408.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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kMM_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kMM_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 424w, https://substackcdn.com/image/fetch/$s_!kMM_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 848w, https://substackcdn.com/image/fetch/$s_!kMM_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 1272w, https://substackcdn.com/image/fetch/$s_!kMM_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kMM_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png" width="1383" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1383,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:424420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kMM_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 424w, https://substackcdn.com/image/fetch/$s_!kMM_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 848w, https://substackcdn.com/image/fetch/$s_!kMM_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 1272w, https://substackcdn.com/image/fetch/$s_!kMM_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d45cf35-1857-49fa-8f94-0150837635f5_1383x675.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>From Pathology to Product</h2><p>I was an Oral Pathologist and Assistant Professor at a teaching hospital (prior to pivoting to Product Design). I knew firsthand how overwhelming dental education could be: dense textbooks, expensive resources, and endless exams.</p><p>There was clearly a gap. Students needed a resource that was visual, lighthearted, and accessible anywhere. And I wanted to build it as a business.</p><p>This wasn&#8217;t a side experiment. From day one, the intent was to grow <a href="https://www.hackdentistry.com/">HackDentistry</a> into a <strong>global platform for dental learning</strong>. YouTube was simply the first brick in that system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LExT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LExT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png 424w, https://substackcdn.com/image/fetch/$s_!LExT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png 848w, https://substackcdn.com/image/fetch/$s_!LExT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png 1272w, https://substackcdn.com/image/fetch/$s_!LExT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LExT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png" width="1456" height="589" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:589,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1104090,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LExT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png 424w, https://substackcdn.com/image/fetch/$s_!LExT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png 848w, https://substackcdn.com/image/fetch/$s_!LExT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.png 1272w, https://substackcdn.com/image/fetch/$s_!LExT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96919562-f5d2-4438-81bd-896bd6e3e2bc_3220x1302.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">Students needed a resource that was visual, lighthearted, and accessible anywhere.</figcaption></figure></div><h2>Designing with Constraints</h2><p>With no technical background, the most practical starting point was YouTube. It gave me a way to build an audience while figuring out how to eventually deliver a full learning platform.</p><p>As the YouTube channel grew, I started creating structured study material and bundling content into courses.</p><p>My first attempt to build the platform was on WordPress, but it quickly broke under scale.</p><p>I pivoted to <strong><a href="https://www.thinkific.com/">Thinkific</a></strong>, <strong>a no-code tool</strong> that helps build learning platforms.</p><p>No-code meant I could:</p><ul><li><p>Build fast, without engineering support.</p></li><li><p>Focus on structuring the learning journey, not the backend.</p></li><li><p>Spend my time designing pedagogy and experience.</p></li></ul><p>The result was a platform that gave students the ability to:</p><ul><li><p><strong>Track</strong> their progress in a personal dashboard.</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_!xK2o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xK2o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 424w, https://substackcdn.com/image/fetch/$s_!xK2o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 848w, https://substackcdn.com/image/fetch/$s_!xK2o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!xK2o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xK2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png" width="1456" height="1232" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1232,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:716632,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xK2o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 424w, https://substackcdn.com/image/fetch/$s_!xK2o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 848w, https://substackcdn.com/image/fetch/$s_!xK2o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!xK2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcd7739a-d90a-47ff-b674-6ed168a505ff_1719x1455.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><ul><li><p><strong>Navigate</strong> lessons easily with a clear left nav for navigating lessons and canvas at the right to study/read/watch videos.</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_!PUOi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PUOi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 424w, https://substackcdn.com/image/fetch/$s_!PUOi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 848w, https://substackcdn.com/image/fetch/$s_!PUOi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!PUOi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PUOi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png" width="1456" height="815" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:815,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:519501,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PUOi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 424w, https://substackcdn.com/image/fetch/$s_!PUOi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 848w, https://substackcdn.com/image/fetch/$s_!PUOi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!PUOi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23bfb93c-f400-4b2a-9887-6bf5b9bd789d_1869x1046.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><ul><li><p><strong>Revise actively</strong> with interactive quizzes.</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_!aUyX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aUyX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png 424w, https://substackcdn.com/image/fetch/$s_!aUyX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png 848w, https://substackcdn.com/image/fetch/$s_!aUyX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png 1272w, https://substackcdn.com/image/fetch/$s_!aUyX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aUyX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png" width="1456" height="754" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:754,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47854,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aUyX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png 424w, https://substackcdn.com/image/fetch/$s_!aUyX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png 848w, https://substackcdn.com/image/fetch/$s_!aUyX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.png 1272w, https://substackcdn.com/image/fetch/$s_!aUyX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb0a0ae-0d0f-4db9-902e-51eaf84f9130_1576x816.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><ul><li><p><strong>Learn consistently</strong> with hand-drawn visuals and diagrams.</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_!nMfD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nMfD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png 424w, https://substackcdn.com/image/fetch/$s_!nMfD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png 848w, https://substackcdn.com/image/fetch/$s_!nMfD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png 1272w, https://substackcdn.com/image/fetch/$s_!nMfD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nMfD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png" width="1456" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163005,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nMfD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png 424w, https://substackcdn.com/image/fetch/$s_!nMfD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png 848w, https://substackcdn.com/image/fetch/$s_!nMfD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.png 1272w, https://substackcdn.com/image/fetch/$s_!nMfD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1c8cc4-ff7e-4d41-8fe7-c3e9538c8554_1495x734.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>Constraints forced me to keep things simple. But in hindsight, that simplicity made the product work. It had a clear structure, predictable flow, and engaging content.</p><h2>Wearing Every Hat</h2><p><a href="https://www.hackdentistry.com/">HackDentistry</a> wasn&#8217;t a big team. It was just me and a close friend collaborating with me on curriculum design, shaping question banks, brainstorming ideas, and taking care of the heavy lifting of creating other specialty content early on. </p><p>Otherwise, I was handling:</p><ul><li><p><strong>Product &amp; platform</strong> &#8594; creating and managing the no-code build, structuring course bundles, and keeping the site running.</p></li><li><p><strong>Content creation for Oral Pathology</strong> &#8594; producing 100+ sketch/doodle-style videos, detailed notes, and transcripts.</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_!mHUC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mHUC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png 424w, https://substackcdn.com/image/fetch/$s_!mHUC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png 848w, https://substackcdn.com/image/fetch/$s_!mHUC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png 1272w, https://substackcdn.com/image/fetch/$s_!mHUC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mHUC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png" width="1456" height="932" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:932,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:362604,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mHUC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png 424w, https://substackcdn.com/image/fetch/$s_!mHUC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png 848w, https://substackcdn.com/image/fetch/$s_!mHUC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.png 1272w, https://substackcdn.com/image/fetch/$s_!mHUC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08077319-5dac-499a-9ef6-4f8577e11b6c_1515x970.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><ul><li><p><strong>Marketing &amp; community</strong> &#8594; growing a YouTube channel to 129K subscribers and a newsletter to 4,000+ readers.</p></li><li><p><strong>Business &amp; Operations</strong> &#8594; running the business, handling payments, customer support, and global learners.</p></li></ul><p>It was scrappy, hands-on, and often overwhelming, but it taught me how to think like a founder and a designer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H1sn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H1sn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 424w, https://substackcdn.com/image/fetch/$s_!H1sn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 848w, https://substackcdn.com/image/fetch/$s_!H1sn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 1272w, https://substackcdn.com/image/fetch/$s_!H1sn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H1sn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png" width="1428" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:1428,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:332449,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H1sn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 424w, https://substackcdn.com/image/fetch/$s_!H1sn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 848w, https://substackcdn.com/image/fetch/$s_!H1sn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 1272w, https://substackcdn.com/image/fetch/$s_!H1sn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a4d5cfd-f5b6-48e2-b351-19313588c19d_1428x812.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Global Reach, Real Impact</h2><p><a href="https://www.hackdentistry.com/">HackDentistry</a> started out focused on undergraduates preparing for exams. it grew beyond that, reaching learners in 40+ countries, and adopted by a wider audience.</p><ul><li><p><strong>Interns</strong> &#8594; balancing hospital rotations with postgraduate entrance prep.</p></li><li><p><strong>Postgraduates</strong> &#8594; using the videos to simplify advanced oral pathology concepts.</p></li><li><p><strong>Professors</strong> &#8594; integrating the material into classrooms to teach their own students.</p><p></p></li></ul><h2>What Didn&#8217;t Work</h2><p>HackDentistry reached thousands of learners, but it struggled to scale as a business. The key lessons for me as a designer were:</p><ul><li><p><strong>Friction kills trust</strong> &#8594; I faced repeated issues with payment gateways. While I fixed them each time, the interruptions eroded user trust. Payment failures showed me that reliable flows are very much a UX problem.</p></li><li><p><strong>Manual doesn&#8217;t scale</strong> &#8594; In the later years, I just resorted to granting access manually after payments were done (to mitigate my payment gateway woes). This created a poor user experience and led to churn.</p></li><li><p><strong>Burnout</strong> &#8594; Running everything solo eventually caught up with me. The constant grind left me with little energy to push HackDentistry forward and became one of the reasons I pivoted toward product design.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mXUB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mXUB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 424w, https://substackcdn.com/image/fetch/$s_!mXUB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 848w, https://substackcdn.com/image/fetch/$s_!mXUB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 1272w, https://substackcdn.com/image/fetch/$s_!mXUB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mXUB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png" width="115" height="236.48717948717947" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:401,&quot;width&quot;:195,&quot;resizeWidth&quot;:115,&quot;bytes&quot;:13912,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/172799213?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mXUB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 424w, https://substackcdn.com/image/fetch/$s_!mXUB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 848w, https://substackcdn.com/image/fetch/$s_!mXUB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 1272w, https://substackcdn.com/image/fetch/$s_!mXUB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe59e36d-7288-491b-8ddf-74888ec54f1d_195x401.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li></ul><p><em><strong>HackDentistry worked as a product. Students loved the content and structure. But as a business, it didn&#8217;t scale like I expected it to.</strong></em></p><h2>My First Design School</h2><p>HackDentistry ran for eight years, and in hindsight, it was my first crash course in product design. </p><ul><li><p>I didn&#8217;t call it UX research, but I was uncovering student pain points. </p></li></ul><ul><li><p>I didn&#8217;t call it IA, but I was structuring dashboards and navigation. </p></li><li><p>I didn&#8217;t call it systems, but I was building consistent formats for videos, notes, and quizzes.</p></li></ul><p>Design is not just pixels. Its also about systems, constraints, and outcomes. For me, HackDentistry isn&#8217;t just a business story, it was the foundation of my design career.</p><div><hr></div><p>PS: I also explored a mobile design concept as a personal exercise. It wasn&#8217;t shipped, but helped me practice prototyping, theming, and design system integration &#8594; <em><a href="https://www.fourzerothree.in/p/designing-dental-learning-platform-mobile-app">Designing a learning platform for busy dental students - a mobile design exploration</a></em></p>]]></content:encoded></item><item><title><![CDATA[The Design System Story: Turning design debt into a scalable system - a case study]]></title><description><![CDATA[We needed a shared foundation, a system to unify, scale, and speed up every project we delivered.]]></description><link>https://www.fourzerothree.in/p/scaling-design-systems-case-study</link><guid isPermaLink="false">https://www.fourzerothree.in/p/scaling-design-systems-case-study</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Wed, 03 Sep 2025 16:56:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JMrT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TCm-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TCm-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png 424w, https://substackcdn.com/image/fetch/$s_!TCm-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png 848w, https://substackcdn.com/image/fetch/$s_!TCm-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png 1272w, https://substackcdn.com/image/fetch/$s_!TCm-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TCm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png" width="1044" height="792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:792,&quot;width&quot;:1044,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:113724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TCm-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png 424w, https://substackcdn.com/image/fetch/$s_!TCm-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png 848w, https://substackcdn.com/image/fetch/$s_!TCm-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.png 1272w, https://substackcdn.com/image/fetch/$s_!TCm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8982f45-d138-4e9f-b79e-2ad543e95da6_1044x792.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></p><div><hr></div><h2>Act I - Setting the Stage</h2><p>At our consultancy, we were building multiple enterprise products in parallel. Each project spun up its own mini design system - more like a style guide than a scalable system.</p><p>Designers often worked in silos, creating their own components and patterns, and applying colors and typography inconsistently. The result? Inconsistencies across products, duplicated work, and slower delivery cycles.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!14VB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!14VB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 424w, https://substackcdn.com/image/fetch/$s_!14VB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 848w, https://substackcdn.com/image/fetch/$s_!14VB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 1272w, https://substackcdn.com/image/fetch/$s_!14VB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!14VB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png" width="1456" height="967" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:967,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:931564,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!14VB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 424w, https://substackcdn.com/image/fetch/$s_!14VB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 848w, https://substackcdn.com/image/fetch/$s_!14VB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 1272w, https://substackcdn.com/image/fetch/$s_!14VB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858996fd-47cb-4f93-b5dc-76b270517824_3792x2518.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We needed a shared foundation, a system to unify, scale, and speed up every project we delivered.</p><div><hr></div><p><em><strong>Note: This case study shares my design process and key learnings from building an internal design system in my consultancy. They are not tied to any client projects, brands, or confidential company information.</strong></em></p><div><hr></div><h2>Act II - The Problem</h2><p>Our design process wasn&#8217;t broken, but it was slowing us down.</p><ol><li><p><strong>Fragmented systems</strong> - Each project had its own lightweight design system, but none of them were built to scale.</p></li><li><p><strong>Inconsistent outputs</strong> - Designers working in isolation produced mismatched results in colors, spacing, and component anatomy.</p></li><li><p><strong>Inefficient workflows</strong> - Without shared foundations, turnaround times stretched longer than necessary.</p></li><li><p><strong>Reinventing components</strong> - Designers repeatedly rebuilt same components for different products from scratch.</p></li><li><p><strong>Missed opportunities for reuse</strong> - Components that could have been shared across projects stayed siloed in individual files.</p></li></ol><h2>Act III - The Challenge</h2><p>I was tasked with building a design system that could serve multiple enterprise products. Honestly, I had never done this before, and I wasn&#8217;t sure if I could pull it off. But it was a fun challenge.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JMrT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JMrT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 424w, https://substackcdn.com/image/fetch/$s_!JMrT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 848w, https://substackcdn.com/image/fetch/$s_!JMrT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 1272w, https://substackcdn.com/image/fetch/$s_!JMrT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JMrT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png" width="697" height="283.3956043956044" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:592,&quot;width&quot;:1456,&quot;resizeWidth&quot;:697,&quot;bytes&quot;:261401,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JMrT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 424w, https://substackcdn.com/image/fetch/$s_!JMrT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 848w, https://substackcdn.com/image/fetch/$s_!JMrT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 1272w, https://substackcdn.com/image/fetch/$s_!JMrT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e3e9db-a2c3-46a7-8e03-67b5be1be0ec_2059x837.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The challenge wasn&#8217;t just about creating components. It was about creating a system that could scale, stay consistent as different designers used it, and adapt to the unique needs of each client project.</p><h2>Act IV - The Foundations</h2><p>If the system was going to scale, the foundations had to be solid. That meant starting with <strong>design tokens</strong>.</p><p>I focused first on colors and numbers. Colors were structured with a semantic &#8594; primitive &#8594; hex referencing model.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Oa9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Oa9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png 424w, https://substackcdn.com/image/fetch/$s_!4Oa9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png 848w, https://substackcdn.com/image/fetch/$s_!4Oa9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png 1272w, https://substackcdn.com/image/fetch/$s_!4Oa9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Oa9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png" width="1456" height="504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:504,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:526997,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4Oa9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png 424w, https://substackcdn.com/image/fetch/$s_!4Oa9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png 848w, https://substackcdn.com/image/fetch/$s_!4Oa9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.png 1272w, https://substackcdn.com/image/fetch/$s_!4Oa9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55ebc28-a637-427f-8db2-efc9d44056f9_4224x1462.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>Semantics made tokens reusable across projects, while primitives allowed us to swap hex values depending on the brand or theme.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sLHb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sLHb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 424w, https://substackcdn.com/image/fetch/$s_!sLHb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 848w, https://substackcdn.com/image/fetch/$s_!sLHb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 1272w, https://substackcdn.com/image/fetch/$s_!sLHb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sLHb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png" width="1456" height="636" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:636,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1122231,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sLHb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 424w, https://substackcdn.com/image/fetch/$s_!sLHb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 848w, https://substackcdn.com/image/fetch/$s_!sLHb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 1272w, https://substackcdn.com/image/fetch/$s_!sLHb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657471a9-0f63-4b45-82ce-77ceb5ca3b5d_4193x1832.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Same semantics and different primitives allows for different themes</strong></figcaption></figure></div><p>To keep things consistent, I set up a clear naming convention:<br><code>element/semantics-hierarchy-state</code></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_a7p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_a7p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png 424w, https://substackcdn.com/image/fetch/$s_!_a7p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png 848w, https://substackcdn.com/image/fetch/$s_!_a7p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png 1272w, https://substackcdn.com/image/fetch/$s_!_a7p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_a7p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png" width="1456" height="631" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:631,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:682719,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_a7p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png 424w, https://substackcdn.com/image/fetch/$s_!_a7p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png 848w, https://substackcdn.com/image/fetch/$s_!_a7p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.png 1272w, https://substackcdn.com/image/fetch/$s_!_a7p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa854b587-3ce4-4021-907d-15512bad6c1d_4761x2062.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>This broke down tokens into predictable, scalable parts so designers didn&#8217;t have to make ad-hoc decisions every time.</p><p>Typography variables came later, but the core idea was the same: set rules once, and let them ripple through every component.</p><p>The result? A foundation flexible enough to support multiple products, but strict enough to guarantee consistency.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0EMY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0EMY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 424w, https://substackcdn.com/image/fetch/$s_!0EMY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 848w, https://substackcdn.com/image/fetch/$s_!0EMY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 1272w, https://substackcdn.com/image/fetch/$s_!0EMY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0EMY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png" width="845" height="417" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0f61810-31a3-451a-8a7c-32e877240b11_845x417.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:417,&quot;width&quot;:845,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0EMY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 424w, https://substackcdn.com/image/fetch/$s_!0EMY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 848w, https://substackcdn.com/image/fetch/$s_!0EMY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 1272w, https://substackcdn.com/image/fetch/$s_!0EMY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f61810-31a3-451a-8a7c-32e877240b11_845x417.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Act V - Components</h2><p>Once the foundations were stable, the real challenge began: components.</p><p>At least 50 components were mapped and listed, starting with the most common components we needed for projects. </p><p>I then dug into how each one should be built: balancing <strong>constrained components </strong>(for simplicity) with <strong>flexible ones </strong>(so it could be used for multiple use cases).</p><p>Every component was designed with:</p><ul><li><p>Slots and sub-components for flexibility wherever possible/needed.</p></li><li><p>Clear anatomy so any designer could pick it up and use it.</p></li><li><p>Code-aligned properties so developers could consume them easily.</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_!4qVf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4qVf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 424w, https://substackcdn.com/image/fetch/$s_!4qVf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 848w, https://substackcdn.com/image/fetch/$s_!4qVf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 1272w, https://substackcdn.com/image/fetch/$s_!4qVf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4qVf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png" width="1076" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1076,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93307,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4qVf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 424w, https://substackcdn.com/image/fetch/$s_!4qVf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 848w, https://substackcdn.com/image/fetch/$s_!4qVf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 1272w, https://substackcdn.com/image/fetch/$s_!4qVf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcac8c987-b328-4216-9c23-3ceff0848e02_1076x830.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Act VI - Feedback &amp; Outcomes</h2><p>Designers found it easy to set up workflows. Changing a primitive value in the tokens file updated colors across the entire system. Components could be reused, extended, or built upon instead of recreated from scratch.</p><p>The outcomes were clear:</p><ul><li><p><strong>2&#215; faster turnaround</strong> - projects moved quicker because the heavy lifting was already done.</p></li><li><p><strong>Consistent outputs</strong> - Designer A and Designer B could work on different modules and end up with the same look and feel.</p></li><li><p><strong>Reduced duplication</strong> - common components were no longer rebuilt from scratch.</p></li><li><p><strong>Less miscommunication</strong> - with shared tokens and rules, there was no confusion about colors, spacing, or typography.</p></li></ul><p>For the consultancy, this meant faster delivery for clients and less design debt across projects.</p><h2>Act VII - Governance</h2><p>The system wasn&#8217;t perfect. As it grew, new challenges appeared:</p><ul><li><p>The Figma file became heavy and harder to manage.</p></li><li><p>Component bloat made the library feel overwhelming.</p></li><li><p>Some components were almost too flexible, which added complexity instead of reducing it.</p></li><li><p>Variables needed some getting used to.</p></li><li><p>Design system organization wasn&#8217;t clear:</p><ul><li><p>Once we publish the Design System library for a client project, do we continue to build (any new) components in library itself? </p></li><li><p>Building/modifying components in the main Design system file (library), publishing/updating it, then updating the main Module file to keep up with library updates was painful.</p></li></ul></li></ul><p>To keep the system usable, governance became just as important as design.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Illb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Illb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 424w, https://substackcdn.com/image/fetch/$s_!Illb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 848w, https://substackcdn.com/image/fetch/$s_!Illb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 1272w, https://substackcdn.com/image/fetch/$s_!Illb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Illb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png" width="578" height="479.1524725274725" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1207,&quot;width&quot;:1456,&quot;resizeWidth&quot;:578,&quot;bytes&quot;:1362412,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/151061064?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Illb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 424w, https://substackcdn.com/image/fetch/$s_!Illb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 848w, https://substackcdn.com/image/fetch/$s_!Illb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 1272w, https://substackcdn.com/image/fetch/$s_!Illb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ee38bf-18fe-4e82-9a9b-c7cf9ad477e7_4973x4123.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I ran an onboarding workshop for designers, helped them understand how it could be used effectively, helped them troubleshoot issues, and collected feedback regularly. </p><p>Over time, I shipped a leaner, more optimized version of the system: </p><ul><li><p>made variables more leaner (cut back of variables that were rarely/not used),</p></li><li><p>variables were made more organized, </p></li><li><p>components were updated to be leaner and less complex so it was easier to use.</p></li></ul><p>This balance between power and usability was key. A design system only works if people actually use it. </p><h2>Act VIII - Reflection</h2><p>In a consultancy, design systems aren&#8217;t just about scaling a single product. They&#8217;re about creating a foundation that can flex across multiple clients, timelines, and teams.</p><p>The biggest wins came from structured tokens and reusable components. They gave us speed, consistency, and clarity at scale. But I also learned that too much flexibility can overwhelm, and governance is what keeps a system alive. </p><p>Designing the system is only half the job. Sustaining it is where the real impact lies.</p>]]></content:encoded></item><item><title><![CDATA[The "invisible" middle layer of colour systems]]></title><description><![CDATA[Color palettes don&#8217;t scale on their own. It&#8217;s the invisible middle - accessibility and design rules, that turns colors into a usable system.]]></description><link>https://www.fourzerothree.in/p/scalable-color-system-design</link><guid isPermaLink="false">https://www.fourzerothree.in/p/scalable-color-system-design</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Thu, 21 Aug 2025 15:02:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!o_Qg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Design DNA<br></strong><br><strong><a href="https://www.fourzerothree.in/p/design-dna-building-design-systems">#1 - Design DNA - A playbook</a></strong> | #2 - The "invisible" middle layer of colour systems</p><div><hr></div><p>I used to think the hard part was choosing/creating the color palette. And yes, it&#8217;s a good start. But if the goal is to build a system that scales, we can&#8217;t stop there.</p><p>So, <strong>a)</strong> creating colors is one side of the spectrum and <strong>b)</strong> tokens - those neat variables in Figma or code are the other. </p><p>What connects the two is a crucial middle process. And this is where the real DNA of a color system gets written.</p><p>It&#8217;s in this middle layer where we answer the questions that actually make colors usable:</p><ul><li><p>What&#8217;s the default background, and do we need lighter, darker, or inverse variations?</p></li><li><p>Which shade of grey becomes body text, and how does it hold up across surfaces?</p></li><li><p>If blue-600 is our brand primary, does it still pass accessibility on a 100-level background?</p></li></ul><p>This &#8220;middle process&#8221; isn&#8217;t just a bridge to variables/tokens. It&#8217;s where accessibility, usability, and the overall logic of how color behaves in your product are established. Think of it as the set of design decisions that form the foundation of a scalable color system.</p><p>And this isn&#8217;t just a personal workflow. Mature design systems recognize it (I learnt from mature systems). Carbon talks about &#8220;<a href="https://carbondesignsystem.com/elements/color/usage/">layering models</a>&#8221;. USWDS defines <a href="https://designsystem.digital.gov/design-tokens/color/theme-tokens/">theme tokens</a> that abstract color families into accessible, flexible roles. <a href="https://designsystem.digital.gov/design-tokens/color/theme-tokens/">Orbit bans dark shades as backgrounds</a>.  </p><p>None of them stop at &#8220;here are our colors.&#8221; They all define the invisible choices that sit between palette and tokens. </p><h2>Surfaces &amp; Background Layers</h2><p>The first thing I decide after creating a palette is how my surfaces behave. Because surfaces aren&#8217;t just &#8220;background colors&#8221; - they&#8217;re the stage where everything else plays out. Text sits on them. Components stack on them. Accessibility succeeds or fails on them. If surfaces aren&#8217;t defined, everything else in the system becomes guesswork.<br>So, in order to map out my background layer (surface) colours, </p><p>a) I try to understand how I would want my surfaces to behave.</p><p>b) I roughly try to predict the components I might end up using most often.</p><h4>Surfaces (greys)</h4><p>When I talk about surfaces, I&#8217;m mostly talking about neutrals - the deepest layers of the UI. Think of the page or screen itself, the canvas that other components sit on.</p><p>Take this screen for example.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a-gk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a-gk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 424w, https://substackcdn.com/image/fetch/$s_!a-gk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 848w, https://substackcdn.com/image/fetch/$s_!a-gk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!a-gk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a-gk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png" width="619" height="425.5625" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:619,&quot;bytes&quot;:432768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!a-gk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 424w, https://substackcdn.com/image/fetch/$s_!a-gk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 848w, https://substackcdn.com/image/fetch/$s_!a-gk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!a-gk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1ab75db-dd1b-4b36-a365-f42055e92bfb_1920x1320.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The page is bright white, with components blending into it and using borders or elevation to separate themselves from the &#8220;base&#8221; page or screen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V2vp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V2vp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png 424w, https://substackcdn.com/image/fetch/$s_!V2vp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png 848w, https://substackcdn.com/image/fetch/$s_!V2vp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png 1272w, https://substackcdn.com/image/fetch/$s_!V2vp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V2vp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png" width="1050" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1050,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27727,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V2vp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png 424w, https://substackcdn.com/image/fetch/$s_!V2vp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png 848w, https://substackcdn.com/image/fetch/$s_!V2vp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.png 1272w, https://substackcdn.com/image/fetch/$s_!V2vp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049f4ab-3e06-45e6-b43f-c2a3b6a160ba_1050x567.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>Have a look at these screens.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLeE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLeE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 424w, https://substackcdn.com/image/fetch/$s_!nLeE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 848w, https://substackcdn.com/image/fetch/$s_!nLeE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!nLeE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLeE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png" width="650" height="446.875" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:650,&quot;bytes&quot;:383783,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nLeE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 424w, https://substackcdn.com/image/fetch/$s_!nLeE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 848w, https://substackcdn.com/image/fetch/$s_!nLeE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!nLeE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e627401-571d-4da2-8322-d097a6557c01_1920x1320.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yT9J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yT9J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 424w, https://substackcdn.com/image/fetch/$s_!yT9J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 848w, https://substackcdn.com/image/fetch/$s_!yT9J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!yT9J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yT9J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png" width="648" height="445.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:648,&quot;bytes&quot;:522152,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yT9J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 424w, https://substackcdn.com/image/fetch/$s_!yT9J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 848w, https://substackcdn.com/image/fetch/$s_!yT9J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!yT9J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b3e31a2-8f78-4111-b3e1-f32b5f0a2a9b_1920x1320.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The page is a subtle grey. The components may or may not have borders or an elevation but they pop by simply being lighter than the background. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jz4W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jz4W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png 424w, https://substackcdn.com/image/fetch/$s_!Jz4W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png 848w, https://substackcdn.com/image/fetch/$s_!Jz4W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png 1272w, https://substackcdn.com/image/fetch/$s_!Jz4W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jz4W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png" width="1050" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1050,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17755,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jz4W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png 424w, https://substackcdn.com/image/fetch/$s_!Jz4W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png 848w, https://substackcdn.com/image/fetch/$s_!Jz4W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.png 1272w, https://substackcdn.com/image/fetch/$s_!Jz4W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4286f3e-f82a-4bb9-80ab-e762fe195b43_1050x567.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>Now this depends on the product you are working on and different products handle this differently.</p><pre><code>&#128214; <strong>Read next:</strong> 
- <a href="https://www.fourzerothree.in/p/designing-colour-palettes-that-work">Designing colour palettes that work for every project</a>
- <a href="https://www.fourzerothree.in/p/crafting-a-semantic-colour-system">Crafting a semantic colour system: Fixing the colour chaos, one semantic variable at a time</a></code></pre><h4>Carbon (IBM) talks about &#8220;<a href="https://carbondesignsystem.com/elements/color/usage/">layering models</a>&#8221;</h4><blockquote><p><em>Colors in the neutral gray palette are layered on top of each other to create depth and spatial associations. The layering model defines the logic of how colors stack on top of each other in a UI.</em></p><ul><li><p><em>In the light themes, layers alternate between White and Gray 10 with each added layer.</em></p></li><li><p><em>In the dark themes, layers become one step lighter with each added layer.</em></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_!2vr2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2vr2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 424w, https://substackcdn.com/image/fetch/$s_!2vr2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 848w, https://substackcdn.com/image/fetch/$s_!2vr2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 1272w, https://substackcdn.com/image/fetch/$s_!2vr2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2vr2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png" width="1152" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Layering model for light themes&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="Layering model for light themes" title="Layering model for light themes" srcset="https://substackcdn.com/image/fetch/$s_!2vr2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 424w, https://substackcdn.com/image/fetch/$s_!2vr2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 848w, https://substackcdn.com/image/fetch/$s_!2vr2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 1272w, https://substackcdn.com/image/fetch/$s_!2vr2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395367ac-e4bc-4e9e-b913-4d17435dd9c7_1152x576.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></blockquote><p>So you can see where I&#8217;m coming from. Its very important to understand how layers stack one on top of each other in the UI. And so this is how I look at it.</p><p>When it comes to greys (neutrals), I usually pick 3 shades going from light to lightest. I would use this for pages or elements/components that reside on the page. The shades could be the same or slightly different for each category (pages and components).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ibTr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ibTr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 424w, https://substackcdn.com/image/fetch/$s_!ibTr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 848w, https://substackcdn.com/image/fetch/$s_!ibTr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 1272w, https://substackcdn.com/image/fetch/$s_!ibTr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ibTr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png" width="1456" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:455,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32568,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ibTr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 424w, https://substackcdn.com/image/fetch/$s_!ibTr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 848w, https://substackcdn.com/image/fetch/$s_!ibTr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 1272w, https://substackcdn.com/image/fetch/$s_!ibTr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F995d05a6-2adc-4fb8-8dad-2e816de2ed45_1813x567.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After I have created the palette, I literally stack one on top of each other, eye ball it, tinker if necessary and pick.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XVea!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XVea!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png 424w, https://substackcdn.com/image/fetch/$s_!XVea!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png 848w, https://substackcdn.com/image/fetch/$s_!XVea!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png 1272w, https://substackcdn.com/image/fetch/$s_!XVea!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XVea!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png" width="669" height="436.38525730180805" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:938,&quot;width&quot;:1438,&quot;resizeWidth&quot;:669,&quot;bytes&quot;:111061,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XVea!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png 424w, https://substackcdn.com/image/fetch/$s_!XVea!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png 848w, https://substackcdn.com/image/fetch/$s_!XVea!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.png 1272w, https://substackcdn.com/image/fetch/$s_!XVea!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5caf3e7d-dfdc-4581-8e1c-3eac3a431781_1438x938.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>Dark mode works the same way, only inverted: the deepest layer is the darkest surface, and each level up gets progressively lighter.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4d_6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4d_6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 424w, https://substackcdn.com/image/fetch/$s_!4d_6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 848w, https://substackcdn.com/image/fetch/$s_!4d_6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 1272w, https://substackcdn.com/image/fetch/$s_!4d_6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4d_6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png" width="659" height="429.8623087621697" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:938,&quot;width&quot;:1438,&quot;resizeWidth&quot;:659,&quot;bytes&quot;:117153,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4d_6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 424w, https://substackcdn.com/image/fetch/$s_!4d_6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 848w, https://substackcdn.com/image/fetch/$s_!4d_6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 1272w, https://substackcdn.com/image/fetch/$s_!4d_6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbbb710c-bbd4-41e1-b6a1-4e32aca5bdb1_1438x938.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>TLDR - first set of greys for surfaces &#8594; <strong>light, lighter, lightest </strong>(I also always choose a dark shade that acts as an inverse to the lightest shade).</p><h4>Surfaces (brand and semantics)</h4><p>Its a lot more harder to fathom the different shades of brand and semantic colours I might need for the project. When I started out in design, I would just map out the bare minimum variables or tokens that may be needed for a project and build as I go. </p><p>Over time however, I believe there are a bare minimum set of colours one might need. The way I went about establishing this was to actually quickly create (&#8220;wireframy&#8221;) components, fill them with colours from my palette and understand what I may need. Or even better, just pick (copy-paste) components from existing Figma UI kits and play around.</p><p>A lot of your components would just require greys but lets take a few examples.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sBoo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sBoo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 424w, https://substackcdn.com/image/fetch/$s_!sBoo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 848w, https://substackcdn.com/image/fetch/$s_!sBoo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 1272w, https://substackcdn.com/image/fetch/$s_!sBoo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sBoo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png" width="1004" height="795" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:795,&quot;width&quot;:1004,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sBoo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 424w, https://substackcdn.com/image/fetch/$s_!sBoo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 848w, https://substackcdn.com/image/fetch/$s_!sBoo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 1272w, https://substackcdn.com/image/fetch/$s_!sBoo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee237e0-1036-472a-86a6-cb6552e4a2bd_1004x795.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I might require &#8220;default&#8221; buttons and tonal buttons. Tonal buttons have a much lighter shade than the default ones. Similarly I might need badges that have the same shade as the tonal buttons.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>I also have alerts and selected states.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n4fJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n4fJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png 424w, https://substackcdn.com/image/fetch/$s_!n4fJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png 848w, https://substackcdn.com/image/fetch/$s_!n4fJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png 1272w, https://substackcdn.com/image/fetch/$s_!n4fJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n4fJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png" width="651" height="555.5948275862069" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:792,&quot;width&quot;:928,&quot;resizeWidth&quot;:651,&quot;bytes&quot;:66551,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!n4fJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png 424w, https://substackcdn.com/image/fetch/$s_!n4fJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png 848w, https://substackcdn.com/image/fetch/$s_!n4fJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.png 1272w, https://substackcdn.com/image/fetch/$s_!n4fJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037c09ad-cc1d-4687-8add-5647c7b6f6f0_928x792.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>These have the lightest shade of the respective semantic or brand colour. Lighter than my tonal buttons or badges.</p><p>So maybe I might need 3 shades of these colours starting from default/base to a much lighter shade and lightest.</p><p>TLDR &#8594; sets of brand and semantic colours &#8594; <strong>default, light, lightest.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ybPW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ybPW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 424w, https://substackcdn.com/image/fetch/$s_!ybPW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 848w, https://substackcdn.com/image/fetch/$s_!ybPW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 1272w, https://substackcdn.com/image/fetch/$s_!ybPW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ybPW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png" width="1373" height="348" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:348,&quot;width&quot;:1373,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15713,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ybPW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 424w, https://substackcdn.com/image/fetch/$s_!ybPW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 848w, https://substackcdn.com/image/fetch/$s_!ybPW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 1272w, https://substackcdn.com/image/fetch/$s_!ybPW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c753703-43ae-4f68-8d78-9d6509c6aa87_1373x348.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Foreground (text &amp; icon)</h2><h4>Foreground (greys)</h4><p>For neutrals, I usually define three roles: <strong>primary, secondary, and tertiary</strong>. Unlike surfaces, these start with the darkest shade for primary text, then step lighter for secondary and tertiary.</p><p>How do I decide which shades? I start visually stacking them on my surfaces to see if the difference feels clear, then confirm with contrast checks. Accessibility is non-negotiable here. Every foreground shade has to pass WCAG contrast ratios across all surface levels. The only exception is <strong>disabled states</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kaZ4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kaZ4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png 424w, https://substackcdn.com/image/fetch/$s_!kaZ4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png 848w, https://substackcdn.com/image/fetch/$s_!kaZ4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png 1272w, https://substackcdn.com/image/fetch/$s_!kaZ4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kaZ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png" width="1456" height="765" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:765,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141774,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kaZ4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png 424w, https://substackcdn.com/image/fetch/$s_!kaZ4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png 848w, https://substackcdn.com/image/fetch/$s_!kaZ4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.png 1272w, https://substackcdn.com/image/fetch/$s_!kaZ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0f281a0-c792-4625-8ba6-e0180e0501cc_1683x884.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><br>I usually let this pass because <a href="https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html">WCAG 2.1 says</a>:</p><blockquote><p><em>User Interface Components that are not available for user interaction (e.g., a disabled control in HTML) are not required to meet contrast requirements.</em></p></blockquote><p>That&#8217;s why I allow a &#8220;disabled grey&#8221; that falls below contrast thresholds.</p><h4>Foreground (semantics)</h4><p>The same logic applies to brand and semantic colors. My &#8220;default&#8221; is usually the <code>500</code> or <code>600</code> shade, strong enough to hold its own against light surfaces. But I also define <strong>light and lightest variants</strong>. These are critical when semantic colors need to appear as text or icons on darker backgrounds, or when used in badges, alerts, and tonal components.</p><p>Default, light, and lightest - this set usually covers the practical cases without overcomplicating the system.</p><h2>Theme Tokens (USWDS&#8217;s Approach)</h2><p>Interestingly, I found validation in <a href="https://designsystem.digital.gov/design-tokens/color/theme-tokens/">USWDS&#8217;s approach</a>, where they formalize it into what they call <strong>theme tokens.</strong></p><blockquote><p><em>Each color family has seven possible lightness grades, from lightest to darkest, though not every family needs to include a color at each grade. Some grades may be set to false in your project&#8217;s theme settings. The default USWDS theme palette does not use every grade for every family. The primary and secondary families also have a vivid grade available.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bj9g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bj9g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png 424w, https://substackcdn.com/image/fetch/$s_!bj9g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png 848w, https://substackcdn.com/image/fetch/$s_!bj9g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png 1272w, https://substackcdn.com/image/fetch/$s_!bj9g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bj9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png" width="802" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:802,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61067,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bj9g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png 424w, https://substackcdn.com/image/fetch/$s_!bj9g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png 848w, https://substackcdn.com/image/fetch/$s_!bj9g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.png 1272w, https://substackcdn.com/image/fetch/$s_!bj9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3d6072-f0d5-4027-b2e4-e454d8d226d5_802x816.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">Theme tokens (For the full set, see USWDS theme tokens)</figcaption></figure></div><p><strong>- <a href="https://designsystem.digital.gov/design-tokens/color/theme-tokens/">Theme color tokens</a></strong></p></blockquote><p>In other words, they start with a full spectrum, but intentionally don&#8217;t use every single shade. Instead, they enable only the grades that make sense for the project&#8217;s theme.</p><p>This is almost exactly how my own workflow has evolved into. Instead of trying to define and maintain every possible shade, I decide upfront which ones matter.</p><pre><code><code>&#128161;The takeaway here is important: you don&#8217;t need every possible shade in your palette to make a color system. What you need is a consistent, role-based selection that can serve as a foundation.</code></code></pre><h2>Interaction States</h2><p>Once surfaces, text, and semantic roles are in place, the next layer of decisions is around <strong>interaction states</strong>. Hover, active, focus, and disabled are essential for usability. But they don&#8217;t need to be overcomplicated either.</p><p>In my workflow, I usually extend a simple logic.</p><ul><li><p><strong>Hover</strong> &#8594; a lighter or darker step from the base color.</p><p>So if the <strong>lightest (surface)</strong> needs a hover state, its one step darker than that - <code>Grey-100</code> is the base shade and <code>200</code> is hover. Same logic to any shade.   </p></li><li><p><strong>Active/Pressed</strong> &#8594; a stronger shift, often two steps.<br>The pressed state is usually 2 steps away from the base or 1 step ahead of hover - <code>Brand-600</code> base would have a <code>Brand-800</code> as pressed (<code>Brand-700</code> as hover).</p></li><li><p><strong>Disabled</strong> &#8594; a de-emphasized neutral that intentionally falls below accessibility thresholds.</p></li><li><p><strong>Focus</strong> &#8594; a clearly visible color (often brand or accent) with guaranteed contrast (usually a <code>600</code>).</p></li></ul><p>This makes the transitions predictable and not subjective. You don&#8217;t need a special hover color for every button or a dozen unique active states. What you need are clear, predictable rules that apply system-wide.</p><h2>Decisions &#8594; Variables/Tokens</h2><p>At this point, it&#8217;s worth stepping back to see how these middle-layer choices flow into tokens. To me, variables have some sort of a foundation because of the decisions we make in the middle. Otherwise they become just arbitrary names with no shared logic to back them up.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o_Qg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o_Qg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 424w, https://substackcdn.com/image/fetch/$s_!o_Qg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 848w, https://substackcdn.com/image/fetch/$s_!o_Qg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 1272w, https://substackcdn.com/image/fetch/$s_!o_Qg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o_Qg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png" width="1456" height="443" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:443,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2734708,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!o_Qg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 424w, https://substackcdn.com/image/fetch/$s_!o_Qg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 848w, https://substackcdn.com/image/fetch/$s_!o_Qg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 1272w, https://substackcdn.com/image/fetch/$s_!o_Qg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94338294-ad1d-4707-b200-918bedb57a3b_6113x1859.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But once you&#8217;ve defined surfaces, foregrounds, semantics, interactions and the logic of why you may need certain colours in your system, variables almost write themselves.</p><p>A few examples:</p><h4>Surface or background</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ioe9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ioe9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 424w, https://substackcdn.com/image/fetch/$s_!Ioe9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 848w, https://substackcdn.com/image/fetch/$s_!Ioe9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 1272w, https://substackcdn.com/image/fetch/$s_!Ioe9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ioe9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png" width="524" height="686.9399293286219" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:742,&quot;width&quot;:566,&quot;resizeWidth&quot;:524,&quot;bytes&quot;:58281,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ioe9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 424w, https://substackcdn.com/image/fetch/$s_!Ioe9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 848w, https://substackcdn.com/image/fetch/$s_!Ioe9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 1272w, https://substackcdn.com/image/fetch/$s_!Ioe9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5d72c0-a556-4d67-8686-14f4d2aaaf8e_566x742.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The variables <code>base-weak</code> (lightest), <code>base</code> (lighter) and <code>base-strong</code> (light), reflect the colours I may use for the deepest surface, the pages.</p><p>Variables <code>surface-primary</code>, <code>surface-secondary</code> and <code>surface-tertiary</code> reflect the colours that are used for the components.</p><h4>Brand colour examples</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yF-K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yF-K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 424w, https://substackcdn.com/image/fetch/$s_!yF-K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 848w, https://substackcdn.com/image/fetch/$s_!yF-K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 1272w, https://substackcdn.com/image/fetch/$s_!yF-K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yF-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png" width="822" height="433" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:433,&quot;width&quot;:822,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42732,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/171186015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yF-K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 424w, https://substackcdn.com/image/fetch/$s_!yF-K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 848w, https://substackcdn.com/image/fetch/$s_!yF-K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 1272w, https://substackcdn.com/image/fetch/$s_!yF-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f37c79-c617-4252-82e6-6c57d7f9988b_822x433.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The variables I may need are backed by the decisions I made in the fuzzy middle layer.</p><p>The point is simple: <strong>variables/tokens aren&#8217;t the starting point - they&#8217;re the outcome.</strong> They&#8217;re the visible layer of a much deeper set of design decisions.</p><div><hr></div><p><strong>&#128161; <a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">Tenet UI</a></strong> is a Figma design system/UI kit that I built as a personal project, available in the Figma community. The UI kit has a robust and lean semantic colour system (design tokens/variables) established. Visualizing the variables in the UI kit could give you a better sense of how the variables have stacked up.</p><div><hr></div><h2>Closing thoughts</h2><p>It&#8217;s easy to think of a color system as just palettes and variables/tokens. Pick some swatches, name some variables, and move on. I&#8217;ve done this in the past, and never knew what or how many variables I needed. I built them as I moved forward and the result was inconsistencies and a lack of a clear plan in creating variables.</p><p>The work that makes a system scalable happens in the &#8220;middle&#8221;. That middle (invisible) layer is where accessibility gets baked in, where consistency is enforced, and where a palette actually turns into a system.</p><p>And that&#8217;s the point - don&#8217;t stop at colors. Define the decisions in between. Because that&#8217;s where the DNA of a colour system really lives.</p>]]></content:encoded></item><item><title><![CDATA[Design DNA - A playbook for building systems that scale]]></title><description><![CDATA[I want to start a new series on building design systems. I&#8217;m calling it Design DNA.This is about practical systems you can create right in the middle of real product work.]]></description><link>https://www.fourzerothree.in/p/design-dna-building-design-systems</link><guid isPermaLink="false">https://www.fourzerothree.in/p/design-dna-building-design-systems</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Tue, 12 Aug 2025 16:04:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Kp54!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4>Design DNA</h4><p>#1 - Design DNA - A playbook | <strong><a href="https://www.fourzerothree.in/p/scalable-color-system-design">#2 - The "invisible" middle layer of colour systems</a></strong></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kp54!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kp54!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png 424w, https://substackcdn.com/image/fetch/$s_!Kp54!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png 848w, https://substackcdn.com/image/fetch/$s_!Kp54!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png 1272w, https://substackcdn.com/image/fetch/$s_!Kp54!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kp54!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png" width="1162" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:1162,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Kp54!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png 424w, https://substackcdn.com/image/fetch/$s_!Kp54!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png 848w, https://substackcdn.com/image/fetch/$s_!Kp54!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.png 1272w, https://substackcdn.com/image/fetch/$s_!Kp54!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ed5d3c-c123-4f99-ac16-042c2fe253b0_1162x647.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>Design debt is inevitable. You can delay it, ignore it, or patch over it. But sooner or later, it catches up. The only real way to keep it under control? </p><p>Think in systems. Design for scale.</p><p>And when I say &#8220;design systems,&#8221; I&#8217;m not just talking about the heavyweight, multi-layered setups you see at big companies. I mean &#8220;systems&#8221; in the truest sense - any structure that reduces debt, keeps things consistent, and lets you scale design without losing your sanity.</p><p>I want to start a new series on building design systems. I&#8217;m calling it <strong>Design DNA</strong>.</p><p>No, I&#8217;m not here to help you build the polished, enterprise-level systems you see in big companies with dedicated DS teams (I&#8217;d love to get there someday, though). </p><p>This is about practical systems you can create right in the middle of real product work. The kind that help you keep design debt in check, maintain quality, and grow without overcomplicating everything.</p><p>I want to talk about foundations that make a system work. Then I want to dig into how you can create your own Figma design system or UI kit from scratch, and maybe also how to get the most out of an existing UI kit if you don&#8217;t have the time (or budget) to build one from zero. </p><p>We&#8217;ll break down what goes into a design system, how it&#8217;s built, and why it&#8217;s worth your time even if your team is small, your deadlines are tight, and your files are already a little messy.</p><p>I want to write about all of this because they&#8217;re the kind of problems you and I are probably dealing with right now.</p><h2>Why I&#8217;m writing this</h2><p><strong>Design DNA</strong> is my way of filling a gap I wish I had when I was starting out. Most design system content lives at the extremes:</p><ul><li><p>At one end, there&#8217;s high-level theory that sounds nice but leaves you wondering where to start.</p></li><li><p>At the other, dense documentation for teams who already have DS engineers, governance models, and years of polish.</p></li></ul><p>If you&#8217;re in the middle, building as you go, trying to ship product without drowning in inconsistencies, you&#8217;re mostly on your own.</p><p>I know, because I&#8217;ve been there.</p><p>That&#8217;s why I&#8217;m writing <strong>Design DNA</strong>. To share the wins, mistakes, and patterns I&#8217;ve learned along the way and to learn in public (especially around documentation and governance).</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>What to expect</h2><p>Honestly, it&#8217;s still a little abstract right now. My plan is to start with the foundations (duh, obviously) tokens, color systems, typography, all the stuff that sets the stage. From there, I&#8217;ll probably move up to components, documentation, and governance (hopefully?).</p><p>I can&#8217;t promise perfect-world advice. But I can promise practical, example-driven guidance you can plug straight into your workflow. That, I&#8217;m confident about.</p><p>Cheers and see you on the other side of Design DNA &#128515;</p>]]></content:encoded></item><item><title><![CDATA[Designing flexible data tables - an atomic approach]]></title><description><![CDATA[Tables are complex components. The hack, though, is getting that one &#8220;data-cell&#8221; component just right, and then using that to build your entire table.]]></description><link>https://www.fourzerothree.in/p/designing-data-tables-in-figma</link><guid isPermaLink="false">https://www.fourzerothree.in/p/designing-data-tables-in-figma</guid><dc:creator><![CDATA[Sanketh Sharathkumar]]></dc:creator><pubDate>Sun, 20 Jul 2025 13:35:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OK1H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Tables are complex components. Honestly when I started out in design, they gave me a lot of anxiety. I mean, the data cells could have infinite combinations, different states and worst of all, the table had to be in auto-layout!</p><p>The hack, though, is getting that one &#8220;data-cell&#8221; component just right, and then using that to build your entire table. I had to figure out how to build that one &#8220;atom&#8221; so it had me covered. In essence, what we&#8217;re doing here is going outside-in.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OK1H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OK1H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png 424w, https://substackcdn.com/image/fetch/$s_!OK1H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png 848w, https://substackcdn.com/image/fetch/$s_!OK1H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png 1272w, https://substackcdn.com/image/fetch/$s_!OK1H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OK1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png" width="1456" height="463" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:463,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:117212,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OK1H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png 424w, https://substackcdn.com/image/fetch/$s_!OK1H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png 848w, https://substackcdn.com/image/fetch/$s_!OK1H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.png 1272w, https://substackcdn.com/image/fetch/$s_!OK1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c022f4b-62ed-4440-a033-fb1d9df8507b_1731x550.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>Break the table down into either rows or columns and then break those down into individual data cells.</p><h2>Creating a data-cell</h2><p>This is where the real work is. Tables can hold many different types of data and each of those could demand a slightly different layout or style.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MPag!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MPag!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 424w, https://substackcdn.com/image/fetch/$s_!MPag!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 848w, https://substackcdn.com/image/fetch/$s_!MPag!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 1272w, https://substackcdn.com/image/fetch/$s_!MPag!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MPag!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png" width="953" height="532" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:953,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:382562,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MPag!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 424w, https://substackcdn.com/image/fetch/$s_!MPag!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 848w, https://substackcdn.com/image/fetch/$s_!MPag!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 1272w, https://substackcdn.com/image/fetch/$s_!MPag!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de7e1be-4978-41dd-8100-a32c03d40f15_953x532.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7CCr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7CCr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 424w, https://substackcdn.com/image/fetch/$s_!7CCr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 848w, https://substackcdn.com/image/fetch/$s_!7CCr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 1272w, https://substackcdn.com/image/fetch/$s_!7CCr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7CCr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png" width="1423" height="343" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:343,&quot;width&quot;:1423,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:495977,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7CCr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 424w, https://substackcdn.com/image/fetch/$s_!7CCr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 848w, https://substackcdn.com/image/fetch/$s_!7CCr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 1272w, https://substackcdn.com/image/fetch/$s_!7CCr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31c07b8b-c0f2-43ba-ac7e-84c2dbe372fb_1423x343.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dZPE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dZPE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 424w, https://substackcdn.com/image/fetch/$s_!dZPE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 848w, https://substackcdn.com/image/fetch/$s_!dZPE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 1272w, https://substackcdn.com/image/fetch/$s_!dZPE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dZPE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png" width="1232" height="509" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:509,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:835595,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dZPE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 424w, https://substackcdn.com/image/fetch/$s_!dZPE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 848w, https://substackcdn.com/image/fetch/$s_!dZPE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 1272w, https://substackcdn.com/image/fetch/$s_!dZPE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c80090e-9ee9-4ebc-b838-1804de3f57ea_1232x509.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Different contexts could demand different types of data to be displayed.</p><p>So the idea is to create a data-cell component set that:</p><ul><li><p>Covers most common types of variations we may need.</p></li><li><p>Handles different states.</p></li><li><p>Scales to different sizes.</p></li></ul><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fourzerothree.in/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://www.fourzerothree.in/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>There are 2 common ways to approach this:</p><ol><li><p>All variations as separate components.</p></li><li><p>Lean component with packed properties.</p></li></ol><h4>All variations as separate components</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c_qv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c_qv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png 424w, https://substackcdn.com/image/fetch/$s_!c_qv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png 848w, https://substackcdn.com/image/fetch/$s_!c_qv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png 1272w, https://substackcdn.com/image/fetch/$s_!c_qv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c_qv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png" width="450" height="742.67578125" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9795746a-1202-4726-989d-b086773ae941_512x845.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:845,&quot;width&quot;:512,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:67200,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c_qv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png 424w, https://substackcdn.com/image/fetch/$s_!c_qv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png 848w, https://substackcdn.com/image/fetch/$s_!c_qv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.png 1272w, https://substackcdn.com/image/fetch/$s_!c_qv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9795746a-1202-4726-989d-b086773ae941_512x845.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>Personally, I don&#8217;t prefer this (though it&#8217;s not wrong). It feels bulky. Too many components cluttering my panel. But it&#8217;s very straightforward, and a lot easier for designers to pick the variant they want from the variants dropdown.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wQqd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wQqd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png 424w, https://substackcdn.com/image/fetch/$s_!wQqd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png 848w, https://substackcdn.com/image/fetch/$s_!wQqd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png 1272w, https://substackcdn.com/image/fetch/$s_!wQqd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wQqd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png" width="949" height="463" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:463,&quot;width&quot;:949,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29845,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wQqd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png 424w, https://substackcdn.com/image/fetch/$s_!wQqd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png 848w, https://substackcdn.com/image/fetch/$s_!wQqd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.png 1272w, https://substackcdn.com/image/fetch/$s_!wQqd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a22d6d2-c143-456f-aed9-3d21d1c17ec6_949x463.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>This becomes a problem when you start stacking variations:</p><ul><li><p>States: default, hover, selected, disabled</p></li><li><p>Styles: colored or striped</p></li><li><p>Sizes: small, large</p></li></ul><p>Your component set explodes!</p><h4>Lean component with packed properties</h4><p>This is my preferred approach. It&#8217;s much leaner. You can achieve a huge number of variations with a compact set of components.</p><p>The downside? You might end up with a bit of a &#8220;prop-soup&#8221; in the properties panel, potentially overwhelming you. But honestly, I feel this is a small learning curve and can be handled with a little practice.<br><br>As you can see in the image below, this setup includes both size and state variations (including the &#8220;colored&#8221; variant). This helps me create a very flexible component set with just 15 variants.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L1VL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L1VL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png 424w, https://substackcdn.com/image/fetch/$s_!L1VL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png 848w, https://substackcdn.com/image/fetch/$s_!L1VL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png 1272w, https://substackcdn.com/image/fetch/$s_!L1VL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L1VL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png" width="1456" height="391" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:391,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33046,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L1VL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png 424w, https://substackcdn.com/image/fetch/$s_!L1VL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png 848w, https://substackcdn.com/image/fetch/$s_!L1VL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.png 1272w, https://substackcdn.com/image/fetch/$s_!L1VL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39046514-4c95-4e98-a2b7-4d7ded55fbb7_1797x483.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><br>The variations are packed with the help of component properties. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L3JM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L3JM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png 424w, https://substackcdn.com/image/fetch/$s_!L3JM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png 848w, https://substackcdn.com/image/fetch/$s_!L3JM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png 1272w, https://substackcdn.com/image/fetch/$s_!L3JM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L3JM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png" width="927" height="577" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:577,&quot;width&quot;:927,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28970,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.fourzerothree.in/i/168765705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L3JM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png 424w, https://substackcdn.com/image/fetch/$s_!L3JM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png 848w, https://substackcdn.com/image/fetch/$s_!L3JM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.png 1272w, https://substackcdn.com/image/fetch/$s_!L3JM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db606a4-4039-4f89-8ce2-6848000f0385_927x577.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><h4><br>Example video - Manipulating properties to get different variants</h4><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2ce86f48-17fe-43a1-8b0d-55b54584ac3a&quot;,&quot;duration&quot;:null}"></div><h2>Building rows or columns</h2><p>Once your data-cell is ready, you can use it to build either rows or columns. Honestly, I started off building tables as columns, but I now prefer rows. Either way, it&#8217;s just a matter of preference.</p><p>Many UI kits, design systems and designers treat the &#8220;data cell&#8221; as the atomic unit of the table. They often include pre-built column components that use data-cell instances, so you can just drag in the whole column and go.</p><p>In <a href="https://www.figma.com/community/file/1477998034747967579/tenet-ui">Tenet UI</a>, I kept only the data-cell as the main component. Rows and columns are up to you, which made things more flexible and customizable. This was actually a piece of feedback I got from teammates (at work). They liked having that level of control.</p><h4>Example table 1</h4><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;f39b36ef-90d4-4d24-91c7-ce97c407c345&quot;,&quot;duration&quot;:null}"></div><h4>Example table 2</h4><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;af81fe78-c110-484f-a6c6-bfea6da1fbb4&quot;,&quot;duration&quot;:null}"></div><h2>Closing thoughts</h2><p>Tables can feel overwhelming, but its about cracking the logic behind building a single, robust data-cell. So, focus on that atomic unit. Build it well, and your tables will practically build themselves.</p><p></p><p></p><p></p>]]></content:encoded></item></channel></rss>