<?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[Builder Notes]]></title><description><![CDATA[Short, personal notes on what I'm learning while building apps + observations on the app and AI space]]></description><link>https://notes.chrisraroque.com</link><image><url>https://substackcdn.com/image/fetch/$s_!FrRu!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F049de169-66eb-49b9-83e0-2222cf671ddd_1280x1280.png</url><title>Builder Notes</title><link>https://notes.chrisraroque.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 28 Sep 2026 17:10:18 GMT</lastBuildDate><atom:link href="https://notes.chrisraroque.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Chris Raroque]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[raroque@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[raroque@substack.com]]></itunes:email><itunes:name><![CDATA[Chris Raroque]]></itunes:name></itunes:owner><itunes:author><![CDATA[Chris Raroque]]></itunes:author><googleplay:owner><![CDATA[raroque@substack.com]]></googleplay:owner><googleplay:email><![CDATA[raroque@substack.com]]></googleplay:email><googleplay:author><![CDATA[Chris Raroque]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[When should you reinvent an interface?]]></title><description><![CDATA[Why I swapped out the default camera in my app and what I learned about redesigning interfaces people already understand.]]></description><link>https://notes.chrisraroque.com/p/when-should-you-reinvent-an-interface</link><guid isPermaLink="false">https://notes.chrisraroque.com/p/when-should-you-reinvent-an-interface</guid><dc:creator><![CDATA[Chris Raroque]]></dc:creator><pubDate>Fri, 14 Aug 2026 19:51:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sgwg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F__ss-rehost__tw-video-preview-13_2069099344280625152.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The first time I used ChatGPT&#8217;s camera, I had two thoughts at once.</p><p>The first was: <em>wow</em> <em>this is so good.</em> </p><p>The second was: <em>I can&#8217;t believe they shipped this.</em></p><p>Instead of opening the familiar full-screen iPhone camera, ChatGPT keeps you inside the conversation. You take a photo, it collapses into the composer, and you keep going. It feels like one continuous action.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;22b268e8-b58f-4ed8-b77a-38b565f27ab0&quot;,&quot;duration&quot;:null}"></div><p>But ChatGPT isn&#8217;t a small app quietly testing design concepts. More than 900 million people use it every week. The familiar camera also carries years of solved problems: zoom, flash, grid lines, accessibility, and muscle memory. Build your own and they become your problems. Zoom is your bug now. Flash is your bug now.</p><p>I couldn&#8217;t stop thinking about the tradeoff. Was this innovative or reckless? </p><p>When should you reinvent an interface people already know?</p><h2>Everything the default was doing</h2><p>Here is a quick video of what the default iPhone camera looks like. It should feel pretty familiar to everyone:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;7b979ef8-8e38-4978-8a83-f811aac17999&quot;,&quot;duration&quot;:null}"></div><p>And then here is the new version I built based on the ChatGPT camera:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;abaddcc6-680f-4b3f-a7a2-abb527dd098e&quot;,&quot;duration&quot;:null}"></div><p>I built my own version for Amy. Somewhere between the first prototype and the finished version, I started arguing with myself a bit.</p><p>What happens in a dark restaurant when someone needs flash? What if they want to zoom or rely on grid lines? Was I simplifying the task, or removing useful controls because the result looked better in a demo?</p><p>Familiar interfaces are easy to underestimate. They look generic because we no longer see the decisions inside them. The default camera isn&#8217;t just a collection of buttons. It&#8217;s compressed history: edge cases, platform conventions, accessibility work, and learned behavior.</p><p>Use the default and you inherit that work for free. Replace it and you inherit the responsibility.</p><p>That doesn&#8217;t mean familiar interfaces should never change. ChatGPT made a convincing case that the default can be designed for a much broader job than the one in front of you. But reinvention has a cost: you can make one path feel unusually coherent while reopening problems the old version already solved.</p><h2>Who ships something like this?</h2><p>I got curious about the team that would ship a change this bold. I went looking for a postmortem and never found one. What I found instead was better: the people who built it were talking about it in public.</p><p>A few days after launch, OpenAI design engineer Naman Kedia posted the flow. He described the attach menu, camera, and final attachment as &#8220;one continuous action.&#8221; That was exactly what had caught my attention.</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/kedia_naman/status/2069099402518573456&quot;,&quot;full_text&quot;:&quot;We just shipped a faster, more fluid photo attach experience in ChatGPT!\n\nThe attach menu now transitions smoothly into the camera, captures happen more quickly, and selected images move directly into the composer, making the whole flow feel like one continuous action. &quot;,&quot;username&quot;:&quot;kedia_naman&quot;,&quot;name&quot;:&quot;Naman Kedia&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1584994609242918913/9bsky9BW_normal.jpg&quot;,&quot;date&quot;:&quot;2026-06-22T16:45:14.000Z&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!sgwg!,w_1028,c_limit,f_auto,q_auto:best,fl_progressive:steep/l_play_button_usfui2,w_88,e_colorize:0/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F__ss-rehost__tw-video-preview-13_2069099344280625152.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/7hukEAUeAC&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:33,&quot;retweet_count&quot;:14,&quot;like_count&quot;:362,&quot;impression_count&quot;:82779,&quot;expanded_url&quot;:null,&quot;video_url&quot;:&quot;https://video.twimg.com/amplify_video/2069099344280625152/vid/avc1/720x1280/sOSYb9win89Yao23.mp4&quot;,&quot;video_preview_media_key&quot;:&quot;13_2069099344280625152&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>He asked for feedback too. When someone flagged unreliable autofocus and no tap-to-focus, he said it was fixed and would roll out that week. That doesn&#8217;t tell me what happened before launch. But it does tell me they weren&#8217;t hiding from what was missing.</p><p>At an older company, I can imagine this becoming 10,000 meetings. One about flash. One about zoom. One about accessibility. Some would be about real problems. And somewhere in the middle of them all, the idea just dies.</p><p>I keep going back and forth on whether shipping first is brave or reckless. Part of me finds it incredibly inspiring that they just shipped it and listened. Part of me wonders how many solved camera problems they just made their own again.</p><p>The closest thing I found to an answer was an interview with Ian Silber, OpenAI&#8217;s head of product design. He said a lot of their work starts as a prototype the team can actually use inside the product. Then they iterate, see how it fits with everything else, and decide whether it should ship to everyone. </p><p>He wasn&#8217;t just arguing for speed, either. Rushing one thing out without seeing how related work could fit together is, in his words, &#8220;bad systems thinking.&#8221; He never mentioned this camera, and I don&#8217;t know if it followed that process. But his description made more sense to me than a simple &#8220;move fast&#8221; lesson. Get a real version in your hands. Use it. See how it fits. Then decide if it belongs. That was easy to admire when it was someone else&#8217;s product. It got harder when it was mine.</p><div id="youtube2-oM1d9Tau27w" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;oM1d9Tau27w&quot;,&quot;startTime&quot;:&quot;1839&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/oM1d9Tau27w?start=1839&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>Then I had to make the decision myself</h2><p>Admiring ChatGPT&#8217;s camera didn&#8217;t make it right for Amy. The question that helped me decide wasn&#8217;t really about cameras: What is the person trying to make?</p><p>On Instagram, the photo is the final product. I might adjust the framing, use grid lines, change the zoom, or take several versions. How it looks matters. That&#8217;s not what&#8217;s happening in Amy.</p><p>In Amy, I just want a calorie estimate. I&#8217;m not trying to take a beautiful photo, and I probably won&#8217;t edit, share, or look at it again. The photo isn&#8217;t the product. It&#8217;s disposable input. The camera is closer to a scanner than a creative tool.</p><p>Once I saw it that way, the tradeoff got clearer. I wasn&#8217;t removing controls from someone composing a photograph. I was removing decisions from a quick scan. The default camera supports every kind of photography. Amy&#8217;s only needs to help someone point at food, take a usable photo, and move on. So I kept the custom version.</p><h2>I kept the camera. I kept the doubt.</h2><p>Familiarity is a feature. A custom interface needs a better reason than simply feeling more distinctive.</p><p>In Amy, the narrower camera earns its place because the job is narrow. It keeps the interaction in context and removes controls that rarely matter for this photo. If people need flash more than I expected, or use food photos in ways I didn&#8217;t anticipate, I&#8217;ll revisit it. A clean interaction isn&#8217;t useful if it stays clean by ignoring what people need.</p><p>That&#8217;s what I find most interesting about OpenAI&#8217;s decision. They didn&#8217;t discover the universally correct camera. They treated a familiar interface as something that could still be questioned. Older companies can confuse deliberation with care. Faster ones can confuse motion with courage. I&#8217;m not sure either failure mode is better.</p><p>The rule I&#8217;m trying to use now: before reinventing an interface, understand what the default quietly does for you. Be specific about the narrower job your version serves. Know which problems you&#8217;re willing to reintroduce. Stay humble enough to put something back when the evidence changes.</p><p>The goal isn&#8217;t to make everything custom. It&#8217;s to know when the familiar interface was built for a different job. That&#8217;s much harder than making a new one.</p><p>We&#8217;ll see if i keep this camera in Amy.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://notes.chrisraroque.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Notes! Subscribe for free to receive new posts and support my work :)</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[What “surprise and delight” actually looks like]]></title><description><![CDATA[How Amy recognizes restaurant names that dictation usually misses, plus two interfaces I can&#8217;t stop thinking about.]]></description><link>https://notes.chrisraroque.com/p/what-surprise-and-delight-actually</link><guid isPermaLink="false">https://notes.chrisraroque.com/p/what-surprise-and-delight-actually</guid><dc:creator><![CDATA[Chris Raroque]]></dc:creator><pubDate>Tue, 11 Aug 2026 17:10:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HArw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nSbt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nSbt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png 424w, https://substackcdn.com/image/fetch/$s_!nSbt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png 848w, https://substackcdn.com/image/fetch/$s_!nSbt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!nSbt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nSbt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e137edc6-9998-43d4-a04b-261313a74612_1920x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:694698,&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://notes.chrisraroque.com/i/210677426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.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_!nSbt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png 424w, https://substackcdn.com/image/fetch/$s_!nSbt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png 848w, https://substackcdn.com/image/fetch/$s_!nSbt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!nSbt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe137edc6-9998-43d4-a04b-261313a74612_1920x1440.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>Imagine you&#8217;re sitting inside <a href="https://goobnechicken.com/">Goobne Chicken</a> with your food in front of you and your phone in your hand.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://notes.chrisraroque.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Notes! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J5C8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J5C8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png 424w, https://substackcdn.com/image/fetch/$s_!J5C8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png 848w, https://substackcdn.com/image/fetch/$s_!J5C8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png 1272w, https://substackcdn.com/image/fetch/$s_!J5C8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J5C8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png" width="768" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:768,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:869865,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://notes.chrisraroque.com/i/210677426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.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_!J5C8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png 424w, https://substackcdn.com/image/fetch/$s_!J5C8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png 848w, https://substackcdn.com/image/fetch/$s_!J5C8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.png 1272w, https://substackcdn.com/image/fetch/$s_!J5C8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fdd8093-0686-4505-954d-7e6c4b0bc541_768x576.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></figure></div><p>You open Amy, my calorie-tracking app, hold down the microphone, and say, &#8220;Two side dishes and Korean barbecue from Goobne.&#8221;</p><p>Somewhere in the middle of saying it, you have a quiet second thought: there&#8217;s absolutely no way it gets that.</p><p>An In-N-Out burger with fries is one thing. The words are common, and the restaurant name is familiar. Goobne is exactly the kind of name speech recognition can turn into something plausible and completely wrong. It might understand every other word in the order and still miss the one word that matters.</p><p>Then Amy just logs it. Goobne Chicken, spelled correctly, sitting in your food log like it was never in doubt.</p><p>The meal appears. No correction. No list asking which restaurant you meant. Nothing celebrates. It just works, and for a second you think: <em>wait, how did it know that?</em></p><p>That little beat is the thing I&#8217;m chasing when I build.</p><p>People who build products talk constantly about &#8220;surprise and delight.&#8221; I&#8217;ve heard that phrase so many times it has almost stopped meaning anything. Usually it gets translated into confetti, a cute animation, or a clever empty state. I like those things. But building Amy has forced me to get more specific about what I actually mean: a moment that feels almost impossible to the person using the app.</p><p>Not flashy. Almost impossible.</p><p>So let me ruin the trick, because the reason that moment works is completely hidden.</p><p>When someone turns the feature on, Amy quietly looks up the restaurants around them when the app loads. It caches up to twenty nearby names, cleans them into keyterms, and sends those keyterms along with the audio when dictation happens. Goobne is no longer just a strange sound the system has to guess from scratch. It&#8217;s one of a short list of likely restaurant names nearby.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VZy_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VZy_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 424w, https://substackcdn.com/image/fetch/$s_!VZy_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 848w, https://substackcdn.com/image/fetch/$s_!VZy_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 1272w, https://substackcdn.com/image/fetch/$s_!VZy_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VZy_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png" width="1456" height="857" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:857,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1757390,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://notes.chrisraroque.com/i/210677426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.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_!VZy_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 424w, https://substackcdn.com/image/fetch/$s_!VZy_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 848w, https://substackcdn.com/image/fetch/$s_!VZy_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 1272w, https://substackcdn.com/image/fetch/$s_!VZy_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa10e48c2-b6da-414c-928f-e661d0e7467f_1635x962.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image 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></p><p>There&#8217;s no restaurant picker and no extra question. You say the order, Amy gets a better chance of understanding the difficult part, and you move on.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HArw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HArw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 424w, https://substackcdn.com/image/fetch/$s_!HArw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 848w, https://substackcdn.com/image/fetch/$s_!HArw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!HArw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HArw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:694698,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://notes.chrisraroque.com/i/210677426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.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_!HArw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 424w, https://substackcdn.com/image/fetch/$s_!HArw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 848w, https://substackcdn.com/image/fetch/$s_!HArw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!HArw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6065e51-152f-4c2c-a42c-5f6176b47e14_1920x1440.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image 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></p><p>This feature is completely opt-in. It&#8217;s off by default. During onboarding, Amy explains why location helps and lets you choose whether to turn it on. Privacy was one of the first things I considered: Amy uses your location on-device to find nearby restaurants, but only the restaurant names are sent along as transcription hints. Your coordinates never leave the device.</p><p></p><p>I talked about this exact example in my video, <a href="https://youtu.be/MXLF8b15GhQ?t=680">How I Make Apps Feel Premium.</a> I&#8217;ve started it at the restaurant section below.</p><div id="youtube2-MXLF8b15GhQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;MXLF8b15GhQ&quot;,&quot;startTime&quot;:&quot;680&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/MXLF8b15GhQ?start=680&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>This might be my favorite detail in Amy precisely because there&#8217;s almost nothing to show. Most product work is easy to point at. A new screen, a redesigned icon, a cleaner chart. You can put it in a screenshot and explain what changed.</p><p>This work disappears into the mistake that didn&#8217;t happen.</p><p>That&#8217;s what &#8220;surprise and delight&#8221; has started to mean to me. It isn&#8217;t necessarily an extra layer added after the real work is done. Sometimes it&#8217;s the invisible work that makes the obvious path succeed. The product does more thinking, so the person using it can do less.</p><p>If you&#8217;ve come across another &#8220;wait, how did it know that?&#8221; moment, let me know. I&#8217;m always looking for more examples like this.</p><div><hr></div><p></p><h2>Designs that inspire me</h2><p>Every week, I&#8217;m going to share one or two interfaces that inspire me. I&#8217;m obsessed with designs that stop me from scrolling. Not because I love every part of them, but because there&#8217;s usually one idea inside them that I want to understand.</p><h3>Dictation that feels like the default</h3><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/tcsrini/status/2075410401932751314&quot;,&quot;full_text&quot;:&quot;Been exploring <span class=\&quot;tweet-fake-link\&quot;>@monogramai</span> and I&#8217;m genuinely impressed by its Generative UI capabilities.\n\nThis is the way I always envisioned AI experiences evolving, where the interface is generated dynamically around your intent instead of being confined to a chat window. The UI becomes part &quot;,&quot;username&quot;:&quot;tcsrini&quot;,&quot;name&quot;:&quot;Srini&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1999857557909934080/cHl81FmQ_normal.jpg&quot;,&quot;date&quot;:&quot;2026-07-10T02:42:53.000Z&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!-S_1!,w_1028,c_limit,f_auto,q_auto:best,fl_progressive:steep/l_play_button_usfui2,w_88,e_colorize:0/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F__ss-rehost__tw-video-preview-13_2075410282567106560.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/6VlGzYmcFV&quot;},{&quot;img_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!uJo1!,w_1028,c_limit,f_auto,q_auto:best,fl_progressive:steep/l_play_button_usfui2,w_88,e_colorize:0/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F__ss-rehost__tw-video-preview-13_2075410282575511552.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/6VlGzYmcFV&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:1,&quot;like_count&quot;:7,&quot;impression_count&quot;:1722,&quot;expanded_url&quot;:null,&quot;video_url&quot;:&quot;https://video.twimg.com/amplify_video/2075410282575511552/vid/avc1/720x1564/7FeyvaRdkcOTsL1N.mp4&quot;,&quot;video_preview_media_key&quot;:&quot;13_2075410282575511552&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><p>This Monogram interaction caught my attention immediately. After the prompt is submitted, the words briefly bend and ripple as the interface gives way to the result. It&#8217;s a tiny transition, but it makes the whole surface feel unusually alive.</p><p>What I find most interesting is the keyboard button on the right. In the clip, the prompt is typed. But look at the hierarchy: the microphone is the big, obvious target, while the keyboard is a smaller control off to the side. Most apps do the opposite, with the keyboard first and dictation as the alternative. This layout suggests they expect you to speak. If you want to type, there&#8217;s still a dedicated button waiting for you.</p><p>I rarely see an app make the keyboard something you deliberately summon. It&#8217;s a small decision, but it says a lot about what the designers think the primary interaction should be.</p><p>The liquid treatment immediately reminded me of Wabi. I don&#8217;t know if that was actually the reference, but I like seeing that visual language on an interface that seems built around voice.</p><h3>A background that becomes part of the subject</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ly3R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ly3R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 424w, https://substackcdn.com/image/fetch/$s_!Ly3R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 848w, https://substackcdn.com/image/fetch/$s_!Ly3R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 1272w, https://substackcdn.com/image/fetch/$s_!Ly3R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ly3R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3802040,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://notes.chrisraroque.com/i/210677426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.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_!Ly3R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 424w, https://substackcdn.com/image/fetch/$s_!Ly3R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 848w, https://substackcdn.com/image/fetch/$s_!Ly3R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 1272w, https://substackcdn.com/image/fetch/$s_!Ly3R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6918dc4-7488-453e-ab54-bae6ca2d2a10_2400x2400.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image 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></p><p>There&#8217;s a lot about this screen I don&#8217;t like, or at least haven&#8217;t made up my mind about. I&#8217;m going to ignore the bottom half entirely.</p><p>The top half, though, stopped me immediately.</p><p>The yellow gradient matches the book cover so well that the background feels like it&#8217;s coming out of the book itself. The book is still the focal point, but its color seems to spill into the rest of the screen. It makes the entire composition feel much more alive.</p><p>This is what I keep coming back to. The background is doing almost nothing structurally, yet the relationship between it and the book is powerful enough to stop the scroll. I&#8217;m increasingly interested in interfaces that borrow their atmosphere from the thing they&#8217;re framing.</p><p>Unfortunately, I don&#8217;t know where this image originally came from. I found it on Twitter, but I&#8217;m fairly sure the person who shared it found it somewhere else. If you know the original source, please email me so I can attribute it properly.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://notes.chrisraroque.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Notes! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>