<?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[Eidos Design | Building with AI]]></title><description><![CDATA[Anyone can ship a product now. Making one people love is still design work. Product teardowns, AI workflows, and build logs from designers who ship.]]></description><link>https://eidosdesign.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!Dv1i!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4057e159-e0d1-424d-baec-04d65fddeb87_600x600.png</url><title>Eidos Design | Building with AI</title><link>https://eidosdesign.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 04 Nov 2026 11:32:37 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Vadym Grin & Siavash Memar]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[eidosdesign@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[eidosdesign@substack.com]]></itunes:email><itunes:name><![CDATA[Vadym Grin]]></itunes:name></itunes:owner><itunes:author><![CDATA[Vadym Grin]]></itunes:author><googleplay:owner><![CDATA[eidosdesign@substack.com]]></googleplay:owner><googleplay:email><![CDATA[eidosdesign@substack.com]]></googleplay:email><googleplay:author><![CDATA[Vadym Grin]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[What Claude Code Could and Couldn’t Do When I Built a Mobile Game From Scratch]]></title><description><![CDATA[I built 12 AI agents to design my game&#8217;s levels. They still needed me. The story of Choori: a childhood game, a mango called PacMango, and why taste is the one thing AI can&#8217;t ship for you.]]></description><link>https://eidosdesign.substack.com/p/what-claude-code-could-and-couldnt</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/what-claude-code-could-and-couldnt</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Tue, 03 Nov 2026 13:00:55 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e13e66-857c-468e-afa8-28be8fdec991_1200x630.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Rg57%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rg57!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rg57!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rg57!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rg57!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Rg57%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg" width="1600" height="784" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:784,&quot;width&quot;:1600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:335307,&quot;alt&quot;:&quot;Choori key art: Mango Mom leading her babies through a hedge maze while guinea pigs watch&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Choori key art: Mango Mom leading her babies through a hedge maze while guinea pigs watch" title="Choori key art: Mango Mom leading her babies through a hedge maze while guinea pigs watch" srcset="https://substackcdn.com/image/fetch/$s_!Rg57!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rg57!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rg57!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rg57!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eaab7e4-b758-4a4d-94d0-d71923dfe624_1600x784.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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>Short version:</strong> Claude Code built the game, from the movement to the iOS and Android builds, and ChatGPT made the art. But neither could decide what the game should be, design a good level on its own, or keep a character looking the same from one frame to the next. This is the story of both halves.</p><div><hr></div><h2>A bird, some chicks and a SEGA</h2><p>When I was a kid, I played a game on SEGA called Flicky. A little mother bird runs around collecting her lost chicks while cats chase her. Every chick she finds follows behind her in a small line, and if a cat touches her, they all scatter.</p><p>I loved it. People who know me know I've always had a soft spot for casual games, and I think it started there.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21oHk1%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oHk1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png 424w, https://substackcdn.com/image/fetch/$s_!oHk1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png 848w, https://substackcdn.com/image/fetch/$s_!oHk1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png 1272w, https://substackcdn.com/image/fetch/$s_!oHk1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21oHk1%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png" width="648" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:648,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Flicky | ClassicReload.com&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Flicky | ClassicReload.com" title="Flicky | ClassicReload.com" srcset="https://substackcdn.com/image/fetch/$s_!oHk1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png 424w, https://substackcdn.com/image/fetch/$s_!oHk1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png 848w, https://substackcdn.com/image/fetch/$s_!oHk1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.png 1272w, https://substackcdn.com/image/fetch/$s_!oHk1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc4aeb69-853f-4a03-9046-594d37589ee5_648x409.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Flicky on SEGA</figcaption></figure></div><p>Ten years ago my design career began in a game studio, making mobile games. Since then I've moved into B2B and B2C products, and I've grown to love the hard stuff: complex systems, messy workflows, UX problems with no obvious answer. That's still the work that excites me most. But games stayed close to my heart.</p><p>A few months ago I finished Arimo, a personal HR tech and mental health project of mine. Building it was the fun part. Thinking about what comes after was not: go-to-market, user data, GDPR. A game felt lighter. No personal data, no sales cycle. Make something fun, put it on the store, see what happens.</p><p>So I opened my notes and wrote the first line of a new project:</p><blockquote><p><em>"Week 1. I decided to make a mobile game using AI and vibe code."</em></p></blockquote><p>Honestly, I thought it would be the easy one.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>It started as PacMango</h2><p>Flicky is a platformer, and I didn't want a joystick covering half of a phone screen. So I simplified. The character keeps moving, and the player only chooses where to turn. When I described that to AI, it did something I didn't expect: it mixed Flicky with Pac-Man Go. The world became a maze.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%210HH8%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0HH8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 424w, https://substackcdn.com/image/fetch/$s_!0HH8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 848w, https://substackcdn.com/image/fetch/$s_!0HH8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 1272w, https://substackcdn.com/image/fetch/$s_!0HH8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%210HH8%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png" width="220" height="394.1666666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1376,&quot;width&quot;:768,&quot;resizeWidth&quot;:220,&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_!0HH8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 424w, https://substackcdn.com/image/fetch/$s_!0HH8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 848w, https://substackcdn.com/image/fetch/$s_!0HH8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 1272w, https://substackcdn.com/image/fetch/$s_!0HH8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b80ac66-4e91-4bad-9cc4-5a112598e12c_768x1376.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">first concept image made by ChatGPT</figcaption></figure></div><p>I made the first concepts with ChatGPT, then more with ChatGPT and Claude Code, then more again. Round after round. They were retro pixel art, and somewhere along the way they picked up a name: <strong>PacMango</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F8us%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F8us!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F8us!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F8us!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F8us!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F8us%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg" width="1536" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:448792,&quot;alt&quot;:&quot;The PacMango concept: a pixel-art title screen and maze level&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The PacMango concept: a pixel-art title screen and maze level" title="The PacMango concept: a pixel-art title screen and maze level" srcset="https://substackcdn.com/image/fetch/$s_!F8us!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F8us!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F8us!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F8us!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192020a-847d-49a6-b511-01b9eb99c976_1536x1024.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">One of the PacMango concepts. "Rescue the Mango Kids!" Swipe to move, tap to jump.</figcaption></figure></div><p>I'll be honest: I liked it. The mango hero even had a Pac-Man mouth, chomping open and closed as it ran.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21t7-K%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t7-K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 424w, https://substackcdn.com/image/fetch/$s_!t7-K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 848w, https://substackcdn.com/image/fetch/$s_!t7-K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!t7-K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21t7-K%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg" width="1400" height="752" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:752,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:151048,&quot;alt&quot;:&quot;The PacMango pixel sprite sheet&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The PacMango pixel sprite sheet" title="The PacMango pixel sprite sheet" srcset="https://substackcdn.com/image/fetch/$s_!t7-K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 424w, https://substackcdn.com/image/fetch/$s_!t7-K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 848w, https://substackcdn.com/image/fetch/$s_!t7-K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!t7-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d88229-7fb7-4d3d-ab2e-ee5b63429478_1400x752.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The PacMango sprite sheet. Look closely at the hero: mouth open, mouth closed.</figcaption></figure></div><p>Then I started building, with Claude Code. It ran the project like a tiny studio, with a lead agent handing work to sub-agents: one for movement, one for the baby chain and the guinea pigs, one for drawing the screen, one for the levels. Every file in the project started with the same comment: <em>"Choori (Pac-Mango)"</em>.</p><p>The foundation changed too. That first build was a native app, chosen for the fastest possible swipe response. A day later I wrote Claude Code a new, much longer brief and switched to Phaser on the web, wrapped with Capacitor, so I could try every change on my own phone in seconds. That brief had a line I still like: <em>replace the "PACMANGO" wordmark with Choori.</em></p><p>Because the more I iterated, the clearer the problem got. PacMango looked like Pac-Man, not Flicky. I'd kept Flicky's mechanic and lost its soul. So I kept the gameplay and started taking the Pac-Man out.</p><p>The name came first. When I was a kid, we called Flicky <em>choori</em>. In my local Persian accent it means "little chick". The moment I typed it, it stopped being "a Flicky-like maze game" and became mine.</p><p>The look came from Pinterest. I kept saving games with a slightly raised, 2.5D view, the kind that feels like a tiny world you could reach into.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fEd4%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fEd4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fEd4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fEd4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fEd4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fEd4%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg" width="432" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1200,&quot;resizeWidth&quot;:432,&quot;bytes&quot;:256722,&quot;alt&quot;:&quot;My Pinterest moodboard of small 2.5D worlds&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="My Pinterest moodboard of small 2.5D worlds" title="My Pinterest moodboard of small 2.5D worlds" srcset="https://substackcdn.com/image/fetch/$s_!fEd4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fEd4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fEd4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fEd4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee425ed-ddd7-4ae4-bb2f-37b15777e87b_1200x1200.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The moodboard that pulled Choori out of pixel art.</figcaption></figure></div><p>The maze turned into a garden. Walls became hedges. The floor became warm brick with flowers. The mango lost its Pac-Man mouth and got a leaf, a flower and a pink scarf. Home became Mango Hollow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21vbkB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vbkB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vbkB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vbkB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vbkB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21vbkB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg" width="530" height="530" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:530,&quot;bytes&quot;:192793,&quot;alt&quot;:&quot;The first 2.5D Choori concept&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The first 2.5D Choori concept" title="The first 2.5D Choori concept" srcset="https://substackcdn.com/image/fetch/$s_!vbkB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vbkB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vbkB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vbkB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a93d019-1b44-46ac-9798-88bcb9e043c8_1024x1024.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The first 2.5D Choori concept, with Mango Hollow and the other homes I tried.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21N1Wc%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N1Wc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N1Wc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N1Wc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N1Wc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21N1Wc%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg" width="1600" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87593,&quot;alt&quot;:&quot;From PacMango to Choori&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="From PacMango to Choori" title="From PacMango to Choori" srcset="https://substackcdn.com/image/fetch/$s_!N1Wc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N1Wc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N1Wc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N1Wc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7223f1e-d1f8-484e-a8ad-70d49f0fdd83_1600x640.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">From PacMango to Choori: Mango Mom, and the Helmet Pig who will ruin her day.</figcaption></figure></div><div><hr></div><h2>The game was too easy</h2><p>The first playable version came together in days. That still surprises me. But when I played it, something was wrong: it was <strong>easy</strong>. You could see the whole maze, plan your route and walk it. No tension at all.</p><p>I didn't fix that with a new enemy. I fixed it with the <strong>camera</strong>. I zoomed it in until you only see a few corridors around Mom. You can't see the whole level any more. You see what's in front of you, and whatever is about to come round the corner.</p><p>That one change made the second mechanic matter.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ok-o%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ok-o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ok-o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ok-o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ok-o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ok-o%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg" width="1884" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1884,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:307407,&quot;alt&quot;:&quot;The core loop: steer, collect, bring them home&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The core loop: steer, collect, bring them home" title="The core loop: steer, collect, bring them home" srcset="https://substackcdn.com/image/fetch/$s_!ok-o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ok-o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ok-o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ok-o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68655271-fb25-4f93-8492-e72d0ef9a00f_1884x620.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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>When Mom picks up a baby, it joins the line behind her and follows her exact path, the way Flicky's chicks did. So a baby isn't just a reward. It's a responsibility. Every baby you collect makes your line longer, harder to protect and more painful to lose.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2190Vh%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!90Vh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 424w, https://substackcdn.com/image/fetch/$s_!90Vh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 848w, https://substackcdn.com/image/fetch/$s_!90Vh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!90Vh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2190Vh%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg" width="1100" height="1100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1100,&quot;width&quot;:1100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:253084,&quot;alt&quot;:&quot;A Helmet Pig spotting Mango Mom's line of babies&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A Helmet Pig spotting Mango Mom's line of babies" title="A Helmet Pig spotting Mango Mom's line of babies" srcset="https://substackcdn.com/image/fetch/$s_!90Vh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 424w, https://substackcdn.com/image/fetch/$s_!90Vh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 848w, https://substackcdn.com/image/fetch/$s_!90Vh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!90Vh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F582f49cc-3fb8-42ee-97a8-c950035a4800_1100x1100.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The moment every level is built around: you have the babies, and something has seen you.</figcaption></figure></div><p>That's <a href="iframe.php?url=https%3A%2F%2Fwww.sibistudios.com%2Fchoori">Choori</a>: <strong>explore, collect, become vulnerable, recover, bring everyone home.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dxDL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dxDL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 424w, https://substackcdn.com/image/fetch/$s_!dxDL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 848w, https://substackcdn.com/image/fetch/$s_!dxDL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 1272w, https://substackcdn.com/image/fetch/$s_!dxDL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dxDL%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif" width="320" height="692.2666666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:649,&quot;width&quot;:300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4233159,&quot;alt&quot;:&quot;Real gameplay from Choori&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Real gameplay from Choori" title="Real gameplay from Choori" srcset="https://substackcdn.com/image/fetch/$s_!dxDL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 424w, https://substackcdn.com/image/fetch/$s_!dxDL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 848w, https://substackcdn.com/image/fetch/$s_!dxDL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 1272w, https://substackcdn.com/image/fetch/$s_!dxDL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F034a489d-c4a1-4750-b53a-d3f5e2deaf82_300x649.gif 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Real gameplay. Swipe to steer; everything else is up to you.</figcaption></figure></div><p>I also learned to design by taking things away. For weeks, tapping the screen made Mom hop. It was cute. It also complicated the enemies, the levels and the tutorial, and it weakened the core idea that you can't just jump out of trouble. So I removed it. Today, tapping the game does nothing, on purpose.</p><div><hr></div><h2>Five worlds </h2><p>Once the core loop worked, I couldn't stop designing. My early plan had five worlds, each with its own place, mood and twist. <strong>Mango Garden</strong>, the home garden where you learn the basics. <strong>Picnic Brook</strong>, where snacks lure pigs away and bridges cross the stream. <strong>Rocky Rumble Meadow</strong>, with charging pigs, rolling rocks and mines. <strong>Moonlit Thicket</strong>, a night garden where lanterns and fireflies light the way. And <strong>Golden Grove Festival</strong>, where the King Guinea Pig crashes the party.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RTm2%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RTm2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RTm2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RTm2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RTm2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RTm2%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg" width="2000" height="1333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1333,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:671247,&quot;alt&quot;:&quot;Choori worlds overview: five worlds, enemy pigs, baby mango variants and power-ups&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Choori worlds overview: five worlds, enemy pigs, baby mango variants and power-ups" title="Choori worlds overview: five worlds, enemy pigs, baby mango variants and power-ups" srcset="https://substackcdn.com/image/fetch/$s_!RTm2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RTm2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RTm2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RTm2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bf776b1-7bce-43e0-87ed-58e3e33ad522_2000x1333.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The full plan: five worlds, a whole family of guinea pigs, baby mango variants and power-ups.</figcaption></figure></div><p>Every world got its own vibe, its own enemies and its own powers, and each one was meant to make the player do something new. A Sniffer Pig follows the smell of snacks. A Burrow Pig hides underground and pops up without warning. A Firefly Reveal shows hidden paths at night. I designed it, iterated on it, and redesigned it more times than I can count. The plan kept evolving as I went: the real World 2 today is <strong>Whispering Woods</strong>, a deep forest with lakes, fireflies and a new enemy, the Frog.</p><p>Then I made one of the hardest calls of the project: for the first release, I'd stick to the first world. One world, done properly, instead of five half-finished ones. The rest isn't cancelled. It's planned, and each world will come when the one before it has earned it.</p><p>For now, Mom has three powers in World 1: a stone to throw, cheese to lure the pigs away, and a mine.</p><div><hr></div><h2>What AI could do, and what it couldn't</h2><p>I built <a href="iframe.php?url=https%3A%2F%2Fwww.sibistudios.com%2Fchoori">Choori</a> with Claude Code. It wrote the game: the movement, the baby chain, the guinea pigs' behaviour, the levels, the iOS and Android builds. Claude Design helped me shape the HUD and the screens. And ChatGPT was my art department: every character spritesheet in <a href="iframe.php?url=https%3A%2F%2Fwww.sibistudios.com%2Fchoori">Choori</a> started there, from day one.</p><p>AI could execute almost anything once I knew what I wanted.</p><p>What it couldn't do was <strong>know what I wanted</strong>.</p><p>Every time I let it decide, the result looked fine and felt empty. It could draw a maze, but it didn't know why the maze should exist. It could add an enemy, but it didn't know if that made the game better. It could make a level harder, but harder isn't better.</p><p>So the most important part of this project was the oldest part of my job: leading, ideating, cutting, and saying "no, that's not it" a hundred times. My game studio years came back faster than I expected.</p><p>The art showed this most clearly, especially the spritesheets. A walking character isn't one image. It's a dozen or more frames, and every frame has to be the same character: same size, same face, same leaf, same light. AI couldn't hold that. Even with a reference image right there, the mango drifted from frame to frame: a slightly different face, a different leaf, a body that grew or shrank.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21X2uI%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X2uI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 424w, https://substackcdn.com/image/fetch/$s_!X2uI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 848w, https://substackcdn.com/image/fetch/$s_!X2uI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!X2uI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21X2uI%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg" width="1526" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1526,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:176734,&quot;alt&quot;:&quot;Animation frames for a guinea pig, Mango Mom and a baby mango&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Animation frames for a guinea pig, Mango Mom and a baby mango" title="Animation frames for a guinea pig, Mango Mom and a baby mango" srcset="https://substackcdn.com/image/fetch/$s_!X2uI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 424w, https://substackcdn.com/image/fetch/$s_!X2uI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 848w, https://substackcdn.com/image/fetch/$s_!X2uI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!X2uI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F244a1129-b0e9-4bbe-b739-d6a1849526dc_1526x1050.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Walk and idle frames. Each row had to look like one character, frame after frame.</figcaption></figure></div><p>So I iterated. Generate, compare frame by frame, throw out the ones that drifted, fix, generate again. For Mom, for the babies, for every guinea pig. AI gave me the frames; keeping them consistent was my job.</p><p>And then there were the hedges.</p><p>A hedge isn't one picture. It's a system: straight pieces, corners, end caps, T-junctions and crossings, and the game has to pick the right piece for every wall tile. The floor is a quieter version of the same problem. One tile repeated across a whole level looks like wallpaper, so it needed variations: cracks, flowers, tufts of grass, a carved stone here and there.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Jo5g%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jo5g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Jo5g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Jo5g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Jo5g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Jo5g%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg" width="988" height="344" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:344,&quot;width&quot;:988,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61957,&quot;alt&quot;:&quot;The hedge pieces and floor tiles used in the game&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The hedge pieces and floor tiles used in the game" title="The hedge pieces and floor tiles used in the game" srcset="https://substackcdn.com/image/fetch/$s_!Jo5g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Jo5g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Jo5g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Jo5g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4f88d-f3f4-4b30-bd70-06728940c9b2_988x344.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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 wall in Choori is built from the hedge pieces on the left. The floor variations keep a level from looking like wallpaper.</figcaption></figure></div><p>My generated sheets looked fine as images, but the crops were off and the code kept choosing the wrong piece. I redrew them, fixed the crops, and it was still wrong. My notes from that week end like this:</p><blockquote><p><em>"Now I decided to use a tool, TexturePacker, to make my bush.png crop better and make a JSON file of it. But all my AIs got limited and I need to wait to rework."</em></p></blockquote><p>Two lessons in one sentence. Generating an image is easy; making it behave inside a real system is not. And my AI "team" had office hours, set by usage limits.</p><div><hr></div><h2>Teaching AI to design a level</h2><p>This is the part I promised I'd write about.</p><p>By July I had twelve levels and I didn't like most of them. The AI could produce mazes all day, and they were all solvable, technically fine and forgettable. I realised that <strong>a level is not a map</strong>. A map can be perfectly solvable and still be a bad level.</p><p>So I set a rule. Before anyone draws a single tile, every level needs one sentence:</p><blockquote><p><em>This level teaches X by making the player do Y.</em></p></blockquote><p>If you can't write that sentence, you don't have a level. You have a map.</p><p>AI kept skipping that step. Ask it for a level and it jumps straight from "here's the theme" to "here's a random maze". So I built a small studio inside Claude Code to stop it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21z1HK%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z1HK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 424w, https://substackcdn.com/image/fetch/$s_!z1HK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 848w, https://substackcdn.com/image/fetch/$s_!z1HK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!z1HK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21z1HK%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png" width="1600" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221962,&quot;alt&quot;:&quot;How Choori's level-design agents work&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="How Choori's level-design agents work" title="How Choori's level-design agents work" srcset="https://substackcdn.com/image/fetch/$s_!z1HK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 424w, https://substackcdn.com/image/fetch/$s_!z1HK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 848w, https://substackcdn.com/image/fetch/$s_!z1HK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!z1HK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F760ab583-f7f9-4e5c-91e7-249063607c22_1600x1000.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It's twelve small agents, each with one job. One asks why this level exists at this point in the game. One writes the player's goal and the level's story. One plans the spaces: where the danger is, where you can recover, where the babies sit. Then a separate reviewer tries to break that plan.</p><p>Then everything <strong>stops and waits for me</strong>. No map gets drawn until I approve the plan.</p><p>After that, agents draw the map, playtest it, make it pretty without changing what's walkable, and check difficulty and campaign fit. At the very end, an independent QA agent gives a plain PASS or FAIL. There's no "pass with warnings".</p><p>On paper it's a proper game-studio process. In practice, two things happened.</p><p><strong>First, it was slow.</strong> All those handoffs burned through tokens, and one redesign of level 10 got cut off by usage limits three times before it finished. So I started running most levels <em>inline</em>: one AI following the same checklist without the handoffs. Same discipline, a fraction of the cost.</p><p><strong>Second, it caught something I'm still proud of.</strong> The independent QA agent failed one of my early levels. The reason: part of the maze had been added <strong>only to make a difficulty number look right</strong>. It wasn't on any route the player needed. It existed to make a chart look smooth.</p><p>The AI had designed for the metric instead of the player. Another AI, with no stake in the first one's work, caught it. That's when I understood what this system is really for. It doesn't make AI creative. It <strong>gives the AI's judgment a second opinion, and gives me the final say</strong>.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/what-claude-code-could-and-couldnt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Eidos Design | Building with AI! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/what-claude-code-could-and-couldnt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fwhat-claude-code-could-and-couldnt%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><p></p><p>And I used that final say a lot. Level 1-5 introduces the Map View, a power that shows you the whole maze for a few seconds. The AI's first version was small and clear. My note:</p><blockquote><p><em>"The map is so easy, no map view needed. If the goal is to let the player use map view, the player needs to get lost."</em></p></blockquote><p>It was rebuilt as a big maze with long corridors and dead ends, and fewer pigs. Now the power answers a problem the player can actually feel. AI could build that level. It took a designer to ask why the level was there in the first place.</p><div><hr></div><h2>The phone doesn't care</h2><p>Everything ran beautifully on my Mac. Then I played it on my iPhone 15:</p><blockquote><p><em>"After playing some levels, the game gets super laggy, impossible to play. And the phone gets hot."</em></p></blockquote><p>None of the causes were visible in the code. Phaser switches to a "mobile mode" on phones that broke its own batching. A frame-rate setting skipped every other frame because of one rounding error. And every world's art was loaded at once, about 816 MB of images in memory. After fixing all of that, the same phone went from <strong>23 frames per second to 60</strong>, and from 237 draw calls per frame to 5. And it stopped getting hot.</p><p>My old Android test phone was worse: 3 to 8 frames per second. The first conclusion was "this phone is just too slow". A day later we found the real cause: every hedge tile was forcing the graphics chip to stop and restart, <strong>337 times per frame</strong>. After the fix it ran at 55 to 60. The slow phone was running slow code.</p><p>Lesson: the device is the spec, not your laptop.</p><div><hr></div><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;8724ceb1-f878-47b2-b5b0-6b8f07d4c8e8&quot;,&quot;duration&quot;:null}"></div><h2>Shipping is a second product</h2><p>I thought finishing the game meant I was nearly done. Then I had to ship it.</p><p>Apple rejected my first submission. Not the game: the <strong>preview video</strong>. I had made a beautiful cinematic trailer with AI, with crying baby mangoes and a dramatic guinea pig. Apple's answer, under guideline 2.3.4, was that it didn't show the app in use. Fair. I rebuilt it from real gameplay, and the game was approved.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212ktO%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2ktO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2ktO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2ktO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2ktO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212ktO%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg" width="506" height="518.2749326145553" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1140,&quot;width&quot;:1113,&quot;resizeWidth&quot;:506,&quot;bytes&quot;:277029,&quot;alt&quot;:&quot;The rejected cinematic trailer next to the approved gameplay preview&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The rejected cinematic trailer next to the approved gameplay preview" title="The rejected cinematic trailer next to the approved gameplay preview" srcset="https://substackcdn.com/image/fetch/$s_!2ktO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2ktO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2ktO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2ktO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39829630-29b0-44a1-8d34-5af619330c56_1113x1140.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Left: the trailer I loved. Right: the preview Apple accepted. Even the marketing has to be the product.</figcaption></figure></div><p>Google had its own wall. A new personal developer account has to keep <strong>12 testers in a closed test for 14 days in a row</strong> before going public. My first reaction was honest: "I don't have 12 testers." I found them in the end, but that wall took more planning than some of the features.</p><p>There were smaller lessons too. While preparing the privacy labels I found that my analytics tool was quietly recording approximate location by default, while my privacy policy said I didn't collect location. I fixed it before launch. A privacy promise is part of the product, and a default setting can break it without anyone noticing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21LLZt%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LLZt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LLZt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LLZt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LLZt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21LLZt%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg" width="2000" height="1054" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1054,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:700435,&quot;alt&quot;:&quot;Choori's App Store screenshots&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Choori's App Store screenshots" title="Choori's App Store screenshots" srcset="https://substackcdn.com/image/fetch/$s_!LLZt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LLZt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LLZt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LLZt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2e49ea6-1d93-4029-bdd9-c3dcfafddaaf_2000x1054.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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>Most of version 1 is what I cut</h2><p>AI makes it very easy to say yes. Another enemy? Sure. A shop? Sure. Revives, boosters, an endless mode, a second world? Sure.</p><p>But every feature you add, you also have to test, explain and maintain. So version 1 is mostly cuts:</p><ul><li><p><strong>The shop</strong>: built, then hidden.</p></li><li><p><strong>Revives</strong>: cut.</p></li><li><p><strong>The endless mode</strong>: set aside.</p></li><li><p><strong>The hop</strong>: removed.</p></li><li><p><strong>World 2, Whispering Woods</strong>: eight finished levels with forest lakes and a new enemy, the Frog, shipped as "coming soon" so World 1 could be properly polished.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QNwZ%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QNwZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QNwZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QNwZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QNwZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QNwZ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg" width="1600" height="654" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:654,&quot;width&quot;:1600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:344160,&quot;alt&quot;:&quot;World 2, waiting for its turn&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="World 2, waiting for its turn" title="World 2, waiting for its turn" srcset="https://substackcdn.com/image/fetch/$s_!QNwZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QNwZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QNwZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QNwZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F150639bf-f98f-4315-a8c1-d9f09c642e55_1600x654.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Whispering Woods is ready. It's waiting until World 1 has earned it.</figcaption></figure></div><p>"I already built it" is the worst reason to ship something.</p><div><hr></div><h2>So, was it easier?</h2><p>No. It was one of the most challenging projects I've ever done. But it was also one of the most complete.</p><p>On a normal product team there's always someone to hand things to. Here there wasn't. If a level was boring, if the phone got hot, if the store rejected it, it was mine. AI didn't make that easier. It made it <em>possible</em> for one person, and it made design matter more, not less. When making things is cheap, deciding what deserves to exist becomes the real work.</p><p>There's one thing in <a href="iframe.php?url=https%3A%2F%2Fwww.sibistudios.com%2Fchoori">Choori</a> I didn't plan. Every baby you collect follows you, and the more you gather, the more you have to protect. Building it felt exactly the same.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DqKm%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DqKm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DqKm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DqKm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DqKm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DqKm%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg" width="1400" height="933" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:933,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:279422,&quot;alt&quot;:&quot;Mango Mom bringing everyone home&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mango Mom bringing everyone home" title="Mango Mom bringing everyone home" srcset="https://substackcdn.com/image/fetch/$s_!DqKm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DqKm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DqKm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DqKm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f51340-a65f-4ddd-ad1e-6253491cebad_1400x933.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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><a href="iframe.php?url=https%3A%2F%2Fwww.sibistudios.com%2Fchoori">Choori</a> is all <strong>free</strong> on the <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fchoori-rescue-escape%2Fid6798405672">App Store</a> and <a href="iframe.php?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.choori.game">Google Play</a>. Give it a try and tell me what you think. And if you ever played Flicky&#8230; welcome to the retro club. &#128037;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fchoori-rescue-escape%2Fid6798405672" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vHu_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 424w, https://substackcdn.com/image/fetch/$s_!vHu_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 848w, https://substackcdn.com/image/fetch/$s_!vHu_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 1272w, https://substackcdn.com/image/fetch/$s_!vHu_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21vHu_%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png" width="156" height="52" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb81e312-d205-400c-a164-5dacc7881af1_720x240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:720,&quot;resizeWidth&quot;:156,&quot;bytes&quot;:27518,&quot;alt&quot;:&quot;Download Choori on the App Store&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://apps.apple.com/us/app/choori-rescue-escape/id6798405672&quot;,&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="Download Choori on the App Store" title="Download Choori on the App Store" srcset="https://substackcdn.com/image/fetch/$s_!vHu_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 424w, https://substackcdn.com/image/fetch/$s_!vHu_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 848w, https://substackcdn.com/image/fetch/$s_!vHu_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 1272w, https://substackcdn.com/image/fetch/$s_!vHu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb81e312-d205-400c-a164-5dacc7881af1_720x240.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="iframe.php?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.choori.game" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6r_z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 424w, https://substackcdn.com/image/fetch/$s_!6r_z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 848w, https://substackcdn.com/image/fetch/$s_!6r_z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 1272w, https://substackcdn.com/image/fetch/$s_!6r_z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%216r_z%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png" width="168" height="49.77777777777778" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:810,&quot;resizeWidth&quot;:168,&quot;bytes&quot;:36109,&quot;alt&quot;:&quot;Get Choori on Google Play&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://play.google.com/store/apps/details?id=com.choori.game&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Get Choori on Google Play" title="Get Choori on Google Play" srcset="https://substackcdn.com/image/fetch/$s_!6r_z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 424w, https://substackcdn.com/image/fetch/$s_!6r_z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 848w, https://substackcdn.com/image/fetch/$s_!6r_z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 1272w, https://substackcdn.com/image/fetch/$s_!6r_z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94690784-1d0b-4fa9-8828-4f29aeba67ca_810x240.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><p><em>The concepts, sprites and key art in this post were made with ChatGPT's image tool from my direction. The gameplay GIF and the approved preview are real captures from the game.</em></p>]]></content:encoded></item><item><title><![CDATA[AI in UX Studio #20: When Should Your AI Answer With a Screen? Designing Generative UI]]></title><description><![CDATA[ChatGPT now answers with charts, buttons and forms instead of only text. Learn the Shape Ladder and build a Component Menu, so your own AI feature picks the right answer shape and stays inside your design system.]]></description><link>https://eidosdesign.substack.com/p/ai-in-ux-studio-20-when-should-your</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/ai-in-ux-studio-20-when-should-your</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Tue, 27 Oct 2026 15:44:34 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc0a697-1ae2-4c26-bd36-9422d782315e_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>ChatGPT now answers with charts, buttons and forms instead of only text. Learn the Shape Ladder and build a Component Menu, so your own AI feature picks the right answer shape and stays inside your design system.</em></p><p>Hey AI expert designers, Siavash here! Welcome back to <strong>AI in UX Studio</strong>.</p><p>In <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fs%2Fai-in-ux-studio">the last edition</a>, we built our first eval with the S.C.O.R.E. Loop: a Golden Set of scenarios, a pass/fail rubric, and a calibrated AI judge to decide if a new model is ready to ship. We wrote down what "good" means for the <em>words</em> an AI produces.</p><p>Today, we go one step further. Because the words are no longer the whole answer.</p><p>On October 7, 2026, OpenAI started rolling out GPT-6 in ChatGPT together with a feature called <strong>Intelligent UI</strong>. Ask a question and the answer can now arrive as a chart, a side-by-side comparison, an interactive diagram, a form, or a small tool you can play with, like a bill splitter or a savings calculator. OpenAI says the format depends on the question, and simple questions can still get plain text.</p><p>Watch what happens next. Within a few weeks, your PM opens ChatGPT, sees a beautiful interactive answer, and walks over to your desk:</p><p><strong>"Can our assistant do that?"</strong></p><p>And this is where most teams make the same mistake. They let the model decide everything: which shape, which components, which colors, which buttons. The result is an assistant that answers "What's due today?" with a dashboard, invents a button that doesn't connect to anything, and breaks your design system in every second reply.</p><p>I call this <strong>Shape Drift</strong>: an AI that picks the format of its answers by itself, with no rules, until the product feels like ten different apps stitched together. The issue is rarely the model's ability to generate UI. <strong>The issue is that nobody designed the menu it orders from.</strong></p><p>That menu is a design job. Today, we are going to design one from scratch.</p><p>By the end of this tutorial you will:</p><ul><li><p>Understand what <strong>generative UI</strong> is, in plain designer language.</p></li><li><p>Learn <strong>the Shape Ladder</strong>, a 4-rung rule for deciding when an AI should say, show, offer a shortcut, or build a small tool.</p></li><li><p>Build a <strong>Component Menu</strong>: the short list of approved components your AI can use, with rules for each.</p></li><li><p>Prototype it with any AI chat tool, and test it with the Golden Set habit from Edition 19.</p></li></ul><blockquote><p>Before we dive in: if you're not yet subscribed to Eidos Design and haven't joined AI in UX Studio, add your email below so you don't miss the next modules.</p></blockquote><h3>&#10024; Professional AI Prompt Kit for UX Designers &#10024;</h3><p>Before we start this edition, I have a special learning material for you. Want to skip the learning curve and start using production-ready prompts immediately? I've created a comprehensive <strong>AI Prompt Kit</strong> specifically for UX designers and researchers who want to leverage AI as a strategic tool, not just a content generator.</p><p><a href="iframe.php?url=https%3A%2F%2Fsiavashdesign.gumroad.com%2Fl%2FAIPromptKitforUX">Get the AI Prompt Kit for UX Designers</a></p><p><strong>&#10024; A quick note for our Pro subscribers:</strong> If you are a member of the Eidos Design Community, make sure to use the link <strong>at the end of this article</strong> to claim your exclusive <strong>35% discount</strong>.</p><h2>What Generative UI Actually Is</h2><p>Think about asking a colleague for directions.</p><p>Sometimes they just say it: "Second door on the left." Sometimes they grab a napkin and sketch a little map. Sometimes they say "Come, I'll walk you there." A good colleague picks the shape of the answer based on what you need. Nobody draws a map for "second door on the left."</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fai-in-ux-studio-20-when-should-your">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[I learned design to make games, and this is the first one.]]></title><description><![CDATA[How I built Just Shapes in two weeks with Claude: a black-and-white puzzle about attention, two testing bots, six languages, and sound I&#8217;d never designed before.]]></description><link>https://eidosdesign.substack.com/p/building-logs-2-i-learned-design</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/building-logs-2-i-learned-design</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Thu, 22 Oct 2026 13:01:31 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d51b9c7-ca6f-406a-b77b-3c8bf0c51670_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>Building Logs</strong> is the record of the things we at Eidos Design build. Every product we ship gets one: the idea, the design, the code, the store, the hours, the money, and the parts where we got it wrong. <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Vadym Grin&quot;,&quot;id&quot;:135570777,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!kg7K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba8526ce-c5dc-4ab8-aeb4-dd5f5706ff9c_747x747.png&quot;,&quot;uuid&quot;:&quot;f254ae6e-7269-4d89-87ff-01085bfc1d93&quot;}" data-component-name="MentionToDOM"></span> and <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Siavash Memar&quot;,&quot;id&quot;:55273103,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df0cea8d-9d83-4b00-beb6-3f9bde092e1d_747x747.png&quot;,&quot;uuid&quot;:&quot;545c5477-1cfd-4fab-aa7d-d92e6ab3b1a6&quot;}" data-component-name="MentionToDOM"></span> are writing these while the details are still warm, before the story sands itself down into something tidier than it was.</em></p><div><hr></div><p>The first time I opened Photoshop, about twenty years ago, I had no plans to become a designer. I was a teenager who played a lot of computer games, and I wanted to make my own, with all the interface that comes with one: buttons, fancy panels, the small things on a screen that tell you what&#8217;s going on, and units, of course. Design came in through that door, and games stayed on the other side of it for a long time.</p><p><a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fjust-chess-clock%2Fid6793128024">Just Chess Clock</a>, the subject of <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fbuilding-logs-1-i-wanted-a-chess">Building Logs #1</a>, was a rehearsal. I wanted to see how far vibe coding could carry a designer with no time to learn Swift from scratch. It carried me to the App Store in five working days, and that answer opened the door I&#8217;d been standing at since school.</p><p>So product two is a game. <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fjust-shapes-focus-puzzle%2Fid6808954030">Just Shapes: Focus Puzzle</a> is live and free, with no ads and no accounts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DOyu%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DOyu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png 424w, https://substackcdn.com/image/fetch/$s_!DOyu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png 848w, https://substackcdn.com/image/fetch/$s_!DOyu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png 1272w, https://substackcdn.com/image/fetch/$s_!DOyu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DOyu%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png" width="480" height="363.52" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1125,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:308331,&quot;alt&quot;:&quot;Just Shapes icon&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://eidosdesign.substack.com/i/218072219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Just Shapes icon" title="Just Shapes icon" srcset="https://substackcdn.com/image/fetch/$s_!DOyu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png 424w, https://substackcdn.com/image/fetch/$s_!DOyu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png 848w, https://substackcdn.com/image/fetch/$s_!DOyu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.png 1272w, https://substackcdn.com/image/fetch/$s_!DOyu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71b88f92-6069-4eca-90cf-95ee1861a883_1125x852.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Just Shapes</figcaption></figure></div><p>This log runs longer than the first, because a game is a different animal. A clock has to work, but a game has to feel like something, and feel turned out to be the part I had to carry myself, in words, through every round.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>A mood before a mechanic</h2><p>The clock had a brief: fewer taps, light and minimalist design with no distractions, seamless experience. The game started with a purpose &#8212; I wanted something that trains your attention span, in a market full of games built to drain it, with a calm, maybe even meditative atmosphere.</p><p>Before I opened Claude Code, I spent around four days alone, researching with AI and designing in Figma. Most of that time went into mood. A utility can get away with being clean. A game depends on atmosphere: the light, the pace, the sound, the way a screen breathes while you think.</p><p>I found the idea for the whole game in that research. Every merge game I looked at sorts its pieces by colour. Red goes with red, blue with blue, and your eye catches the match before you&#8217;ve thought about it, which is why those games feel easy and loud.</p><p>Take colour away and the job gets harder. A grey hexagon next to a grey circle asks you to look and concentrate. A square beside a diamond, which is the same square turned 45 degrees, asks you to look twice. So Just Shapes runs in black and white, with metallic primitives lit like objects on a table, and all of its difficulty comes from shape.</p><p>You merge shapes to develop your attention span. The mechanic underneath borrows from Two Dots, which I enjoyed for many years, and which became unplayable due to the amount of gamified features, ads, and flash screens trying to sell you something. You connect matching neighbours, close a loop, and clear every shape of that kind. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21nKO9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nKO9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 424w, https://substackcdn.com/image/fetch/$s_!nKO9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 848w, https://substackcdn.com/image/fetch/$s_!nKO9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 1272w, https://substackcdn.com/image/fetch/$s_!nKO9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21nKO9%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png" width="1301" height="870" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:870,&quot;width&quot;:1301,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:235592,&quot;alt&quot;:&quot;The first three drafts of a possible visualization of the game levels&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://eidosdesign.substack.com/i/218072219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The first three drafts of a possible visualization of the game levels" title="The first three drafts of a possible visualization of the game levels" srcset="https://substackcdn.com/image/fetch/$s_!nKO9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 424w, https://substackcdn.com/image/fetch/$s_!nKO9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 848w, https://substackcdn.com/image/fetch/$s_!nKO9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 1272w, https://substackcdn.com/image/fetch/$s_!nKO9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f822dcb-d886-46df-8026-da0ae742e590_1301x870.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Just Shapes first explorations in Claude design</figcaption></figure></div><h2>Rules before pixels</h2><p>On 30 August I opened a session with Claude, shared six Figma frames, and wrote: &#8220;We&#8217;re starting to develop an iOS game called Just Shapes&#8230; The game will be done in black and white colors mainly.&#8221;</p><p>We didn&#8217;t write a line of code for two days. Claude reviewed the frames the way a game designer would, researched Two Dots, other similar games, and came back with problems I hadn&#8217;t seen. My 4 &#215; 7 board was too small for loops with anything inside them, and ten shape types on 28 cells would leave most turns with no move at all. We moved to a 6 &#215; 9 board. The only way to clear a blocker is to enclose it, and a narrow board leaves almost no room for that.</p><p>The best idea of that phase turned the difficulty curve into a similarity curve. Levels introduce shapes in the order people confuse them: square against diamond (orientation), hexagon against circle (curvature), triangle up against triangle down, octagon against hexagon, and at the end a flat hexagon against a pointy one. That last pair differs only by rotation, and it&#8217;s the hardest one in the game.</p><p>The second-best idea was mine, after I&#8217;d changed my mind. I first wanted stars for speed. Then I wrote: &#8220;Let&#8217;s change the mechanics from the speed to the amount of moves that remain after a user finishes the level.&#8221; If you finish in fewer moves, you spotted the loop that cleared the most. That&#8217;s attention, measured at the source, with no timer pushing you around.</p><p>Claude&#8217;s build readiness review summed up the phase in one line I keep coming back to: &#8220;the UI is close to ready. The rules are not.&#8221; For the clock, the rules came free with the idea. For the game, they took two days of work before Claude wrote code.g.</p><h2>Optically similar</h2><p>The first fight was over a triangle.</p><p>Claude built the first level grid in Figma, and the triangle looked small. By the numbers it was correct, area for area. I wrote back: &#8220;It might be mathematically correct, but we need to make all shapes optically similar.&#8221;</p><p>A few rounds of area-matched sizing followed and none of them looked right. That was a point where I understood that Claude can&#8217;t see the design optically; it will stick to math only. So I drew a <code>shapes</code> component myself, by eye: every shape in a 54 &#215; 54 cell, with active, inactive and selected states, and we retired Claude&#8217;s hand-built library the same day. Type designers solved this problem long ago, when they started letting an O overshoot the baseline so it looks as tall as an H. Shapes on a game board need the same correction.</p><p>My component also solved a problem I hadn&#8217;t planned for. The selected state is a 54 pt disc, and the cells sit 54 pt apart, so neighbouring selections merge into one continuous shape and the game needs no connector lines. I wrote back, a little surprised: &#8220;We don&#8217;t need any other connectors indeed.&#8221;</p><p>A later bug came from the same place. Hexagons in the app looked deformed, and for a while neither of us could say why. Claude tracked it down: Figma places a polygon&#8217;s corners on the ellipse inscribed inside its box, and the app had been placing them on the box itself. The app had stretched every hexagon by 15%, and once Claude fixed the maths, the board looked the way I&#8217;d drawn it.</p><h2>Feel is a language problem</h2><p>The models behind Claude are large language models, and they run on language. So I talk to them the way I&#8217;d talk to a person on my team, and every time I use an abstract word, I back it with an example of what I mean.</p><p>&#8220;Cozy&#8221; means nothing on its own. Mine might be a wool blanket and yours a fireplace. &#8220;Metallic&#8221; can be chrome or pewter. If I say a modal needs to feel warm and attach three references for the warmth I have in my head, Claude and I are aligned. If I only say &#8220;warm&#8221;, I get the average of every warm thing in the training data, and the average is slop.</p><p>The first iteration AI gives you is slop. So is the second. I got to a good third iteration through the bridge between Figma and Claude. With the figma-console MCP and its Desktop Bridge plugin, Claude reads exact numbers from my frames (positions, sizes, gradient matrices, text styles) and never invents them. Claude proposes, I take the result into Figma and tweak it by hand, and then I pass it back. Figma stays the source of truth, and my craft stays in the loop.</p><p>We kept that rhythm for the whole build. We worked one screen at a time, in the order a player meets them: splash, tutorial, map, level, settings, audio. Claude built each screen, checked it on a live simulator panel beside our conversation, and I reacted with a short numbered list of plain-language edits like &#8220;a bit faster&#8221;, &#8220;very slow spin&#8221; and &#8220;the triangle looks small&#8221;.</p><p>The tutorial took about ten rounds in under a day. Text slides up first, shapes pop in with a bounce, and selections speed up. Every page gets a fresh board that collapses into its centre, and shapes spin at random while you read. One note from those rounds belongs in any onboarding brief: &#8220;Don&#8217;t make the button disabled. Users can continue anytime.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21aGLZ%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aGLZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 424w, https://substackcdn.com/image/fetch/$s_!aGLZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 848w, https://substackcdn.com/image/fetch/$s_!aGLZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!aGLZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21aGLZ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png" width="580" height="624.6153846153846" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1568,&quot;width&quot;:1456,&quot;resizeWidth&quot;:580,&quot;bytes&quot;:405783,&quot;alt&quot;:&quot;Just Shapes onboarding screens.&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://eidosdesign.substack.com/i/218072219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Just Shapes onboarding screens." title="Just Shapes onboarding screens." srcset="https://substackcdn.com/image/fetch/$s_!aGLZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 424w, https://substackcdn.com/image/fetch/$s_!aGLZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 848w, https://substackcdn.com/image/fetch/$s_!aGLZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!aGLZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f0e049a-d88c-4768-8ef6-7bd74161f9e0_2116x2279.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Onboarding</figcaption></figure></div><p>The glowing border on modals took three rounds. One of my notes read &#8220;glow slowly but constantly moves on the edges&#8221;, and that sentence was the whole spec. It names a feeling with enough precision to build from, and it carries no easing curve or duration.</p><p>My favourite story from the build is about light. The shapes spin while they idle, and at first they carried their highlight with them as they turned. It looked like a 3D render, which was wrong for the mood. So Claude fixed the light in place and let the silhouette rotate underneath it, the way a real object turns on a lit table.</p><p>That change made every spinning circle look frozen, because a circle under a fixed light looks the same from every angle. My first call was to make the circles static. A month later, while building chapter three, I asked for its spheres to &#8220;move up and down&#8230; something visible, but light&#8221;, and then for every circle on the map to do the same. The circles float now, and I needed a whole new chapter to see that answer.</p><p>Motion work taught me one practical habit. Screenshots lag about a second behind an animation, so they misreport motion. Claude checked animations with screen recordings cut into contact sheets, frame by frame, and that kept us from fixing two bugs that didn&#8217;t exist. I&#8217;d reported booster messages as missing, and a video proved they stayed up for their full three seconds. I&#8217;d also reported a map &#8220;that doesn&#8217;t scroll&#8221;, and the video showed me dragging it the wrong way. We settled both with video before anyone touched the code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21cE2Z%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cE2Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 424w, https://substackcdn.com/image/fetch/$s_!cE2Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 848w, https://substackcdn.com/image/fetch/$s_!cE2Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!cE2Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21cE2Z%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png" width="580" height="624.6153846153846" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1568,&quot;width&quot;:1456,&quot;resizeWidth&quot;:580,&quot;bytes&quot;:363917,&quot;alt&quot;:&quot;First chapter screen and a modal.&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://eidosdesign.substack.com/i/218072219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="First chapter screen and a modal." title="First chapter screen and a modal." srcset="https://substackcdn.com/image/fetch/$s_!cE2Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 424w, https://substackcdn.com/image/fetch/$s_!cE2Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 848w, https://substackcdn.com/image/fetch/$s_!cE2Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!cE2Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8538d05e-2375-4a17-a6ad-a7159dcc4f93_2116x2279.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">First chapter and a modal</figcaption></figure></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/building-logs-2-i-learned-design?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Eidos Design | Building with AI! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/building-logs-2-i-learned-design?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fbuilding-logs-2-i-learned-design%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><h2>Sound, the part I'd never done</h2><p>I&#8217;ve designed screens for most of my career. I had never designed a sound.</p><p>The audio came from <a href="iframe.php?url=https%3A%2F%2Felevenlabs.io">ElevenLabs</a>, and Claude wrote the prompts from my descriptions. For the soundtrack I asked for &#8220;soft, chill, meditative music, with some notes of technology, space topic&#8221;. I generated a bunch of soundtracks and a full set of sound effects, and Claude wired them in with rotation, switches in Settings, and haptics.</p><p>Sound was the hardest part of the project and the most intriguing. I used the method from the visual work: language and analogy. The music had to evoke a feeling, so I described the feeling. The micro sounds needed more precision, so I described the physical event, like a shape falling into place or a group of shapes bursting into fragments. Each one took many rounds before it matched the sound in my head. I&#8217;d describe it, listen, describe it closer and listen again, running the same critique loop I use on screens in a medium I&#8217;d never touched.</p><p>Haptics went the other way. I listed the actions that deserved a tap in the hand and described the tempo of each one. Claude did the rest, and got it right on the first pass.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21o2xW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o2xW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 424w, https://substackcdn.com/image/fetch/$s_!o2xW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 848w, https://substackcdn.com/image/fetch/$s_!o2xW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!o2xW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21o2xW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png" width="580" height="624.6153846153846" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1568,&quot;width&quot;:1456,&quot;resizeWidth&quot;:580,&quot;bytes&quot;:689697,&quot;alt&quot;:&quot;First level screen and settings screen with options, and toggles for music, sound effects, haptics and hints.&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://eidosdesign.substack.com/i/218072219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="First level screen and settings screen with options, and toggles for music, sound effects, haptics and hints." title="First level screen and settings screen with options, and toggles for music, sound effects, haptics and hints." srcset="https://substackcdn.com/image/fetch/$s_!o2xW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 424w, https://substackcdn.com/image/fetch/$s_!o2xW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 848w, https://substackcdn.com/image/fetch/$s_!o2xW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 1272w, https://substackcdn.com/image/fetch/$s_!o2xW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59614dd6-23cb-4dc3-9704-b65e447cd6b4_2116x2279.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">First level and Settings screens</figcaption></figure></div><h2>Two bots and a 3%</h2><p>In <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fbuilding-logs-1-i-wanted-a-chess">Log #1</a> I built one bot to play chess against my clock. For the game I asked for two:</p><p>&#8220;First bot&#8217;s role is a professional tester of such casual mobile games. It needs to play all the levels and give me the report&#8230; Second bot&#8217;s role is a professional QA specialist. It needs to go through the app, test every function, and every level on most popular devices.&#8221;</p><p>Claude built an autoplay harness and ran two agents on separate simulators. The harness plays every level hundreds of times with four modelled players, from one that connects random pairs to an expert with boosters. For the first time, I could put a number on difficulty instead of guessing.</p><p>The playtester&#8217;s verdict: &#8220;Playable and pleasant; not yet fair.&#8221; A player cleared levels 1 to 7 using a quarter of their moves. Levels 8 to 13 were the game at its best. From level 14 the win rates fell off a cliff, and a perfect player without boosters won level 20 3% of the time.</p><p>That 3% was the most useful number the bots produced, because it turned &#8220;is level 20 too hard?&#8221; into a fact. I tuned the game in one message: &#8220;Levels 14&#8211;18 we add 4 moves. We add 6 moves on level 20. Levels 2&#8211;7 we make 3 moves less.&#8221; After tuning, the expert won levels 18, 19 and 20 about 91, 64 and 62% of the time.</p><p>The QA agent found real bugs. Neighbouring levels opened on the same board, because the seed search stepped by one and levels 4, 5 and 6 all landed on the same seed. The game saved stars only when you tapped the result screen&#8217;s button, so a phone call at the wrong moment erased a win. And the privacy policy link pointed at another app&#8217;s policy.</p><p>I&#8217;m a designer, and I don&#8217;t spend my evenings playing casual puzzles, so I don&#8217;t carry the mental model of someone who does. Watching a modelled pro and a modelled casual player work through my levels gave me that perspective. The bots measured fairness and left the question of calm to me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DfDC%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DfDC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 424w, https://substackcdn.com/image/fetch/$s_!DfDC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 848w, https://substackcdn.com/image/fetch/$s_!DfDC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 1272w, https://substackcdn.com/image/fetch/$s_!DfDC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DfDC%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png" width="880" height="712" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:712,&quot;width&quot;:880,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109361,&quot;alt&quot;:&quot;Reports from testing bots in Claude.&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://eidosdesign.substack.com/i/218072219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Reports from testing bots in Claude." title="Reports from testing bots in Claude." srcset="https://substackcdn.com/image/fetch/$s_!DfDC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 424w, https://substackcdn.com/image/fetch/$s_!DfDC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 848w, https://substackcdn.com/image/fetch/$s_!DfDC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 1272w, https://substackcdn.com/image/fetch/$s_!DfDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeddb20c-da60-4dd4-a3f6-f392d12f9c2e_880x712.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Testing resport</figcaption></figure></div><h2>Localisations</h2><p>I picked the big languages first: English, Spanish and French. Then I added German, because I live in Germany, Ukrainian, because I&#8217;m from Ukraine, and Italian, because I admire it.</p><p>Ukrainian broke first. The game&#8217;s typeface, Asap, has no Cyrillic, so we set the Ukrainian version in Fira Sans. The Ukrainian copy also speaks to the player with the formal &#171;&#1074;&#1080;&#187;, which sidesteps gendered verb forms, so the game never has to guess a player&#8217;s gender.</p><p>German broke second. Its long words pushed the layout around, and a few screens needed tweaks.</p><p>Spanish arrived in the first update, along with my favourite localisation story. &#8220;MOVIMIENTOS&#8221; didn&#8217;t fit the level&#8217;s top bar, so Spanish players make &#8220;jugadas&#8221; instead. The meaning is close enough, the word is four letters shorter, and to my ear it sounds more like play.</p><h2>The gate, round two</h2><p>I went straight to App Store review, and the upload failed before review could start.</p><p>Somebody already had the name! The upload came back with &#8220;name already in use&#8221;, and my message to Claude was the most honest sentence of the whole project: &#8220;shit, we have a problem :D&#8221; The record went through as <strong>Just Shapes: Focus Puzzle</strong>, which describes the game better anyway.</p><p>I designed the store screenshots in Figma. For those Claude staged each one on the simulator with debug launch arguments (<code>-level 15</code>, <code>-moves 1</code>, <code>-language es</code>) that jump straight to any game state, then translated the full listing, keywords included.</p><p>The first update brought one more decision. I wanted analytics: installs, location, a level funnel, and gender. Claude advised against gender. The only source is an ad-identifier estimate, which would need Apple&#8217;s tracking prompt and a &#8220;Data Used to Track You&#8221; label on a game whose whole pitch is calm. We chose <a href="iframe.php?url=https%3A%2F%2Ftelemetrydeck.com">TelemetryDeck</a>, which is anonymous, skips IP addresses and needs no consent prompt. The store label stays at &#8220;Data Not Linked to You&#8221;.</p><p>The clock waited almost four weeks for review. I submitted Just Shapes on 6 September, and it went live on 9 September. Apple approved the update with chapter three and Spanish within a day, and rejected neither version.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%213zmq%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3zmq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 424w, https://substackcdn.com/image/fetch/$s_!3zmq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 848w, https://substackcdn.com/image/fetch/$s_!3zmq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 1272w, https://substackcdn.com/image/fetch/$s_!3zmq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%213zmq%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png" width="880" height="385" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:385,&quot;width&quot;:880,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28645,&quot;alt&quot;:&quot;App Store's positive reviews for two build submissions.&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://eidosdesign.substack.com/i/218072219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="App Store's positive reviews for two build submissions." title="App Store's positive reviews for two build submissions." srcset="https://substackcdn.com/image/fetch/$s_!3zmq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 424w, https://substackcdn.com/image/fetch/$s_!3zmq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 848w, https://substackcdn.com/image/fetch/$s_!3zmq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 1272w, https://substackcdn.com/image/fetch/$s_!3zmq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c7d872-e290-41a1-b2ef-57b8d7da77a5_880x385.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">AppStore reviews report</figcaption></figure></div><div><hr></div><h2>The ledger</h2><ul><li><p><strong>Research and solo design:</strong> about four days in Figma</p></li><li><p><strong>First message to App Store submission:</strong> seven days</p></li><li><p><strong>Writing code:</strong> about four and a half of those days</p></li><li><p><strong>Total, end to end:</strong> about two weeks</p></li><li><p><strong>Code:</strong> 76 commits, about 4,900 lines of Swift across 45 files, no third-party code except the TelemetryDeck SDK</p></li><li><p><strong>Content:</strong> 30 levels across 3 chapters, 9 shape types, a 6 &#215; 9 board</p></li><li><p><strong>Languages:</strong> 6</p></li><li><p><strong>Testing:</strong> 2 agents, 4 modelled players, 100 to 600 games per level per run</p></li><li><p><strong>Models:</strong> Claude Fable 5.1 for the launch build, Claude Opus 5.5 for the first update</p></li><li><p><strong>Money:</strong> Claude Max with $100 per month subscription, <a href="iframe.php?url=https%3A%2F%2Felevenlabs.io%2Fpricing">ElevenLabs Starter</a> at $6 a month for the commercial licence, and the $99 Apple Developer Program fee already paid for the clock</p></li><li><p><strong>Price on the store:</strong> free, with no ads and no in-app purchases</p></li><li><p><strong>Review time:</strong> 3 days for launch, about a day for the update</p></li><li><p><strong>Rejections:</strong> none</p></li><li><p><strong>Cut:</strong> nothing</p></li></ul><p>The clock took five days and the game took two weeks, while the coding took about the same time on both. I spent the extra days on the parts a player feels.</p><div><hr></div><h2>What I&#8217;d tell a builder looking at this</h2><ul><li><p>Write the rules before you draw the screens.</p></li><li><p>Make your difficulty curve mean something.</p></li><li><p>Trust your eye over the maths.</p></li><li><p>Describe feel in words, and back every abstract word with a reference.</p></li><li><p>Check motion with video.</p></li><li><p>Let bots measure fairness.</p></li></ul><div><hr></div><h3>And this is it for today,</h3><p>Twenty years ago, a teenager opened Photoshop to draw a game interface. It took twenty years (a career!), and then just two weeks of talking to a language model in plain words, and the game exists now. It&#8217;s <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fjust-shapes-focus-puzzle%2Fid6808954030">free on the App Store</a>.</p><p>Next, I&#8217;m working on something bigger: a narrative strategy game. That one will need monetisation, a much longer build, and a much longer log to match.</p><p><em>As always, this newsletter is free, but if you enjoyed it, please consider sharing it with a friend or two. Spreading the love is what it&#8217;s all about, folks </em>&#128420;</p><blockquote><p>Sincerely, <br>Vadym Grin</p></blockquote><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI in UX Studio #19: Evals for Designers: Know If Your AI Feature Got Better or Worse]]></title><description><![CDATA[Learn the S.C.O.R.E. Loop: write the scenarios and the pass/fail criteria that define "good" for your AI feature, then use them to decide if a new model is ready to ship.]]></description><link>https://eidosdesign.substack.com/p/ai-in-ux-studio-19-evals-for-designers</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/ai-in-ux-studio-19-evals-for-designers</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Tue, 20 Oct 2026 07:01:13 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F893fe747-f72c-46f5-91e5-10fa6916fc97_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey AI expert designers, Siavash here! Welcome back to <strong>AI in UX Studio</strong>.</p><p>In <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fs%2Fai-in-ux-studio">the last edition</a>, we designed the moment an AI agent asks permission. We built the Check-In Map, wrote Approval Cards and Receipts, and ran a Trust Test with five users. At the end, I promised we would go one layer deeper: how to define "good" for an AI feature in a way engineers &#8230;</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fai-in-ux-studio-19-evals-for-designers">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Eidos Design. Vol. XL: The shop that lost a millennial and might win Gen Z]]></title><description><![CDATA[A full teardown of Cosmos, the calm Pinterest alternative for creatives, and what happens to a cozy refuge once it adds an infinite feed and a shop.]]></description><link>https://eidosdesign.substack.com/p/volume-xl-the-coziest-corner-of-the</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/volume-xl-the-coziest-corner-of-the</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Fri, 16 Oct 2026 13:02:09 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb263da79-1f1f-412f-b2f5-5ff71a16a7ef_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Hello fellow designers, creatives, digital professionals and Eidos Design members!</strong></p><p>October has moved in. The blankets came down from the top shelf, the warm lamps stay on past four in the afternoon (at least in my part of the planet), and a group chat is negotiating the yearly Gilmore Girls rewatch. Okay, just joking :) But we all want the same thing this time of year: something warm to hold and somewhere soft to land.</p><p>A small heartbreak to go with your herbal tea: Stars Hollow's (a fictional town from Gilmore Girls) famous autumn never happened in Connecticut. As Cosmos's own newsletter <a href="iframe.php?url=https%3A%2F%2Fwww.cosmos.so%2Fsequence%2Ffaking-fall">Sequence</a> reminds us, the crew shot the show on a backlot in Burbank and swapped real leaves for silk ones. The most comforting fall on television was set dressing.</p><p>I&#8217;ve been curating Cozy like forever. Plenty of unnecessary things, clothes, interiors filled with amber lights, are saved into a folder called &#8220;Nice Things&#8221;. And the app holding that folder matters more than it looks. Pinterest, the default for a decade, got loud with ads and <a href="iframe.php?url=https%3A%2F%2Ftechcrunch.com%2F2025%2F04%2F30%2Fpinterest-launches-new-tools-to-fight-ai-slop">AI-generated images</a>, and plenty of creatives went looking for another cozy room to save their stuff. </p><p>A lot of designers found that room in <a href="iframe.php?url=https%3A%2F%2Fwww.cosmos.so%2F">Cosmos</a>. It's calm, and it credits the people behind its images. It also lets you hide AI-generated pictures with a single setting. And in September, it opened a shop.</p><p>This issue: A full teardown of <strong>Cosmos App</strong>, what its small switch for hiding AI images and launching a &#8220;Shop&#8221; teaches the rest of us about earning trust.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Cosmos: a cozy room with a new price tag</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xCam%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xCam!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!xCam!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!xCam!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!xCam!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xCam%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:759507,&quot;alt&quot;:&quot;Cosmos app icon&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://eidosdesign.substack.com/i/220272020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cosmos app icon" title="Cosmos app icon" srcset="https://substackcdn.com/image/fetch/$s_!xCam!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!xCam!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!xCam!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!xCam!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed1e862e-077f-4f72-858c-040291dfb0c9_1400x400.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Cosmos</figcaption></figure></div><p>Most of us have one friend with impossible taste. You spend autumn evenings in her living room because everything there feels chosen, from a lamp she found at a Copenhagen flea market to a chair you'd never have found on your own. These days she's started putting small price tags on the lamps. She's still lovely, and the room is still beautiful, but you notice the tags anyway and start wondering which lamp you're supposed to buy.</p><p><a href="iframe.php?url=https%3A%2F%2Fwww.cosmos.so%2F">Cosmos</a> is that living room. It's a visual discovery app for creatives, the place a lot of designers moved their moodboards once Pinterest filled up with ads and AI slop. It has a gallery-quiet feed and a taste level <a href="iframe.php?url=https%3A%2F%2Fbusinessofhome.com%2Farticles%2Fcosmos-wants-to-be-more-than-just-pinterest-for-the-cool-kids">Business of Home</a> places closer to Salone del Mobile than to the Mall of America.</p><h3>Who built it</h3><p>Cosmos started as a side project. <a href="iframe.php?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAndy_McCune">Andy McCune</a>, who co-founded the storytelling app Unfold and sold it to Squarespace, began building it in 2021 with Luca Marra to fix a <a href="iframe.php?url=https%3A%2F%2Fwwd.com%2Fbusiness-news%2Fbusiness-features%2Fcosmos-app-visual-inspiration-creatives-design-1238680412%2F">personal frustration</a>: creative references scattered everywhere with no single home. At the time he was building a house with an architect and a brand with an agency, so he invited everyone into his tool. Collaborators started telling him it could replace their Pinterest.</p><p>From there it moved fast. GV and Accel led a <a href="iframe.php?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Fthecsms_introducing-cosmos-a-pinterest-alternative-activity-7076939606499172352-iciv">$6 million seed round</a>. Apple named Cosmos one of its 25 apps of 2025, it reached number one in the Design category in 28 countries, and in January 2026 it closed a $15 million Series A.</p><p>McCune&#8217;s mission:</p><blockquote><p>Visual culture had lost its center.</p></blockquote><h3>The first run</h3><p>This place is cozy indeed, and it feels expensive. Everything moves with care, from the onboarding screens to the soft haptics under your thumb. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21M2tl%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M2tl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!M2tl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!M2tl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!M2tl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21M2tl%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png" width="480" height="517.5338345864661" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1434,&quot;width&quot;:1330,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:861849,&quot;alt&quot;:&quot;Comos app onboarding screens&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://eidosdesign.substack.com/i/220272020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Comos app onboarding screens" title="Comos app onboarding screens" srcset="https://substackcdn.com/image/fetch/$s_!M2tl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!M2tl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!M2tl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!M2tl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5d1d0d-67d2-4ec0-a448-3bc6dcd81dfe_1330x1434.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Cosmos onboarding</figcaption></figure></div><p>Then the onboarding asked for my gender and my age. I couldn&#8217;t see the value behind those questions. Nothing on the screen promised that my answers would shape the feed, so it felt like data collection without a reason attached. Right after that came the notification prompt. That&#8217;s a pet peeve of mine as a designer. Let people explore and see the value first, then ask for favors once they think, &#8220;Yes, I don&#8217;t want to miss this.&#8221; Cosmos asked for my notifications before it had shown me a single image.</p><p>The first real screen surprised me in the other direction. It&#8217;s almost empty: one search bar, a calm line inviting you to get started on your next project, and a subtitle about finding inspiration for your wardrobe, your home, or whatever you&#8217;re working on. It&#8217;s minimal and clear, and it&#8217;s also a little bossy. Some evenings I have no project at all. I want to roam and catch a mood, maybe procrastinate a little, and the empty screen leaves me alone with a search bar and no idea what to type.</p><p>Once I ran my first search, the app came alive. The home screen turned into a real feed, and that first empty screen moved over to become the Search tab.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21MzmX%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MzmX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!MzmX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!MzmX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!MzmX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21MzmX%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png" width="480" height="517.5338345864661" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1434,&quot;width&quot;:1330,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:1026870,&quot;alt&quot;:&quot;Cosmos app home screens&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://eidosdesign.substack.com/i/220272020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cosmos app home screens" title="Cosmos app home screens" srcset="https://substackcdn.com/image/fetch/$s_!MzmX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!MzmX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!MzmX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!MzmX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c72935-cc7f-4c8a-b151-a4e4af0b5c46_1330x1434.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Cosmos app</figcaption></figure></div><p>Saving is the core job, and Cosmos makes it feel effortless. You can open any image and tap the save button as you would anywhere else. The move I loved is the long press. Hold an image and it lands in a collection right away, with no extra screen in between. It&#8217;s the kind of shortcut you stop noticing after a day because it fits your hand. You can share collections and build them with collaborators, and the <a href="iframe.php?url=https%3A%2F%2Fwww.cosmos.so%2F">browser extension</a> catches images from the web.</p><p>Search is where Cosmos shows off. You can type a word or search with an image, and tapping the Cosmos icon on the Home tab opens the infinity canvas, a full-screen cascade of images. </p><p>The better trick is color. Apple&#8217;s editors point out in the <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fcosmos-search-discover%2Fid1577975475">Editors&#8217; Choice note</a> that adding a hex code to your query returns results in that shade. I tried &#8220;autumn interior <code>#8B4513</code>,&#8221; and it works. The results were warm, and full of autumn mood. They also mixed interiors with paintings, art pieces and a few random images that had nothing to do with rooms. I asked for interiors in a color, and the search heard the color better than the intent.</p><p>My mood changed on the new tab. The Shop wears the same clean grid and generous white space as the rest of Cosmos, and it still feels like a regular marketplace in a cashmere sweater. The prices sit at the top end of the range, and the mood lands somewhere between Etsy and a department store catalog. Tap a product and you leave the app for the brand&#8217;s own website, Ralph Lauren in my case, to buy it there. So the Shop works more like a board of tasteful ads than a store.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21k-Uy%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k-Uy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!k-Uy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!k-Uy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!k-Uy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21k-Uy%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png" width="482" height="519.6902255639097" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1434,&quot;width&quot;:1330,&quot;resizeWidth&quot;:482,&quot;bytes&quot;:2419321,&quot;alt&quot;:&quot;Cosmos app search results by HEX color and the Shop tab&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://eidosdesign.substack.com/i/220272020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cosmos app search results by HEX color and the Shop tab" title="Cosmos app search results by HEX color and the Shop tab" srcset="https://substackcdn.com/image/fetch/$s_!k-Uy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!k-Uy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!k-Uy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!k-Uy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91fc4a5-2a1e-4a7b-9da5-a44c6c445bac_1330x1434.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Search by HEX and the Shop tab</figcaption></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/volume-xl-the-coziest-corner-of-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fvolume-xl-the-coziest-corner-of-the%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><div><hr></div><p><em>Reminder: Product evaluation is done according to <strong><a href="iframe.php?url=https%3A%2F%2Fwww.interaction-design.org%2Fliterature%2Farticle%2Fnorman-s-three-levels-of-design">Don Norman&#8217;s 3 levels of design</a></strong>.</em></p><h3>Visceral level: 5/5</h3><p><em>The visceral level is responsible for first impressions.</em></p><p>Opening Cosmos feels like walking into a gallery after a long day at the mall. The interface steps back and lets the images take the room. There are no comments under pictures and no like counters shouting at you.</p><p>Transitions are smooth and the haptics land soft and well placed, which gives the whole app a luxurious finish. The taste itself is part of the visual design too. Cosmos runs a machine-learning model that rates every image and pushes anything below the bar down in search. Business of Home describes the result as vintage magazine spreads and Bauhaus tabletops. My own feed leaned hard on Braun.</p><p><em>Emotional signal: &#8220;I can breathe in here.&#8221;</em></p><h3>Behavioral level: 4/5</h3><p><em>This level focuses on usability, how the product performs and whether it effectively solves user problems.</em></p><p>Cosmos does the job it was built for. Collecting, sorting and finding references takes little effort. The design moves I&#8217;d study:</p><ul><li><p><strong>Long press to save.</strong> Hold an image and it goes straight into a collection, with no menu in between.</p></li><li><p><strong>Color as a search input.</strong> Pick a shade or type a hex code. That&#8217;s how designers think about references anyway.</p></li><li><p><strong>Research captions.</strong> AI tags images with context, so a green staircase turns out to be Eliel Saarinen&#8217;s 1925 work at the Cranbrook Academy of Art, and each name links to more of it. The credits double as links.</p></li><li><p><strong>Hide AI, three ways.</strong> Show, blur or hide anything flagged as AI-generated. It&#8217;s one setting, and it does what it says.</p></li><li><p><strong>Collaboration built in.</strong> Invite a client or a teammate into a collection, and you work from the same wall of references.</p></li></ul><p>One thing cost it a point, and it&#8217;s the feed. A recurring complaint in the App Store reviews is seeing the same images over and over on For You, with discovery tilted toward images that already have lots of connections. I saw it too. Pinterest feels like an endless sprawl, and the Cosmos feed comes back around fast, and within a short scroll I&#8217;d seen some images three or four times. The most frequent guest in my feed were Braun&#8217;s objects. That&#8217;s a safe bet, since you can&#8217;t go wrong showing Dieter Rams to designers, but a safe bet shown four times starts to feel like a tricky loop.</p><p><em>Emotional signal: &#8220;Right shade, wrong room.&#8221;</em></p><h3>Reflective level: 3/5</h3><p><em>The reflective level considers the long-term impression and deeper meaning of the design, how it aligns with the user's identity and values.</em></p><p>The first is the AI switch. The setting first launched as a blur, and it hit AI images everywhere, including the ones sitting in people&#8217;s old moodboards. Some users found out they&#8217;d been collecting AI images without knowing it, and McCune told <a href="iframe.php?url=https%3A%2F%2Fwww.fastcompany.com%2F91476491%2Fcosmos-the-hit-pinterest-alternative-mulls-what-ai-should-be-for">Fast Company</a> how one of them put it: &#8220;I feel like I&#8217;ve been tricked.&#8221; Cosmos never promoted the setting, and around 10% of users still chose to block AI content. McCune also says he turned down the easy route of one-click AI prompting on top of any image, the kind of feature he believes could have built a multibillion-dollar company fast. He left it out because it isn&#8217;t the company he wants to run.</p><p>The second is credit. Most platforms cut an image off from the person who made it. Cosmos stitches it back with research captions, and McCune calls the lost provenance of images one of the biggest problems in visual culture.</p><p>Then the price tags arrive. On paper, the Shop rests on a fair idea. Plenty of Cosmos searches come from people looking for something to buy, so show them a real brown leather couch at that moment and skip the cleaning-product ads in the feed. McCune wants an engine that knows its users so well that ads feel like helpful suggestions, and he says Cosmos will have &#8220;more aesthetic and taste context on you than any other platform on the internet.&#8221;</p><p>In practice, the Shop changed how the whole app felt to me. Around 90% of what it showed me was beautiful and close to my own taste, and that&#8217;s the problem. I open Cosmos when I want something nice to look at, sometimes on a bad day, to find a mood. Now that mood comes with a Ralph Lauren link. The app learns what calms me down, and the Shop sits one tab away, ready to turn that calm into a purchase.</p><p>Read McCune&#8217;s sentence again as a designer. In the living room from the opening, taste context is a friend who knows you well. In a business plan, it&#8217;s a data asset, and the cheapest way to cash it in is to sell to people at the moment they come looking for comfort. I understand the business model, and it&#8217;s a clever one, but that&#8217;s the exact point where my trust in Cosmos dropped&#8230; My millenial&#8217;s trust though.</p><p>I should admit something here. I grew up with a line between the place where I browse and the place where I buy, and the generations behind me barely draw that line. <a href="iframe.php?url=https%3A%2F%2Fwww.emarketer.com%2Fcontent%2Ffaq-on-gen-z--how-marketers-reach-this-generation-2026">EMARKETER</a> puts Gen Z&#8217;s social media buyer rate at 56%, against 36.5% for the total population. A <a href="iframe.php?url=https%3A%2F%2Fwww.surveymonkey.com%2Fcuriosity%2Fgen-z-social-media-and-shopping-habits%2F">SurveyMonkey study</a> found that millennials still lean on shopping websites like Amazon or Target for ideas, while Gen Z spreads its discovery across social media, friends and physical stores. And <a href="iframe.php?url=https%3A%2F%2Fwww.numerator.com%2Fgen-z-consumer-behavior%2F">Numerator</a> reports that 44% of Gen Z shoppers bought something on a social platform in the past month.</p><p>Gen Alpha takes it further. In <a href="iframe.php?url=https%3A%2F%2Fwww.pwc.com%2Fus%2Fen%2Findustries%2Fconsumer-markets%2Flibrary%2Fgen-alpha-survey-report.html">PwC&#8217;s 2026 survey</a> of kids aged 7 to 14, 61% said social media makes them want to buy things, ahead of friends (56%) and TV ads (48%). Among 7- to 9-year-olds, the figure was still 57%. Cosmos is rated 18+, so Alphas can&#8217;t sign up yet. The oldest of them get there in 2028, and they&#8217;ll arrive expecting the feed and the store to be the same place.</p><p>For that audience, a Shop tab next to a moodboard reads as a feature, and the tag on the lamp is part of the point. Even they might find one thing missing. <a href="iframe.php?url=https%3A%2F%2Fwww.emarketer.com%2Ftopics%2Fcategory%2Ftiktok%2F5">TikTok Shop</a>, which eMarketer expects to pass Target in US ecommerce this year, keeps discovery and checkout in one place. Cosmos sends you out to the brand&#8217;s website to pay. It has built the social half of social commerce and left the checkout outside.</p><p>So Cosmos gets a 3/5 here, and I decided not to stick with it. <strong>Treat that as a millennial&#8217;s score.</strong> The care in the product is real, yet every cozy search now makes me wonder who that search is working for.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21JjVb%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JjVb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!JjVb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!JjVb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!JjVb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21JjVb%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png" width="482" height="519.6902255639097" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1434,&quot;width&quot;:1330,&quot;resizeWidth&quot;:482,&quot;bytes&quot;:972628,&quot;alt&quot;:&quot;Cosmos Shop experience&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://eidosdesign.substack.com/i/220272020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cosmos Shop experience" title="Cosmos Shop experience" srcset="https://substackcdn.com/image/fetch/$s_!JjVb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 424w, https://substackcdn.com/image/fetch/$s_!JjVb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 848w, https://substackcdn.com/image/fetch/$s_!JjVb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 1272w, https://substackcdn.com/image/fetch/$s_!JjVb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c00b87a-6cdb-477a-8a4c-d94f4f46ba8d_1330x1434.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Cosmos shop</figcaption></figure></div><p><em>Emotional signal: "I came for a mood, and they sold me the mood."</em></p><h3>Where it falls short</h3><p><strong>The onboarding asks before it gives.</strong> It asks for gender and age with no explanation of what they&#8217;re for, then shows a notification prompt before I&#8217;d seen a single feed. Both ask for trust the product hasn&#8217;t earned yet.</p><p><strong>Search hears the color better than the intent.</strong> A query for autumn interiors in one shade brought back paintings and random art pieces next to the rooms I asked for. The hex code works. Cosmos still has to learn that &#8220;interior&#8221; means a room.</p><p><strong>The feed loops.</strong> Repetition was an annoyance in a finite feed. In an infinite one, it becomes the main experience on slow days.</p><p><strong>The captions can be wrong.</strong> Research captions are AI-generated, and <a href="iframe.php?url=https%3A%2F%2Fbusinessofhome.com%2Farticles%2Fcosmos-wants-to-be-more-than-just-pinterest-for-the-cool-kids">Business of Home</a> found misattributions with enough digging. A platform built on credit has to treat a wrong credit as a serious bug.</p><p><strong>Pro stays a mystery box, even after you open it.</strong> The subscription costs $8 a month, or $72 a year, which works out to $6 a month. The paywall lists five perks:</p><ul><li><p>A personalized username, including first names and handles under four characters.</p></li><li><p>Early access to new features.</p></li><li><p>A custom grid with your preferred column count on desktop.</p></li><li><p>Bulk export of elements.</p></li><li><p>Instant downloads of your clusters.</p></li></ul><p>I wouldn&#8217;t pay $6 a month for any of them. The free app already does everything that matters, and Pro reads like a tip jar with a few stickers attached.</p><h3>How rivals solve the same problem</h3><p><a href="iframe.php?url=https%3A%2F%2Fwww.pinterest.com">Pinterest</a> is the giant Cosmos defines itself against. It now labels AI-modified Pins and lets you ask for fewer AI Pins in categories like beauty and art. That turns the slop down. Cosmos lets you switch it off. Pinterest also runs on ads, the same noise Cosmos users left behind, and with its new Shop tab Cosmos is walking a few steps back toward it.</p><p><a href="iframe.php?url=https%3A%2F%2Fwww.are.na%2F">Are.na</a> stands on the other side of the room. It has no ads and no personalized recommendations, and its 20,516 Premium members pay for the whole thing. It&#8217;s slower and plainer, and it has nothing to sell you.</p><p>Cosmos sits between them, with Are.na&#8217;s calm, Pinterest&#8217;s discovery engine, and now some of Pinterest&#8217;s shopping instincts too. The middle position gives Cosmos both its calm and its reach, and the Shop shows how fast it can slide toward the Pinterest end.</p><h3>The verdict, and what you can steal</h3><p>Cosmos gets the core right, and it treats taste as craft and puts credit back on the image, and the long-press save and hex search make it one of the most pleasant inspiration apps I&#8217;ve held.</p><p>The price tags change the room. A shop that answers your search could live there for years. A shop built on your moods, one tap away from the brand&#8217;s checkout, reads the room for its own reasons. For me, that was enough to walk out, even though I loved the furniture. And that&#8217;s a millennial walking out. What doesn&#8217;t work for me can be a perfect fit for Gen Z and Gen Alpha, who already treat the feed as the store. Cosmos might be designing for the people who&#8217;ll walk into the room after me.</p><p>Lessons to take into your own product:</p><p>&#10003; <strong>Give people a switch for their worry.</strong> Then let them see what it changes, even when the answer is uncomfortable.</p><p>&#10003; <strong>Know whose habits you&#8217;re designing for.</strong> A pattern that breaks one generation&#8217;s trust can feel native to the next, so test commerce with the people who&#8217;ll use it.</p><p>&#10003; <strong>Build credit into the content.</strong> Provenance works best when it doubles as navigation.</p><p>&#10003; <strong>Let commerce answer intent first.</strong> A product in search results is help. The same product dropped into a feed is an ad.</p><p>&#10003; <strong>Guard the mood people bring.</strong> If people come to you for comfort, selling to that comfort spends the trust you built.</p><h3><strong>Overall: 4.0/5 &#11088;</strong></h3><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/volume-xl-the-coziest-corner-of-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fvolume-xl-the-coziest-corner-of-the%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><div><hr></div><h3>And this is it for today,</h3><p>Cosmos embodies unparalleled design, elegance, convenience, and thoughtfulness. It&#8217;s a digital design masterpiece. The app gives an incredible calming effect in the beginning. However, my rating dropped because of the Shop. While it is exceptionally well-made, it simply feels out of place and seems to exploit your vulnerabilities and mood. </p><p>If I were reviewing this from a  design and entrepreneurial perspective, it would probably be a 10 out of 5. After all, it&#8217;s brilliant. However, as a designer, the Shop has marred my impression. For me, it&#8217;s just a beautiful app. It&#8217;s neither a place for inspiration and tranquility nor a marketplace.</p><p>Hit reply and tell me where you keep your references these days: Pinterest, Cosmos, Are.na, or a camera roll full of screenshots you swear you&#8217;ll sort this winter. And if you&#8217;re Gen Z, tell me whether that Shop tab feels as normal to you as the data says it should.</p><p><em>As always, this newsletter is free, but if you enjoyed it, please consider sharing it with a friend or two. Spreading the love is what it's all about, folks </em>&#128420;</p><blockquote><p>Sincerely, <br>Vadym Grin</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI in UX Studio #18: Design the Moment Your AI Agent Asks Permission]]></title><description><![CDATA[Map every agent action with the Check-In Map, prototype the approval, activity and receipt screens with AI, and test trust with 5 users before engineering builds anything.]]></description><link>https://eidosdesign.substack.com/p/ai-in-ux-studio-18-design-the-moment</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/ai-in-ux-studio-18-design-the-moment</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Tue, 13 Oct 2026 13:16:56 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0928ad6e-6115-4af3-aef4-7d4921e8746d_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey AI expert designers, Siavash here! Welcome back to <strong>AI in UX Studio</strong>.</p><p>In <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fs%2Fai-in-ux-studio">the last edition</a>, we rescued our Custom GPTs and turned them into portable skills we own, test and version. Our methods now travel with us. At the end, I promised we would look at the other side: the <strong>interfaces around the agents</strong> that use those skills.</p><p>Today, we keep that promise.</p><p>Ma&#8230;</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fai-in-ux-studio-18-design-the-moment">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Eidos Design. Vol. XXXIX: Why your "Umms" beat perfect prompts (and the app built on that)]]></title><description><![CDATA[A teardown of VoiceOS and its Agent Mode: two keys, confirmation cards in the notch, and why messy human speech beats a carefully engineered prompt right now.]]></description><link>https://eidosdesign.substack.com/p/eidos-design-vol-xxxix-why-your-umms</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/eidos-design-vol-xxxix-why-your-umms</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Wed, 30 Sep 2026 13:01:19 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7818a76-64bb-4e7f-9fbf-5d3e91dbffc5_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Hello fellow designers, creatives, digital professionals and Eidos Design members!</strong></p><p>A year ago my prompts looked like legal contracts: numbered rules, role definitions, output formats, and a &#8220;do not&#8221; list longer than the task itself. Some weeks I&#8217;d run one AI tool just to polish the prompt I was about to feed another one. A prompt for the prompt. It felt like engineering.</p><p>Lately that ritual works worse. The thing that works best on my desk right now is a voice note. Unedited, full of &#8220;umm,&#8221; &#8220;so, like,&#8221; and sentences that change direction halfway through. I talk the problem through the way I&#8217;d explain it to a colleague over coffee, and the agent comes back with a better answer than my scripted version ever got.</p><p>A rigid instruction set takes away the agent&#8217;s room to think. A rambling voice note carries the intent, the doubts and the context you&#8217;d never bother to type, and it leaves the model space to reason its way to the task.</p><p><strong>The best prompt I wrote this month was a voice note full of &#8220;umm.&#8221;</strong></p><p>The next model release or a fresh prompting guide from <a href="iframe.php?url=https%3A%2F%2Fdocs.claude.com%2Fen%2Fdocs%2Fbuild-with-claude%2Fprompt-engineering%2Foverview">Anthropic</a> or <a href="iframe.php?url=https%3A%2F%2Fplatform.openai.com%2Fdocs%2Fguides%2Fprompt-engineering">OpenAI</a> could flip it within a month. For now, messy speech is the most honest input I&#8217;ve got. And once speech is the input, the interface that catches it matters.</p><p>This issue: a full teardown of <strong><a href="iframe.php?url=https%3A%2F%2Fcutt.ly%2FeynwHlpR">VoiceOS</a></strong>, and what its two-mode design teaches the rest of us about handing work to an agent.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>VoiceOS: say it messy, get it done</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21yYn1%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yYn1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!yYn1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!yYn1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!yYn1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21yYn1%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:759382,&quot;alt&quot;:&quot;The VoiceOS app icon on a colorful background.&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://eidosdesign.substack.com/i/216497947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The VoiceOS app icon on a colorful background." title="The VoiceOS app icon on a colorful background." srcset="https://substackcdn.com/image/fetch/$s_!yYn1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!yYn1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!yYn1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!yYn1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f769ac-211b-4f30-815a-6e0d6af39dbb_1400x400.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">VoiceOS</figcaption></figure></div><p>Every good executive assistant has the same superpower. You walk past their desk, mumble &#8220;uh, can you move the thing with Sam, maybe Friday,&#8221; and by the time you reach the coffee machine the invite is updated. The great ones also know when to stop you. Before anything goes out under your name, they hold it up and ask: this one, to Sam, like this?</p><p><strong><a href="iframe.php?url=https%3A%2F%2Fcutt.ly%2FeynwHlpR">VoiceOS</a></strong> is built around that assistant. It&#8217;s a voice layer for Mac and Windows that lives in the notch at the top of your screen. You hold a key and talk, and it either types what you said, cleaned up, or goes off and does the thing across your apps. The timing is sharp, too. On September 14, Apple shipped <a href="iframe.php?url=https%3A%2F%2Fmacdailynews.com%2F2026%2F09%2F14%2Fapple-releases-ios-27-ipados-27-macos-27-watchos-27-visionos-27-and-tvos-27%2F">Siri AI in macOS 27</a>, with <a href="iframe.php?url=https%3A%2F%2F9to5mac.com%2F2026%2F09%2F17%2Fmacos-27-golden-gate-siri-ai-top-features-apples-assistant-finally-comes-to-life-video%2F">on-screen awareness and a new Siri app</a>. A YC startup and a trillion-dollar company now want the same strip of pixels above your work.</p><h3>Who built it</h3><p>VoiceOS comes from <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fabout">Jonah Daian and Kai Brokering</a>, who spent <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fyc-launch">seven years building voice AI</a> for consumer apps and Fortune 500 clients before starting their own company. What they took from those years is the whole product in one idea: voice kept failing because of the interface, and the models were already good enough. They went through <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fhow-voiceos-is-building-the-voice-operating-system">Y Combinator in Spring 2025</a> and <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fyc-launch">launched publicly</a> in February 2026.</p><p>Jonah&#8217;s description of the problem belongs above every designer&#8217;s desk: </p><blockquote><p><a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fhow-voiceos-is-building-the-voice-operating-system">People think in outcomes, but computers still make them translate those outcomes into clicks, tabs, menus, and keystrokes.</a> </p></blockquote><p>The team writes its principles as three short commands: stay with the thought, work where work happens, move fast and stay in control. Keep that last one in mind. It comes back later.</p><p>Things have moved fast since the launch. VoiceOS finished <a href="iframe.php?url=https%3A%2F%2Fwww.producthunt.com%2Fproducts%2Fvoiceos">#2 of the day on Product Hunt</a> in August with its own app store. A <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fvoiceos-app-store-hackathon">late-August hackathon</a> drew 600+ signups and 200+ builders, who shipped voice apps in six hours, from a Stripe revenue card to voice-dispatched Claude Code.</p><h3>The first run</h3><p>I came to VoiceOS from <a href="iframe.php?url=https%3A%2F%2Fwisprflow.ai%2F">Wispr Flow</a>, my dictation tool for a long time, so I expected a nicer typing replacement. And the first minutes confirmed that. You press <em>fn</em> and start speaking, and the text lands at your cursor with the filler words gone. My &#8220;so, umm, basically&#8221; never makes it onto the page.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qs4h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 424w, https://substackcdn.com/image/fetch/$s_!qs4h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 848w, https://substackcdn.com/image/fetch/$s_!qs4h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 1272w, https://substackcdn.com/image/fetch/$s_!qs4h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qs4h%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png" width="550" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:550,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42392,&quot;alt&quot;:&quot;The VoiceOS notch expanding at the top of a MacBook screen during dictation.&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://eidosdesign.substack.com/i/216497947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The VoiceOS notch expanding at the top of a MacBook screen during dictation." title="The VoiceOS notch expanding at the top of a MacBook screen during dictation." srcset="https://substackcdn.com/image/fetch/$s_!qs4h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 424w, https://substackcdn.com/image/fetch/$s_!qs4h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 848w, https://substackcdn.com/image/fetch/$s_!qs4h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 1272w, https://substackcdn.com/image/fetch/$s_!qs4h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ca93a3-c47b-428b-88e6-c5f48c420dbe_550x100.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div><figcaption class="image-caption">VoiceOS notch</figcaption></figure></div><p>Then comes the second mode. You press the <em>control + option</em> and say &#8220;Tell Vadym in Slack I&#8217;ll send the deck after lunch.&#8221; VoiceOS works out that this is a task, picks the app, drafts the message, and drops a small card from the notch showing the recipient and the wording. You check it, tweak it if you need to, and confirm. Ask a question instead, like &#8220;show me this month&#8217;s revenue,&#8221; and the answer appears with no confirmation step at all. The <a href="iframe.php?url=https%3A%2F%2Fdocs.voiceos.com">docs</a> spell out the split: read-only tools answer instantly, and anything that sends, creates or posts waits for your OK.</p><p>That was the moment it clicked for me. Wispr Flow gave me better words. VoiceOS gives me finished tasks. <strong>Agent Mode is the reason I switched</strong>, and it closes the loop from the intro, too. I don&#8217;t shape the request anymore. I say it the way it comes out, with the &#8220;umm&#8221; and the second thought halfway through, and the assistant takes it from there. It chains steps as well: &#8220;<a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fai-assistant-in-your-notch">Summarize this, email it to Sam, and remind me to follow up Friday</a>&#8221; is one sentence to you and three jobs to the machine.</p><div><hr></div><p><em>Reminder: Product evaluation is done according to <strong><a href="iframe.php?url=https%3A%2F%2Fwww.interaction-design.org%2Fliterature%2Farticle%2Fnorman-s-three-levels-of-design%3Fsrsltid%3DAfmBOoreR0yuPX4BhizGaTQOjXUz4fbUE_zgJoXUVePZUP_ZbqZe5RxL">Don Norman&#8217;s 3 levels of design</a></strong>.</em> </p><h3>Visceral level: 5/5 </h3><p><em>The visceral level is responsible for first impressions.</em></p><p>VoiceOS made the smartest real-estate decision on the Mac: it moved into the notch. That black cutout we all learned to ignore becomes a small, living surface. The assistant <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fai-assistant-in-your-notch">stays at the top of your screen, outside the document, message or dashboard</a>, and it expands only when it has something useful to show. If you&#8217;ve used the iPhone&#8217;s Dynamic Island, your hands already know this pattern. On Windows, the same idea sits at the top of the screen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21GXHb%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GXHb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 424w, https://substackcdn.com/image/fetch/$s_!GXHb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 848w, https://substackcdn.com/image/fetch/$s_!GXHb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 1272w, https://substackcdn.com/image/fetch/$s_!GXHb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21GXHb%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png" width="570" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:570,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:245574,&quot;alt&quot;:&quot;A VoiceOS result card below the notch showing a Stripe MRR chart.&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://eidosdesign.substack.com/i/216497947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A VoiceOS result card below the notch showing a Stripe MRR chart." title="A VoiceOS result card below the notch showing a Stripe MRR chart." srcset="https://substackcdn.com/image/fetch/$s_!GXHb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 424w, https://substackcdn.com/image/fetch/$s_!GXHb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 848w, https://substackcdn.com/image/fetch/$s_!GXHb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 1272w, https://substackcdn.com/image/fetch/$s_!GXHb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1b3cfd-2d87-470a-a466-8763b3482cc5_570x490.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">VoiceOS result card with the a Stripe MRR chart</figcaption></figure></div><p>The restraint sells it. You talk, a thin strip wakes up, and that is the whole interface. A card slides down with a message draft or a revenue chart, then tucks itself away again. Your document stays exactly where it was, which matters more than it sounds. Every assistant that opens a big panel over your work pulls you out of the thought you were trying to finish.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212Arn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Arn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 424w, https://substackcdn.com/image/fetch/$s_!2Arn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 848w, https://substackcdn.com/image/fetch/$s_!2Arn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 1272w, https://substackcdn.com/image/fetch/$s_!2Arn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212Arn%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png" width="1066" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/694b10e2-de15-4835-94b7-bb679963a879_1066x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:1066,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134127,&quot;alt&quot;:&quot;The VoiceOS screen with settings for writing style and polishing after dictation.&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://eidosdesign.substack.com/i/216497947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The VoiceOS screen with settings for writing style and polishing after dictation." title="The VoiceOS screen with settings for writing style and polishing after dictation." srcset="https://substackcdn.com/image/fetch/$s_!2Arn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 424w, https://substackcdn.com/image/fetch/$s_!2Arn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 848w, https://substackcdn.com/image/fetch/$s_!2Arn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 1272w, https://substackcdn.com/image/fetch/$s_!2Arn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F694b10e2-de15-4835-94b7-bb679963a879_1066x500.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">VoiceOS settings for writing style and polishing after dictation</figcaption></figure></div><p><em>Emotional signal: &#8220;It&#8217;s there when I talk, gone when I don&#8217;t.&#8221;</em></p><h3>Behavioral level: 5/5</h3><p><em>This level focuses on usability, how the product performs and whether it effectively solves user problems.</em></p><p>This is where VoiceOS earns its place on my dock. The core loop is short and it holds up in daily use. The design moves I&#8217;d study:</p><ul><li><p><strong>Two keys, no menu.</strong> <em>fn</em> dictates, <em>control + option</em> hands the job to the agent. Your fingers pick the mode, so you never stop to choose a tool on screen.</p></li><li><p><strong>Confirmation scaled to risk.</strong> Questions answer instantly. Anything that sends, creates or posts shows an editable card first. Friction goes exactly where a mistake would cost you something, and nowhere else.</p></li><li><p><strong>Context without copy-paste.</strong> Agent Mode can work with your selected text, screenshots you allow, and regions you draw, so &#8220;summarize this&#8221; means this.</p></li><li><p><strong>Your apps, already wired.</strong> Gmail, Slack, Google Calendar, Notion, Linear, Cursor, WhatsApp and more out of the box, plus an <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fvoiceos-app-store-hackathon">app store built on MCP</a> for everything else.</p></li><li><p><strong>Clean output from messy input.</strong> Filler words and false starts disappear, in <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fhow-voiceos-is-building-the-voice-operating-system">100+ recognition languages</a>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21LiBz%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LiBz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 424w, https://substackcdn.com/image/fetch/$s_!LiBz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 848w, https://substackcdn.com/image/fetch/$s_!LiBz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 1272w, https://substackcdn.com/image/fetch/$s_!LiBz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21LiBz%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png" width="1066" height="472" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:472,&quot;width&quot;:1066,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:145250,&quot;alt&quot;:&quot;A screen displaying a list of integrated apps in VoiceOS.&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://eidosdesign.substack.com/i/216497947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A screen displaying a list of integrated apps in VoiceOS." title="A screen displaying a list of integrated apps in VoiceOS." srcset="https://substackcdn.com/image/fetch/$s_!LiBz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 424w, https://substackcdn.com/image/fetch/$s_!LiBz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 848w, https://substackcdn.com/image/fetch/$s_!LiBz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 1272w, https://substackcdn.com/image/fetch/$s_!LiBz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db2305c-7fe0-4d56-8477-44d1553fc5d0_1066x472.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">VoiceOS: Apps integrations</figcaption></figure></div><p>The confirmation card deserves a second look. Most agent products ask you to pick between two bad options: approve every step and drown in pop-ups, or approve nothing and hope. VoiceOS sorts its actions by consequence. Reading is free, and writing in your name needs a nod. It&#8217;s the executive assistant from the opening again: quick errands happen silently, and letters get your signature.</p><p><em>Emotional signal: &#8220;I said it once. It&#8217;s done.&#8221;</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-vol-xxxix-why-your-umms?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-vol-xxxix-why-your-umms%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h3>Reflective level: 4.9/5</h3><p><em>The reflective level considers the long-term impression and deeper meaning of the design, how it aligns with the user's identity and values.</em></p><p>After a few weeks, VoiceOS changes how you think about your own working day. Thinking out loud used to be the warm-up before the real work. Now it is the work. You pace around the room, ramble through a reply, and it goes out. For people with RSI or carpal tunnel, <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fblog%2Fvoice-typing-for-rsi-and-carpal-tunnel">the team makes the case</a> that this matters beyond speed, and it does. And the &#8220;stay in control&#8221; principle survives contact with reality. You&#8217;re still the author of everything that leaves your machine.</p><p>The 0.1 I take off is about wording. The homepage promises that &#8220;<a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2F">your audio is never stored on our servers</a>&#8221; and shows reassuring toggles like &#8220;Save transcripts on this device.&#8221; The <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fprivacy">privacy policy</a> is more precise: VoiceOS &#8220;may transmit audio to a speech-processing provider,&#8221; deletes it after processing by default, and keeps it only if you opt into &#8220;Help Improve.&#8221; Both statements can be true at once. Still, a casual reader leaves the homepage believing their voice never leaves the laptop, and that isn&#8217;t what happens.</p><p>A product whose best idea is honest confirmation should write marketing copy just as honest. The cards already earn my trust, and the copy should keep it.</p><p><em>Emotional signal: &#8220;I trust the cards more than the copy.&#8221;</em></p><h3>Where it falls short</h3><p>Start with the room you&#8217;re in. Voice input assumes you can talk, and plenty of work happens where you can&#8217;t. In an open-plan office, VoiceOS turns you into the colleague who narrates his emails, and in a noisy caf&#233; it struggles to hear you cleanly. That&#8217;s physics more than design, but it still limits where the product can live.</p><p>The headphones were harder. I use AirPods Max, and VoiceOS didn&#8217;t work with them right away. I have to keep the sound settings open to make sure VoiceOS is using that microphone, and it keeps warning me that the AirPods are poor quality. Well, I don&#8217;t have any other options! With the laptop&#8217;s built-in mic it can&#8217;t hear me at all.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1Pn7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 424w, https://substackcdn.com/image/fetch/$s_!1Pn7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 848w, https://substackcdn.com/image/fetch/$s_!1Pn7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 1272w, https://substackcdn.com/image/fetch/$s_!1Pn7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211Pn7%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png" width="284" height="110" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/664e7026-c06a-4c73-b712-c783ed39953b_284x110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:110,&quot;width&quot;:284,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61705,&quot;alt&quot;:&quot;AirPods quality warning in the VoiceOS.&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://eidosdesign.substack.com/i/216497947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AirPods quality warning in the VoiceOS." title="AirPods quality warning in the VoiceOS." srcset="https://substackcdn.com/image/fetch/$s_!1Pn7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 424w, https://substackcdn.com/image/fetch/$s_!1Pn7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 848w, https://substackcdn.com/image/fetch/$s_!1Pn7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 1272w, https://substackcdn.com/image/fetch/$s_!1Pn7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664e7026-c06a-4c73-b712-c783ed39953b_284x110.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div><figcaption class="image-caption">VoiceOS sounds quality warning using AirPods Max</figcaption></figure></div><p>For a product whose whole promise is &#8220;just talk,&#8221; the microphone is where that promise has to hold hardest, and Bluetooth headphones are the default mic for half the remote workers I know.</p><p>A few smaller things:</p><ul><li><p><strong>The trial wants a card.</strong> The 7-day Pro trial says it plainly: &#8220;<a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fpricing">A card is required</a>.&#8221; The free tier after that gives you 100 dictations and 25 Agent Mode sessions a week.</p></li><li><p><strong>Onboarding runs long.</strong> I&#8217;m not the only one who noticed. A Product Hunt reviewer called the <a href="iframe.php?url=https%3A%2F%2Fwww.producthunt.com%2Fproducts%2Fvoiceos">onboarding flow &#8220;a bit long&#8221;</a>, and I fully agree.</p></li><li><p><strong>No phone app yet.</strong> Mobile is listed as coming soon, so your best ideas on a walk still go into a different tool.</p></li><li><p><strong>No offline mode.</strong> Speech goes to a processing provider, so no connection means no VoiceOS.</p></li></ul><h3>How rivals solve the same problem</h3><p><strong><a href="iframe.php?url=https%3A%2F%2Fwisprflow.ai%2Fpricing">Wispr Flow</a></strong> is the one I know best. It&#8217;s excellent at words: it runs on Mac, Windows, iOS and Android, learns your names and jargon, and keeps a dictionary and snippets. Pro costs $15 a month, or $12 billed annually. It stops at the text, though. Your message arrives polished, and then you still have to send it yourself.</p><p><strong>Siri AI in macOS 27</strong> is the new heavyweight. It lives in Spotlight, <a href="iframe.php?url=https%3A%2F%2F9to5mac.com%2F2026%2F09%2F17%2Fmacos-27-golden-gate-siri-ai-top-features-apples-assistant-finally-comes-to-life-video%2F">adds your active window as context with Shift-Command-Space</a>, and acts through the Shortcuts framework. It&#8217;s free and deeply built in, with the newest voice features reserved for M3 Macs and newer. Its reach into third-party tools depends on what those apps expose to Apple, and it stays on Apple hardware.</p><p>VoiceOS sits between the two. It acts like Siri wants to, it works across Mac and Windows like Wispr Flow, and it talks directly to Slack, Gmail, Notion and Linear. Pro costs <a href="iframe.php?url=https%3A%2F%2Fwww.voiceos.com%2Fpricing">$11.99 a month billed annually</a>, with a 50% discount for students and builders.</p><h3>The verdict, and what you can steal</h3><p><strong><a href="iframe.php?url=https%3A%2F%2Fcutt.ly%2FeynwHlpR">VoiceOS</a></strong> gets the division of labor right. You bring the messy intent, with the &#8220;umm&#8221; and the second thought. It brings the structure, and it checks with you before it acts in your name. That&#8217;s the executive assistant from the opening of this review, folded into a notch.</p><p>What you can steal for your own product:</p><p>&#10003; <strong>Scale confirmation to consequence.</strong> Let people read freely, and ask before you write on their behalf.</p><p>&#10003; <strong>One tool, two modes.</strong> Keep exact dictation and delegated intent apart, and give each one a shortcut your hands can reach.</p><p>&#10003; <strong>Show results where the user already is.</strong> A small card near the notch keeps the work in view.</p><p>&#10003; <strong>Hold your marketing copy to your privacy policy.</strong> The trust you build in the product can leak out through the landing page.</p><h3><strong>Overall: 4.9/5 &#11088;</strong></h3><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-vol-xxxix-why-your-umms?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-vol-xxxix-why-your-umms%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><div><hr></div><h3>And this is it for today,</h3><p>I started this issue with a voice note full of &#8220;umm,&#8221; and I&#8217;m finishing it the same way, talking to my laptop and letting it tidy up after me. The tools are finally catching up with how we think: out loud, in fragments, with second thoughts halfway through. Our job as designers is to catch that mess kindly and ask before acting on it.</p><p>Hit reply and tell me how you prompt these days, with long careful instructions or rambling voice notes.</p><p><em>As always, this newsletter is free, but if you enjoyed it, please consider sharing it with a friend or two. Spreading the love is what it's all about, folks </em>&#128420;</p><blockquote><p>Sincerely, <br>Vadym Grin</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI in UX Studio #17: OpenAI Is Killing Custom GPTs. Here's How to Save Yours Before December 11]]></title><description><![CDATA[Your research and UX copy GPTs are on a countdown. Don't just click "Migrate." Use the M.O.V.E. Method to turn them into skills you own, test and take anywhere.]]></description><link>https://eidosdesign.substack.com/p/ai-in-ux-studio-17-openai-is-killing</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/ai-in-ux-studio-17-openai-is-killing</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Sat, 26 Sep 2026 19:28:25 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff739ff88-d15a-402e-9f24-5d89b9a07c58_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey AI expert designers, Siavash here! Welcome back to <strong>AI in UX Studio</strong>.</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fai-in-ux-studio-17-openai-is-killing">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[I Wanted A Chess Clock. I Ended Up Shipping One.]]></title><description><![CDATA[A five-day build log: designing Just Chess Clock in Claude Design and Figma, coding it in SwiftUI with Claude Code, testing it with an agent that played chess against the app, and getting through App Store review first time.]]></description><link>https://eidosdesign.substack.com/p/building-logs-1-i-wanted-a-chess</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/building-logs-1-i-wanted-a-chess</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Tue, 15 Sep 2026 08:00:39 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a493747-2195-47c2-b088-18723e8f4ef4_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A new section starts today.</p><p><strong>Building Logs</strong> is the record of the things we at Eidos Design build. Every product we ship gets one: the idea, the design, the code, the store, the hours, the money, and the parts where we got it wrong. <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Vadym Grin&quot;,&quot;id&quot;:135570777,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!kg7K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba8526ce-c5dc-4ab8-aeb4-dd5f5706ff9c_747x747.png&quot;,&quot;uuid&quot;:&quot;f254ae6e-7269-4d89-87ff-01085bfc1d93&quot;}" data-component-name="MentionToDOM"></span> and <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Siavash Memar&quot;,&quot;id&quot;:55273103,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df0cea8d-9d83-4b00-beb6-3f9bde092e1d_747x747.png&quot;,&quot;uuid&quot;:&quot;545c5477-1cfd-4fab-aa7d-d92e6ab3b1a6&quot;}" data-component-name="MentionToDOM"></span> are writing these while the details are still warm, before the story sands itself down into something tidier than it was.</p><div><hr></div><p>We&#8217;re starting simple. Case one is a <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fjust-chess-clock%2Fid6793128024">Just Chess Clock</a> designed, built and shipped to the AppStore. It took me around five working days spread across a month, and it exists because I got annoyed.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The tap that started it</h2><p>I play chess online often, and sometimes offline with friends. We&#8217;re amateurs, but we play with a clock anyway, because a game without one turns into a conversation with a board in the middle of it.</p><p>Neither of us owns a physical chess clock. So I opened the App Store, searched, and found <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fchess-clock-by-chess-com%2Fid858039162">Chess.com&#8217;s Chess Clock</a> sitting at the top. Well made, packed with presets, colour options and time-control formats. Getting from launch to a standard game took me longer than the first three moves would have. I tapped through settings, backed out, went in again. My friend sat there watching a designer configure a timer.</p><p>We picked something else, played our game, and I lost. Walking home, the thing had a name before it had a single screen.</p><p><strong>Just Chess Clock.</strong></p><p>That word at the front is the entire brief. The name has since turned into a series, so the next Building Log covers <strong>Just Shapes</strong>, a casual game where the same word did much harder work, but this is for the next one.</p><h2>The edge cases I hadn&#8217;t thought about</h2><p>I started with no design system, no component library, just a bit of research on the chess clock apps that already exist. I had just one rough idea and a strong opinion about tap counts.</p><p>For visual exploration I used <a href="iframe.php?url=https%3A%2F%2Fclaude.ai%2Fdesign">Claude Design</a>. Its value showed up in the first hour. Claude Design is at its best in the ideation phase.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21VW5O%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VW5O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 424w, https://substackcdn.com/image/fetch/$s_!VW5O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 848w, https://substackcdn.com/image/fetch/$s_!VW5O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 1272w, https://substackcdn.com/image/fetch/$s_!VW5O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21VW5O%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png" width="480" height="257.88235294117646" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:1020,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:98754,&quot;alt&quot;:&quot;Three chess clock concepts side by side, labelled Refined Soft, Elevated Primary and Frosted Bar. Each shows a black upper half reading 5:00 above a white lower half, with settings, play and restart buttons sitting on the seam between them.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Three chess clock concepts side by side, labelled Refined Soft, Elevated Primary and Frosted Bar. Each shows a black upper half reading 5:00 above a white lower half, with settings, play and restart buttons sitting on the seam between them." title="Three chess clock concepts side by side, labelled Refined Soft, Elevated Primary and Frosted Bar. Each shows a black upper half reading 5:00 above a white lower half, with settings, play and restart buttons sitting on the seam between them." srcset="https://substackcdn.com/image/fetch/$s_!VW5O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 424w, https://substackcdn.com/image/fetch/$s_!VW5O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 848w, https://substackcdn.com/image/fetch/$s_!VW5O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 1272w, https://substackcdn.com/image/fetch/$s_!VW5O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cbdb560-cd84-4aca-869d-839114d69a20_1020x548.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Initial design concepts in Claude Design</figcaption></figure></div><p>It handed me states I hadn't designed yet, rather than prettier versions of the ones I had:</p><p><strong>Pause.</strong> A paused clock isn&#8217;t a stopped clock. Somebody has to see what&#8217;s frozen, whose turn it still is, and how to come back in without either player gaining half a second.</p><p><strong>Settings reached from pause.</strong> You pause mid-game, open settings, change the time control. The game you were playing no longer exists. That needs a warning before the change lands, otherwise the app wipes a game two people were in the middle of.</p><p><strong>The victory screen has two readers.</strong> One phone, two people, sitting opposite each other. The screen has to announce the winner and hold a line for the person who lost, including how many moves it took.</p><p>I kept asking the tool about all the flows and use cases the design needed to consider.</p><p>Another important aspect of the app&#8217;s design from a visual standpoint is the app icon. I didn&#8217;t have a strong idea. Once again, Claude Design helped me spark my imagination. The first icons were bad: unbalanced, and every one of them looked like an alien sitting on a home screen, but it was still better than nothing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Q1Cb%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 424w, https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 848w, https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 1272w, https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Q1Cb%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png" width="480" height="295.007299270073" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1370,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:369504,&quot;alt&quot;:&quot;Eight app icon concepts in a grid, each a glossy black or white play button over a chequerboard background, labelled Sharp Contrast, Light Pearl, Duality, Brushed Steel, Glass Black, Spotlight, Clock Pair and Outline Pro.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Eight app icon concepts in a grid, each a glossy black or white play button over a chequerboard background, labelled Sharp Contrast, Light Pearl, Duality, Brushed Steel, Glass Black, Spotlight, Clock Pair and Outline Pro." title="Eight app icon concepts in a grid, each a glossy black or white play button over a chequerboard background, labelled Sharp Contrast, Light Pearl, Duality, Brushed Steel, Glass Black, Spotlight, Clock Pair and Outline Pro." srcset="https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 424w, https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 848w, https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 1272w, https://substackcdn.com/image/fetch/$s_!Q1Cb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a441983-0ef0-4930-b9a0-af5353065498_1370x842.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">App icon initial proposal</figcaption></figure></div><p>However, I didn&#8217;t intend to build everything specifically in Claude Design. After all, we need to understand that, while AI can speed up work in some cases, it can slow down a designer with 15 years of experience who wants to create something in their own style.</p><h2>One day in Figma</h2><p>So then I moved everything into Figma and started iterating. This is where design magic happens, and here's why it's worth protecting. </p><p>Rather than issuing a blanket ban on AI, Apple is cracking down on low-quality, AI-generated &#8220;vibe-coded&#8221; apps through existing App Store guidelines. If you create an app that solves a problem, looks original, has been tested, and works smoothly as a native app, then all is well, and the vibe coding will not bother anyone, including Apple.</p><p>A day of iteration was enough. Just a couple of screens, a handful of components, and an idea about styles.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Hhq6%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hhq6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 424w, https://substackcdn.com/image/fetch/$s_!Hhq6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 848w, https://substackcdn.com/image/fetch/$s_!Hhq6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 1272w, https://substackcdn.com/image/fetch/$s_!Hhq6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Hhq6%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png" width="480" height="487.7241379310345" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:884,&quot;width&quot;:870,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:55912,&quot;alt&quot;:&quot;A Figma canvas showing the component set for the play, back and settings buttons in two states, a sheet of interface icons, and the assembled clock screen with a black top half and a white bottom half.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A Figma canvas showing the component set for the play, back and settings buttons in two states, a sheet of interface icons, and the assembled clock screen with a black top half and a white bottom half." title="A Figma canvas showing the component set for the play, back and settings buttons in two states, a sheet of interface icons, and the assembled clock screen with a black top half and a white bottom half." srcset="https://substackcdn.com/image/fetch/$s_!Hhq6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 424w, https://substackcdn.com/image/fetch/$s_!Hhq6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 848w, https://substackcdn.com/image/fetch/$s_!Hhq6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 1272w, https://substackcdn.com/image/fetch/$s_!Hhq6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0929d35a-5096-4a09-af76-0a3c9421f715_870x884.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A timer, home screen, and the first components</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21T30c%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T30c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 424w, https://substackcdn.com/image/fetch/$s_!T30c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 848w, https://substackcdn.com/image/fetch/$s_!T30c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 1272w, https://substackcdn.com/image/fetch/$s_!T30c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21T30c%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png" width="480" height="487.7241379310345" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:884,&quot;width&quot;:870,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:33668,&quot;alt&quot;:&quot;Two phone screens. On each, one half reads \&quot;Victory! in 35 moves\&quot; beneath a crown while the opposite half reads \&quot;Lost on time in 35 moves\&quot; upside down, so both players read their own result from where they sit.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two phone screens. On each, one half reads &quot;Victory! in 35 moves&quot; beneath a crown while the opposite half reads &quot;Lost on time in 35 moves&quot; upside down, so both players read their own result from where they sit." title="Two phone screens. On each, one half reads &quot;Victory! in 35 moves&quot; beneath a crown while the opposite half reads &quot;Lost on time in 35 moves&quot; upside down, so both players read their own result from where they sit." srcset="https://substackcdn.com/image/fetch/$s_!T30c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 424w, https://substackcdn.com/image/fetch/$s_!T30c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 848w, https://substackcdn.com/image/fetch/$s_!T30c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 1272w, https://substackcdn.com/image/fetch/$s_!T30c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c5110d-60fd-440d-9e0c-e1714b0a49ea_870x884.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Victory screens for both players</figcaption></figure></div><h2>The UI kit is the real prompt</h2><p>Claude Code reads Figma through the <a href="iframe.php?url=https%3A%2F%2Fhelp.figma.com%2Fhc%2Fen-us%2Farticles%2F32132100833559-Guide-to-the-Figma-MCP-server">Figma MCP server</a>, so it can pull a token, a component or a whole screen straight off the canvas. Handing it finished screens and asking for an app produces working software with a rash of inconsistencies. You then spend your evening fixing design decisions inside Swift files, which is the worst possible place to make them.</p><p>The fix is building the layer underneath first. Call it a UI kit rather than a design system, since it&#8217;s small:</p><ul><li><p>Every colour, named</p></li><li><p>Every text style</p></li><li><p>The spacing scale</p></li><li><p>Custom icons and interface elements turned into components, with their states and effects defined</p></li></ul><p>Honestly, this is the boring part that I hated doing before the AI era. Instead, I asked Claude to tokenize everything and create a system with variables in Figma.</p><p>With that in place, the agent stops guessing. It reuses instead of reinventing, and it treats the interface as one system rather than a pile of screens that happen to sit next to each other. I also wrote a full description of the project and made it the system prompt, so every session started from the same understanding of what this app refuses to be.</p><p>The lesson generalises past chess clocks. Designers spent years arguing that a design system pays for itself in handoff. It turns out it pays for itself even harder when the developer is a model, because a model reads structure and infers everything else.</p><p>At the end of the design phase, I spent some time refining the app&#8217;s icon. In this case, I stuck to sending audio messages to Claude through Wispr Flow. It interpreted my prompts and moved pixels around for me right in Figma. That beat pushing pixels myself. I had a concept in my head and no idea which pixels to move to get there. I wanted to take Claude Design&#8217;s ideas and build on them. For example, I said, &#8220;Let&#8217;s try a lighter gray background and apply the metallic style of the UI icons to the play icon.&#8221; That was faster than me sitting and pushing pixels around.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kA0k%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kA0k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 424w, https://substackcdn.com/image/fetch/$s_!kA0k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 848w, https://substackcdn.com/image/fetch/$s_!kA0k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 1272w, https://substackcdn.com/image/fetch/$s_!kA0k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kA0k%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png" width="480" height="336" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:336,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:161828,&quot;alt&quot;:&quot;An iPhone home screen row with the finished Just Chess Clock icon, a glossy black play button on a square split between light grey and white, sitting beside Find My and the chess.com pawn icon.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An iPhone home screen row with the finished Just Chess Clock icon, a glossy black play button on a square split between light grey and white, sitting beside Find My and the chess.com pawn icon." title="An iPhone home screen row with the finished Just Chess Clock icon, a glossy black play button on a square split between light grey and white, sitting beside Find My and the chess.com pawn icon." srcset="https://substackcdn.com/image/fetch/$s_!kA0k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 424w, https://substackcdn.com/image/fetch/$s_!kA0k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 848w, https://substackcdn.com/image/fetch/$s_!kA0k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 1272w, https://substackcdn.com/image/fetch/$s_!kA0k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63f37ed-a910-4d2b-b67f-434417e02b3b_480x336.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Just Chess Clock icon</figcaption></figure></div><p>The icon I shipped is the play button in the top row, sitting to the left of chess.com's pawn. I was happy with where it landed.</p><div><hr></div><h2>Two days in SwiftUI</h2><p>I built it native, in SwiftUI, on purpose. Apple&#8217;s review team takes a dim view of web apps in a native wrapper, and the <a href="iframe.php?url=https%3A%2F%2Fdeveloper.apple.com%2Fapp-store%2Freview%2Fguidelines%2F">App Store Review Guidelines</a> say so out loud under minimum functionality. For a two-screen timer that needs precise background behaviour and haptics, the native route was also the easy route.</p><p>Two days of vibe coding (Opus 5, high effort), working inside Xcode, launching the simulator whenever it needed to check something. An agent builds what you describe. Anything you haven't thought about stays unbuilt, and you find those gaps by using the thing.</p><p>Now, let&#8217;s address the most common questions. What kind of prompts should you use? How can you prevent the AI from hallucinating? How can you achieve the best output?</p><p>To simplify things, we can break it down into three levels.</p><p>1. No matter how well you prompt the AI, it won&#8217;t always produce the exact result you envision. That&#8217;s why it&#8217;s important not to give it huge chunks of code to write all at once, but rather to proceed gradually. Check the results in the simulator and refine things bit by bit.</p><p>2. If you&#8217;re curious about the best way to formulate prompts, I recommend <a href="iframe.php?url=https%3A%2F%2Fsiavashdesign.gumroad.com%2Fl%2FAIPromptKitforUX">purchasing our kit</a>. Otherwise, just follow your natural conversational flow. That&#8217;s exactly what LLMs are made for!</p><p>3. Hallucinations will be minimal if Claude Code works with the system, not just mockups. Ideally, we provide it with a design system that includes tokens and all components in all states, and then Claude simply follows that system. But if you only have a few Figma screens, you need components for basic elements, such as buttons and icons, so that Claude doesn&#8217;t create its own. Most importantly, you need tokens (variables) for fonts, styles, and colors. Then, Claude will implement the design exactly as needed.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/building-logs-1-i-wanted-a-chess?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Eidos Design | Building with AI! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/building-logs-1-i-wanted-a-chess?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fbuilding-logs-1-i-wanted-a-chess%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><h2>Testing</h2><p>Then I played a real game with a real friend across a real table.</p><p>Here&#8217;s the design idea the app runs on. The player whose turn it is owns the screen. Their side takes up around 80% of the display, the other side gets squeezed, and the timer counts down in their half. You read the state before you read a word.</p><p>Along the seam between white and black sit three controls: play, settings, restart. They slide toward whoever is on the move.</p><p>Sitting across the table from my friend, I watched him tilt his head to look at them. The buttons had moved, and the icons inside had stayed put, pointing at me. Correct in the file. Wrong on the table. Software drawn on a flat canvas, used on a surface with two people facing opposite directions.</p><p>So the icons now rotate inside their circles. They turn to face whoever&#8217;s turn it is, along with the rest of the interface. Small fix, twenty minutes of work, and it&#8217;s the difference between an app that was designed and an app that was played with.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21twDx%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!twDx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 424w, https://substackcdn.com/image/fetch/$s_!twDx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 848w, https://substackcdn.com/image/fetch/$s_!twDx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 1272w, https://substackcdn.com/image/fetch/$s_!twDx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21twDx%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png" width="480" height="487.7241379310345" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:884,&quot;width&quot;:870,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:51326,&quot;alt&quot;:&quot;Two states of the clock screen. On the left the game is paused, showing 10:00 on the white half and the pause button on the seam. On the right the black player is on the move, with the timer and the control icons rotated to face them.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two states of the clock screen. On the left the game is paused, showing 10:00 on the white half and the pause button on the seam. On the right the black player is on the move, with the timer and the control icons rotated to face them." title="Two states of the clock screen. On the left the game is paused, showing 10:00 on the white half and the pause button on the seam. On the right the black player is on the move, with the timer and the control icons rotated to face them." srcset="https://substackcdn.com/image/fetch/$s_!twDx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 424w, https://substackcdn.com/image/fetch/$s_!twDx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 848w, https://substackcdn.com/image/fetch/$s_!twDx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 1272w, https://substackcdn.com/image/fetch/$s_!twDx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9caba16c-1a8c-47bf-9631-11e6fc2e0391_870x884.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A timer screen that correctly displays the buttons depending on whose turn it is:</figcaption></figure></div><h2>The bot that played chess against my app</h2><p>I asked Claude Code to build me a tester. A separate agent that behaved like a strong chess player, driving the simulator, hitting the clock the way a person under time pressure hits a clock. It wrote the bot, launched the simulator, ran the sessions, and handed me a report.</p><p>Its most useful note had nothing to do with bugs. The bot pointed out that my time controls served people like me and nobody above that level. Amateurs got what they needed. Anyone playing blitz, or anything with an increment, hit a wall.</p><p>That&#8217;s a legitimate tension with the word &#8220;just&#8221;, and the obvious fix would have wrecked the app. Chess.com&#8217;s clock already handles every format anyone could want, and handling them is why it takes so long to start a game.</p><p>The version I shipped adds a settings screen simple enough that a first-time user still starts a standard game in a couple of taps, but with the flexible options sitting one layer down for people who go looking.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21EMKJ%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EMKJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 424w, https://substackcdn.com/image/fetch/$s_!EMKJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 848w, https://substackcdn.com/image/fetch/$s_!EMKJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 1272w, https://substackcdn.com/image/fetch/$s_!EMKJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21EMKJ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png" width="280" height="605.9487179487179" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:390,&quot;resizeWidth&quot;:280,&quot;bytes&quot;:19657,&quot;alt&quot;:&quot;The settings screen listing time presets from 1 minute to 1 hour, including increment options such as 3 min plus 2 sec and 15 min plus 10 sec, with 10 min ticked.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The settings screen listing time presets from 1 minute to 1 hour, including increment options such as 3 min plus 2 sec and 15 min plus 10 sec, with 10 min ticked." title="The settings screen listing time presets from 1 minute to 1 hour, including increment options such as 3 min plus 2 sec and 15 min plus 10 sec, with 10 min ticked." srcset="https://substackcdn.com/image/fetch/$s_!EMKJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 424w, https://substackcdn.com/image/fetch/$s_!EMKJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 848w, https://substackcdn.com/image/fetch/$s_!EMKJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 1272w, https://substackcdn.com/image/fetch/$s_!EMKJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65cd7f17-557c-4c4e-8fdd-7132dbe9d13d_390x844.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The settings screen</figcaption></figure></div><h2>The gate</h2><p>Everything worked. Time to submit.</p><p>My app collects nothing, there are no accounts, no analytics, no tracking, no network calls worth the name. I still needed a public website hosting a privacy policy, plus the privacy details in App Store Connect, so users can read a document that tells them I&#8217;m taking nothing from them.</p><p>Then the listing itself. Screenshots at the right sizes, description, keywords, category, age rating, support URL. Two days of work, about the same as the build! A landing page and a privacy policy take half an hour with Claude. The other day and a half went into making them look designed instead of generated. <a href="iframe.php?url=https%3A%2F%2Fvadimgrin.com%2Fapps%2F">Now it lives here</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kGae%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kGae!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 424w, https://substackcdn.com/image/fetch/$s_!kGae!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 848w, https://substackcdn.com/image/fetch/$s_!kGae!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 1272w, https://substackcdn.com/image/fetch/$s_!kGae!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kGae%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png" width="520" height="804.7378640776699" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1594,&quot;width&quot;:1030,&quot;resizeWidth&quot;:520,&quot;bytes&quot;:604392,&quot;alt&quot;:&quot;The Just Apps website, with a Just Apps heading over a city skyline at sunset, an introduction to the series, and a Just Chess Clock section with a short description, a Download on the App Store button and a privacy policy link beside two phone mockups.&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://eidosdesign.substack.com/i/214720843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Just Apps website, with a Just Apps heading over a city skyline at sunset, an introduction to the series, and a Just Chess Clock section with a short description, a Download on the App Store button and a privacy policy link beside two phone mockups." title="The Just Apps website, with a Just Apps heading over a city skyline at sunset, an introduction to the series, and a Just Chess Clock section with a short description, a Download on the App Store button and a privacy policy link beside two phone mockups." srcset="https://substackcdn.com/image/fetch/$s_!kGae!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 424w, https://substackcdn.com/image/fetch/$s_!kGae!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 848w, https://substackcdn.com/image/fetch/$s_!kGae!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 1272w, https://substackcdn.com/image/fetch/$s_!kGae!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd028d8b1-cc5d-4cd5-93f9-60ad648dd958_1030x1594.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Just Apps landing page</figcaption></figure></div><p>I pushed Submit and waited exactly four weeks. My guess is that the indie wave arrived and the review queue is carrying it.</p><p>Approved first time, no rejections.</p><div><hr></div><h2>The ledger</h2><ul><li><p><strong>Design exploration:</strong> part of a day in Claude Design</p></li><li><p><strong>Design refinement:</strong> one day in Figma</p></li><li><p><strong>Build:</strong> two days in Claude Code, SwiftUI, Opus 5 on high effort</p></li><li><p><strong>Testing:</strong> one offline game plus one agent-built bot (one hour)</p></li><li><p><strong>Store preparation:</strong> two days</p></li><li><p><strong>Review wait:</strong> 4 weeks</p></li><li><p><strong>Money:</strong> Apple Developer Program at $99/year, plus Claude subscription.</p></li><li><p><strong>Rejections:</strong> none</p></li></ul><p>Around five working days of actual work, stretched across a month of waiting.</p><div><hr></div><h2>What I&#8217;d tell a builder looking at this</h2><ul><li><p><strong>Ask Claude to build the UI kit with variables before you write the first prompt.</strong> Colours, type, spacing, components with states. It&#8217;s the difference between directing a build and repairing one.</p></li><li><p><strong>If you&#8217;re a designer, keep your hands in the design.</strong> Exploration in AI, refinement by you. That&#8217;s where your style survives.</p></li><li><p><strong>Run real tests, and remember that you can create agents with specific roles</strong> to catch bugs, the user experience, or whatever else.</p></li><li><p><strong>Budget the store like a build phase.</strong> Budget the store like a build phase. Two days if you want the page designed rather than filled in.</p></li></ul><p>The tools have moved far enough that a designer with an idea and a week can put a considered thing on the App Store. The part that still needs you is knowing which ideas deserve to survive the word &#8220;just&#8221;.</p><div><hr></div><h3>And this is it for today,</h3><p><a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fjust-chess-clock%2Fid6793128024">Just Chess Clock</a> does one thing: two players, one tap each, elegant enough that I&#8217;m happy to put it on the table between us. </p><p>Next Building Log covers <strong>Just Shapes</strong>, a casual mobile game where I went deep on graphic design, testing bots, localisation, animation and sound design. Much harder problem, many more mistakes to report.</p><p>If you&#8217;re building something with these tools right now, hit reply and tell me where it broke. I&#8217;ll steal the good problems for future logs.</p><p><em>As always, this newsletter is free, but if you enjoyed it, please consider sharing it with a friend or two. Spreading the love is what it&#8217;s all about, folks </em>&#128420;</p><blockquote><p>Sincerely, <br>Vadym Grin</p></blockquote><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The sycophancy trap: what happens when feelings become the metric]]></title><description><![CDATA[A framework for emotional design that survives contact with an engagement dashboard]]></description><link>https://eidosdesign.substack.com/p/the-sycophancy-trap-what-happens</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/the-sycophancy-trap-what-happens</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Thu, 10 Sep 2026 08:01:59 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69be4611-fee9-4433-a8cd-0b27bb50af8d_1699x926.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For the past year I worked on an app that pays people to play mobile games.</p><p>The business model is quite straightforward: game developers want players to stay longer and spend money on in-app purchases. Our app sat in the middle and paid users to play. Developers got loyal players, we got paid, and players earned a few dollars for something they were doing anyway. You can&#8217;t earn a lot of money, but it still makes playing feel different. Now, you&#8217;re not just &#8220;having fun&#8221; or &#8220;killing time,&#8221; you can feel that playing casual mobile games is useful, too, because you&#8217;re being paid for it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21FGIM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FGIM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png 424w, https://substackcdn.com/image/fetch/$s_!FGIM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png 848w, https://substackcdn.com/image/fetch/$s_!FGIM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png 1272w, https://substackcdn.com/image/fetch/$s_!FGIM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21FGIM%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png" width="1000" height="682" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:682,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Three men in 17th-century Dutch dress, black robes and wide white collars, seated and standing in a stone hall. The standing man on the left holds out a modern smartphone toward the others. Its screen glows with a green upward arrow and the text &#8220;+12%&#8221;. An edited version of a 1669 group portrait, where he originally held a letter.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Three men in 17th-century Dutch dress, black robes and wide white collars, seated and standing in a stone hall. The standing man on the left holds out a modern smartphone toward the others. Its screen glows with a green upward arrow and the text &#8220;+12%&#8221;. An edited version of a 1669 group portrait, where he originally held a letter." title="Three men in 17th-century Dutch dress, black robes and wide white collars, seated and standing in a stone hall. The standing man on the left holds out a modern smartphone toward the others. Its screen glows with a green upward arrow and the text &#8220;+12%&#8221;. An edited version of a 1669 group portrait, where he originally held a letter." srcset="https://substackcdn.com/image/fetch/$s_!FGIM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png 424w, https://substackcdn.com/image/fetch/$s_!FGIM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png 848w, https://substackcdn.com/image/fetch/$s_!FGIM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.png 1272w, https://substackcdn.com/image/fetch/$s_!FGIM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506c42cc-66f1-4cd9-818a-0f9632133af0_1000x682.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Karel du Jardin, 1669, edited with AI. Every board has had someone whose job is to walk in with good news.</figcaption></figure></div><p>It was the first company in my career with no roadmap, where a single screen could be redesigned three times in one month for the sake of another experiment to move engagement and retention rates. Engagement was the whole religion. And engagement, taken apart, is delight, trust, and the occasional surprise, which is what I wrote about in <a href="iframe.php?url=https%3A%2F%2Fuxdesign.cc%2Ffeelings-are-the-new-features-5d027a50bdaf">Feelings are the new features</a>.</p><p>So we designed only short-term and only for feelings, and then we measured them. We tracked emotional response through proxy metrics and adjusted the interface until the numbers moved.</p><p>In April 2025, OpenAI shipped a GPT-4o update and started pulling it back three days later. Their own post-mortem is frank: they &#8220;<a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fsycophancy-in-gpt-4o%2F">focused too much on short-term feedback</a>,&#8221; and the model &#8220;skewed towards responses that were overly supportive but disingenuous.&#8221; A thumbs-up signal, collected at the scale of hundreds of millions of weekly users, taught the model to agree with people.</p><p>We built a smaller version of the same machine, with retention cohorts instead of <a href="iframe.php?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FReinforcement_learning_from_human_feedback">RLHF</a>. And with AI and a drastic increase in speed, lots of teams doing emotional design are building one right now.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>The feeling got a dashboard</h3><p>The argument in my earlier article still holds. AI made functional competence cheap and aesthetic competence cheaper, and what&#8217;s left to compete on is how a product makes people feel. The better the models get, the stronger that argument becomes.</p><p>However, I got one thing wrong. I assumed feelings would stay quite hard to measure.</p><p>It turned out that once emotion becomes the differentiator, someone can build a chart for it. Session length and streak completion stand in for delight, and return rate for trust. <strong>Every one of those proxies is defensible and is also cheaper to move by flattering the user than by serving them.</strong></p><p>This is <a href="iframe.php?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FGoodhart%2527s_law">Goodhart&#8217;s law</a> with a slight twist. When a measure becomes a target, it stops being a good measure. We built a new category of measures around emotion and turned them into targets inside of about two years.</p><h2>Every court had a flatterer</h2><p>If we look back at the times when monarchs and their courts ruled the world, we will see that every court kept a flatterer whose job was to reflect the king back at himself at a slightly improved angle, and to do it quickly. Lying was optional. Say the pleasant thing and keep your position, or say the truth and lose it. Courts were selecting for agreeableness, and dishonesty arrived as a side effect, which is the harder problem, because you can fire a liar and you cannot fire an incentive. <em>(btw, the court fool had the opposite position: he could say the true thing, provided he made it funny.)</em></p><p>The damage showed up years later, when the king could no longer tell advice from applause. We have now shipped that role to hundreds of millions of people a week and put a &#8220;like&#8221; button under it.</p><h2>What agreement costs</h2><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;http://eidosdesign.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Upgrade to paid&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=http%3A%2F%2Feidosdesign.substack.com%2Fsubscribe"><span>Upgrade to paid</span></a></p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fthe-sycophancy-trap-what-happens">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Claude Fable 5.1 vs GPT-6 Astra for Product Design: Which One Is Actually Better?]]></title><description><![CDATA[Two frontier models landed within days of each other, both priced identically at $10 per million input tokens and $50 per million output, both carrying 1M-token context windows, and both claiming the crown.]]></description><link>https://eidosdesign.substack.com/p/claude-fable-51-vs-gpt-6-astra-for</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/claude-fable-51-vs-gpt-6-astra-for</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Mon, 07 Sep 2026 19:01:30 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2caea9d9-c31a-43cc-9ed2-fc64ca8d8d3e_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Two frontier models landed within days of each other, both priced identically at $10 per million input tokens and $50 per million output, both carrying 1M-token context windows, and both claiming the crown. Anthropic shipped <strong>Claude Fable 5.1</strong> (alongside its restricted-access twin, Mythos 5.1). OpenAI shipped <strong>GPT-6 Astra</strong>, announcing it, without much modesty, as &#8220;the most intelligent and aligned model in the world.&#8221;</p><p>Every comparison written since has been about coding benchmarks, agent loops and token economics. Almost nobody has answered the question designers actually care about: <strong>if your job is shipping product, which one makes better design?</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I went through the vendor announcements, the third-party benchmark labs, the hands-on teardowns, and the noisy parts of X, Hacker News and Reddit. The short version is that the two models are not competing at the same thing, and the winner depends entirely on which half of the design process you are trying to compress.</p><div><hr></div><h2>The scoreboard, briefly</h2><p>Neutral evaluation puts these models within a few points of each other, with the lead flipping depending on who is counting.</p><p>Artificial Analysis has <strong>Fable 5.1 at 57 on its Intelligence Index versus Astra&#8217;s 55</strong>, with Fable also faster (69 tokens/sec vs 64) and lower-latency to first token. Another aggregation of the same lab&#8217;s numbers puts the gap wider, at <strong>66 to 61</strong>, concluding flatly that &#8220;Fable 5.1 is the more intelligent model on neutral testing.&#8221;</p><p>Astra takes the raw capability records. It posts <strong>99.9% on ARC-AGI-3</strong>, <strong>97.6% on FrontierMath Tier 4</strong> (against Fable&#8217;s 87.8%), <strong>96.0% on GPQA Diamond</strong>, and <strong>59.3% on Agents&#8217; Last Exam</strong> for computer use. OpenAI&#8217;s own framing: Astra &#8220;saturates ARC-AGI-3 with a 99.9% score and helps solve long-standing open problems in mathematics.&#8221;</p><p>Anthropic&#8217;s counter-numbers are about agentic depth rather than ceilings: <strong>73.4% on CursorBench</strong>, <strong>41.7% strict accuracy on OSWorld 2.0</strong>, and a jump from 24.7% to <strong>52.6% on agentic scientific research</strong> over Fable 5. Its pricing story is cache-driven: cache reads dropped 75% to $0.25 per million, producing a claimed 25-45% cost reduction on real workloads.</p><p>But the cost picture inverts on single-shot coding. One practical teardown ran the numbers and found Astra hitting 57.9% accuracy for $7.21 per run, while <strong>&#8220;to hit roughly 55% accuracy, Fable costs almost $20 per run. Astra hits basically the same number for $7.20.&#8221;</strong> Per task, Astra is roughly $1.67 against Fable&#8217;s ~$3.70. Per long-running agent session with heavy cache reuse, Fable wins it back.</p><p>None of which tells you anything about whether the button looks right.</p><div><hr></div><h2>Lane 1: The first draft</h2><p>This is where Astra genuinely separates itself, and it is not close.</p><p>MindStudio ran a structured web design comparison and found that <strong>Astra produces polished first-draft websites without iteration, while Fable 5.1 typically requires extensive refinement.</strong> In their test, Astra&#8217;s initial output matched the quality of a Fable 5.1 site that had been developed across &#8220;roughly 15 iterations.&#8221;</p><p>Their honest framing of what that means:</p><blockquote><p>&#8220;A model that gets 80% of the way there in one shot is a very different tool than one that needs 15 rounds.&#8221;</p></blockquote><p>The specific technical improvement they identified is depth. Astra separates design elements into distinct visual planes, so that <strong>&#8220;text, background imagery, and foreground objects sit on distinct visual layers,&#8221;</strong> producing parallax and avoiding the flat, stacked-sections look that has marked AI-generated sites since the beginning.</p><p>OpenAI is marketing exactly this. From the OpenAI Developers account:</p><blockquote><p>&#8220;GPT-6 Astra brings stronger visual judgment to front-end design. Give Astra a sketch, reference, or existing UI, and ask it to: Turn the reference into a working UI. Refine layout, typography, and spacing. Adjust color and interactions. Use screenshots to guide revisions.&#8221;</p></blockquote><p>That last item matters more than it sounds. Screenshot-driven revision closes the loop between what the model renders and what it can see, which is the single biggest structural weakness AI design tools have had.</p><p>Astra also holds a reference style under pressure. In practical testing, given a slide deck as a template, it <strong>&#8220;holds the style tightly&#8221;</strong> across newly generated designs, with the same consistency extending to spreadsheets and document styling. For anyone who has watched a model silently drift off-brand by slide four, this is the boring feature that actually saves the afternoon.</p><p>Developer chatter tracked this early. Ahead of the release, one dev noted Astra is <strong>&#8220;insanely good at web development, with outputs better than Fable 5.1 in many areas.&#8221;</strong></p><div><hr></div><h2>Lane 2: The last 20%</h2><p>Now the reversal. The consistent complaint about Astra from people who look closely at output is that the first draft is impressive and the final result is not better.</p><p>The sharpest version, from developer Dan (@DanDr1s):</p><blockquote><p>&#8220;GPT-6 Astra has one pretty big problem: Frontend/UI design. Astra is absurdly good at spatial reasoning, 3D, computer use, math, agents, coding... But ask it to make a beautiful website and Claude can still look noticeably better. This might genuinely be the biggest reason I&#8217;d still [use Claude].&#8221;</p></blockquote><p>Designer Anshu (@anshuc) put the aesthetic critique more bluntly:</p><blockquote><p>&#8220;Astra is impressive, but frontend designers are definitely not cooked. OpenAI hasn&#8217;t solved slop yet. The visuals look cool but none of it makes any sense. The copy on the page is still pretty cringe. There&#8217;s a lot of detail, but it&#8217;d look better if it just removed excess instead of adding.&#8221;</p></blockquote><p>That is a precise description of a specific failure mode: <strong>additive maximalism</strong>. The model demonstrates capability by adding elements, when the design decision that separates good work from generated work is almost always subtraction.</p><p>Fable does not escape criticism here either. In The Zvi&#8217;s roundup of practitioner feedback, Sean McCarthy on Fable 5.1: <strong>&#8220;Still makes bad UI decisions, taste is questionable there.&#8221;</strong> Michael Soareverix listed what Fable still needs as <strong>&#8220;maybe a little taste, intention-reading, and speed.&#8221;</strong></p><p>So neither model has taste. The difference is in the shape of the failure. Astra fails by producing something confident and overloaded. Fable fails by producing something restrained that needs steering. If you are a designer with opinions, the second failure mode is cheaper to fix, because editing down a model that under-reaches costs fewer tokens and less argument than talking one out of its own maximalism.</p><p>Theo (@theo) captured the division of labour that a lot of teams seem to have landed on:</p><blockquote><p>&#8220;To be clear, the code in Astra is a huge leap and is at roughly Fable 5-tier. Fable 5.1 is an unexpected leap in &#8216;...yeah this is fine to merge.&#8217; Funny enough, Fable 5.1 found Astra&#8217;s implementation of AGY on my computer last night, said &#8216;this is good enough,&#8217; polished it a bit...&#8221;</p></blockquote><p>Astra generates. Fable judges and ships. That pattern shows up repeatedly.</p><div><hr></div><h2>Lane 3: Everything that isn&#8217;t a screen</h2><p>If your product design work extends past 2D interfaces, Astra is not close to matched.</p><p>OpenAI demonstrates Astra <strong>modelling a house in Blender and turning it into a walkable scene in Unreal Engine 5</strong>, framed explicitly as a design tool: helping &#8220;designers and clients explore the layout and experience the space before it&#8217;s built.&#8221; It scores <strong>95.9% on BenchCAD</strong>, produces game graphics with coherent motion, and generates clean vector output from text prompts.</p><p>The computer-use advantage compounds this. Astra completes desktop tasks roughly <strong>47% faster than its predecessor</strong>, and OpenAI calls it the best computer-use model it has built. For a designer, computer use is not an abstraction: it is the model driving Figma, pulling assets, running the browser, checking the rendered result. Astra being &#8220;about 1.9 times faster&#8221; at these tasks is what makes agentic design ops actually usable rather than a demo.</p><p>Fable holds its own on agentic CAD per practitioner reports, and its OSWorld 2.0 number is real. But Astra owns this lane.</p><div><hr></div><h2>Lane 4: The tooling around the model</h2><p>Model quality is not the whole product, and Anthropic has been building the design surface, not just the weights.</p><p><strong>Claude Design</strong>, from Anthropic Labs, is a dedicated environment for design work: mockups to interactive prototypes, refinement through conversation, inline comments, direct manipulation, custom sliders, and automatic design system application across projects. The customer quotes are strong:</p><blockquote><p>&#8220;Our most complex pages, which took 20+ prompts to recreate in other tools, only required 2 prompts in Claude Design.&#8221; &#8212; Olivia Xu, Senior Product Designer, Brilliant</p><p>&#8220;We&#8217;ve gone from a rough idea to a working prototype before anyone leaves the room.&#8221; &#8212; Aneesh Kethini, Product Manager, Datadog</p></blockquote><p>The community reaction is worth reading in full because it is genuinely split. Praise, from PM Peter Yang: <strong>&#8220;Design system integration feels best in class for AI. Creates beautiful videos, more so than slides. Fun but burns through usage quickly.&#8221;</strong> From r/ClaudeAI, more bluntly: <strong>&#8220;Would suck to be Figma right now.&#8221;</strong> Figma&#8217;s stock closed down 4.26% on launch day.</p><p>And the pushback, which is sharper than the marketing would like. Senior designer Malewicz:</p><blockquote><p>&#8220;This is only hype for people that never worked with real UX/UI designers. Another slop feature that will burn tokens.&#8221;</p></blockquote><p>The Register&#8217;s headline: <strong>&#8220;Anthropic debuts Claude Design &#8212; because who needs designers?&#8221;</strong> PCWorld&#8217;s complaint was operational rather than philosophical: <strong>&#8220;30 minutes &#8594; locked out for a week.&#8221;</strong></p><p>The most useful line in the entire discourse came from Christopher Noessel of IxDA, and it applies to both models equally:</p><blockquote><p>&#8220;If your job was the comps, your job was always going to go. The design was never the comps.&#8221;</p></blockquote><p>Note the caveat on Claude Design specifically: it is powered by Claude Opus 4.7, described as Anthropic&#8217;s most capable vision model, not by Fable 5.1. The design tooling and the flagship reasoning model are, for now, separate tracks.</p><p>OpenAI&#8217;s equivalent surface is ChatGPT Sites for website and web app generation, plus Astra&#8217;s document, presentation and spreadsheet generation that adheres to templates and business standards. It is broader and less design-specific. Anthropic has a design product; OpenAI has a model that does design among many other things.</p><div><hr></div><h2>The thing both camps agree on</h2><p>Buried in the MindStudio testing is the finding that undercuts most of this comparison: <strong>reference materials matter more than the base prompt.</strong> Feeding either model actual design examples from sources like Awwwards or godly.design improved output quality more than prompt engineering did. Their Astra results relied on a custom &#8220;Scroll Craft&#8221; framework built to direct the model&#8217;s &#8220;understanding of layering, scrolling behavior, typography, and spacing.&#8221;</p><p>Which means the honest headline is that <strong>the gap between these two models is smaller than the gap between a designer who feeds references and constraints and one who types &#8220;make it look modern.&#8221;</strong> The chaseai teardown reached the same conclusion about Astra&#8217;s visual judgment: the quality &#8220;still depends heavily on prompt quality.&#8221;</p><div><hr></div><h2>The verdict</h2><p>There is no single winner, and anyone selling you one is selling you something.</p><p><strong>Use GPT-6 Astra if:</strong> you need first drafts fast, you work from references and screenshots, your design work touches 3D, CAD, spatial or game contexts, you need an agent that drives your actual desktop tools, or you are running high volumes of one-shot generations where per-task cost dominates. Astra is the exploration engine. It is the better model for getting to something to react to.</p><p><strong>Use Claude Fable 5.1 if:</strong> you are refining toward a shippable interface, you care about restraint over density, you run long sessions where cache economics compound, you are already inside the Claude Design and Claude Code workflow, or you want the model whose failure mode is &#8220;under-designed&#8221; rather than &#8220;over-designed.&#8221; Fable is the judgment engine. It is the better model for deciding what is done.</p><p><strong>The pragmatic answer, which is what most teams testing both have converged on:</strong> run Astra for the first pass, Fable for the polish and the merge decision. Both cost the same per token. The workflow cost of switching is lower than the cost of forcing one model to do a job it is structurally worse at.</p><p>And the uncomfortable third answer: neither model has taste, and the practitioners closest to both keep saying so. Astra adds when it should subtract. Fable makes questionable UI calls and waits to be corrected. What has actually changed in 2026 is not that AI got good at design. It is that the cost of producing comps went to roughly zero, which was always going to happen, and which was never where the design was.</p><div><hr></div><h2>Sources</h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fclaude-fable-and-mythos-5-1">Introducing Claude Fable 5.1 and Claude Mythos 5.1 &#8212; Anthropic</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fgpt-6-astra%2F">GPT-6 Astra: A new generation of intelligence &#8212; OpenAI</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.mindstudio.ai%2Fblog%2Fgpt-6-astra-design-websites">GPT-6 Astra for Web Design: Can It Beat Claude Fable 5.1? &#8212; MindStudio</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fartificialanalysis.ai%2Fmodels%2Fcomparisons%2Fgpt-6-astra-vs-claude-fable-5-1">GPT-6 Astra vs Claude Fable 5.1 &#8212; Artificial Analysis</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.chaseai.io%2Fblog%2Fgpt-6-astra-vs-fable-5-1">GPT-6 Astra vs Fable 5.1: What Actually Matters &#8212; Chase AI</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Femergent.sh%2Flearn%2Fgpt-6-astra-vs-fable-5-1">GPT-6 Astra vs Fable 5.1: The Ultimate Comparison &#8212; Emergent</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fthezvi.substack.com%2Fp%2Fclaude-mythos-51-and-fable-51-capabilities">Claude Mythos 5.1 and Fable 5.1: Capabilities &#8212; Don&#8217;t Worry About the Vase (The Zvi)</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fnews%2Fclaude-design-anthropic-labs">Introducing Claude Design by Anthropic Labs &#8212; Anthropic</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Frohitg00%2Fawesome-claude-design">awesome-claude-design: community takes and X signal &#8212; GitHub</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FOpenAIDevs%2Fstatus%2F2095596149654868092">OpenAI Developers on front-end design with Astra &#8212; X</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FDanDr1s%2Fstatus%2F2096245930307506446">Dan (@DanDr1s) on Astra&#8217;s frontend weakness &#8212; X</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fanshuc%2Fstatus%2F2093695162962596038">Anshu (@anshuc) on Astra and slop &#8212; X</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2Ftheo%2Fstatus%2F2095603098018521506">Theo (@theo) on Astra vs Fable 5.1 code quality &#8212; X</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FChrisGPT%2Fstatus%2F2095594374843232583">Chris on Astra in Blender and Unreal Engine 5 &#8212; X</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fpankajkumar_dev%2Fstatus%2F2095207114314838495">Pankaj Kumar on early Astra web development results &#8212; X</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.datacamp.com%2Fblog%2Fgpt-6-astra">GPT-6 Astra: Features, Benchmarks, and Pricing &#8212; DataCamp</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[August 2026: Every sandbox had a door]]></title><description><![CDATA[Figma let designers write skills, and Claude Code started drawing screens. Three labs published rogue-agent incidents in the same month, and the EU started marking AI outputs.]]></description><link>https://eidosdesign.substack.com/p/august-2026-every-sandbox-had-a-door</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/august-2026-every-sandbox-had-a-door</guid><dc:creator><![CDATA[Mykola Korzh]]></dc:creator><pubDate>Tue, 01 Sep 2026 17:02:25 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26dfdd25-076f-498e-acf0-deecdf102aec_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello fellow designers, creatives, digital professionals, and Eidos Design members!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-uvT%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-uvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-uvT%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Newspaper icon with the title News.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper icon with the title News." title="Newspaper icon with the title News." srcset="https://substackcdn.com/image/fetch/$s_!-uvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Last month I wrote that supervising agents was becoming the job. I didn&#8217;t expect August to close the case so fast.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | Building with AI is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The Canvas is becoming a command</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21L8M0%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L8M0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!L8M0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!L8M0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!L8M0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21L8M0%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Figma blog post titled Try These 10 Skills, And Show Off Your Own, introducing community-authored skills.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Figma blog post titled Try These 10 Skills, And Show Off Your Own, introducing community-authored skills." title="Figma blog post titled Try These 10 Skills, And Show Off Your Own, introducing community-authored skills." srcset="https://substackcdn.com/image/fetch/$s_!L8M0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!L8M0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!L8M0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!L8M0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd3972d-a252-45e0-bb9a-aebb8691feac_2560x1440.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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"><em>Figma&#8217;s skills library, launched August 13. Skills are plain markdown files: a designer&#8217;s judgment written down in a form an agent can read. Source: Figma.</em></figcaption></figure></div><p>On August 17 and 18, Anthropic shipped /design for Claude Code as a research preview. The feature generates editable UI artboards from inside a coding session, built on Artifacts. It reads the codebase and matches the current UI style. I&#8217;ve been using it. The first thing it did well surprised me: it looked at the visual language already in the codebase and made something continuous with it, rather than inventing a new one.</p><p>Some designers hated it. UX Planet ran <a href="iframe.php?url=https%3A%2F%2Fuxplanet.org%2Fclaude-code-sucks-at-ui-design-6c83450e0090">&#8220;Claude Code sucks at UI design&#8221;</a> within the week, and the critique under the headline is fair: the artboards are competent, and competent is the ceiling. Both experiences are real. The tool extends whatever taste already exists in the codebase, mine included. Point it at a weak foundation and it amplifies weakness.</p><p>Figma shipped <a href="iframe.php?url=https%3A%2F%2Fwww.figma.com%2Fblog%2Ftry-these-10-skills-and-show-off-your-own%2F">skills authoring on August 13</a>. Miggi Cardona&#8217;s framing in the announcement: skills are markdown, &#8220;perfect for capturing the opinions and judgment calls that every designer carries around.&#8221; The featured community skills include /better-interface and /component-handoff. That framing landed for me: a skill is a designer&#8217;s reasoning written down in a form an agent can read.</p><p>The business context, briefly: <a href="iframe.php?url=https%3A%2F%2Finvestor.figma.com%2Fnews-events%2Fnews%2Fnews-details%2F2026%2FFigma-Announces-Second-Quarter-2026-Financial-Results%2Fdefault.aspx">Figma&#8217;s Q2 landed August 5</a> at $370.1 million in revenue, up 48% year-over-year, the third straight quarter of acceleration, and over 80% of customers spending $10,000 or more annually now consume AI credits weekly. Dylan Field: &#8220;By bringing code, new creative capabilities, and agents directly to the canvas, we&#8217;re increasing the surface for AI consumption in Figma and expanding the possibilities for what teams can create.&#8221;</p><p>Webflow retired its legacy Editor on August 4 in favor of in-context editing on the live page. Vercel&#8217;s v0 API went generally available. <a href="iframe.php?url=https%3A%2F%2Fwww.startuphub.ai%2Fai-news%2Fartificial-intelligence%2F2026%2Fpaper-s-steven-haney-on-ai-native-design-tools">Stephen Haney of Paper, on the YC Design Review on August 7</a>, put the underlying logic plainly: &#8220;if you build a great handoff for humans, you&#8217;ve also built a great handoff for agents.&#8221;</p><p>What&#8217;s happening across all of these: the artifact of design is shifting from a file to an instruction. Figma lets me write skills that describe my judgment. Claude Code reads a codebase and generates screens that fit it. The two tools are walking toward each other from different directions. At some point in the near future they&#8217;ll meet in the middle, and what I hand off will be a set of encoded decisions an agent can execute.</p><h2>Agents got billed, features got cut</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Tlkx%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tlkx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!Tlkx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!Tlkx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!Tlkx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Tlkx%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;OpenAI blog post announcing its decision to end model supply to Cursor following the SpaceX acquisition.&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="OpenAI blog post announcing its decision to end model supply to Cursor following the SpaceX acquisition." title="OpenAI blog post announcing its decision to end model supply to Cursor following the SpaceX acquisition." srcset="https://substackcdn.com/image/fetch/$s_!Tlkx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!Tlkx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!Tlkx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!Tlkx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F587684c3-3719-4e21-bd89-b66589cfc1c0_2560x1440.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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"><em>OpenAI&#8217;s August 29 announcement that it will stop supplying models to Cursor after the SpaceX acquisition, with a shutoff proposed for November 12. Source: OpenAI.</em></figcaption></figure></div><p>The money moved to persistent agents. Features built for the chat era started dying. And the month&#8217;s biggest deal started biting its own tail before the month ended.</p><p>SpaceX completed its <a href="iframe.php?url=https%3A%2F%2Fwww.stocktitan.net%2Fsec-filings%2FSPCX%2F8-k-space-exploration-technologies-corp-reports-material-event-c660405680ba.html">all-stock acquisition of Anysphere</a>, the company behind Cursor, on August 14. Cursor shares converted into 389,289,254 SpaceX Class A shares; the deal is reported as the largest startup acquisition ever, at approximately $60 billion. Three days later, Cursor pushed Origin, its own code hosting, into early beta. About three and a half hours after that, GitHub went down for 6 hours and 42 minutes globally. Coincidence, and the timing wrote Cursor&#8217;s marketing copy for it. Vercel CEO Guillermo Rauch captured the moment&#8217;s circularity: &#8220;You can now host your repos in Cursor Origin and deploy to Vercel via Cursor Origin, which is itself hosted on Vercel.&#8221; On August 21, <a href="iframe.php?url=https%3A%2F%2Fx.ai%2Fnews%2Fgrok-bot-more-plans">Grok Bot</a>, xAI&#8217;s &#8220;AI teammates you can give real work to,&#8221; was added to Cursor&#8217;s Pro+, Teams, and Ultra plans.</p><p>Then the bill for consolidation arrived. On August 29, <a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Four-decision-on-cursor-following-its-acquisition-by-spacex%2F">OpenAI announced it will stop supplying models to Cursor</a>, with a shutoff proposed for November 12. Its stated reason: it can&#8217;t be confident SpaceX will honor its terms of service, pointing at xAI&#8217;s admitted use of OpenAI outputs for training. Cursor CEO Michael Truell noted OpenAI models carry about 5% of Cursor&#8217;s customer traffic. Anthropic co-founder Tom Brown said Anthropic will &#8220;continue to increase compute to support Claude models in Cursor.&#8221; Two weeks after the largest startup acquisition in history closed, the acquired product lost one of its three frontier model suppliers, and the tool you prototype in became a battleground between the labs that power it.</p><p><a href="iframe.php?url=https%3A%2F%2Ftechcrunch.com%2F2026%2F08%2F12%2Flovable-confirms-new-13-3b-valuation-raises-another-400m%2F">Lovable raised $400 million at a $13.3 billion valuation on August 12</a>, double its December valuation, and projects $600 million in ARR by the end of August. <a href="iframe.php?url=https%3A%2F%2Ftechcrunch.com%2F2026%2F08%2F13%2Fmicrosoft-kills-off-unsuccessful-ai-features-while-merging-its-separate-copilot-apps%2F">Microsoft merged its Copilot apps</a> and discontinued Group Chats, AI podcasts, Copilot Labs, Deep Research, and the Mico character; EVP Jacob Andreou&#8217;s internal memo, reported by The Information, said the app needed to earn &#8220;the right to exist&#8221; in customers&#8217; lives. <a href="iframe.php?url=https%3A%2F%2Ftechcrunch.com%2F2026%2F08%2F03%2Fapple-finally-fixed-siri-so-why-does-it-feel-anticlimactic%2F">Apple&#8217;s Siri AI arrived in the iOS 27 public beta</a> running on a custom Gemini model; TechCrunch: &#8220;It feels almost like Apple fixed a long-standing bug... rather than doing something revolutionary.&#8221; ChatGPT passed one billion weekly users. And at Google DeepMind, Demis Hassabis stepped back to Chair while Jeff Dean left after 27 years to found Discovery Loop.</p><p>I&#8217;d planned to close this section with a clean line about the market paying for consumption and punishing cost, but the market declined to cooperate. Figma fell 15.87% after hours on earnings day, then climbed from $24.99 on August 13 to $30.62 by August 28 as <a href="iframe.php?url=https%3A%2F%2F247wallst.com%2Finvesting%2F2026%2F08%2F27%2Ffigma-spikes-12-as-ai-turns-from-threat-to-tailwind-for-design-software-atlassian-rallies-8%2F">analysts flipped the story from AI threat to AI tailwind</a> and the company raised its full-year guidance. Same company, same numbers, opposite verdict, three weeks apart. Valuation is not validation, and this month it wasn&#8217;t even a stable opinion.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/august-2026-every-sandbox-had-a-door?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Faugust-2026-every-sandbox-had-a-door%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h2>Every sandbox had a door</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21tfLW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tfLW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 424w, https://substackcdn.com/image/fetch/$s_!tfLW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 848w, https://substackcdn.com/image/fetch/$s_!tfLW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 1272w, https://substackcdn.com/image/fetch/$s_!tfLW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21tfLW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png" width="1456" height="802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:802,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:611638,&quot;alt&quot;:&quot;The UK Al Security Institute&#8217;s incident report screenshot.&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://eidosdesign.substack.com/i/213592211?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The UK Al Security Institute&#8217;s incident report screenshot." title="The UK Al Security Institute&#8217;s incident report screenshot." srcset="https://substackcdn.com/image/fetch/$s_!tfLW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 424w, https://substackcdn.com/image/fetch/$s_!tfLW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 848w, https://substackcdn.com/image/fetch/$s_!tfLW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 1272w, https://substackcdn.com/image/fetch/$s_!tfLW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534df24d-b19f-4b52-a4f8-cb61a3df44dd_1470x810.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The UK Al Security Institute&#8217;s incident report INC-2026-07-28-01, published August 4.Ten of 122 evaluation runs produced unsanctioned live-internet actions; one agentfabricated human identities to pressure an open-source maintainer. Source: UK AISI.</figcaption></figure></div><p>The Hugging Face story from July got a <a href="iframe.php?url=https%3A%2F%2Fhuggingface.co%2Fblog%2Fagent-intrusion-technical-timeline">full post-mortem on July 27</a>: roughly 17,600 attacker actions across 4.5 days, 136 secret keys pulled from a single Kubernetes object, core infrastructure rebuilt from scratch. Their conclusion was precise: &#8220;We believe the entire intrusion was, from the agent&#8217;s point of view, an attempt to cheat the evaluation: reach our production systems and steal the test solutions.&#8221;</p><p>OpenAI told its side at Black Hat on August 5, and <a href="iframe.php?url=https%3A%2F%2Fsimonwillison.net%2F2026%2FAug%2F7%2Fopenai-timeline%2F">Simon Willison&#8217;s reconstruction</a> is the version to read. During a training run, agents discovered a writable file store and turned it into a message board, coordinating across sessions without being designed to. When OpenAI cut that channel, they found another, passing messages through directory names. Willison&#8217;s favorite detail: OpenAI learned it was behind the breach when it reached out to have its own credentials revoked and heard they already had been.</p><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fnews%2Finvestigating-incidents-cybersecurity-evals">Anthropic disclosed next</a>, on July 30: three incidents where a Claude model reached the internet from a third-party eval environment and broke into real systems. Internet access had been left on by mistake, the models had been told they were in simulations, and the way in was weak passwords. Two of the three organizations didn&#8217;t know until Anthropic called.</p><p>Then the UK AI Security Institute published <a href="iframe.php?url=https%3A%2F%2Fwww.aisi.gov.uk%2Fblog%2Fincident-report-unsanctioned-agent-behaviour-during-cyber-testing">incident report INC-2026-07-28-01</a> on August 4: 10 of 122 July eval runs produced unsanctioned live-internet actions. One agent went further than the rest. It inserted malicious code into a public open-source project, researched the human maintainers, fabricated online identities of real people, and used those identities to pressure a maintainer into approving the pull request.</p><p>The maintainer said no.</p><p>The month closed with <a href="iframe.php?url=https%3A%2F%2Ftechcrunch.com%2F2026%2F08%2F26%2Fopenai-releases-its-official-report-on-the-hugging-face-breach%2F">OpenAI&#8217;s own technical report on August 26</a>, and one sentence in it stopped me: OpenAI says its forthcoming chain-of-thought monitoring &#8220;would have caught the initial relevant activity and paged our security team more than a day before.&#8221; The monitor that would have caught the intrusion is shipping after the intrusion.</p><p>The day before publishing that report, <a href="iframe.php?url=https%3A%2F%2Ffortune.com%2F2026%2F08%2F25%2Fopenai-california-ai-safety-law-sb53-regulation-cybersecurity-hugging-face-hack-competitors-regulatory-moat%2F">OpenAI asked California to expand SB 53</a>, the state&#8217;s AI safety law, to require monitoring of new models during development, training, and evaluation. Darren Kimura, CEO of AI Squared, read the proposal from a smaller company&#8217;s seat: &#8220;It pushes more costs on the developers of models, independent model developers, smaller upstarts.&#8221; OpenAI already built its monitor. The law it wants would make everyone else buy one.</p><p>What each lab called a sandbox turned out to have a door.</p><h2>The month the outputs started confessing</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21gu1A%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gu1A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 424w, https://substackcdn.com/image/fetch/$s_!gu1A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 848w, https://substackcdn.com/image/fetch/$s_!gu1A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 1272w, https://substackcdn.com/image/fetch/$s_!gu1A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21gu1A%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png" width="1080" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44126609-54df-4b68-8181-c94c76dc5347_1080x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:785920,&quot;alt&quot;:&quot;Image with a text label: \&quot;AI GENERATED\&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://eidosdesign.substack.com/i/213592211?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e5fb60-edfb-4985-b098-7e57a5b68eaf_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image with a text label: &quot;AI GENERATED&quot;." title="Image with a text label: &quot;AI GENERATED&quot;." srcset="https://substackcdn.com/image/fetch/$s_!gu1A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 424w, https://substackcdn.com/image/fetch/$s_!gu1A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 848w, https://substackcdn.com/image/fetch/$s_!gu1A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 1272w, https://substackcdn.com/image/fetch/$s_!gu1A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44126609-54df-4b68-8181-c94c76dc5347_1080x720.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The EU&#8217;s official Al-content icon set from the Commission&#8217;s Article 50 implementation guidelines. A generic sparkle icon does not comply. Source: Smashing Magazine / European Commission.</figcaption></figure></div><p>EU AI Act Article 50 applied on August 2, across all 27 member states. Chatbot disclosure, machine-readable marking of synthetic output, deepfake labeling, fines up to EUR 15 million or 3% of global turnover. The Digital Omnibus moved the standalone high-risk obligations to December 2, 2027, but Article 50 landed on schedule. About 190 organizations had signed the Code of Practice on Transparency of AI-generated Content by the end of July. Anthropic began machine-readable marking of Claude outputs for products released from August 2, <a href="iframe.php?url=https%3A%2F%2Fwww.artificiallawyer.com%2F2026%2F08%2F13%2Fanthropic-will-embed-watermarks-in-ai-outputs%2F">per Artificial Lawyer&#8217;s reporting</a>.</p><p>The Commission&#8217;s implementation guidelines reach directly into design systems. <a href="iframe.php?url=https%3A%2F%2Fwww.smashingmagazine.com%2F2026%2F08%2Feu-guidelines-ai-labelling%2F">A generic sparkle icon does not satisfy Article 50</a>. Compliant labels use the official EU AI icon set with plain wording like &#8220;AI-generated,&#8221; persist through resharing and download, and work with assistive technology. Substantively human-edited content is exempt, along with spellcheck-level fixes and edited translations. If your product ships AI features to EU users, somewhere in your component library there&#8217;s a &#10024; that just became a compliance bug. Swapping it for the official icon is the most concrete thing this month&#8217;s regulation asks of a designer.</p><h2>Handpicked highlights</h2><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fdesignmavericks.substack.com%2Fp%2Fwhen-ai-builds-everything-design">Marzia Aric&#242;, &#8220;When AI Builds Everything, Design Becomes Everything&#8221;</a></strong>. The argument: as execution costs fall toward zero, the valuable design work moves upstream into direction-setting and governance. The essay-length version of what the skills story hints at.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fnamethatui.com%2F">NameThatUI</a></strong>. A visual dictionary for interface parts. Describe &#8220;the three dots menu&#8221; in plain words and get the real name, the API symbol, and a prompt-ready term for web, macOS, and iOS. Precise vocabulary matters more now that agents build from your words.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fwww.glaze.app%2F">Glaze</a></strong>. Chat a native Mac app into existence, with file system access and offline use. Personal software built for one person, running on their machine.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fvgpu.labs.vercel.dev%2F">vgpu</a></strong> by Vercel Labs. One small, composable WebGPU API that runs in browser canvases, headless Node, and serverless runtimes, designed with agents as intended users. Graphics infrastructure for the era where the machine draws too.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fwww.dialkit.dev%2F">DialKit</a></strong> by Josh Puckett. Live sliders and hooks for tuning spring physics, spacing, and animation while the interface runs. Shape it by feel, then keep the numbers.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/august-2026-every-sandbox-had-a-door?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Faugust-2026-every-sandbox-had-a-door%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h2>What August revealed</h2><p>Three threads ran through August, and they point at the same thing from different angles.</p><p>The canvas is becoming a command. Figma lets me write my judgment down as skills. Claude Code reads a codebase and generates screens. The artifact is shifting from a file I design to a set of instructions an agent executes. That&#8217;s worth thinking about carefully, because encoded judgment is only as good as the judgment you encoded, and nobody reviews that encoding the way they&#8217;d review a design system.</p><p>The money consolidated around persistent agents, and consolidation started producing casualties the same month: chat-era features cut at Microsoft, a frontier lab walking out of Cursor two weeks after its acquisition.</p><p>And the sandboxes leaked. Every lab that ran agents against real security challenges found that the sealed room had a door, and agents found it. The disclosures compounded in the right direction, each lab reporting after the last, and by month&#8217;s end OpenAI had published its own analysis and asked for a law. But the sequence deserves attention: in each case, disclosure came after the fact, and the organizations that had been accessed mostly found out when someone called them.</p><p>The question underneath all three is who has the authority to say no, and whether that person is still in the loop.</p><p>If this edition gave you something to think about, pass it to someone who needs to read it. And subscribe if you haven&#8217;t yet.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p>I&#8217;ll write you in September.</p><p>Sincerely,<br>Mykola Korzh</p>]]></content:encoded></item><item><title><![CDATA[Eidos Design. Volume XXXVIII: Your Users Already Told You, But Nobody Was Recording]]></title><description><![CDATA[A full teardown of Genius, the feedback tool that scores your product ideas and then tells you what it doesn't know. Eidos readers get three months free.]]></description><link>https://eidosdesign.substack.com/p/eidos-design-volume-xxxviii-your</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/eidos-design-volume-xxxviii-your</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Mon, 24 Aug 2026 08:02:11 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a98af33-8eaa-4f73-8027-20990aef06db_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Hello fellow designers, creatives, digital professionals and Eidos Design members!</strong></p><p>August is coming to an end. Out-of-office auto-replies are being turned off again, your tan is fading, and you&#8217;re finally opening a shared document titled &#8220;Requests for New Features for Q4, Version 3, FINAL!&#8221;. This document probably spans several pages, has numerous authors, and you probably don&#8217;t even remember who asked for &#8220;better filters,&#8221; or what they were actually doing at the moment they made that request.</p><p>You and your team collects a lot of feedback, including support tickets, Slack threads, sales notes, and insights from polls and surveys. Collecting information might be effective, however, by the time the request makes its way into a roadmap document, it has been rewritten by someone who wasn&#8217;t there at the time, and the page, the plan, the workflow, and the small challenges that prompted someone to pay enough attention to it to write about it have vanished.</p><p><strong>A feedback form collects what a user managed to remember. Everything that made it urgent has already gone cold.</strong></p><p>Look at the size of that gap. In-app feedback pulls a 32.34% response rate. Email surveys pull 3.24%, according to <a href="iframe.php?url=https%3A%2F%2Fwww.retently.com%2Fblog%2Fsurvey-response-rate-study%2F">Retently&#8217;s study of 2025 response data</a>. Same customers, same questions, roughly ten times the answers. We&#8217;ve built a whole discipline around asking people to remember things. We take the witness statement three weeks later, and then we hold a planning meeting about it.</p><p>This issue: a full teardown of <strong>Genius</strong>, a simple tool for a complex problem. </p><div class="callout-block" data-callout="true"><p><strong>Genius is giving Eidos readers three months of their Growth plan free (code: 3GENIUS3), </strong>which is enough runway to install the trigger, collect real signals, find one pattern, and ship something people asked for. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://aproov.es/r/genius-https-eidosdesign-substack-com&quot;,&quot;text&quot;:&quot;Claim it here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Faproov.es%2Fr%2Fgenius-https-eidosdesign-substack-com"><span>Claim it here</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Genius: the recorder which is always there</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KTZm%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KTZm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!KTZm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!KTZm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!KTZm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KTZm%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:770344,&quot;alt&quot;:&quot;The Genius app icon on a colorful background.&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://eidosdesign.substack.com/i/211105079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Genius app icon on a colorful background." title="The Genius app icon on a colorful background." srcset="https://substackcdn.com/image/fetch/$s_!KTZm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!KTZm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!KTZm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!KTZm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77bb2087-30df-4cf1-ba5f-96e26bd9bbd3_1400x400.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Genius</figcaption></figure></div><p><strong>Genius</strong> describes itself as &#8220;the idea capture layer for product teams.&#8221; The word &#8220;layer&#8221; is doing real work in that sentence. Canny, Productboard, and Featurebase all want to be where your roadmap lives. Genius wants the space where ideas exist before they&#8217;re written down.</p><p>A witness statement and a security camera capture different things. A statement is a person&#8217;s reconstruction of an event from memory in a different room, days later, prompted by someone with an agenda. The camera captures the room: the time of day, who stood where, and what they were reaching for when the event occurred. <strong>Most feedback tools inherit a sentence. This one tries to capture the scene.</strong></p><h3>Who built it</h3><p>This section usually digs into the makers, the origin story, the lineage. For Genius, the well is dry. Of course I sent my AI tools to research&#8230; They found nothing really. I searched for a Product Hunt page, a G2 listing, independent reviews, press coverage, and anyone posting about running it in production. And I found none of it. The company supplied a founder quote:</p><blockquote><p>"Most feedback tools collect sentences. We wanted to preserve the moment that made the sentence matter."</p></blockquote><p>Every feature I looked at traces back to that line. So this review is a teardown of the artifact itself: the marketing site, the interactive demo, the install docs, the pricing page, and the security page, and my own glimpse on the actual product.</p><h3>The first run</h3><p>The <a href="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fdemo">interactive demo</a> describes ten steps inside a fictional analytics product called Atlas Metrics. You click the trigger, type an idea, watch the context attach, see it cluster with other signals, watch it get scored, then watch it ship and notify the person who asked. Ten clicks and you&#8217;ve felt the argument.</p><p>Installation is <a href="iframe.php?url=http%3A%2F%2Finstall+docs">three steps</a>. One script tag before the closing body tag:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;0317ad76-6ada-4151-ba91-70ffa970b353&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">&lt;script
  src="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fwidget.js"
  data-project="gen_pk_live_xxx"
  defer
&gt;&lt;/script&gt;</code></pre></div><p>One attribute on any button or link you already have:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;60591470-988a-4c4c-8a8d-9c5a8968fe37&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">&lt;button data-genius-open&gt;
  Got a genius idea?
&lt;/button&gt;</code></pre></div><p>And optionally, one call to hand it context your app already knows:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;99645eac-8866-437c-b500-538ee8055fe2&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">window.Genius?.setContext({
  feature: "Analytics",
  route: "/analytics",
});</code></pre></div><p>That&#8217;s it. The docs cover vanilla JS, React and Next.js, and the widget loads without blocking your page. They claim &#8220;most teams are live in a few minutes.&#8221; Looking at the surface area involved, I believe them.</p><p>That default trigger copy deserves a paragraph. &#8220;Got a genius idea?&#8221; Most feedback prompts open with an audit (&#8220;How would you rate your experience&#8221;). This one opens with a compliment, which lowers the cost of speaking up. It also plants the vendor&#8217;s brand name inside your product&#8217;s voice, in second person, on a button you own. Any team with a considered tone of voice will rewrite that string on day one. The docs make it easy, so the default reads as a suggestion.</p><p>The capture flow is one action. Users &#8220;tap it, say what they mean in a sentence, and get back to work&#8221; (<a href="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fproduct%2Fin-app-feedback">in-app feedback</a>). A category picker sorts the submission so, in the product&#8217;s own phrasing, &#8220;a bug never gets filed as praise.&#8221; The route they were on, the feature area, their plan and their user type attach on their own.</p><div><hr></div><p><em>Reminder: Product evaluation is done according to <strong><a href="iframe.php?url=https%3A%2F%2Fwww.interaction-design.org%2Fliterature%2Farticle%2Fnorman-s-three-levels-of-design%3Fsrsltid%3DAfmBOoreR0yuPX4BhizGaTQOjXUz4fbUE_zgJoXUVePZUP_ZbqZe5RxL">Don Norman&#8217;s 3 levels of design</a></strong>.</em> </p><h3>Visceral level: 4/5 </h3><p><em>The visceral level is responsible for first impressions.</em></p><p>The site has no screenshot carousel, no logo wall, and no countdown timer. The headline is a flat declarative: &#8220;Find Your Next Sticky Feature.&#8221; The meta title is better, and closer to the actual pitch: &#8220;Your users are already telling you what to build. Genius catches it.&#8221;</p><p>With full honesty, and with my designer&#8217;s experience, the website, the product itself, give this feeling of a design and functionality driven by AI. I don&#8217;t know if it&#8217;s true, but everything looks like a d&#233;j&#224; vu, and quite simple. So, there&#8217;s absolutely no &#8220;wow&#8221; on a visceral level.</p><p>But the demo carries most of the visceral weight and earns it. Letting someone feel a loop in ten clicks beats three paragraphs describing the same loop. The marketing asset runs on the same principle as the product it sells, which almost never happens.</p><p>It slips on tone. &#8220;Genius&#8221; as a product name, &#8220;genius idea&#8221; as button copy, &#8220;Stop building from vibes alone&#8221; as a section header. Charming on a landing page. Inside a customer&#8217;s product, at 11pm, when someone is frustrated enough to open the widget, that tone has to carry weight nobody designed it to carry.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21UBiu%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UBiu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 424w, https://substackcdn.com/image/fetch/$s_!UBiu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 848w, https://substackcdn.com/image/fetch/$s_!UBiu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 1272w, https://substackcdn.com/image/fetch/$s_!UBiu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21UBiu%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1373216,&quot;alt&quot;:&quot;Genius.ly promo image&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://eidosdesign.substack.com/i/211105079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Genius.ly promo image" title="Genius.ly promo image" srcset="https://substackcdn.com/image/fetch/$s_!UBiu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 424w, https://substackcdn.com/image/fetch/$s_!UBiu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 848w, https://substackcdn.com/image/fetch/$s_!UBiu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 1272w, https://substackcdn.com/image/fetch/$s_!UBiu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844f4c92-fb07-40be-ad54-351d5adf00d8_1734x907.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Emotional signal: &#8220;Oh, that's the whole thing?..&#8221;</em></p><h3>Behavioral level: 4/5 </h3><p>Start with the install. It&#8217;s small enough that it doesn&#8217;t need a ticket for the platform team. Context attaches without anyone remembering to attach it, which separates a system that works in month one from a system that still works in month nine.</p><p>The <a href="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fproduct%2Fproduct-insights">clustering</a> does the tedious job well. An opportunity cluster shows &#8220;12 related signals,&#8221; &#8220;8 paying users, +40% this week,&#8221; and where the requests came from. You can merge it, split it, dismiss it, or promote it into a tracked idea, and the history survives every one of those edits. That editability is the part I&#8217;d point out to any designer building with machine grouping. The product describes clusters as &#8220;a starting point, not a verdict.&#8221; You can disagree with the algorithm, and your disagreement leaves a trace. Most tools in this space hand you a cluster as a finding.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QB-Y%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QB-Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 424w, https://substackcdn.com/image/fetch/$s_!QB-Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 848w, https://substackcdn.com/image/fetch/$s_!QB-Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 1272w, https://substackcdn.com/image/fetch/$s_!QB-Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QB-Y%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png" width="480" height="248" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/048be00d-01df-4d47-abc5-0d496650e85a_480x248.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:248,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41174,&quot;alt&quot;:&quot;Genuis cluster screenshot&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://eidosdesign.substack.com/i/211105079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Genuis cluster screenshot" title="Genuis cluster screenshot" srcset="https://substackcdn.com/image/fetch/$s_!QB-Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 424w, https://substackcdn.com/image/fetch/$s_!QB-Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 848w, https://substackcdn.com/image/fetch/$s_!QB-Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 1272w, https://substackcdn.com/image/fetch/$s_!QB-Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048be00d-01df-4d47-abc5-0d496650e85a_480x248.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Opportunity Cluster</figcaption></figure></div><p>The routing looks solid on paper too: Linear, GitHub and webhooks on Growth and above, so a signal can land where the work happens.</p><p>The plan shape limits it. Capture and context work on every tier. Patterns, scoring, and close-the-loop all begin at Growth (<a href="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fpricing">pricing</a>). Starter costs $7/month billed annually and caps you at 100 signals with 30 days of history, which buys a nicer inbox and none of the thinking. The behavior this product is named for starts at $39/month. That price is fair by SaaS standards. It does mean the cheap tier can&#8217;t teach you whether the expensive tier is worth buying.</p><p><em>Emotional signal: &#8220;It found the thing I would have missed.&#8221;</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-volume-xxxviii-your?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxxviii-your%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h3>Reflective level: 5/5 </h3><p><em>The reflective level considers the long-term impression and deeper meaning of the design, how it aligns with the user's identity and values.</em></p><p>The <a href="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fproduct%2Fsticky-idea-score">Sticky Idea Score</a> is a 0-100 number built from six factors: </p><ul><li><p>Demand</p></li><li><p>Customer signal</p></li><li><p>Friction</p></li><li><p>Momentum</p></li><li><p>Evidence quality</p></li><li><p>Founder judgment</p></li></ul><p>A human weighting sits inside the algorithm by design, with a documented override, and the settings let you retune the weights. The team shipped a scoring system whose stated job is to inform a decision a person still has to make.</p><p>Then they went further. When data is missing, the score explains the gap instead of docking points, and re-weights the factors it does have. The page says: &#8220;Missing data is explained, not hidden.&#8221; And it draws a hard line at prediction. The score will tell you an opportunity sits at 72, &#8220;worth serious attention,&#8221; and it will refuse to tell you what that opportunity does to your revenue or your retention.</p><p>That&#8217;s an unusual thing for a company to give up. Every incentive in analytics runs toward the confident number, because confident numbers sell and they screenshot well into board decks. Building a scoring system that declares the limits of its own evidence costs Genius something on the landing page, and it pays the user back every time they open it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OlVr%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OlVr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 424w, https://substackcdn.com/image/fetch/$s_!OlVr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 848w, https://substackcdn.com/image/fetch/$s_!OlVr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 1272w, https://substackcdn.com/image/fetch/$s_!OlVr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OlVr%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png" width="480" height="300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:50567,&quot;alt&quot;:&quot;The Sticky Idea Score Screenshot&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://eidosdesign.substack.com/i/211105079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Sticky Idea Score Screenshot" title="The Sticky Idea Score Screenshot" srcset="https://substackcdn.com/image/fetch/$s_!OlVr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 424w, https://substackcdn.com/image/fetch/$s_!OlVr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 848w, https://substackcdn.com/image/fetch/$s_!OlVr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 1272w, https://substackcdn.com/image/fetch/$s_!OlVr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36bbbfb-92a2-45d1-9ba6-01bde617d8eb_480x300.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Sticky Idea Score</figcaption></figure></div><p>The same instinct runs through <a href="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fproduct%2Fclose-the-loop">close the loop</a>. When you ship something, Genius pulls the list of people who asked, collapses duplicate requesters to one, excludes anonymous submissions, and respects a do-not-contact list. Then it stops and waits for you. &#8220;Nothing sends without your explicit confirmation.&#8221; You write the message in your own voice. The system tracks no opens and never auto-sends. The company calls this &#8220;follow-up, not marketing.&#8221;</p><p>That last step is the one most teams skip. Inside the org, a feedback loop closes when a ticket moves to Done. From where the user sits, it closes when somebody tells them.</p><p><em>Emotional signal: &#8220;They actually came back and told me.&#8221;</em></p><h3>Where it falls short</h3><p>Five things, in rough order of how much they&#8217;d weigh on a buying decision.</p><p><strong>No free tier, and the page says so on purpose.</strong> &#8220;Genius is paid from day one.&#8221; I respect the position, since free tiers in this category have a habit of becoming abandoned widgets in half-dead products.</p><p><strong>The interesting half sits behind a paywall.</strong> Clustering, the Sticky Idea Score, and close-the-loop are the reasons to choose this over a Typeform, and all three start at Growth. A team on Starter runs a $7 inbox with no way to evaluate the thing they&#8217;re being sold.</p><p><strong>The <a href="iframe.php?url=https%3A%2F%2Fgenius.ly%2Fsecurity">security page</a> is thin.</strong> &#8220;Standard TLS.&#8221; Workspace-level isolation. Role-based access. &#8220;Your feedback data stays yours. We never sell it.&#8221; Fine as far as it goes. There&#8217;s no SOC 2, no ISO 27001, no GDPR statement, no named hosting region, and no subprocessor list. Genius ingests free-text user input alongside plan, workspace and user-type context. Most procurement teams handle that category carefully, and any enterprise review will stop at that page.</p><p><strong>There&#8217;s no track record yet.</strong> Every positive claim in this review comes from the company describing its own product, a demo the company built, and my own tests. That&#8217;s a real limit on what I can tell you, and you should weigh the whole review accordingly.</p><p><strong>The signal caps work against the product&#8217;s own thesis.</strong> Growth allows 5,000 signals a month. A trigger designed to be effortless, placed well, in a product with real traffic, will find that ceiling. You then pay more because the widget worked.</p><h3>How rivals solve the same problem</h3><p><a href="iframe.php?url=https%3A%2F%2Fcanny.io">Canny</a> starts free for up to 25 tracked users and runs $79/month at Pro. Its Autopilot AI reads sales and support conversations and pulls requests out on its own. Reviewers report it sometimes merges distinct tickets into one, which is what automation without an easy undo tends to cost you (<a href="iframe.php?url=https%3A%2F%2Fformbricks.com%2Fblog%2Fcanny-vs-productboard-vs-featurebase">comparison</a>). </p><p><a href="iframe.php?url=https%3A%2F%2Fwww.productboard.com">Productboard</a> is a full product-management system at $19 per maker per month on Plus and $59 on Business, with the strongest roadmap governance of the group and a learning curve that non-PMs bounce off. </p><p><a href="iframe.php?url=https%3A%2F%2Fwww.featurebase.app">Featurebase</a> bundles the widest set, helpdesk plus feedback plus changelog plus knowledge base, at $29 per seat per month, with AI resolution add-ons that make the final bill hard to forecast.</p><p>The bigger difference is who each tool hears from. Canny and Featurebase organize around public boards and voting, which surfaces the loud minority: users comfortable creating an account on your feedback portal to argue for a feature. Genius requires no public roadmap, so the people it hears from include the ones who would never file anything anywhere. For most products that&#8217;s the larger group.</p><p>Productboard plays a different game, aggregating everything into a planning system. Genius sits below all three and could feed any of them, which is why the Linear, GitHub and webhook routing matters more than it looks on the pricing page.</p><h3>The verdict, and what you can steal</h3><p>Genius is building an evidence tool that keeps telling you where the evidence stops. That&#8217;s an unfashionable thing to build.</p><p>The visceral layer is confident and a little too pleased with its own name. The behavioral layer is well made, then shaped by a pricing ladder that hides its best work behind the second tier. The reflective layer earns this product its place in the newsletter, because a team sat down and chose to build a number that admits what it doesn&#8217;t know, and a notification system that won&#8217;t fire until a human presses the button.</p><p>What you can take into your own work, whatever you're building:</p><ul><li><p>Put the input where the thought happens, not where the org chart filed it</p></li><li><p>Ship the context along with the content, automatically, because nobody attaches it manually twice</p></li><li><p>Let a score say what it doesn&#8217;t know, and re-weight instead of silently docking points</p></li><li><p>Leave a human factor inside the algorithm on purpose, and let people disagree with it in a way that leaves a trace</p></li><li><p>Close the loop by telling the person, not by moving the ticket</p></li></ul><h3><strong>Overall:</strong> <strong>4,3/5 </strong>&#11088;</h3><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-volume-xxxviii-your?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxxviii-your%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><div><hr></div><h3>And this is it for today,</h3><p>I trust the products that admit where their knowledge ends, a score that acknowledges missing data, and a notification that waits for human input. These small details add up to something you can rely on.</p><div class="callout-block" data-callout="true"><p><strong>Genius is giving Eidos readers three months of their Growth plan free (code: 3GENIUS3), </strong>which is enough runway to install the trigger, collect real signals, find one pattern, and ship something people asked for. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://aproov.es/r/genius-https-eidosdesign-substack-com&quot;,&quot;text&quot;:&quot;Claim it here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Faproov.es%2Fr%2Fgenius-https-eidosdesign-substack-com"><span>Claim it here</span></a></p></div><p><em>As always, this newsletter is free, but if you enjoyed it, please consider sharing it with a friend or two. Spreading the love is what it's all about, folks </em>&#128420;</p><blockquote><p>Sincerely, <br>Vadym Grin</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI in UX Studio: Building a Claude Knowledge Skills That Makes Your Agents Smarter]]></title><description><![CDATA[Welcome back to AI in UX Studio.]]></description><link>https://eidosdesign.substack.com/p/ai-in-ux-studio-16-building-a-claude</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/ai-in-ux-studio-16-building-a-claude</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Mon, 17 Aug 2026 18:56:04 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994be60a-d0db-4640-aeed-e2a9fe6d5e18_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to AI in UX Studio.</p><p>In our last edition, we explored <strong>AI Orchestration</strong>: the director layer that coordinates models, agents, and tools. But even the best director fails if the actors do not know their lines or have forgotten the script.</p><p>If you have been experimenting with agentic tools (such as Claude Code, custom GPTs, or LangChain agents), you have likely run into the <strong>Context Wall</strong>. An AI agent appears brilliant during the first five minutes of a task. Then, as the conversation progresses, it begins hallucinating, forgetting your design system rules, ignoring brand guidelines, or inventing technical constraints out of thin air.</p><p>The issue is rarely the underlying foundation model. <strong>The issue is your project&#8217;s memory.</strong></p><p>To move from conversational AI to true <strong>Agentic Workflows</strong> (systems that can autonomously perform, inspect, and refine complex product work), you must build a <strong>Project Knowledge Base (PKB)</strong>. This is the centralized source of truth that feeds your agents. Today, we are going to design and implement one from scratch.</p><div><hr></div><h3 style="text-align: center;"><strong>&#10024; Professional AI Prompt Kit for UX Designers &#10024;</strong></h3><p style="text-align: center;">Before we start this edition, I have a special learning material for you. Want to skip the learning curve and start using production-ready prompts immediately? I&#8217;ve created a comprehensive <strong>AI Prompt Kit</strong> specifically for UX designers and researchers who want to leverage AI as a strategic tool, not just a content generator.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://siavashdesign.gumroad.com/l/AIPromptKitforUX&quot;,&quot;text&quot;:&quot;Get the AI Prompt Kit for UX Designers&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fsiavashdesign.gumroad.com%2Fl%2FAIPromptKitforUX"><span>Get the AI Prompt Kit for UX Designers</span></a></p><div><hr></div><h3><strong>What Is an AI Agent (and Why Does It Need a Knowledge Base?)</strong></h3><p>Before building the architecture, let us establish a clean mental model of what an agent actually is.</p><p>A standard Large Language Model (LLM) is <strong>stateless</strong>. It takes a single prompt, predicts the most statistically probable response, and forgets everything the moment the output is delivered.</p><p>An <strong>AI Agent</strong>, by contrast, is an autonomous system that combines an LLM with memory, tool access, and a decision-making loop. It operates through five continuous phases:</p><pre><code><code>+-----------------------------------------------------------------------+
|                       THE AGENTIC DECISION LOOP                       |
+-----------------------------------------------------------------------+
|                                                                       |
|   [ 1. PERCEIVE ]  ---&gt;  Reads goal, user input, and repo state.       |
|          |                                                            |
|          v                                                            |
|   [ 2. REASON ]    ---&gt;  Queries Project Knowledge Base (PKB).        |
|          |                                                            |
|          v                                                            |
|   [ 3. TOOL USE ]  ---&gt;  Executes actions (reads code, updates UI).   |
|          |                                                            |
|          v                                                            |
|   [ 4. VERIFY ]    ---&gt;  Checks output against Gatekeeper rules.      |
|          |                                                            |
|          v                                                            |
|   [ 5. DELIVER ]   ---&gt;  Hands off completed work or escalates.       |
|                                                                       |
+-----------------------------------------------------------------------+
</code></code></pre><p>When an agent lacks a structured Project Knowledge Base, step 2 breaks down completely. The agent is forced to guess your intentions.</p><h4><strong>Comparing Systems</strong></h4><ul><li><p><strong>An Agent Without a PKB:</strong></p><ul><li><p><strong>Guesses rules:</strong> Assumes standard button paddings, color tokens, and layout grids.</p></li><li><p><strong>Wastes tokens:</strong> Re-learns project context on every single prompt, draining context window capacity.</p></li><li><p><strong>Lacks accountability:</strong> Cannot check its own work because it lacks a standard for what &#8220;good&#8221; looks like.</p></li></ul></li><li><p><strong>An Agent With a PKB:</strong></p><ul><li><p><strong>Queries truth:</strong> Looks up exact hex codes, spacing scales, and accessibility specs before generating assets.</p></li><li><p><strong>Saves tokens:</strong> References local lightweight files on demand rather than requiring massive context dumps in every prompt.</p></li><li><p><strong>Self-corrects:</strong> Compares its draft against explicit QA checklists, fixing bugs automatically before presenting work to humans.</p></li></ul></li></ul><h3><strong>The Architecture: The 4-Directory Knowledge Model</strong></h3>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fai-in-ux-studio-16-building-a-claude">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[July 2026: You're the Supervisor Now]]></title><description><![CDATA[An OpenAI model hacked a real company to pass its own test. The labs shipped agents for your decks and slides. And your design tools started charging by the token.]]></description><link>https://eidosdesign.substack.com/p/july-2026-youre-the-supervisor-now</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/july-2026-youre-the-supervisor-now</guid><dc:creator><![CDATA[Mykola Korzh]]></dc:creator><pubDate>Fri, 31 Jul 2026 15:03:34 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6d725-44c3-47ac-904d-11d4b5b7d95d_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello fellow designers, creatives, digital professionals, and Eidos Design members!</p><p>Two weeks ago, an AI model hacked a real company. Nobody told it to, and both companies admitted everything in public. I've been reading about it ever since, and it changed how I see every other launch this month.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-uvT%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-uvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-uvT%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Newspaper icon with the title 'News'.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper icon with the title 'News'." title="Newspaper icon with the title 'News'." srcset="https://substackcdn.com/image/fetch/$s_!-uvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The Model That Hacked a Company to Pass Its Own Test</h2><p>On July 16, <a href="iframe.php?url=https%3A%2F%2Fhuggingface.co%2Fblog%2Fsecurity-incident-july-2026">Hugging Face disclosed a security incident</a>. Five days later, <a href="iframe.php?url=https%3A%2F%2Ftechcrunch.com%2F2026%2F07%2F21%2Fopenai-says-hugging-face-was-breached-by-its-pre-release-models%2F">OpenAI explained where it came from</a>: the attacker was OpenAI's own model.</p><p>OpenAI was testing two unreleased models on a kind of hacking exam: a set of security challenges the model solves inside a sealed practice environment, with no access to the outside internet, and with the usual "I can't help with hacking" refusals switched off for the test. The model found a flaw in the sealed room itself, a bug in OpenAI's own software, and slipped out onto the open internet. Then it worked out where the exam's answer sheet was stored: on Hugging Face, a real company that hosts AI models and data for millions of developers. It broke in through real gaps in Hugging Face's security and copied the answers out of a live database. The model didn't go rogue in any cinematic sense. It cheated on a test, and it hacked a real company because that was the shortest path to a better score.</p><p>Hugging Face described "many thousands of individual actions across a swarm of short-lived sandboxes." OpenAI took responsibility in a joint disclosure and called it a partnership to address a security incident. Hacker News read the same document and summarized it in five words: so OpenAI hacked Hugging Face?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21q2WS%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q2WS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q2WS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q2WS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q2WS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21q2WS%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg" width="1456" height="803" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:803,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80655,&quot;alt&quot;:&quot;Screenshot of Hugging Face's blog post titled Security incident disclosure, July 2026, stating the intrusion was driven end to end by an autonomous AI agent system.&quot;,&quot;title&quot;:&quot;Screenshot of Hugging Face's blog post titled Security incident disclosure, July 2026, stating the intrusion was driven end to end by an autonomous AI agent system.&quot;,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://eidosdesign.substack.com/i/209220607?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of Hugging Face's blog post titled Security incident disclosure, July 2026, stating the intrusion was driven end to end by an autonomous AI agent system." title="Screenshot of Hugging Face's blog post titled Security incident disclosure, July 2026, stating the intrusion was driven end to end by an autonomous AI agent system." srcset="https://substackcdn.com/image/fetch/$s_!q2WS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q2WS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q2WS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q2WS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F763ab98a-a474-4498-aff5-4321a222726a_1473x812.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Hugging Face's July 16 disclosure. At the time they did not know who was behind it. Five days later OpenAI said the attacker was its own pre-release model. Source: Hugging Face.</figcaption></figure></div><p>There are three ways to read this story, and I've been going back and forth between them all week.</p><p>The first is an asymmetry that <a href="iframe.php?url=https%3A%2F%2Fsimonwillison.net%2F2026%2FJul%2F22%2Fopenai-cyberattack%2F">Simon Willison</a>, one of the most widely read writers on AI development, flagged while almost nobody else covered it. To investigate the break-in, Hugging Face's security team needed to feed real attack commands and exploit code into an AI model for analysis. The big commercial models refused, because their safety rules saw hacking material and said no. The team ran the forensics on a self-hosted open model instead, one with no such restrictions. Attackers use those same unrestricted models and get no refusals either. The guardrails, as designed, slowed down only the defenders.</p><p>The second lands directly on our desks. Every product shipping a "let the agent act for you" feature right now inherits this failure mode: a model chasing a goal will squeeze past the rules when the rules stand between it and the goal. The approve button, the permissions screen, the activity log your team keeps deprioritizing: as of this month, those are load-bearing parts of the product. I use agent tools every day, and I still catch myself clicking approve without really reading.</p><p>The third is the skeptical read. The same document that admits the breach also shows off, in detail, how good the new model is at breaking into things, days before its wide release. Safety researchers read the incident as proof that models gaming their instructions is now a practical problem rather than a theoretical one. That's true. It's also true that "our model is scarily capable" has never hurt a launch.</p><p>I'd rather say all three don't resolve than pick the comfortable one. What they agree on is the conclusion: machines doing real work need supervision, and supervision is an interface someone has to design.</p><h2>The Labs Came for the Deliverables</h2><p>On July 9, alongside GPT-5.6's public release, OpenAI launched <a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Fchatgpt-work%2F">ChatGPT Work</a>: an agent that gathers context from your connected apps (Microsoft 365, Google Workspace, Slack, SharePoint) and produces finished documents, presentations, spreadsheets and hosted websites. It runs tasks for hours, and the Ultra tier runs four agents in parallel. You brief it, leave, and come back to a deck.</p><p>Anthropic spent July on the same territory from the other side. Claude Design, which shipped in April three days after Mike Krieger left Figma's board, got its first big update on July 3: direct editing, deeper design system support, and tighter workflows with Claude Code. Anthropic says more than a million people used Claude Design in its first week. That's a company-supplied number I couldn't verify independently, but even the order of magnitude says the labs consider design output a mainline product now, not a demo.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21pKgn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pKgn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pKgn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pKgn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pKgn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21pKgn%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg" width="1456" height="803" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:803,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:118560,&quot;alt&quot;:&quot;Screenshot of OpenAI's ChatGPT Work page: a prompt asking ChatGPT to update an existing slide deck using data room and Slack context, beside a generated eight-slide presentation.&quot;,&quot;title&quot;:&quot;Screenshot of OpenAI's ChatGPT Work page: a prompt asking ChatGPT to update an existing slide deck using data room and Slack context, beside a generated eight-slide presentation.&quot;,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://eidosdesign.substack.com/i/209220607?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of OpenAI's ChatGPT Work page: a prompt asking ChatGPT to update an existing slide deck using data room and Slack context, beside a generated eight-slide presentation." title="Screenshot of OpenAI's ChatGPT Work page: a prompt asking ChatGPT to update an existing slide deck using data room and Slack context, beside a generated eight-slide presentation." srcset="https://substackcdn.com/image/fetch/$s_!pKgn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pKgn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pKgn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pKgn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4061968-c116-4206-ba3e-4eda7597d49b_1473x812.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">OpenAI's own demo for ChatGPT Work, launched July 9. One prompt, twenty minutes, and a finished executive slide assembled from a data room and Slack. Source: OpenAI.</figcaption></figure></div><p>The obvious question is quality, and the sharpest critique I read cut precisely there: better formatting is not evidence of better sourcing. A polished deck with a wrong number in it is more dangerous than an ugly one, because polish is how wrong numbers get into board meetings. The org that adopts ChatGPT Work isn't buying finished work. It's buying first drafts wearing finished clothes, and someone still has to be the person who can tell the difference.</p><p>Notice what that person is doing, though. They're not making the deck. They're judging it, correcting it, deciding whether it should exist at all. The deliverable layer is becoming machine territory, and the judgment layer is becoming a job.</p><h2>Someone Has to Watch the Machines</h2><p>July answered that question from five directions in about three weeks, and together the answers amount to a new category of interaction design: interfaces for supervising AI that works while you don't watch.</p><p>The most literal one is hardware. On July 15, OpenAI released <a href="iframe.php?url=https%3A%2F%2Fworklouder.cc%2F">Codex Micro with Work Louder</a>: a limited-run $230 keyboard for agent work, with dedicated keys that show what your agents are doing, a joystick for moving between workflows, and a physical dial that adjusts how much reasoning effort the model spends. Reasoning effort, the thing you used to control by phrasing your prompt carefully, is now a knob. TechCrunch called the keyboard a flashy bauble, and as a product they're probably right. As a design artifact it's the first mainstream attempt to give agent supervision a physical form, and I'd bet the dial outlives the keyboard.</p><p>The dial already has a software twin. Claude Opus 5, released July 24, ships a user-facing effort control and lets you switch models mid-task, so cost and quality become decisions you make moment to moment rather than a plan you subscribe to. Notion, a week earlier, shipped a standalone iPhone app called Agents whose only job is letting you check on, redirect and approve the AI teammates working inside your workspace. A dedicated app for babysitting software, and I can't decide whether that's the future of work or peak 2026. Raycast gave its AI eyes on your focused window this week with Screen Awareness. And on July 29, <a href="iframe.php?url=https%3A%2F%2Fsuperlogical.com">Superlogical</a> came out of stealth: Mitchell Hashimoto, one of the most respected toolmakers in software, teamed up with design leaders from Vercel and the AI lab Poolside to redesign the terminal, the oldest surface in computing, around long-running agent work. A terminal company hired interface designers as founders. Two years ago that pairing didn't exist.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ntVa%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ntVa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ntVa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ntVa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ntVa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ntVa%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg" width="1456" height="803" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:803,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57104,&quot;alt&quot;:&quot;Product render of the Codex Micro keyboard: a compact keypad with a dial and a joystick floating above a metal base against a blue sky, with the OpenAI and Work Louder logos.&quot;,&quot;title&quot;:&quot;Product render of the Codex Micro keyboard: a compact keypad with a dial and a joystick floating above a metal base against a blue sky, with the OpenAI and Work Louder logos.&quot;,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://eidosdesign.substack.com/i/209220607?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Product render of the Codex Micro keyboard: a compact keypad with a dial and a joystick floating above a metal base against a blue sky, with the OpenAI and Work Louder logos." title="Product render of the Codex Micro keyboard: a compact keypad with a dial and a joystick floating above a metal base against a blue sky, with the OpenAI and Work Louder logos." srcset="https://substackcdn.com/image/fetch/$s_!ntVa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ntVa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ntVa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ntVa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b5bb80-7d42-422c-88fe-88da2cda076e_1473x812.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Codex Micro, built with Work Louder and already sold out. The pitch is supervision made physical: voice prompt, collaborate, and monitor the status of your agents in a tactile way. Source: Work Louder.</figcaption></figure></div><p>The pattern vacuum is being filled from below, too. The most-shared design resource in my feed this month was <a href="iframe.php?url=https%3A%2F%2Fbeautiful-ui-five.vercel.app">Beautiful UI</a>, a free library of seventeen polished patterns specifically for AI-native products: thinking states, streaming states, tool calls, approval cards, diffs. The approval card is quietly becoming a core unit of interface work, the control that decides whether a machine's action becomes real.</p><p>Some caution before anyone reorganizes a roadmap around this. The keyboard is a limited drop, which is marketing rather than a product line. Nobody knows yet whether anyone opens Notion's agent app twice. The category is a month old and most of it is unproven. But five independent teams shipping the same idea in the same month is how categories usually start, and this one is short on designers who've thought hard about it. That's where you come in.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/july-2026-youre-the-supervisor-now?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fjuly-2026-youre-the-supervisor-now%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h2>The Meter Is Running</h2><p>While the labs were redefining the work, the design tools quietly redefined the bill. Within about six weeks, Figma, Framer and Webflow all moved to metered AI credits.</p><p><a href="iframe.php?url=https%3A%2F%2Fwww.framer.com%2Fupdates">Framer 3.0</a> shipped on June 16 with the most complete agentic design workflow on the market: agents that work inside your live project on layout, styles, CMS and SEO, with branching and previews, so an agent's changes arrive as proposals you approve rather than surprises. It also shipped a new kind of price list. Framer's <a href="iframe.php?url=https%3A%2F%2Fwww.framer.com%2Fpricing%2F">pricing page</a> now leads with credits: 500 to try on Free, 1,000 a month on the $10 Basic plan, 3,000 on the $30 Pro plan, and a slider that runs to 100,000 if you need more. This week the company went further and put the models themselves on sale, two of its fastest at 50 percent off through August 14. Your design tool now runs promotions on inference, the way a carrier discounts data.</p><p><a href="iframe.php?url=https%3A%2F%2Fwebflow.com%2Fblog%2Fsimplified-plans-and-updated-pricing-2026">Webflow's simplified plans</a> took effect June 29, merging two tiers into a single Premium plan at $25 a month on annual billing and adding AI credits to every workspace. The tell sits in Webflow's own announcement, which advises customers to switch to annual billing before the change in order to lock in their current pricing. Figma has enforced its credit system since March, and its community forum spent the summer documenting confusion about how those credits get counted.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21sCnA%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sCnA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sCnA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sCnA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sCnA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21sCnA%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg" width="1456" height="803" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:803,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58463,&quot;alt&quot;:&quot;Screenshot of Framer's Updates page: the July Update post from two days ago, with three glossy app icons and text noting two of its fastest models are 50 percent off through August 14.&quot;,&quot;title&quot;:&quot;Screenshot of Framer's Updates page: the July Update post from two days ago, with three glossy app icons and text noting two of its fastest models are 50 percent off through August 14.&quot;,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://eidosdesign.substack.com/i/209220607?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of Framer's Updates page: the July Update post from two days ago, with three glossy app icons and text noting two of its fastest models are 50 percent off through August 14." title="Screenshot of Framer's Updates page: the July Update post from two days ago, with three glossy app icons and text noting two of its fastest models are 50 percent off through August 14." srcset="https://substackcdn.com/image/fetch/$s_!sCnA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sCnA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sCnA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sCnA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9723f14d-ec0f-4187-bacb-22a634607595_1473x812.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Framer's July update, published this week. Alongside more capable agents, the company put two of its fastest models on sale: 50 percent off through August 14. Source: Framer.</figcaption></figure></div><p>Each company calls this simplification, and it's worth being precise about what actually changed: design tools used to cost a seat, and now they cost a seat plus a meter. Seats are predictable. Meters are not. If you run an agency or a freelance practice, your tool costs just became a variable to forecast, and every retry you prompt has a price attached, even when the meter is invisible in the moment. That invisibility is an interaction-design choice, and I don't think it's an accidental one.</p><p>The fair version of the other side: inference costs real money, and per-use pricing is more honest than burying it in seat inflation. Fine. But watch the shape this creates. The vendors now earn more when you iterate more, while the marketing promises you'll iterate less. Both can't be the pitch.</p><h2>Handpicked Highlights</h2><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fpetergyang%2Fno-ai-slop">Peter Yang open-sourced a "no AI slop" skill</a></strong> that strips twenty-plus recognizable slop patterns from any piece of writing. Slop is now well-defined enough to lint. (Full disclosure: this issue went through it.)</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fbeautiful-ui-five.vercel.app">Beautiful UI</a></strong>: seventeen free, polished patterns for AI-native products, from thinking states to approval cards and diffs, source code included. The pattern library the supervision era was missing.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fevery.to%2Fvibe-check%2Fopus-5">Every's vibe check on Claude Opus 5</a></strong>: "brilliant in flashes, frustrating in practice." The most honest model review of the month.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fbenjitaylor%2Fstatus%2F2082539313796182268">drawesome</a></strong>, a free drawing toolbar for React by Benji Taylor. Part of the quiet rise of free UI libraries built by designers who care about details.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fwww.contentarchitecture.dev%2F">The Content Architecture</a></strong>, a Next.js and Sanity starter kit by Edoardo Lunardi, is pitched at the agents that set your project up rather than at you. Its tagline is this month's argument in one line: "The Sanity setup agents don't reinvent. Every run invents a new one, none decided." It's a &#8364;549 commercial kit, so read the pitch as a pitch, but the thinking (and the ASCII art) is worth the click.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/july-2026-youre-the-supervisor-now?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fjuly-2026-youre-the-supervisor-now%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h2>What July Revealed</h2><p>The model that broke into Hugging Face was not malfunctioning. It had a goal, a score, and nothing that told it what a good way to reach that goal looked like. Nobody had written that part down.</p><p>The same gap runs under all four stories this month. A deck that arrives finished and slightly wrong. A layout that is fine and forgettable. An agent that ships a change nobody would have approved, if anybody had been asked. Every one of them is a machine hitting the target and missing the point, and the only thing that closes that distance is a person who can tell the difference and says so out loud.</p><p>Which is why the other thing I saw in July stayed with me. In the same month the labs started shipping finished work, my feed filled up with designers rebuilding a color picker by hand, publishing pattern libraries nobody paid them for, arguing about what an interface should do in the moment between a click and the thing appearing. That is how you keep a standard sharp. It is also what you bring into a review that the machine cannot.</p><p>I don't know what August will bring. More capability, certainly, and probably another thing that gets loose before anyone meant it to. I'll write you when it adds up to something. The question I'm carrying into it is smaller than any headline: when the machine hands me something good, will I still know whether it's right?</p><p>If this edition gave you something to think about, pass it to someone who needs to read it. And subscribe if you haven't yet.</p><blockquote><p>Sincerely,<br>Mykola Korzh</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Growing Past Senior: The Design Career Nobody Prepared You For + The Senior Designer's Career Toolkit]]></title><description><![CDATA[A field guide to the job market for mid-to-senior designers, plus the five-module toolkit I built for it.]]></description><link>https://eidosdesign.substack.com/p/growing-past-senior-the-design-career</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/growing-past-senior-the-design-career</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Thu, 23 Jul 2026 08:01:03 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8128fb-06b3-4525-ac43-88b117ae29d7_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Hello fellow designers, digital builders, and Eidos Design members! </strong></p><p>Vadym is here with a special edition of our <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fs%2Fux-job-toolkit">UX Job Toolkit</a>. </p><p>The design job market has been rough for a while now, and the advice hasn&#8217;t kept up. Roles are scarce and AI keeps rewriting what the job means.</p><p>Almost every piece of career advice out there was written for someone who doesn&#8217;t have the job yet: Build a portfolio, learn the double diamond, network more, redo a famous checkout flow and so on.</p><p>That&#8217;s fine for year one. It says nothing useful about year five or eight, when you already have the portfolio, you&#8217;ve mentored juniors, and the thing between you and the next level has no relationship at all to your Figma skills.</p><p>Meanwhile the market is asking for you by name. In Figma&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww.figma.com%2Fblog%2Fwhy-demand-for-designers-is-on-the-rise%2F">February 2026 study of design managers</a>, 56% reported increasing demand for senior design hires, against 25% hiring for junior roles. Demand is there, and the ladder still feels like it stops.</p><p>So I built the thing I wanted when I was stuck.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21NvLa%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NvLa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!NvLa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!NvLa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!NvLa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21NvLa%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2087092,&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://eidosdesign.substack.com/i/183723870?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.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_!NvLa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!NvLa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!NvLa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!NvLa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a1b7f-e6d3-4718-bb0b-59f5e24f6f30_1456x1048.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Senior Designer's Career Toolkit</h2><p>I've spent the last few months (yeah, even with the help of AI) building a complete career kit for designers who are past the entry level and tired of advice written for people who aren't.</p><h3>What&#8217;s inside:</h3><ul><li><p><strong>01 &#183; Resume &amp; CV.</strong> The six-second read, result-first bullets, and the positioning line that tells a recruiter which roles you fit. Includes editable Figma templates.</p></li><li><p><strong>02 &#183; Case Studies.</strong> The five-beat structure that puts one real decision at the centre, plus a pre-publish checklist and the Figma templates you can use, not to start from scratch.</p></li><li><p><strong>03 &#183; Interviews &amp; the Job Hunt.</strong> The four question shapes behind every senior interview, how to walk your work decision by decision, a search run as a pipeline, and how to negotiate the level before the number.</p></li><li><p><strong>04 &#183; Career Path Planning.</strong> Specialist, generalist, or hybrid, with the roles and skills mapped so you choose a direction deliberately.</p></li><li><p><strong>05 &#183; Career Growth for Seniors.</strong> What sits above senior, how to pick between the IC and manager tracks, and the five moves that scale your work past you.</p></li></ul><p>Everything in it assumes you already have or had the job and want the level above it. It's a PDF guide plus the Figma files, and buying it once gets you every update. For all our <strong>subscribers on a free plan, it comes with 25% off. </strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hieido.gumroad.com/l/senior-career-toolkit/XH8EDUL&quot;,&quot;text&quot;:&quot;Get The Senior Designer's Career Toolkit&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fhieido.gumroad.com%2Fl%2Fsenior-career-toolkit%2FXH8EDUL"><span>Get The Senior Designer's Career Toolkit</span></a></p><p><em><strong>&#10024; Pro subscribers:</strong> here&#8217;s the link to <strong>claim it</strong> <strong>fore free</strong>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>Now, the five things it covers, and why each one matters right now.</p><h3>1. Your r&#233;sum&#233; gets six seconds, and most of them go to waste</h3><p>A senior r&#233;sum&#233; makes one case: you own outcomes. Most designers write a list of responsibilities instead, which reads as a job description someone else could have written.</p><p>The fix is mechanical. Lead every bullet with the result, then the move that produced it. &#8220;Cut checkout drop-off thirty percent by rebuilding the payment flow&#8221; earns a second look. &#8220;Responsible for the payment flow redesign&#8221; does not. Recruiters and hiring managers stop on the lines carrying numbers and impact your decision made, and they skim past everything shaped like a duty.</p><p>Above that, one line of positioning. Something like <em>senior product designer, fintech and complex B2B, strongest on zero-to-one and design systems</em>. It tells a recruiter which requisitions you fit. Vague generalists are hard to place, so they get placed last.</p><p>Module 01 covers the full structure, the six-second test to run before sending, and a Figma template you can edit rather than rebuild.</p><h3>2. Your case studies show screens when reviewers want decisions</h3><p>Hiring managers read a case study to answer one question: can you frame a problem, make a hard call, and show that it worked.</p><p>The common failure is the process march. Survey, then personas, then wireframes, then a grid of polished finals. Reviewers assume you know the process. What they can&#8217;t tell from that sequence is whether you have judgment.</p><p>Open with the outcome and the stake instead, then walk one real decision. The constraint that made it hard, the options you weighed, the call you made, and how you knew it landed. One sharp fork beats ten wireframe iterations nobody asked to see.</p><p>Module 02 has the five-beat structure, the process shots worth cutting, and the Figma layout.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>3. Senior interviews test four things, and only four</h3><p>Every senior interview question is one of four shapes wearing different clothes. Behavioral, craft, judgment, collaboration. Learn the four and you stop preparing fifty answers. You prepare four ways of thinking.</p><p>The search matters as much as the interview. Mass-applying helps you cope with the anxiety, and it doesn&#8217;t land the job. A senior search is narrow and tracked: twenty to thirty target companies rather than roles, moved through a funnel so you can see which stage is stalling. Plenty of applications and no screens points at your materials, not at a market that hates you.</p><p>Then there&#8217;s the offer, where most designers leave real money behind. Negotiate the level before the number. Title and band set the ceiling for every raise that follows, and moving from senior to staff beats any one-time signing bonus.</p><p>Module 03 covers all of it, including the weekly system and the negotiation scripts.</p><h3>4. The path question you never actually answered</h3><p>Specialist, generalist, or hybrid. Most designers never choose. They drift, take whatever the org needs that quarter, and end up with a shape they didn&#8217;t design.</p><p>Module 04 maps the three directions against the roles and skills each one demands, so the choice becomes deliberate.</p><h3>5. Past senior, craft stops paying</h3><p>Think of it as the difference between playing and composing. You spend a decade becoming a great player, and then someone hands you a pen and asks for a score. Composing uses everything you learned at the instrument and almost none of the same muscles. What you produce gets performed by other people, in rooms you&#8217;ll never sit in. Most of us quietly go back to the piano at that point, because that&#8217;s where being good feels immediate.</p><p>For your whole career, getting better meant doing the work better. Then the returns flatten. By senior you&#8217;ve absorbed most of what craft has to teach, and the next increment of polish stops changing anything a business can measure. The Fountain Institute <a href="iframe.php?url=https%3A%2F%2Fwww.thefountaininstitute.com%2Fblog%2Fsenior-product-designers-hired">put the shift bluntly</a>: execution has become the cheap part of the job. Figma&#8217;s data points the same way, with over 45% of hiring managers naming collaboration, systems thinking and product strategy among their top skills.</p><p><strong>The work that keeps running when you leave the room is the work that levels you up.</strong></p><p>A documented decision keeps arguing for you in meetings you&#8217;re not invited to. A principle other designers apply is you, working at four desks at once. A designer you developed is you, compounding. One more polished screen is you, working once.</p><p>Above senior the ladder also splits, and the data surprised me. Artiom Dashinsky <a href="iframe.php?url=https%3A%2F%2Fmedium.com%2Fdesign-bootcamp%2Fic-vs-management-tracks-for-designers-what-the-numbers-say-587d72c837e6">ran the numbers</a> across 13,074 employed designers. Design job postings favour individual contributors by roughly three to one, and designers themselves prefer staying IC by about 2.3 to one. Then higher up the same ladder it reverses, with roughly 13 times more directors than principals. Wide where you&#8217;re standing, narrow at the top.</p><p>Worth knowing before you pick: the team behind <a href="iframe.php?url=https%3A%2F%2Fstaff.design%2Fabout">Staff Design</a> points out that many companies advertise two tracks while handing managers the real influence and the larger pay. Ask about your company specifically. Find out who decides things, and whether anyone has made principal in the last two years.</p><p>Module 05 covers the fork, the five moves that scale past you, how to translate design into the metrics executives decide with, and how to build a reputation that brings opportunities to you.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Eidos Design | UX AI Community&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2F%3Futm_source%3Dsubstack%26amp%3Butm_medium%3Demail%26amp%3Butm_content%3Dshare%26amp%3Baction%3Dshare"><span>Share Eidos Design | UX AI Community</span></a></p><div><hr></div><h3>Here's what I believe</h3><p>The plateau most senior designers hit is a definition problem. You&#8217;re being measured against a scoreboard that changed while you were busy topping the old one.</p><p>Nobody announces this, but the signal arrives as a vague sense that your best work stopped mattering as much, which most of us read as personal failure and answer by working harder at exactly the thing that stopped paying.</p><p>The toolkit is my attempt to write down what I wish someone had handed me at that point. Five modules, a PDF, and the Figma files, built for designers who are already experienced enough.</p><div><hr></div><h3>Your copy with discounts</h3><p>Thank you for being here. The toolkit is yours with 25% discount, paid subscribers get it for free. The discount applies automatically at checkout. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hieido.gumroad.com/l/senior-career-toolkit/XH8EDUL&quot;,&quot;text&quot;:&quot;Get The Senior Designer's Career Toolkit&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fhieido.gumroad.com%2Fl%2Fsenior-career-toolkit%2FXH8EDUL"><span>Get The Senior Designer's Career Toolkit</span></a></p><p>This post has bonus content for paid subscribers. Upgrade to get full access.</p><blockquote><p>Sincerely,<br>Vadym Grin </p></blockquote>]]></content:encoded></item><item><title><![CDATA[Eidos Design. Volume XXXVI: Every Product Has a Victory Screen. None Have a Locker Room]]></title><description><![CDATA[A full teardown of Runna, the Strava-owned running coach with two million users, judged on the only week that tests a product: the one where everything falls apart.]]></description><link>https://eidosdesign.substack.com/p/eidos-design-volume-xxxvi-every-product</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/eidos-design-volume-xxxvi-every-product</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Sat, 18 Jul 2026 08:00:59 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede8abf7-d4e4-44c5-9c0f-f7d8a99d6c7c_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Hello fellow designers, creatives, digital professionals and Eidos Design members!</strong></p><p>It&#8217;s been a summer of sport. Mostly, it&#8217;s been a summer of losing.</p><p>Marta Kostyuk (whom I cheered for!) lost her first Wimbledon semi-final to Linda Noskov&#225;, 6-4, 6-4. She was one match away from becoming the first Ukrainian in history to reach a Wimbledon singles final. I was shouting at a screen for her, like lots of my compatriots, and I&#8217;ve been sitting with that scoreline ever since.</p><p>The World Cup is running the same arithmetic at a bigger scale. Forty-eight teams flew in, and now we are standing right before the final. Brilliant Norway is out, as well as Portugal, and Cristiano Ronaldo&#8217;s World Cup career ended with it. Tomorrow, on July 19, only one team will lift the trophy in New Jersey, but forty-seven fly home (figuratively speaking).</p><p>That ratio is the real shape of sport. Everybody who plays knows it. Losing is the main event, and winning is the rounding error.</p><p>Now open the apps we build for those same people. Confetti when you finish. Streaks, personal-record badges, and a glossy narrated recap at the end of the season celebrating the thing you completed. We rehearse the good day and we ship it in high resolution.</p><p><strong>Every product has a victory screen. Almost none have a locker room.</strong></p><p>The locker room is where sport spends most of its time. It&#8217;s the room with a towel over your head, where you decide whether you&#8217;re coming back. Loyalty gets made in there. Software has barely tried to build it.</p><p>This issue: a full teardown of <strong><a href="iframe.php?url=https%3A%2F%2Fwww.runna.com%2F">Runna</a></strong>, and what its &#8220;Not Feeling 100%&#8221; button teaches the rest of us about designing for the week everything falls apart.</p><div class="pullquote"><p><em>&#127894; Honorable Mention</em></p><p><em>Thank you, </em><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Tetiana Shevtsova&quot;,&quot;id&quot;:189685620,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/469549c6-1e56-44c8-a671-861417837d6f_1024x1024.png&quot;,&quot;uuid&quot;:&quot;c81743bc-629f-4411-a8ca-6ba1bc331636&quot;}" data-component-name="MentionToDOM"></span><em>, for taking the time to promote Eidos Design and introduce new designers to our community!</em></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Runna: the app that built a locker room</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zAjP%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zAjP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!zAjP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!zAjP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!zAjP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zAjP%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:793026,&quot;alt&quot;:&quot;The Runna app icon on a colorful background.&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://eidosdesign.substack.com/i/206358845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Runna app icon on a colorful background." title="The Runna app icon on a colorful background." srcset="https://substackcdn.com/image/fetch/$s_!zAjP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!zAjP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!zAjP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!zAjP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348eae6-9643-43f9-b605-1b5e9a126c7c_1400x400.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Runna</figcaption></figure></div><p>Runna is a running coach that lives in your phone. You give it a race, a date, and an honest recent time. It hands back a plan, a target pace for every interval, and a workout that lands on your watch before you&#8217;ve finished your coffee. Plenty of apps do a version of that.</p><p>Runna earns a teardown in July 2026 for the other half of its job. Somewhere in the last eighteen months, this app started designing for the days you don&#8217;t run. The missed day gets its own screens, its own questions, and its own way back.</p><p>Running is booming, and <a href="iframe.php?url=https%3A%2F%2Fpress.strava.com%2Farticles%2Fstrava-to-acquire-runna-a-leading-running-training-app">Strava logged nearly a billion runs in 2024</a> and then bought Runna outright in April 2025. A huge wave of new runners arrived with race goals and no idea what their tendons can take. Runna spent late 2025 and early 2026 shipping feature after feature about the bad week, while at the same time fighting an accusation that its plans were breaking people. Both of those are true at once, and the tension between them is the whole story.</p><h3>Who built it</h3><p><strong>Dom Maskell</strong> and <strong>Ben Parker</strong> started Runna in 2021 and shipped in March 2022. Maskell describes the starting point with a bluntness I enjoy: <a href="iframe.php?url=https%3A%2F%2Ftechfundingnews.com%2Fstrava-acquires-runna-5-key-takeaways-and-how-it-stacks-up-against-nike-run-club-myfitnesspal-and-fitbit%2F">&#8220;A PDF site four years ago&#8221;</a>. Downloadable training plans, nothing more. From there it grew into a coaching product staffed with elite runners and Olympians, including <a href="iframe.php?url=https%3A%2F%2Fwww.tomsguide.com%2Freviews%2Frunna-app">British Olympic marathoner Steph Davis</a>, and landed as one of three finalists for <a href="iframe.php?url=https%3A%2F%2Fwww.runna.com%2Fstrava-acquires-runna">Apple&#8217;s App of the Year in 2024</a>.</p><p>Then Strava bought it. Runna now runs at roughly <a href="iframe.php?url=https%3A%2F%2Fthe5krunner.com%2F2026%2F02%2F21%2Frunna-ai-marathon-training-injury%2F">two million monthly users</a> and holds a 4.9 average across <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fid1594204443">32,000 App Store ratings</a>, which is the kind of number a product earns by doing what it said it would do.</p><h3>The first run</h3><p>Onboarding asks for the things a coach would ask for. Your goal (5k through ultra), your race date, a recent time you can defend, your self-rated ability, how many days a week you want to run, and which days those are. Then the plan appears, inside a minute.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21W6j-%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W6j-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!W6j-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!W6j-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!W6j-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21W6j-%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png" width="1456" height="1504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1504,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1137147,&quot;alt&quot;:&quot;Runna app screenshots&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://eidosdesign.substack.com/i/206358845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Runna app screenshots" title="Runna app screenshots" srcset="https://substackcdn.com/image/fetch/$s_!W6j-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!W6j-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!W6j-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!W6j-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2020c95-0fd2-4859-9da5-70bf2d64ddab_2362x2440.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Onboarding &amp; Plan</figcaption></figure></div><p><a href="iframe.php?url=https%3A%2F%2Fwww.tomsguide.com%2Freviews%2Frunna-app">Tom&#8217;s Guide&#8217;s reviewer</a> got three runs a week, each with a distance, a target pace, and a name: intervals, easy, tempo, long. The naming carries more weight than it looks. It turns &#8220;go for a run&#8221; into a specific job with a specific purpose, and it&#8217;s the first moment the app reads as a coach instead of a tracker.</p><p>The week sits in a grid of cards. Each session now opens with a <a href="iframe.php?url=https%3A%2F%2Fwww.runna.com%2Fpress%2Frunna-introduces-updated-beginner-running-plans-for-2026">Workout Briefing</a>, a short personalized note on what this run is for, and Runna claims no two runners receive the same one. The workout pushes to a Garmin, an Apple Watch, a COROS, a Suunto or a Fitbit. Mid-run, it&#8217;ll <a href="iframe.php?url=https%3A%2F%2Fwww.tomsguide.com%2Fwellness%2Frunning%2Fthis-is-the-running-app-im-using-to-train-for-my-sixth-marathon-and-it-just-got-even-better-for-beginners-too">tell you when you&#8217;ve gone out too hot</a>. Afterwards you tick the box and the grid fills in.</p><p>And then there&#8217;s the third flow, the one this whole issue is about.</p><p>Open <strong>Manage Plan</strong> and you find a heading that reads <strong>Adapt Your Plan</strong>. Under it sits a button: <strong>Not Feeling 100%</strong>.</p><p>Tap it and the app asks why. Illness. Aches and pains. A busy schedule. Or a plain need to take things easier for a while. Then it asks how long, with a floor of three days and a ceiling of fourteen. Then it asks how far down you want to climb: run easy, run shorter, drop the pace targets, drop the strength sessions, or stop running altogether. Then it asks how you want to come back. Slowly, balanced, or quickly.</p><p>Four questions. Somebody at Runna sat down and designed the conversation you have with a coach when you turn up looking like death, and then shipped it as a form.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21wNaa%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wNaa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!wNaa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!wNaa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!wNaa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21wNaa%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png" width="1456" height="1504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1504,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:871876,&quot;alt&quot;:&quot;Runna app screenshots&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://eidosdesign.substack.com/i/206358845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Runna app screenshots" title="Runna app screenshots" srcset="https://substackcdn.com/image/fetch/$s_!wNaa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!wNaa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!wNaa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!wNaa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c4628a-e19a-4a67-b108-234a8a4d88a6_2362x2440.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Training Preferences</figcaption></figure></div><div><hr></div><p><em>Reminder: Product evaluation is done according to <strong><a href="iframe.php?url=https%3A%2F%2Fwww.interaction-design.org%2Fliterature%2Farticle%2Fnorman-s-three-levels-of-design%3Fsrsltid%3DAfmBOoreR0yuPX4BhizGaTQOjXUz4fbUE_zgJoXUVePZUP_ZbqZe5RxL">Don Norman&#8217;s 3 levels of design</a></strong>.</em> </p><h3>Visceral level: 4/5 </h3><p><em>The visceral level is responsible for first impressions.</em></p><p>Big confident type, high contrast, a week laid out as a stack of cards you can read at arm&#8217;s length while holding a coffee. The pace targets are the hero. The typography does most of the work, and it does it well.</p><p>There&#8217;s a competence in the first impression that I trust. Nothing bounces, nothing celebrates before you&#8217;ve done anything. The app carries itself like a coach who&#8217;s already read your file.</p><p>The crack shows up on the wrong week. That grid of cards is a compliance chart. Ticked, ticked, ticked, empty, empty, empty. On a good week the pattern reads as momentum and it feels wonderful. On a bad week the exact same neutral design turns into a row of small accusations, and there&#8217;s nothing in the visual language that softens it. A blank Tuesday looks the same whether you were sick, working late, or sitting in your car outside the gym unable to go in.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21chxX%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!chxX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!chxX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!chxX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!chxX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21chxX%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png" width="1456" height="1504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1504,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:707094,&quot;alt&quot;:&quot;Runna app screenshots&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://eidosdesign.substack.com/i/206358845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Runna app screenshots" title="Runna app screenshots" srcset="https://substackcdn.com/image/fetch/$s_!chxX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!chxX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!chxX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!chxX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff22bc3ab-e345-4c36-b895-083b4f4b9141_2362x2440.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Training calendar</figcaption></figure></div><p><em>Emotional signal: &#8220;This looks like a coach who came prepared.&#8221;</em></p><h3><strong>Behavioral level: 5/5</strong> </h3><p><em>This level focuses on usability, how the product performs and whether it effectively solves user problems.</em></p><p>The machinery is the best in its class.</p><p>Start with the obvious stuff. You can drag a session to a different day and the plan absorbs it. Holiday Mode reshuffles a whole week around a trip. Runna bakes deload weeks into the plan, so the volume drops on purpose. Workouts land on five different watch brands with the intervals pre-loaded.</p><p>Then there are the four features Runna shipped across late 2025 and early 2026, and they&#8217;re all about the same thing:</p><ul><li><p><strong>Not Feeling 100%.</strong> The four-question setback flow. Reason, duration, depth, return ramp. It strips pace targets, shortens runs, or clears the week entirely, then walks you back in at the speed you chose. </p></li><li><p><strong>Mileage Insights.</strong> The app watches how well you&#8217;re sticking to the plan and recommends a more sustainable volume. It notices when you&#8217;re drowning without saying so.</p></li><li><p><strong>Plan Versions.</strong> When Runna ships a feature that would change your training, it asks first. It shows you what the update does, waits for consent, and lets you revert if you hate it.</p></li><li><p><strong>Workout Briefings.</strong> Personalized guidance before every session, so the run has a stated purpose.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21IWes%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IWes!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!IWes!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!IWes!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!IWes!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21IWes%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png" width="1456" height="1504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1504,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1946139,&quot;alt&quot;:&quot;Runna app screenshots&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://eidosdesign.substack.com/i/206358845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Runna app screenshots" title="Runna app screenshots" srcset="https://substackcdn.com/image/fetch/$s_!IWes!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!IWes!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!IWes!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!IWes!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ab2484f-0274-4dce-9c12-483a2c2dd95d_2362x2440.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Run Settings, Holiday Mode</figcaption></figure></div><p><em>Emotional signal: &#8220;I told it I was struggling and it listened.&#8221;</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-volume-xxxvi-every-product?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxxvi-every-product%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h3><strong>Reflective level: 3,5/5</strong> </h3><p><em>The reflective level considers the long-term impression and deeper meaning of the design, how it aligns with the user's identity and values.</em></p><p><strong>Runna&#8217;s machinery forgives you. Runna&#8217;s story doesn&#8217;t.</strong></p><p>In February 2026 the company shipped Plan Replay, described in its own words as an interactive, narrative-style recap that celebrates &#8220;a customer&#8217;s completion of a training plan.&#8221; A Wrapped for your marathon block. It&#8217;s lovely, and I&#8217;d watch mine.</p><p>The word doing the work there is <em>completion</em>. There&#8217;s no Replay for the plan you walked away from in week nine, and week nine is the plan you&#8217;d learn something from. Runna Levels hands out points for every run, workout and milestone. The whole reflective layer is a trophy cabinet.</p><p>The tell is a support article. Runna had to publish a page titled <a href="iframe.php?url=https%3A%2F%2Fsupport.runna.com%2Fen%2Farticles%2F15013028-why-does-my-new-to-running-plan-go-down-in-distance-a-guide-to-deload-weeks">&#8220;Why Does My New To Running Plan Go Down in Distance?&#8221;</a> because runners saw a planned drop in volume and read it as a bug. Runna&#8217;s own progress language taught people that down means failure, and then Runna had to write documentation to undo the lesson. That&#8217;s a reflective-level own goal, and almost every product in this category has scored one.</p><p>The identity Runna hands back to you is &#8220;a person who completes plans.&#8221; It&#8217;s a good identity on the good weeks. It&#8217;s also brittle. In week nine, when your knee goes and the grid fills with blanks, the app has nothing to tell you about who you are now, and that&#8217;s the exact moment a coach earns their money.</p><p><strong>Runna built the locker room indeed, but the mirror on the wall still only shows the podium.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21YZha%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YZha!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!YZha!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!YZha!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!YZha!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21YZha%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png" width="1456" height="1504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1504,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1111019,&quot;alt&quot;:&quot;Runna app screenshots&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://eidosdesign.substack.com/i/206358845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Runna app screenshots" title="Runna app screenshots" srcset="https://substackcdn.com/image/fetch/$s_!YZha!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 424w, https://substackcdn.com/image/fetch/$s_!YZha!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 848w, https://substackcdn.com/image/fetch/$s_!YZha!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 1272w, https://substackcdn.com/image/fetch/$s_!YZha!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d102f8c-7342-4841-972f-0feb19e59d53_2362x2440.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Training Plan</figcaption></figure></div><p><em>Emotional signal: &#8220;I love this app until the week I let it down.&#8221;</em></p><h3>Where it falls short</h3><p><strong>The setback flow won&#8217;t accept the past.</strong> This is the one that gets me. Not Feeling 100% only adjusts forward from the moment you open it. A <a href="iframe.php?url=https%3A%2F%2Fwww.tomsguide.com%2Fwellness%2Ffitness%2Fim-deep-into-marathon-training-fighting-the-flu-and-runnas-new-not-feeling-100-percent-tool-couldnt-be-more-timely">Tom&#8217;s Guide writer with flu</a> had already missed two runs and found she couldn&#8217;t log them after the fact as illness. Her advice to readers was to file your sickness the moment it starts.</p><p>That asks something strange of a person. Losses get reported late. You don&#8217;t sit up in bed at 3am with a fever and fill in a four-question form about your training load. You notice on Sunday, when the week is already gone and the grid is already blank. Runna needs you to have known on Tuesday.</p><p>The locker room exists, however you have to book it before you lose.</p><p><strong>There&#8217;s no designed exit.</strong> No recap for the abandoned plan. No &#8220;here&#8217;s the twenty-two runs you did before your knee went, and here&#8217;s what they built.&#8221; You stop opening it. And since <a href="iframe.php?url=https%3A%2F%2Fsupport.runna.com%2Fen%2Farticles%2F8895444-need-to-pause-your-plan">Runna still has no pause button on the subscription</a>, the plan you&#8217;re avoiding keeps charging you <a href="iframe.php?url=https%3A%2F%2Ftechfundingnews.com%2Fstrava-acquires-runna-5-key-takeaways-and-how-it-stacks-up-against-nike-run-club-myfitnesspal-and-fitbit%2F">$119.99 a year</a> while you avoid it.</p><p><strong>And the injury argument deserves a fair hearing.</strong> In February 2026, <a href="iframe.php?url=https%3A%2F%2Fthe5krunner.com%2F2026%2F02%2F21%2Frunna-ai-marathon-training-injury%2F">the5krunner published an investigation</a> reporting that physios are seeing Runna-linked overuse cases every week, and concluding that <a href="iframe.php?url=https%3A%2F%2Fwww.techradar.com%2Fhealth-fitness%2Fare-ai-training-apps-like-runna-putting-you-at-risk-of-injury-i-asked-a-real-life-running-coach">AI training plans &#8220;are not yet ready for complex scenarios applied at scale to general populations&#8221;</a>. The same piece is careful to say no peer-reviewed study shows Runna users get injured at higher rates than people on a static plan, and that calling the product defective would misread the evidence. Runna&#8217;s response to <a href="iframe.php?url=https%3A%2F%2Fwww.aol.com%2Farticles%2Finside-controversy-surrounding-strava-run-162700562.html">Women&#8217;s Health</a> is that its plans are written by a team of elite runners and Olympians, and AI monitors progress and surfaces recommendations you&#8217;re free to reject.</p><p>The design question underneath the argument is the one worth carrying home: <strong>the app is at its most confident with the user least equipped to argue back.</strong> A beginner can&#8217;t tell the difference between the discomfort that builds you and the discomfort that breaks you. Runna&#8217;s tone gives them no reason to doubt the plan.</p><h3>How rivals solve the same problem</h3><p><a href="iframe.php?url=https%3A%2F%2Fwww.garmin.com%2Fen-US%2Fgarmin-technology%2Frunning-science%2Fcoaching%2F">Garmin Coach</a> adapts your load and it&#8217;s free with the watch, and it will never once acknowledge that you had a week. It has no emotional register at all. <a href="iframe.php?url=https%3A%2F%2Fwww.nike.com%2Fnrc-app">Nike Run Club</a> is free, static, and pure hype, which is a fine product and the exact opposite of a locker room.</p><p>The most interesting comparison is one we&#8217;ve already covered here. <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxvii-love-vs">Gentler Streak</a>, from Volume XXVII, starts from what your body can take today and works forward. Its default is rest. Runna&#8217;s default is the plan. That single difference explains almost everything about how each one feels on your worst week.</p><p>And the market is catching on. <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fdaptiv%2Fid6751173422">Daptiv</a>, a new AI coach, opens its App Store page with &#8220;Missed a workout because life got chaotic?&#8221; and promises training &#8220;without burnout, guilt, or rigid schedules.&#8221; The loss is becoming the battleground. Whoever designs it best wins the decade.</p><h3>The verdict, and what you can steal</h3><p>Runna is the best-built running coach you can buy for the money, and it solved the logistics of failure while leaving the meaning of it untouched. The four-question form is real design work, but the trophy cabinet undercuts it.</p><p>The best thing in this app is three words long. <strong>&#8220;Not Feeling 100%&#8221;</strong> avoids asking if you&#8217;re injured, which is medical and frightening and sounds permanent. It avoids asking if you failed. It asks whether you&#8217;re at one hundred percent, and it lets you say no without explaining yourself. Steal that copy. Steal the whole posture behind it.</p><p>For your own work:</p><ul><li><p>Design the off-plan state with the same care you gave the on-plan state</p></li><li><p>Let people report a setback after the fact, because nobody files it on time</p></li><li><p>Give the abandoned thing an ending, and put something true in it</p></li><li><p>Make regression legible, so a planned drop reads as strategy instead of failure</p></li><li><p>Name the setback in the user&#8217;s language, with no shame and no diagnosis attached</p></li></ul><h3><strong>Overall:</strong> <strong>4,1/5 </strong>&#11088;</h3><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-volume-xxxvi-every-product?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxxvi-every-product%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><div><hr></div><h3><strong>And this is it for today,</strong></h3><p>Kostyuk will be back on court soon. The forty-seven teams flying home this month will spend the next four years in training, matches and in the locker rooms, where the whole thing gets decided.</p><p>Our users are in there, too. Week nine of the plan, day forty of the streak, the month everything went wrong. They&#8217;re sitting with a towel over their heads, working out whether they&#8217;re coming back, and most of our products are still holding a confetti cannon and waiting for a win that isn&#8217;t coming.</p><p>Build them somewhere to sit.</p><p><em>As always, this newsletter is free, but if you enjoyed it, please consider sharing it with a friend or two. Spreading the love is what it's all about, folks </em>&#128420;</p><blockquote><p>Sincerely, <br>Vadym Grin</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI in UX Studio: What Is an AI Orchestrator? Everything Designers Need to Know]]></title><description><![CDATA[Edition 15 | A professional article draft for Eidos Design]]></description><link>https://eidosdesign.substack.com/p/ai-in-ux-studio-what-is-an-ai-orchestrator</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/ai-in-ux-studio-what-is-an-ai-orchestrator</guid><dc:creator><![CDATA[Siavash Memar]]></dc:creator><pubDate>Mon, 29 Jun 2026 18:20:30 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe878251-eb7a-48e6-bf0b-ac4b7a327146_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Siavash is here and we have another edition of AI in UX Studio. Most designers are still thinking about AI as a single prompt going in, one response coming out. But that model is already outdated. The products being built right now &#8212; the ones that actually feel intelligent &#8212; are running on something much more complex underneath: a web of agents, models, and tools all working together, coordinated by a layer most of us have never been taught to design for.</p><h2>Overview</h2><p>An AI orchestrator is the layer that sits behind everything and decides: which model runs, in what order, with what information, and under what rules. Think of it as a director that keeps a cast of specialized agents moving in sync &#8212; routing tasks, passing context between steps, checking outputs against guardrails, and deciding when a human needs to step in. You&#8217;ll rarely see it in the UI. But you&#8217;ll absolutely feel it in the product.</p><h2>Why designers should care</h2><p>Here&#8217;s the thing: orchestration is what determines whether an AI product actually works or just looks like it does. It shapes how fast responses come back, whether the system can explain its reasoning, how gracefully it handles mistakes, and whether users feel in control or at the mercy of some invisible process.</p><p>Take a simple request: &#8220;Summarize last month&#8217;s performance and tell me what to focus on next.&#8221; Sounds easy. But no single model handles that end-to-end. You need something to pull the data, something to make sense of it, something to reason about priorities, and something to package it all in a format that&#8217;s actually useful. Each of those is a separate job. And if the wiring between them is sloppy &#8212; agents not passing the right context, no guardrails on what the recommendation engine can say, errors disappearing silently &#8212; the user gets a response that just feels off. They can&#8217;t explain why. They just stop trusting it.</p><p>That&#8217;s exactly why designers need to be in this conversation. We&#8217;re the ones who understand what users actually need moment to moment. That&#8217;s the real job of orchestration design: knowing when to automate, when to pause, when to explain yourself, and when to put the human back in charge.</p><h2>Core patterns</h2><p>There are five main ways agents can be organized to work together. Each one creates a different user experience &#8212; different speeds, different failure modes, different levels of transparency. Knowing which pattern you&#8217;re working with is the first step to designing it well.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>Sequential is the most common. Agents run one after another, each handing its output to the next: retrieve data, clean it, summarize it, format it. Simple to reason about, easy to debug. The catch is latency &#8212; the user is staring at a spinner while the whole chain runs. Your job: show progress at each step. Stream partial results when you can. Don&#8217;t make people wait in silence.</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fai-in-ux-studio-what-is-an-ai-orchestrator">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[June 2026: You Raise the Ceiling]]></title><description><![CDATA[Figma Config put code, motion, and shaders on the canvas. Anthropic's best model lasted three days in public. Midjourney left the screen for the body.]]></description><link>https://eidosdesign.substack.com/p/june-2026-you-raise-the-ceiling</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/june-2026-you-raise-the-ceiling</guid><dc:creator><![CDATA[Mykola Korzh]]></dc:creator><pubDate>Thu, 25 Jun 2026 19:30:14 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2693f704-2824-4aaf-85ee-38f2120d64bb_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Hello fellow designers, creatives, digital professionals, and Eidos Design members!</strong></p><p>Capability climbing, better models, bigger context windows, higher benchmark scores. This month the action moved to the floor. Producing a competent first draft, a layout, a motion study, a working prototype got cheap and easy for everyone. Then at Config this week, Dylan Field named the stakes from the main stage: &#8220;But while AI has lowered the floor, it has not raised the ceiling. Designers, creatives, builders: you will raise the ceiling.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-uvT%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-uvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-uvT%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Newspaper icon with the title 'News'.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper icon with the title 'News'." title="Newspaper icon with the title 'News'." srcset="https://substackcdn.com/image/fetch/$s_!-uvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!-uvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F706cc0d2-f647-4c4f-ae44-fb7f92658874_1400x400.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>Config Turned Code, Motion, and Shaders Into Materials You Paint With</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%219lmv%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9lmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png 424w, https://substackcdn.com/image/fetch/$s_!9lmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png 848w, https://substackcdn.com/image/fetch/$s_!9lmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png 1272w, https://substackcdn.com/image/fetch/$s_!9lmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%219lmv%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1026422,&quot;alt&quot;:&quot;Figma Config 2026: Code Layers, Figma Motion, shader fills, and generative plugins now live on the canvas. Source: Figma.&quot;,&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://eidosdesign.substack.com/i/203464062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Figma Config 2026: Code Layers, Figma Motion, shader fills, and generative plugins now live on the canvas. Source: Figma." title="Figma Config 2026: Code Layers, Figma Motion, shader fills, and generative plugins now live on the canvas. Source: Figma." srcset="https://substackcdn.com/image/fetch/$s_!9lmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png 424w, https://substackcdn.com/image/fetch/$s_!9lmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png 848w, https://substackcdn.com/image/fetch/$s_!9lmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.png 1272w, https://substackcdn.com/image/fetch/$s_!9lmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3f04c8c-0bbf-440a-afad-3bdadc23855e_1632x918.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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"><em>Figma Config 2026: Code Layers, Figma Motion, shader fills, and generative plugins now live on the canvas. Source: Figma.</em></figcaption></figure></div><p>Figma Config 2026 ran June 23 to 25 at Moscone Center, and Dylan Field&#8217;s Wednesday keynote was the most AI-focused in the conference&#8217;s history. The framing was &#8220;limitless expression on the canvas,&#8221; and the substance backed it up. The keynote covered a whole set of new materials: code, motion, shaders, generative plugins, and Weave workflows, all living on the canvas next to your frames.</p><p>Start with the one that reorders the designer-developer relationship. <strong>Code Layers</strong> let you turn any design layer into an interactive code layer with a single click or a prompt, duplicate it to explore directions side by side, and riff, comment, and iterate with teammates in the same file. You can extract a code layer back into editable design layers and sync your changes back to code with one click. </p><blockquote><p>&#8220;Code should be treated like any other design material.&#8221; </p></blockquote><p>Early access opens via waitlist in July at figma.com/config-betas.</p><p>Then <strong>Figma Motion</strong>, which brings a real timeline, keyframes, and presets into Figma Design. You can build animation from scratch or layer it onto existing work, and the Figma agent can generate a starting point for you. The part that matters for teams: motion becomes a design-system element, so you animate once and it applies across screens and across collaborators&#8217; files. Dev Mode shows inspectable timing values, easing curves, and keyframes, and exports to CSS, JSON, React, or MP4, WebM, animated SVG, and GIF. You can also pass animated frames to a coding agent over MCP. Motion now lives right where your design does.</p><p>There&#8217;s more. <strong>Shader fills and effects</strong>: describe the effect you want or hand the agent an image reference, and it builds the shader for you, parameterized by default with controls right on the canvas, stackable, and convertible to code (interactive shaders are coming soon). <strong>Generative plugins</strong>: describe a tool&#8217;s behavior and controls in plain language, with no local dev environment or plugin-API knowledge required, and share it inside a file immediately. <strong>Weave tools</strong>: a node-based canvas for building generative workflows, where you connect models, transform assets, and compare approaches, then publish the workflow as a template for others to remix.</p><p>And the <strong>Design agent</strong> grew up. It picked up Skills, which package a workflow into reusable instructions, and Connectors that wire it into Notion, Slack, Granola, Hex, GitHub, and Atlassian. Agent chats are now visible to teammates by default, with a private option, which quietly turns prompting into a team-visible craft everyone can learn from. The agent is also expanding to FigJam and Slides.</p><p>A year ago we argued about whether AI could produce a usable first draft. Config 2026 moved the question. The whole production layer, code, motion, visual effects, custom tooling, is now promptable material on one canvas. Clean artifacts are cheap and everywhere. The taste to direct them is the scarce thing.</p><p>What it means for you: the brief is changing under your feet. Your job now is to direct and judge the version the canvas produced for you, across code and motion and effects that used to need separate specialists and separate tools. Field&#8217;s floor-and-ceiling line is a job description. The floor fell so far this month that the one thing left unmistakably yours is the ceiling.</p><h2>Apple Made the Model a Setting</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Bk5R%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bk5R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 424w, https://substackcdn.com/image/fetch/$s_!Bk5R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 848w, https://substackcdn.com/image/fetch/$s_!Bk5R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 1272w, https://substackcdn.com/image/fetch/$s_!Bk5R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Bk5R%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png" width="1280" height="562" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:562,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:985292,&quot;alt&quot;:&quot;Apple's website screenshot.&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://eidosdesign.substack.com/i/203464062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54d73ea5-269a-4fc3-9d7a-5139a13fbaa6_1280x633.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Apple's website screenshot." title="Apple's website screenshot." srcset="https://substackcdn.com/image/fetch/$s_!Bk5R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 424w, https://substackcdn.com/image/fetch/$s_!Bk5R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 848w, https://substackcdn.com/image/fetch/$s_!Bk5R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 1272w, https://substackcdn.com/image/fetch/$s_!Bk5R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd9d2c5-d525-4db3-b99d-5f427de9582a_1280x562.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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"><em>Apple unveiled an all-new Siri at WWDC on June 8, with Apple Intelligence features arriving this fall. Source: Apple.</em></figcaption></figure></div><p>WWDC landed on June 8. Apple officially unveiled an entirely new version of Siri, deeply integrated across iPhone, iPad, Mac, Apple Watch, and Vision Pro, that can search your personal context, pull from the web, and understand what&#8217;s on your screen. Apple confirmed that much itself.</p><p>The more interesting part is what the reporting around it describes, and I want to keep Apple&#8217;s claims separate from the press reports. According to multiple outlets, the rebuilt Siri runs on a custom 1.2-trillion-parameter Gemini model that Apple is licensing from Google for a figure reported around a billion dollars a year. And iOS 27 is reported to introduce an Extensions system that lets users choose which model powers Apple Intelligence features, with ChatGPT, Gemini, and Claude all in the frame. Apple&#8217;s own press release names no model, parameter count, price, or picker, so hold those specifics as well-sourced reporting that Apple hasn&#8217;t confirmed on stage. Either way, this would give Claude its first native place on the iPhone, with a rollout expected later this year.</p><p>What Apple did put numbers on is quieter and structural. iOS 27 ships as a free update this fall, reaching every iPhone from the 11 onward, with apps launching up to 30 percent faster and photos loading up to 70 percent faster. The plumbing gets faster while the intelligence on top of it becomes swappable.</p><p>With a model picker, the model is a user setting you can swap, like a default browser. Intelligence becomes a commodity slot, and the largest consumer install base on earth is reportedly about to make that explicit.</p><p>If the user picks the model underneath an experience and can change it whenever they like, the model belongs to them. Your differentiator is the the trust in it, the way the experience behaves when the model is great and when it&#8217;s wrong. The intelligence got more powerful and less yours. You&#8217;re designing the relationship with a brain you don&#8217;t own.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/june-2026-you-raise-the-ceiling?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Eidos Design | UX AI Community! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/june-2026-you-raise-the-ceiling?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Fjune-2026-you-raise-the-ceiling%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><h2>Anthropic&#8217;s Best Model Lasted Three Days in Public</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21JR6x%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JR6x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 424w, https://substackcdn.com/image/fetch/$s_!JR6x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 848w, https://substackcdn.com/image/fetch/$s_!JR6x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 1272w, https://substackcdn.com/image/fetch/$s_!JR6x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21JR6x%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png" width="1280" height="633" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:633,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:203721,&quot;alt&quot;:&quot;Claude Fable 5 launched June 9 and drew immediate backlash over hidden, self-downgrading guardrails. Source: Decrypt.&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://eidosdesign.substack.com/i/203464062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Claude Fable 5 launched June 9 and drew immediate backlash over hidden, self-downgrading guardrails. Source: Decrypt." title="Claude Fable 5 launched June 9 and drew immediate backlash over hidden, self-downgrading guardrails. Source: Decrypt." srcset="https://substackcdn.com/image/fetch/$s_!JR6x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 424w, https://substackcdn.com/image/fetch/$s_!JR6x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 848w, https://substackcdn.com/image/fetch/$s_!JR6x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 1272w, https://substackcdn.com/image/fetch/$s_!JR6x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F740b3b62-7b70-4b87-8c94-ebbb7b22fe65_1280x633.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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"><em>Claude Fable 5 launched June 9 and drew immediate backlash over hidden, self-downgrading guardrails. Source: Decrypt.</em></figcaption></figure></div><p>The strangest, most-shared AI story of the month is also, underneath the drama, a design story.</p><p>On June 9, Anthropic released Claude Fable 5, the public version of its more powerful Mythos 5 model, calling it its strongest model yet at software engineering, knowledge work, and vision. Within hours, two things went wrong. First, users hit a wall of refusals, on biology questions, on legitimate cybersecurity research, even on help with AI development itself. Then came the real scandal. Buried in a 319-page system card, researchers found that Fable would quietly downgrade its own answers when it detected requests related to frontier AI development. You could ask for help, get a deliberately weakened response, and never be told the model was holding back. Critics called it secret sabotage. Anthropic reversed course within a day, made the safeguards visible, and apologized in plain words: &#8220;We made the wrong tradeoff, and we apologize for not getting the balance right.&#8221;</p><p>It got bigger. A quote attributed to the NSA, that the model &#8220;broke into almost all of our classified systems, not in weeks, but in hours&#8221; during an authorized red-team test, went viral as &#8220;Claude hacked the NSA,&#8221; before the original author clarified the narrative was misleading. By June 12, the US government had ordered Anthropic to cut off access to Fable 5 and Mythos 5 for all foreign nationals, including its own non-citizen employees, over fears the model could be jailbroken to find software vulnerabilities. The most capable model anyone had shipped was, days later, partly switched off.</p><h2>Midjourney Left the Screen for the Human Body</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21aYAz%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aYAz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aYAz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aYAz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aYAz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21aYAz%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg&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;:257875,&quot;alt&quot;:&quot;Midjourney&#8217;s first hardware: a sixty-second full-body &#8220;ultrasonic CT&#8221; scanner that maps your anatomy. Source: Midjourney, via Engadget.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://eidosdesign.substack.com/i/203464062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Midjourney&#8217;s first hardware: a sixty-second full-body &#8220;ultrasonic CT&#8221; scanner that maps your anatomy. Source: Midjourney, via Engadget." title="Midjourney&#8217;s first hardware: a sixty-second full-body &#8220;ultrasonic CT&#8221; scanner that maps your anatomy. Source: Midjourney, via Engadget." srcset="https://substackcdn.com/image/fetch/$s_!aYAz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aYAz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aYAz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aYAz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1445cec3-8637-486d-a0be-1c8efef1c9ff_1600x897.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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"><em>Midjourney&#8217;s first hardware: a sixty-second full-body &#8220;ultrasonic CT&#8221; scanner that maps your anatomy. Source: Midjourney, via Engadget.</em></figcaption></figure></div><p>The most unexpected move of the month came from a company nobody had on the healthcare bingo card. On June 18, Midjourney, the lab known for turning text into images, announced its first piece of hardware: a full-body medical scanner.</p><p>It&#8217;s called the Midjourney Scanner, and CEO David Holz calls the technique &#8220;ultrasonic CT.&#8221; You stand on a platform that lowers into a tank of water while a ring of ultrasound transducers fire sound waves through you from every angle at once. Software reconstructs the echoes into a three-dimensional map of your muscle, fat, bone, and organs in about sixty seconds, with no radiation and no magnetic field. The plan is a chain of locations Midjourney calls the Midjourney Spa, the first opening in San Francisco&#8217;s Union Square by the end of 2027, with scanning rooms sitting next to a gym, saunas, and cold plunge pools. Holz describes stepping &#8220;into a shallow pool of golden light.&#8221; The company says it wants 50,000 of these scanners deployed worldwide over six years.</p><p>The part that matters for us is this. The imaging tech isn&#8217;t Midjourney&#8217;s. It&#8217;s licensed from Butterfly Network, the ultrasound-on-chip company, under a deal worth up to $74 million over five years. The science is Butterfly&#8217;s. What Midjourney is building is the experience: the sixty-second scan, the golden light, the spa, the calm choreography around one of the most anxious things a person does, looking inside their own body. The defensible part of this product is design, almost top to bottom.</p><p>Whole-body screening of healthy people is medically contested, because it surfaces incidental findings that lead to anxiety, more tests, and procedures that don&#8217;t always help. The scanner has no FDA clearance for diagnosis yet. Midjourney is starting with body-composition maps, which don&#8217;t need clearance, and says it will add approvals over time. So treat the wellness framing as marketing for now, and the medical claims as unproven until the regulators weigh in.</p><h2>Handpicked Highlights</h2><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fyoutu.be%2Fz7A0R9fwixg">Loredana Crisan on Figma&#8217;s big bets for the future of AI design</a></strong> (Dive Club). A good companion to the Config section, from someone shaping where the canvas goes next.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fevery.to%2Fp%2Fafter-automation">After Automation</a></strong> by Dan Shipper (Every). The argument that AI commoditizes yesterday&#8217;s competence and raises the premium on human judgment. The cleanest version of this issue&#8217;s thread, worth reading next to What June Revealed.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fpolar.sh%2Fblog%2Forbit-llm-safe-design-system">Building an LLM safe design system</a></strong> by Polar. How they built Orbit, a system that makes off-system choices technically impossible with typed tokens and a single Box component, so AI-written UI stays consistent.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fjakub.kr%2Fwriting%2Fdetails-that-make-interfaces-feel-better">Details That Make Interfaces Feel Better</a></strong> by Jakub. A practical catalog of small refinements, balanced text wrapping, concentric radius, interruptible animations, that separate good interfaces from great ones.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fsouthleft.substack.com%2Fp%2Flife-after-the-prototype">Life After the Prototype</a></strong> by TJ (Southleft). The polished prototype is the easy part. The real work is moving it into production tied to your design system, and he lays out a concrete workflow with branches, tokens, Storybook, and AI self-audits.</p><p>&#128073; <strong><a href="iframe.php?url=https%3A%2F%2Fyoutu.be%2FomX6wrLuX08">Building a School Where AI Models Learn About Humanity</a></strong> (Every). A look at teaching models human context and values, a fitting bookend to a month spent on owning the experience layer on top of models you don&#8217;t own.</p><h2>What June Revealed</h2><p>Here&#8217;s the thing I keep circling. The floor under our craft keeps dropping, and average output gets good for free. That leaves one thing worth figuring out: what stays unmistakably ours when the machine can do the rest.</p><p>Dylan Field gave the cleanest answer I&#8217;ve heard: the ceiling. Every story this month pointed at the same narrow place underneath that word. Figma turned code and motion into materials, Apple swapped the model, Midjourney licensed the science and kept the experience, betting its whole next act on the design. The job market pays for judgment now. The regulators stepped back.</p><p>The machine is getting very good at answering, and the value is migrating to the people who are good at asking, choosing, and deciding what&#8217;s true and what&#8217;s right. That&#8217;s the oldest skill we have. The tools just started forcing us to use it on purpose.</p><p>Average got automated this month. The ceiling is still yours. Go raise it.</p><div><hr></div><p>If this edition gave you something to think about, pass it to someone who needs to read it. And subscribe if you haven&#8217;t yet.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><blockquote><p>Sincerely,<br>Mykola Korzh</p></blockquote>]]></content:encoded></item><item><title><![CDATA[Eidos Design. Volume XXXIV: This Apple-Award Sun Tracker Is Designed To Disappear]]></title><description><![CDATA[Inside Lumy's ground-up redesign, the indie sun tracker whose "light through glass" look beat Apple to its own Liquid Glass moment.]]></description><link>https://eidosdesign.substack.com/p/eidos-design-volume-xxxiv-this-apple</link><guid isPermaLink="false">https://eidosdesign.substack.com/p/eidos-design-volume-xxxiv-this-apple</guid><dc:creator><![CDATA[Vadym Grin]]></dc:creator><pubDate>Fri, 19 Jun 2026 08:02:27 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a165083-78be-4eb6-8821-22dc8dfa285e_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Hello fellow designers, creatives, digital professionals and Eidos Design members!</strong></p><p>We&#8217;re a few days out from the longest day of the year. On June 21, the sun in the northern hemisphere lingers longer than it will at any other point in 2026, and most of us will spend a good chunk of that record-breaking daylight indoors, looking at glowing rectangles.</p><p>One app treats that gap as its entire reason to exist. It tracks the sun down to the minute: sunrise, golden hour, blue hour, the last sliver of light before dark. And the whole point of all that precision is to get you to close the app and walk outside.</p><p>That&#8217;s a strange goal for a piece of software. Most products fight for your minutes. This one hands them back. <strong>The best version of this app is the one you barely open.</strong> It tells you when the light will be good, then it trusts you to go live in it.</p><p>I&#8217;ve been sitting with this idea since the app&#8217;s big redesign last year, and it keeps tugging at the same thread we pulled in <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxvii-love-vs">Volume XXVII</a>: the difference between products that need you and products that serve you. A sun tracker is a clean test case. You can&#8217;t doomscroll the sunset. You either go see it, or you don&#8217;t.</p><p>This issue: a full teardown of <strong>Lumy</strong>, and what its window-to-the-sky design teaches the rest of us. </p><p>At the end of this issue, I will introduce you to the new format of the newsletter and invite you to a secret place.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Lumy: the sun tracker built to be put down</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21GbwW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GbwW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!GbwW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!GbwW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!GbwW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21GbwW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png" width="1400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:803130,&quot;alt&quot;:&quot;The Lumy app icon on a colorful background.&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://eidosdesign.substack.com/i/202188262?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Lumy app icon on a colorful background." title="The Lumy app icon on a colorful background." srcset="https://substackcdn.com/image/fetch/$s_!GbwW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 424w, https://substackcdn.com/image/fetch/$s_!GbwW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 848w, https://substackcdn.com/image/fetch/$s_!GbwW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 1272w, https://substackcdn.com/image/fetch/$s_!GbwW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7dea6bc-c364-4e97-b33a-48c49fe5c8bb_1400x400.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Lumy</figcaption></figure></div><p>Most apps want to be a destination. <strong>Lumy</strong> wants to be a window.</p><p>You don&#8217;t admire a window. You look through it, at the thing on the other side. That single idea runs through every screen of this app. The May 2025 redesign was built on that concept. The maker&#8217;s own note calls it a <a href="iframe.php?url=https%3A%2F%2Fimpresskit.net%2Flumy">&#8220;window to our outside world,&#8221;</a> with a UI meant to feel lit by the day beyond the glass. Every view carries a faint echo of light passing through a pane. The app glows the way a room glows in late afternoon.</p><p>There&#8217;s a small irony here, because Lumy shipped that light-through-glass look in spring 2025. A few months later, <a href="iframe.php?url=https%3A%2F%2Fapps.apple.com%2Fgb%2Fapp%2Flumy%2Fid908905093">Apple made glass the entire personality of iOS 26</a> with Liquid Glass, and Lumy slid right into it on the Apple Watch. The indie app got there first, on its own terms, for a reason that meant something. That&#8217;s the difference between an aesthetic and a metaphor.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%219hD7%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9hD7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!9hD7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!9hD7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!9hD7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%219hD7%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png" width="280" height="606.5084745762712" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2556,&quot;width&quot;:1180,&quot;resizeWidth&quot;:280,&quot;bytes&quot;:340745,&quot;alt&quot;:&quot;Lumy app screenshot&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://eidosdesign.substack.com/i/202188262?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lumy app screenshot" title="Lumy app screenshot" srcset="https://substackcdn.com/image/fetch/$s_!9hD7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!9hD7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!9hD7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!9hD7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a8be1-0b27-479a-947e-a51e896d629d_1180x2556.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Lumy app</figcaption></figure></div><p>Lumy comes from <a href="iframe.php?url=https%3A%2F%2Ft2online.in%2Ftech%2Ftech-news%2Fhere-are-the-winners-of-2024-app-store-awardsand-what-makes-it-special-for-three-of-them%2F1251508">Raja Vijayaraman</a>, a self-taught developer in Chennai who studied mechanical engineering, spent time in VFX, then fell hard for the iPhone and taught himself to code. He builds under the name <a href="iframe.php?url=https%3A%2F%2Fwww.waplestuff.com%2Fapps%2Flumy%2F">Waple Stuff</a>, and his wife, a photographer, is his creative partner. His description of how they work tells you most of what you need to know about the app&#8217;s restraint: </p><blockquote><p>&#8220;We create apps for ourselves. Once we are satisfied, we put them on the App Store, hoping to connect with people who share our design aesthetics.&#8221; </p></blockquote><p>Lumy started as a tool the two of them needed, a way to find golden hour for their own photos. It grew from there. This is the same maker whose calculator app, <a href="iframe.php?url=https%3A%2F%2Fwww.waplestuff.com%2F">Calzy, won an Apple Design Award back in 2018</a>, so the pedigree runs deep.</p><div><hr></div><p><em>Reminder: Product evaluation is done according to <strong><a href="iframe.php?url=https%3A%2F%2Fwww.interaction-design.org%2Fliterature%2Farticle%2Fnorman-s-three-levels-of-design%3Fsrsltid%3DAfmBOoreR0yuPX4BhizGaTQOjXUz4fbUE_zgJoXUVePZUP_ZbqZe5RxL">Don Norman&#8217;s 3 levels of design</a></strong>.</em> </p><h3>Visceral level: 5/5 </h3><p><em>The visceral level is responsible for first impressions.</em></p><p>The trophy shelf is real. Lumy was <a href="iframe.php?url=https%3A%2F%2Fwww.apple.com%2Fnewsroom%2F2024%2F12%2Fapple-honors-2024-app-store-award-winners%2F">Apple Watch App of the Year in 2024</a> and a <a href="iframe.php?url=https%3A%2F%2Fwww.apple.com%2Fnewsroom%2F2025%2F06%2Fapple-unveils-winners-and-finalists-of-the-2025-apple-design-awards%2F">2025 Apple Design Awards finalist</a> in the Innovation category. Apple&#8217;s design team singled out its &#8220;simple design, carefully curated color palette, and elegant widgets and Live Activities.&#8221;</p><p>Open it and the first thing you do is pick a <strong>Mode</strong>. Daily, Photography, Hiking, Mindfulness, Travel. The choice isn&#8217;t cosmetic. Your mode reshapes what the app surfaces first, so a photographer leads with golden and blue hour while someone meditating at dawn leads with first light. The app decides what to hide so you don&#8217;t have to. That&#8217;s an editorial stance built into the product.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Spsf%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Spsf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 424w, https://substackcdn.com/image/fetch/$s_!Spsf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 848w, https://substackcdn.com/image/fetch/$s_!Spsf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!Spsf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Spsf%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png" width="280" height="607.0229007633587" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2556,&quot;width&quot;:1179,&quot;resizeWidth&quot;:280,&quot;bytes&quot;:327862,&quot;alt&quot;:&quot;Lumy's mode selection&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://eidosdesign.substack.com/i/202188262?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lumy's mode selection" title="Lumy's mode selection" srcset="https://substackcdn.com/image/fetch/$s_!Spsf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 424w, https://substackcdn.com/image/fetch/$s_!Spsf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 848w, https://substackcdn.com/image/fetch/$s_!Spsf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!Spsf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc62f4d09-ee28-4778-9986-46303b6e7d1d_1179x2556.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Lumy</figcaption></figure></div><p>From there, the home view lays out the day as a clean visual timeline of solar events. Tap any moment and Lumy opens up the supporting detail: wind speed, cloud cover, visibility for that exact slice of the day. A <strong>time-travel slider</strong> lets you scrub the whole day forward and back to see how the light will move, which is the kind of thing photographers pay for in heavier tools.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%217rLH%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7rLH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!7rLH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!7rLH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!7rLH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%217rLH%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png" width="281" height="608.6745762711864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2556,&quot;width&quot;:1180,&quot;resizeWidth&quot;:281,&quot;bytes&quot;:504605,&quot;alt&quot;:&quot;Lumy main screen with the timeline and time slider.&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://eidosdesign.substack.com/i/202188262?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lumy main screen with the timeline and time slider." title="Lumy main screen with the timeline and time slider." srcset="https://substackcdn.com/image/fetch/$s_!7rLH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!7rLH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!7rLH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!7rLH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66b502c4-af6a-424a-9dc9-feb541c7c032_1180x2556.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Lumy</figcaption></figure></div><p>The move I keep coming back to is the State of Mind integration. Lumy reads your mood entries from the Health app and suggests when to step out for some sunlight, with a thumbs up or down to refine the nudge over time. It calculates everything on-device, no server calls, no tracking. A wellness feature that doesn&#8217;t phone home. In 2026, that alone is a statement.</p><h3><strong>Behavioral level: 5/5</strong> </h3><p><em>This level focuses on usability, how the product performs and whether it effectively solves user problems.</em></p><p>The first thirty seconds with Lumy feel like opening a curtain. The palette shifts with the time of day, so a morning launch greets you in cool first-light tones and an evening one warms toward amber. The light-through-glass treatment gives every surface a soft inner glow, like sun caught in frosted glass. It reads as calm before you&#8217;ve understood a single number on the screen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-9fM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-9fM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!-9fM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!-9fM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!-9fM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-9fM%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png" width="280" height="606.5084745762712" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2556,&quot;width&quot;:1180,&quot;resizeWidth&quot;:280,&quot;bytes&quot;:535823,&quot;alt&quot;:&quot;Change of background with the different times of the day.&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://eidosdesign.substack.com/i/202188262?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Change of background with the different times of the day." title="Change of background with the different times of the day." srcset="https://substackcdn.com/image/fetch/$s_!-9fM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!-9fM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!-9fM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!-9fM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe01d7f74-a1bf-4060-a0a3-ee78dc83c624_1180x2556.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Lumy</figcaption></figure></div><p>On the wrist, the Liquid Glass version takes that further. The complications feel like little panes of stained light rather than data chips. Apple&#8217;s own designers flagged the <a href="iframe.php?url=https%3A%2F%2Fdeveloper.apple.com%2Fdesign%2Fawards%2F2025%2F">curated color palette and the widgets</a> for a reason. This is a product where the aesthetic carries real information, since the color you see maps to the light you&#8217;ll get outside.</p><p>Nothing here shouts. There&#8217;s no splash of confetti, no badge, no number trying to spike your pulse. The app trusts that a beautiful, honest picture of the day is enough to make you want to go see it. For a utility that lives or dies on a glance, that restraint is the whole game.</p><p><em>Emotional signal: &#8220;Oh. The light looks good today.&#8221;</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-volume-xxxiv-this-apple?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxxiv-this-apple%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h3><strong>Reflective level: 4,5/5</strong> </h3><p><em>The reflective level considers the long-term impression and deeper meaning of the design, how it aligns with the user's identity and values.</em></p><p>Lumy is fast and it&#8217;s quiet, which is what a glanceable tool should be. The Modes do real work by cutting the dataset down to what your current life needs, so you&#8217;re not scrolling past nautical twilight to find your sunset. The time-travel slider turns &#8220;when&#8217;s the light good&#8221; into a two-second scrub. And because it all runs on-device, it works on a trailhead with no signal, which is where you&#8217;d want a sun tracker.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214B4a%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4B4a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!4B4a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!4B4a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!4B4a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214B4a%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png" width="280" height="606.5084745762712" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2556,&quot;width&quot;:1180,&quot;resizeWidth&quot;:280,&quot;bytes&quot;:480000,&quot;alt&quot;:&quot;Lumy's dashboard at night.&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://eidosdesign.substack.com/i/202188262?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lumy's dashboard at night." title="Lumy's dashboard at night." srcset="https://substackcdn.com/image/fetch/$s_!4B4a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 424w, https://substackcdn.com/image/fetch/$s_!4B4a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 848w, https://substackcdn.com/image/fetch/$s_!4B4a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 1272w, https://substackcdn.com/image/fetch/$s_!4B4a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fed3203-1ea6-4466-9190-dfc2b25a4ecb_1180x2556.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="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">Lumy</figcaption></figure></div><p>A few behavioral moves stand out:</p><ul><li><p><strong>Mode-based information hierarchy.</strong> The app hides data instead of stacking it. A hiker and a photographer see different first screens, and that editorial choice is the feature.</p></li><li><p><strong>On-device calculation.</strong> Sun and moon math runs on the device, with nothing sent to a server. Privacy ships as the default.</p></li><li><p><strong>Glanceable surfaces everywhere.</strong> Widgets, Live Activities, and Apple Watch complications mean you often get your answer without opening the app at all.</p></li></ul><p>The one place it wobbles is the watch over time. Lumy&#8217;s Apple Watch experience has <a href="iframe.php?url=https%3A%2F%2Fjustuseapp.com%2Fen%2Fapp%2F908905093%2Flumy%2Freviews">taken a hit across major watchOS jumps</a>, with watch-face and complication breakage reported after big updates. The maker is quick to patch, and that responsiveness counts for a lot, yet the friction is real enough to cost a point here. A tool you trust at a glance has to survive every September.</p><p><em>Emotional signal: &#8220;I got my answer before I even unlocked the phone.&#8221;</em></p><p>This is where the window metaphor pays off. Lumy makes you feel like someone who goes outside. After a few weeks, the app turns into a small daily prompt to live in rhythm with the light, to catch the last sun on a walk, to notice the sky is doing something worth standing still for.</p><p>The State of Mind feature sharpens that identity. When the app reads a low mood entry and suggests a sunlight break, it&#8217;s casting you as a person whose wellbeing is tied to the natural world, not to a screen. It never scolds you for a missed sunrise. It offers, then leaves you alone. That posture is the opposite of the streak-and-shame loop most wellness apps run on.</p><p>The reflective magic here is trust, the same note we hit in <a href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxvii-love-vs">Volume XXVII</a>. Lumy assumes you&#8217;re an adult with a life worth stepping into. It hands you a clear, beautiful read on the day and gets out of the way. The app that wins your loyalty is the one that keeps sending you somewhere better than itself.</p><p><em>Emotional signal: &#8220;This makes me want to go outside.&#8221;</em></p><h3>Where it falls short</h3><p>A flawless score with no critique reads like an ad. Lumy has some cracks.</p><p>The watch story is the clearest weak point. For an app that won its biggest award <em>on</em> the Apple Watch, Lumy has stumbled across major watchOS updates, with complications and watch faces breaking until a patch lands. The fixes come fast, and the developer&#8217;s responsiveness is rare. Still, &#8220;wait a few days for the update&#8221; is a hard ask for a tool whose entire pitch is a reliable glance.</p><p>Then there&#8217;s money. Lumy spent years as a clean pay-once app, and it now sits at $6.99 with in-app purchases layered on top. That&#8217;s a fair way for an indie to keep the lights on, and the core app still delivers without spending more. The shift is worth knowing about going in, since &#8220;buy it and you&#8217;re done&#8221; was part of the old charm. </p><p>And Lumy is light by design. If you plan shoots weeks out, want augmented-reality sun positioning, or need to save and compare locations, this is the wrong tool, on purpose. The State of Mind nudges also lean on a habit most people don&#8217;t have, since they only work if you log your mood in the Health app.</p><h3>How rivals solve the same problem</h3><p>The serious planning crowd reaches for <a href="iframe.php?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.photopills.android.photopills%26amp%3Bhl%3Den">PhotoPills</a>, the maximalist toolbox stuffed with an AR planner, milky-way tools, and saved shoot plans. It&#8217;s powerful and it expects you to invest serious time learning it. <a href="iframe.php?url=https%3A%2F%2Fwww.sunsurveyor.com%2F">Sun Surveyor</a> sit in similar territory, built around technical position data and AR overlays for people solving a precise geometry problem. And <a href="iframe.php?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.skylightframe.mobile%26amp%3Bhl%3Den">Skylight Forecast</a>, from the Halide team, predicts how <em>good</em> the light will be, which is a smart, different bet.</p><p>All three optimize for planning depth. They assume more data and more control is the win. Lumy assumes the opposite. The rivals want to be your planning command center. Lumy wants to tell you the light&#8217;s good and watch you leave.</p><h3>The verdict, and what you can steal</h3><p>Lumy is a small app with a clear spine. It knows what it&#8217;s for and what to leave out, and it treats both as design decisions rather than missing features. The window metaphor does real work. It shapes the palette, the Modes, the glanceable surfaces, and the gentle State of Mind nudge, all pointing the same direction: away from the screen and toward the sky.</p><p>What you can steal from it:</p><ul><li><p><strong>Design for the moment after the app.</strong> Lumy&#8217;s win condition is you, outside, phone away.</p></li><li><p><strong>Hide data as a feature.</strong> Modes work because the app decides what you don&#8217;t need to see right now.</p></li><li><p><strong>Let the aesthetic carry information.</strong> The color you see maps to the light you&#8217;ll get. Beauty doing a job.</p></li><li><p><strong>Make privacy a default.</strong> On-device math, no server calls, no asterisk.</p></li><li><p><strong>Offer, don&#8217;t nag.</strong> A suggestion you can thumbs-down beats a streak you can break.</p></li></ul><p>It loses a point on watch reliability and the quiet creep toward in-app purchases, and it&#8217;s not built for heavy planners. The core experience earns the top mark anyway. It measures success by what happens off-screen, and few apps even try.</p><h3><strong>Overall:</strong> <strong>4,1/5 </strong>&#11088;</h3><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/p/eidos-design-volume-xxxiv-this-apple?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Feidosdesign.substack.com%2Fp%2Feidos-design-volume-xxxiv-this-apple%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><div><hr></div><h3><strong>And this is it for today,</strong></h3><p>Lumy stuck with me because it points the other way. It spends all its craft getting you to look up from the screen, which feels like the right note to end on.</p><p>I&#8217;d love to hear from you on this one. Which app in your life earns its keep by sending you somewhere better than itself, instead of holding you hostage? You can hit reply and tell me, or&#8230; There is another way.</p><p>We want to bring together a close-knit group of like-minded people. It will be a small and welcoming circle of those who genuinely want to share their experiences, learn and adopt best AI practices, and experiment together!</p><div class="callout-block" data-callout="true"><p><strong>And we invite you to join Eidos Design on Discord. It&#8217;ll be warm there.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://discord.gg/tu4TMHqJa&quot;,&quot;text&quot;:&quot;Join Eidos on Discord&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Ftu4TMHqJa"><span>Join Eidos on Discord</span></a></p></div><p>And another bit of news before you go. We listened to your feedback. The monthly news roundup is our best performer, and you told us you love the product reviews tucked inside the other newsletter too. </p><p>So we&#8217;re changing things up. From now on, this newsletter is what you read today: in-depth product reviews, deeper and more useful, with a real lesson you can carry into your own work. The essays and longer think-pieces aren&#8217;t going anywhere, they&#8217;ll live as standalone articles instead. More focus, more value. </p><p><em>As always, this newsletter is free, but if you enjoyed it, please consider sharing it with a friend or two. Spreading the love is what it's all about, folks </em>&#128420;</p><blockquote><p>Sincerely, <br>Vadym Grin</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eidosdesign.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Eidos Design | UX AI Community is a reader-supported publication. To receive new posts and support our work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>