<?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[Laid Off Lunch]]></title><description><![CDATA[Notes on food, digital product design and building apps in this strange new world.]]></description><link>https://laidofflunch.com</link><image><url>https://substackcdn.com/image/fetch/$s_!4-5R!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda4798-dfab-4eb4-a326-1125aef234b9_650x650.png</url><title>Laid Off Lunch</title><link>https://laidofflunch.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 07 Oct 2026 16:38:20 GMT</lastBuildDate><atom:link href="https://laidofflunch.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jules Forrest]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[laidofflunch@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[laidofflunch@substack.com]]></itunes:email><itunes:name><![CDATA[Jules Forrest]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jules Forrest]]></itunes:author><googleplay:owner><![CDATA[laidofflunch@substack.com]]></googleplay:owner><googleplay:email><![CDATA[laidofflunch@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jules Forrest]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Beyond vibe coding]]></title><description><![CDATA[A product designer&#8217;s guide to picking a production tool stack in an AI-native world]]></description><link>https://laidofflunch.com/p/beyond-vibe-coding</link><guid isPermaLink="false">https://laidofflunch.com/p/beyond-vibe-coding</guid><dc:creator><![CDATA[Jules Forrest]]></dc:creator><pubDate>Wed, 23 Sep 2026 16:26:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NO3a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi, I&#8217;m Jules. After I was laid off from my job as a product design director, I decided to take a sabbatical from corporate life to <a href="https://laidofflunch.com/p/introducing-al-dente">build my own product</a>. I&#8217;m documenting that journey here on Substack, along with something I&#8217;m cooking for lunch each week.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NO3a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NO3a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NO3a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NO3a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NO3a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NO3a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg" width="1456" height="1459" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1459,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3077794,&quot;alt&quot;:null,&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;:&quot;https://laidofflunch.com/i/216936212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NO3a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NO3a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NO3a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NO3a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47efbabc-cb08-4288-81b2-e5bd9c54e9eb_3985x3993.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><figcaption class="image-caption"></figcaption></figure></div><p>The first thing I vibe coded was an app called viberunning.lol. It was a fancier version of a Google Sheet I maintained to track my running progress, which used Zapier to add a new spreadsheet row after every run posted to Strava. I originally created the spreadsheet to build custom visualizations for specific trends I wanted to track over time, but the format was ultimately limited. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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>When vibecoding tools like <a href="https://bolt.new/">Bolt</a> arrived on the scene, porting over my running spreadsheet into a &#8220;real app&#8221; felt like a great entry-level project to gain exposure to some new capabilities and ways of working.</p><p>At first, I was very impressed with Bolt&#8217;s power. Within a couple of hours, I got the app to ~80% parity with my existing &#8220;dashboard,&#8221; adding on some fancy new filters and visualizations that Google Sheets didn&#8217;t support. Then, frustratingly, I spent the next 3 days chasing the remaining 20%. Things stopped then restarted working with no rhyme or reason. Chart axes randomly inverted themselves. Instead of updating existing database columns, Bolt kept adding new, redundant ones that muddied the data and created conflicts. Eventually, it became more of a headache than it was worth.</p><p>That was mid-2025, so a lot has changed since then. I&#8217;m sure Bolt has gotten better and more powerful. And I learned a lot, which was the primary goal of the project. But my biggest takeaway from that experience was that <strong>the gulf between vibecoding a shiny prototype that works once and maintaining an app that works reliably over time remains pretty wide.</strong></p><h2>Defining vibe coding</h2><p>To me, vibe coding is an exploration activity that uses code as a creative medium. You might be trying to get an idea out of your head, build a custom tool for yourself, or validate that an interaction pattern makes sense. If you work on a team, you might vibe code a prototype to rally others around a concept you believe in. I think of it as more intuitive and gestural than other kinds of design work, similar to a sketch. &#8220;Hey, we could go in this general direction and it might work something like this, what do you think?&#8221;</p><p>It only becomes a problem when you want your vibe coded prototype to magically metamorphosize into a standalone production app. For designers working at companies large enough to hire engineers (most companies!), this isn&#8217;t really an issue. Your engineering friends are going to be the ones in charge of the tool stack decisions I want to talk about today and your challenge is more around how to integrate your coded design work into their existing tech stack.</p><p>But what if you&#8217;re a designer who wants to create your own product from scratch, outside of your corporate job? In software engineering, this is called a &#8220;greenfield&#8221; project, meaning a project where migrating or integrating with legacy systems isn&#8217;t a concern. At established companies, choosing a completely fresh start can be inefficient and expensive, so true greenfield projects are often few and far between. When you&#8217;re making your own thing, though? It&#8217;s kinda the dream. </p><h2>A patchwork tooling landscape</h2><p>Today, I want to document some of the tools we&#8217;re using to build <a href="https://cookaldente.com/">Al Dente</a> and why we chose them. I&#8217;ll also include some reasonable alternatives if our pick doesn&#8217;t make sense for your project. My goal in sharing this is to highlight the types of decisions you&#8217;ll have to make if you embark on a similar adventure and some of the tradeoffs you may want to consider as you decide.</p><p>Generally speaking, tool selection will not make or break a product&#8217;s success. Al Dente&#8217;s tools are not objectively the &#8220;best&#8221; tools, nor are they the only tools in their category. Even so, it&#8217;s still fun and interesting to talk about, and I love reading similar breakdowns from other product makers to learn from their approach. </p><p>Another thing to keep in mind is how fast these tools are expanding their feature sets. Many of the tools I describe below started by focusing on one core problem and are now evolving to solve for adjacent problems. They tend to offer a very robust solution for their core problem, while the adjacent solutions might be nascent or incomplete. However, there is almost always another vendor whose entire focus is the first vendor&#8217;s adjacent area, resulting in a patchwork of overlapping options for different technical features with varying degrees of robustness.</p><p>In practice, this means choosing between fewer tools that work together &#8220;well enough&#8221; or choosing a powerful, specialized tool for each problem. To start, consider sticking with fewer tools and only reach for a new tool if you&#8217;ve hit a wall with a specific capability that you can&#8217;t achieve with your existing setup.</p><h2>What we&#8217;re optimizing for</h2><p>At Al Dente, we&#8217;re a small team of two building a cooking app primarily designed for mobile devices. When evaluating tools, we look for a few practical qualities:</p><ul><li><p><strong>Work well with AI agents<span>.</span></strong> We want to use popular, well-documented tools that agents already understand. If agents can access the same context and tools that we do, they&#8217;ll have enough information to do useful work and independently verify their own results</p></li><li><p><strong><span>Support preview environments.</span></strong> We look for tools that give each pull request or agent session an isolated place to run, such as its own preview URL or database. This lets us work in parallel and makes QA easier</p></li><li><p><strong><span>Offer reasonable pricing and stability.</span></strong> Tools don&#8217;t need to be free, but they should be affordable for a small team that&#8217;s just starting out. They should also be popular enough that we don&#8217;t need to worry about them going under any time soon</p></li></ul><p>Your criteria may be different, but thinking about what&#8217;s important to you upfront will make it much easier to evaluate the overwhelming number of options available.</p><h2>The minimum stack</h2><p>We started with the basics: Expo for our frontend, Convex for our backend and Cloudflare as our cloud provider.</p><h3>Expo</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zyu8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zyu8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png 424w, https://substackcdn.com/image/fetch/$s_!Zyu8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png 848w, https://substackcdn.com/image/fetch/$s_!Zyu8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png 1272w, https://substackcdn.com/image/fetch/$s_!Zyu8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zyu8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png" width="1456" height="939" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:939,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:975196,&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://laidofflunch.com/i/216936212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.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_!Zyu8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png 424w, https://substackcdn.com/image/fetch/$s_!Zyu8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png 848w, https://substackcdn.com/image/fetch/$s_!Zyu8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.png 1272w, https://substackcdn.com/image/fetch/$s_!Zyu8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7009c46c-6d17-4787-94a6-d711964cd604_3144x2028.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><a href="https://expo.dev/">Expo</a> is a tool built on React Native that makes it easier to build and distribute one app across iOS, Android, and the web. It&#8217;s better than using React Native directly because it handles much of the complicated setup and app store distribution for us. </p><p>Another key feature is its ability to deliver &#8220;over-the-air&#8221; updates, which means we can ship many types of changes to users directly, instead of getting stuck in the app store review process or waiting for users to download the latest version.</p><p>Lastly, Expo has a large ecosystem of ready-made tools and packages, so it&#8217;s easy to find existing tools for common features. And because it&#8217;s so widely used, coding agents are already very good at working with it.</p><p>Expo might not be for you if you only need a website, or if you want to build a deeply native app for a single platform. In that case, consider using platform languages like SwiftUI for iOS and Kotlin/Jetpack Compose for Android directly. If you&#8217;re only focusing on web apps, Next.js could be a good option.</p><h3>Convex</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4_zs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4_zs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!4_zs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!4_zs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!4_zs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4_zs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:752850,&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://laidofflunch.com/i/216936212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.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_!4_zs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!4_zs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!4_zs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!4_zs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5ed93c-8027-451f-a4c5-7646edfcc3f9_3184x2068.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><a href="https://www.convex.dev/">Convex</a> is a backend platform with a database and other essential services built in, offering smart but opinionated defaults that help prevent common mistakes. Some of the common mistakes Convex helps us avoid are showing users out-of-date information or leaving data in a broken state when only part of an update succeeds.</p><p>In our opinion, you can get really far with just Convex because the included services all work together pretty well. In addition to using Convex as a database, it also handles basic user authentication, file storage and recently introduced an AI gateway feature, which I&#8217;ll cover more below. We don&#8217;t personally use Convex for those things, but it&#8217;s a great place to start.</p><p>Because Convex is opinionated and bakes in more than just the database, its main drawback is vendor lock-in. When you&#8217;re getting started on building your own thing for the first time, you probably don&#8217;t need to worry about that too much. Supabase is also a good option with similar offerings if you want to explore an alternative.</p><h3>Cloudflare</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FOVI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FOVI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!FOVI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!FOVI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!FOVI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FOVI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72926705-38f1-4c97-b246-90157af1125b_3184x2068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5098641,&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://laidofflunch.com/i/216936212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.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_!FOVI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!FOVI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!FOVI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!FOVI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72926705-38f1-4c97-b246-90157af1125b_3184x2068.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><a href="https://www.cloudflare.com/">Cloudflare</a> is a cloud provider, offering a large collection of services for hosting and running products on the internet. It&#8217;s infinitely powerful, which comes with the tradeoff of added complexity&#8230; you probably won&#8217;t need 99% of the things that it offers. We use it for:</p><ul><li><p>File and photo storage</p></li><li><p>Hosting Al Dente&#8217;s marketing site, developer documentation, and web app </p></li><li><p>Buying and managing Al Dente domains</p></li><li><p>Routing Al Dente&#8217;s AI usage through its AI gateway</p></li></ul><p>AI gateways are super helpful because they provide a middle layer between your product and the AI models you want your product to use. Instead of connecting separately to Google, OpenAI, and other providers, your product connects to the gateway once. The gateway then acts as a router, sending each request to the right AI provider and giving you one place to manage and pay for your AI usage. When companies introduce new models, like TypeSafe&#8217;s <a href="https://typesafe.ai/blog/introducing-system-one-models-and-jev">Jev</a>, you can easily incorporate them without any additional setup or overhead.</p><p>Overall, Cloudflare is probably overkill for designers starting out, as it&#8217;s similar to AWS in terms of complexity. Vercel is the more approachable alternative for cloud services and also offers an AI gateway. </p><h2>Extras we use for Al Dente</h2><p>The stack above, or its alternatives, will get you pretty far when you&#8217;re starting out. When you&#8217;re ready to layer in additional tools as you grow, you might find some of these interesting.</p><h3>PostHog</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yt6v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yt6v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!yt6v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!yt6v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!yt6v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yt6v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png" width="728" height="473" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:2275540,&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://laidofflunch.com/i/216936212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yt6v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!yt6v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!yt6v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!yt6v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F676c2d12-f348-40bc-8c51-aa63847700b4_3184x2068.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>At its core, <a href="https://posthog.com/">PostHog</a> is an analytics product. You can think of it as a much more powerful and less annoying-to-use version of Google Analytics. It&#8217;s also done a good job expanding into adjacent areas like error logging, session replays, A/B testing and feature flags. Having all of those features in one place is very powerful, because your product context is all together and you don&#8217;t have to wire up ten different tools to do those jobs.</p><p>Another thing that sets PostHog apart is just how deeply it integrates with other tools through its MCP server. None of your data is locked up behind interfaces, dashboards or APIs, so your AI agents can access all of the same information that is available to you as a normal user.</p><p>Brand-wise, I can also appreciate that PostHog is doing something unique with their hedgehog mascot and operating-system-inspired marketing site. For me, the visual language does get old kind of quick, though.</p><p>Alternatives to PostHog are tricky because any reasonable alternative would likely require signing up for multiple services. You could check out Vercel&#8217;s basic analytics product, though it&#8217;s limited to web offerings and can&#8217;t track iOS or Android data yet.</p><h3>Clerk</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EU6c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EU6c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!EU6c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!EU6c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!EU6c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EU6c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4357723,&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://laidofflunch.com/i/216936212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.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_!EU6c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!EU6c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!EU6c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!EU6c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d97a1a5-f7e9-4ca1-97aa-95bfc78fdd0a_3184x2068.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><a href="https://clerk.com/">Clerk</a> is the product we use to handle creating and managing user accounts. It&#8217;s narrowly focused and it does that one thing really well, though they have recently been expanding into the payments space.</p><p>As I mentioned above, Convex also does this and is a great place to start. We moved away from Convex because we wanted Al Dente users to be able to access their data in Al Dente through MCP and Convex&#8217;s authentication offering wasn&#8217;t mature enough to handle that.</p><p>In other words, when an Al Dente user wants to connect their recipe library to Claude, Clerk handles creating the page where they can authorize their access to get connected. Thanks, Clerk!</p><h3>Resend</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8gmb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8gmb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!8gmb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!8gmb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!8gmb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8gmb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3006245,&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://laidofflunch.com/i/216936212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.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_!8gmb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png 424w, https://substackcdn.com/image/fetch/$s_!8gmb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png 848w, https://substackcdn.com/image/fetch/$s_!8gmb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.png 1272w, https://substackcdn.com/image/fetch/$s_!8gmb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7844018-b6a0-4c72-bed2-0e15c600caa6_3184x2068.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><a href="https://resend.com">Resend</a> is the tool we use to send Al Dente emails. It can handle both marketing emails and transactional emails. We haven&#8217;t sent any marketing emails yet, but we do use it to handle communication around things like account creation and password reset.</p><p>We chose Resend because it&#8217;s nicely designed and allows you to use the <a href="https://react.email/">React Email</a> library to design your emails. Traditionally, email design has been a very hard thing to do because email layouts are notoriously finicky, and there are a lot of weird old-school HTML techniques you have to use to get the email to format properly. </p><p>If Resend isn&#8217;t right for you, Postmark is a reasonable alternative that also supports React Email.</p><h2>Putting the basics together</h2><p>If you already have an idea, try using this prompt as a jumping off point to get your project started. If you already have designs or a vibe coded prototype, that&#8217;s helpful context to add in as well.</p><blockquote><p><em>I want to build [describe your product idea, who it&#8217;s for, and the main thing it should help them do].</em></p><p><em>Here is an existing prototype to use as a starting point: [Paste a link or attach files here].</em></p><p><em>For my initial stack, I want to use:</em></p><ul><li><p><em>Expo for the iOS, Android, and web app</em></p></li><li><p><em>Convex for the backend and database</em></p></li><li><p><em>Vercel for hosting the web app</em></p></li></ul><p><em>Create a new Git repository for the project and walk me through setting up each tool. Start by proposing a short implementation plan and a sensible project structure. Then guide me through the setup one step at a time, including the commands I need to run, the accounts I need to create, and any configuration or environment variables I need to add.</em></p><p><em>Pause whenever I need to sign in, authorize access, make a decision, or complete a step outside the codebase. Explain what each major choice does in plain language, and don&#8217;t add extra services or complexity unless they&#8217;re necessary for the first working version.</em></p><p><em>Once the foundation is set up, help me build the smallest end-to-end version of this idea: [Describe the first core user flow]. Make sure it runs locally and explain how to preview it on mobile and web, deploy the web version to Vercel, and verify that the app can read and write data in Convex.</em></p><p><em>Interview me before getting started to make sure all of your clarifying questions get answered.</em></p></blockquote><h2>Part II</h2><p>Beyond vibe coding is a huge topic and picking the right tools is only part of the job. In the next installment of this series, I&#8217;ll talk about how to use AI coding tools effectively within a codebase to follow engineering best practices.</p><h2>Lunch</h2><p>This week for lunch, I made Kat Boytsova&#8217;s <a href="https://www.bonappetit.com/recipe/chicken-and-rice-soup-with-garlicky-chile-oil">Chicken and Rice Soup with Garlicky Chile Oil</a> from Bon App&#233;tit.</p><p>See you next week!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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><item><title><![CDATA[Introducing Al Dente]]></title><description><![CDATA[An app for people who love to cook]]></description><link>https://laidofflunch.com/p/introducing-al-dente</link><guid isPermaLink="false">https://laidofflunch.com/p/introducing-al-dente</guid><dc:creator><![CDATA[Jules Forrest]]></dc:creator><pubDate>Wed, 16 Sep 2026 13:21:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/88047007-607f-47e4-be1c-31e76e1e6ce0_2400x1260.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jJWn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jJWn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jJWn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jJWn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jJWn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jJWn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg" width="1456" height="1459" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1459,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2666898,&quot;alt&quot;:null,&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;:&quot;https://laidofflunch.com/i/215878527?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jJWn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jJWn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jJWn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jJWn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3cfd9ff-6f3f-472c-b490-4ea3bad32a85_4284x4293.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>We&#8217;re building a cooking app! It&#8217;s called Al Dente and we&#8217;re pretty excited about it.</p><p>Broadly speaking, the goal of Al Dente is to organize your cooking life. And, as I&#8217;ve learned from all of the people who have so generously allowed me to interview them on this topic, no two cooking lives are quite the same.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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>Cooking is such a fun space to explore because it&#8217;s both universal and highly individual at the same time. Everyone has to eat, everyday. Beyond that, the variables are basically endless:</p><ul><li><p>Some people cook multiple times a day, while others avoid it at all costs</p></li><li><p>Some people cook exclusively from recipes, while others cook intuitively</p></li><li><p>Some people prioritize efficient cooking, while others cook as an artistic or creative pursuit</p></li><li><p>Some people are creatures (eaters?) of habit and others strive for variety</p></li></ul><p>There are nutrition goals, dietary restrictions, household preferences, substitutions, budget considerations, seasonality, leftover potential and more. </p><h2>Starting narrow</h2><p>First and foremost, my goal is to create an app that I love to use and is valuable to me. It&#8217;s sort of a foreign concept, focusing so narrowly on my own priorities and preferences as user after almost a decade of working at a scaled megacorp designing for audiences of 150+ million. Which isn&#8217;t to say that I&#8217;m not refining and iterating on the app based on research and feedback from others. But it&#8217;s nice to be in the driver&#8217;s seat, deciding if something meets my own personal bar first. </p><p><em>Actually, it&#8217;s mostly nice. Sometimes, in an Ira Glass &#8220;<a href="https://vimeo.com/85040589">taste vs. work gap</a>&#8221; way, it&#8217;s kind of hellish because I&#8217;m out of my comfort zone in this 0-1 space. Onward!</em></p><p>So, if I&#8217;m the user, what are my pain points?</p><ul><li><p>I enjoy cooking, but I don&#8217;t like meal planning or trying to figure out what to eat</p></li><li><p>It&#8217;s hard to remember all of the different meals and recipes in my cooking repertoire</p></li><li><p>I read a lot of food publications and follow my favorite chefs on social media, but their recipes are scattered across the Internet</p></li><li><p>I don&#8217;t cook from my cookbooks as often as I&#8217;d like</p></li><li><p>Collating the grocery list each week is a lot of admin work</p></li><li><p>Food tasks (meal planning, grocery shopping, and cooking) are household duties that I share with my husband and details get lost in the shuffle when we handoff parts of the process to one another</p></li><li><p>I often tweak recipes to suit our household preferences or kitchen equipment, but it&#8217;s hard to track the changes and iterations over time</p></li></ul><p>In addition to some of these &#8220;problems to be solved,&#8221; I also think there&#8217;s a lot of room to layer in interesting, well-crafted product experiences that make cooking more fun and joyful.</p><h2>Where we are today</h2><p>Not that far! We&#8217;ve barely scratched the surface of what we think is possible to explore. But, for the sake of documentation, I&#8217;ll capture what the app looks like for our household today as a milestone.</p><h3>Library</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KDuO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KDuO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!KDuO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!KDuO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!KDuO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KDuO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png" width="1456" height="993" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a30441ed-629b-43c3-9d66-501298cda503_5018x3422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:993,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5584612,&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://laidofflunch.com/i/215878527?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.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_!KDuO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!KDuO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!KDuO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!KDuO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30441ed-629b-43c3-9d66-501298cda503_5018x3422.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>Right now, the Library view is at the heart of the app. We really wanted to make this view feel like an accurate representation of the mental model people have when they think about their recipes, which often involves metadata like where the recipe came from or who wrote it. Users can also organize their recipes by grouping them into collections.</p><h3>Organizing</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7ijM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7ijM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!7ijM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!7ijM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!7ijM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7ijM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png" width="1456" height="993" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:993,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2565185,&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://laidofflunch.com/i/215878527?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.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_!7ijM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!7ijM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!7ijM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!7ijM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03892ce8-20c0-4621-9df1-c6e84ea7c394_5018x3422.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>Within each of those organizing lenses, there are detail pages that allow people to explore all of their recipes that fit a particular category. As you can see, our household loves both NYT Cooking and Kenji L&#243;pez-Alt.</p><h3>Cookbooks</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S84P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S84P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!S84P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!S84P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!S84P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S84P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png" width="1456" height="993" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:993,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3499819,&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://laidofflunch.com/i/215878527?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.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_!S84P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!S84P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!S84P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!S84P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36175ea8-2f76-4edb-a189-1aade9a06aa6_5018x3422.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>Cookbooks get a special detail page that showcase book specific information like the cover and subtitle.</p><p>Our hypothesis is that having digital representations of cookbook recipes sitting next to all of the other recipes we cook will encourage us to cook them more. Scanning the recipes into our library keeps them top of mind and discoverable, making it easier to incorporate them into our weekly meal plans and grocery lists.</p><h3>Saving a recipe</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2eeW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2eeW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!2eeW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!2eeW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!2eeW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2eeW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png" width="1456" height="993" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55392933-3002-4fb4-934e-a3514835650c_5018x3422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:993,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3596367,&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://laidofflunch.com/i/215878527?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.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_!2eeW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!2eeW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!2eeW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!2eeW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55392933-3002-4fb4-934e-a3514835650c_5018x3422.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>There are quite a few ways to get recipes into your library, and the easiest one actually doesn&#8217;t even involve opening the app&#8230; it uses the built-in share sheets on iOS and Android. But, if people want to build out their library without ever leaving the app, they can add recipes via in-app search.</p><h3>MCP</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uQ63!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uQ63!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!uQ63!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!uQ63!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!uQ63!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uQ63!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png" width="1456" height="993" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:993,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:771722,&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://laidofflunch.com/i/215878527?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.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_!uQ63!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png 424w, https://substackcdn.com/image/fetch/$s_!uQ63!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png 848w, https://substackcdn.com/image/fetch/$s_!uQ63!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.png 1272w, https://substackcdn.com/image/fetch/$s_!uQ63!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b3038e-4de6-40e9-a0fb-a0d1f8255bc2_5018x3422.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>As tech nerds, we wanted to make sure we were building in an AI-native way from the start. We dogfood every feature we build in Al Dente as an MCP tool first, which allows us to explore the data model and use cases before we ever commit to building UI. </p><p>It&#8217;s also led to a lot of discussions about whether a feature actually needs UI or can just be handled by an agent. None of these discussions have resulted in decisions that are set in stone yet, but writing about our MCP-driven development process is definitely in the queue for a future post.</p><h2>What&#8217;s still to come</h2><p>There&#8217;s so much left to do. Some of the things coming sooner rather than later:</p><ul><li><p>More ways to organize and interact with recipes</p></li><li><p>Grocery lists and meal plans</p></li><li><p>Onboarding and first time user experience </p></li><li><p>Household collaboration features</p></li><li><p>Visual design, branding and marketing site</p></li><li><p>Design system (!!)</p></li></ul><p>We&#8217;ve taken some first passes and iterated on all of these items but none of them currently meet our internal bar. I hope to write about the process of working on all of them here over the next few months.</p><p>It&#8217;s still early, but if you&#8217;re curious to check it out, you can sign up for our waitlist <a href="https://cookaldente.com/">here</a>.</p><h2>Lunch</h2><p>This week for lunch, I made Ali Slagle&#8217;s <a href="https://cooking.nytimes.com/recipes/1023338-orzo-salad-with-lentils-and-zucchini?unlocked_article_code=1.A1E.61ou.E2c1eb4ToAn0&amp;smid=ck-recipe-iOS-share">Orzo Salad With Lentils and Zucchini</a> from NYT Cooking.</p><p>See you next week!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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><item><title><![CDATA[Everybody’s gotta eat]]></title><description><![CDATA[But it turns out feeding yourself is actually pretty complicated]]></description><link>https://laidofflunch.com/p/everybodys-gotta-eat</link><guid isPermaLink="false">https://laidofflunch.com/p/everybodys-gotta-eat</guid><dc:creator><![CDATA[Jules Forrest]]></dc:creator><pubDate>Wed, 09 Sep 2026 13:22:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rrzG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rrzG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rrzG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rrzG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rrzG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rrzG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rrzG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg" width="1456" height="1459" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1459,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3570230,&quot;alt&quot;:null,&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;:&quot;https://laidofflunch.com/i/213199278?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rrzG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rrzG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rrzG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rrzG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75530056-acbd-465e-9171-73988da476e0_3966x3974.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>Among other things, March 2020 changed my household&#8217;s food habits.</p><p>Before Covid, I often shopped at the Trader Joe&#8217;s across from my office on Market Street. On Monday nights, it was so packed and busy that the checkout line snaked through every aisle of the store. Half-browsing / half-queueing, I followed the emergent store protocol of getting on line straight away and adding items to my basket as I passed each section. On weekends, my husband <a href="https://x.com/_danoc">Dan</a> and I would stroll through Whole Foods, Mollie Stone&#8217;s or the farmer&#8217;s market, picking up whatever looked good that week.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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>As college students, neither of us especially enjoyed cooking but as adults, it&#8217;s grown on us. Over time, we were exposed to more delicious food and more approachable cooking education. My dad gave me <a href="https://www.saltfatacidheat.com/">Salt Fat Acid Heat</a> as a gift. Dan got <a href="https://www.kenjilopezalt.com/books">The Food Lab</a> from a friend. My college roommate introduced us to the zany (and later, as we learned, problematic) world of the Bon App&#233;tit Test Kitchen on YouTube. After we expanded our palates (I admit I arrived at the very basic &#8220;vegetables can be delicious, too&#8221; realization embarrassingly late) and learned the foundations, we started to actually enjoy our cooking routine.</p><p>Of course, Covid upended that routine. Going to the grocery store, previously a frequent and somewhat absent-minded activity, now meant preparing to wait in long lines outside and to risk exposing ourselves to the virus inside. We&#8217;d never used face masks before and we couldn&#8217;t find any available in stock, so we improvised with T-shirt rags. Instead of wandering over whenever we were out of something or going out to eat, we suddenly had to be intentional and strategic. And we became more acutely aware of just how much work all of it was.</p><h2>The dance</h2><p>What are we buying? What are we cooking? What haven&#8217;t we made in a long time? Where did we find that recipe? Who wrote it again? What did we say we would do differently next time? Does it take a long time to prepare? How many dishes will we dirty? Which stores will we need to go to? How much do the ingredients cost? If we buy the ingredients now, how long will they stay fresh? Will we have extra produce? What else can we make with that this week before it goes bad? How much should we make? Can we stretch it into leftovers for lunch? Will it be filling? Healthy? Appetizing to look at? Delicious? Delicious to both of us? </p><p>Will it be worth the effort? </p><p>We rinsed and repeated this exercise until we had a week&#8217;s worth of meals planned and grocery lists collated, then trudged off for our socially distanced Sunday shop.</p><h2>Food is a delight</h2><p>In forcing us to mealplan and shop more intentionally, Covid explicitly highlighted something for us that we had grown to implicitly believe. If we were going to go to all of the trouble and expense of planning, shopping for, cooking and cleaning up after a meal, it better look and taste really freaking good. If it was good enough to make again, we wanted to improve our technique to be able to make an even better and more delicious version of it next time.</p><p>I&#8217;m a technically-minded product designer and Dan is a design-minded software engineer. Like many people who build software for a living, our first inclination was to search for an existing app to solve our problem. We wanted something to ease the mental load of organizing our food life so we could focus on the most enjoyable parts: cooking and eating. And sure, we found some options out there. But none of them did all of the things we wanted them to do and none of them matched our mental model of how we thought it should all fit together. So we decided to DIY our own.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mpl3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mpl3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Mpl3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Mpl3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Mpl3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mpl3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:763977,&quot;alt&quot;:null,&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://laidofflunch.com/i/213199278?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Mpl3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Mpl3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Mpl3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Mpl3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ab264be-4392-44f8-ab8c-479d7e3a1186_2448x3264.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image 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">At the farmer&#8217;s market in January 2021, with our very earliest version</figcaption></figure></div><h2>Fits and starts</h2><p>Sometime during the first Covid winter, we started exploring prototypes. By January 2021, we giddily brought our very first version to the farmer&#8217;s market. It did work&#8230; but it was just okay. We accomplished our planning and shopping tasks, but it was clunky and cumbersome to use. Recipe importing was difficult and extracting accurate grocery lists was unreliable. We drafted plenty of solutions (both design and technical), but they were very complicated and time-intensive to implement. So we it put it down for a while.</p><p>Every year or so since then, we&#8217;d pick it up again. We&#8217;d tinker, try it, pause, and try it again. Our idea of what &#8220;it&#8221; even was evolved and then evolved some more. For a while, it seemed that the juice of our little side project just wasn&#8217;t worth the squeeze.</p><h2>An app for people who love to cook</h2><p>A lot has changed since we first started talking about this idea. Covid brought us back home to be closer to our families in New York. AI is eating the world and dominating all digital product discourse. We finally got a pretty decent MVP working for ourselves earlier this year. And <a href="https://laidofflunch.com/p/laid-off">as of May</a>, I unexpectedly have a lot of time on my hands&#8230;</p><p>So, we&#8217;re building the app we want to exist. An app for people who love to cook. An app that will organize your food life with the same care and consideration that you put into the actual act of cooking. An app that will help you plan, and shop, and experiment, and tweak, and track, and expand your cooking repertoire. And, if I do my job right, an app that will be beautifully crafted and a pleasure to use.</p><p>If you&#8217;re interested in checking out our private beta or talking to me about your food life, I would love to chat with you.</p><h2>Lunch</h2><p>This week for lunch, I made my favorite summer meal: &#8220;caprese salad&#8221; pasta. </p><p>See you next week!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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><item><title><![CDATA[The idea]]></title><description><![CDATA[Is &#8220;the idea&#8221; the most interesting part of this story? Or the least?]]></description><link>https://laidofflunch.com/p/the-idea</link><guid isPermaLink="false">https://laidofflunch.com/p/the-idea</guid><dc:creator><![CDATA[Jules Forrest]]></dc:creator><pubDate>Wed, 26 Aug 2026 15:22:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3f0e3903-ede8-49f9-9a0e-274d4d4c6e64_2400x1260.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>&#8220;Then one Sunday morning, before winter break, Abby&#8217;s boyfriend, Whitney, materialized at their kitchen table, reading something called &#8216;Of Grammatology&#8217;. When Madeleine asked what the book was about, she was given to understand by Whitney that the idea of a book being &#8216;about&#8217; something was exactly what this book was against, and that, if it was &#8216;about&#8217; anything, then it was about the need to stop thinking of books as being about things.&#8221;</p><p>&#8213; <strong>Jeffrey Eugenides, The Marriage Plot</strong></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LJoS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LJoS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LJoS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LJoS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LJoS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LJoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5232416,&quot;alt&quot;:null,&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;:&quot;https://laidofflunch.com/i/212766533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LJoS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LJoS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LJoS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LJoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf6767e4-c057-4e1d-8fa5-7385636491fd_4284x5712.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>Has this ever happened to you?</p><p>You check your messages and see that a long-lost friend or acquaintance has reached out. They have an exciting new idea for a company, an app or a business and they just need a <em>liiiiiittle </em>bit of specialized, unpaid labor from you to get started. They can&#8217;t pay you (yet!) but their idea is a surefire success. They will owe you <em>big time</em>, and as soon as this thing takes off, they will be riding off into the sunset with untold riches and they promise to carve off a slice for you.</p><p>Sitting at your desk, working your full-time job, you shake your head and laugh to yourself. &#8220;Congrats on the idea!&#8221;</p><h2>Talk is cheap</h2><p>I&#8217;ve always been a bit bored by the idea of ideas. They&#8217;re quick and easy to come by. Of course, I don&#8217;t believe in stealing, plagiarism or ripping anyone off. But people spend a lot of time debating idea credit and origin when having a truly original idea is very, very rare and not especially valuable in and of itself.</p><p>I&#8217;m much more interested in execution. What was your process? What tools did you use? Given these constraints, how did you actually break down the problem and solve it? How many at-bats did it take? What did you try, what did you learn, how did you reframe? What did attempts 3, 4, 5, and 6 look like? It&#8217;s why I liked being part of the design systems community so much: it wasn&#8217;t competitive and no one was precious about ideas. We were all trying to build roughly the same thing, just in different places.</p><p>So I&#8217;m sort of dreading the next phase of this project, which Very Much Involves Talking About &#8220;The Idea.&#8221; And to be fair, I think of it more as &#8220;Several Small Ideas Woven Together Well.&#8221; It does feel like important context... what we&#8217;re working on and why we&#8217;re passionate about it (we are passionate about it!). Plus, talking about the idea will also set the stage for all of the stuff I&#8217;m actually excited to share, which is Way Less About &#8220;The Idea&#8221; and Way More About All of The Fun New Ways to Build.</p><p>So where is this dread coming from? Why do I feel so small when I talk about it? I know I haven&#8217;t nailed the marketing pitch yet, the zingy one liner that sums the whole thing up neatly and cleanly. And the more I work on it, the thornier and more complex everything feels. As I uncover more complexity, the elegant solution I&#8217;m envisioning gets further and further away in my mind. It&#8217;s not good yet! It has the potential to be good, but it&#8217;s not good yet.</p><h2>More binaries</h2><p>Over the past couple of months, when I&#8217;ve shared what we&#8217;re working on to friends and family, I usually get one of two reactions:</p><ol><li><p>Wow! That&#8217;s amazing! I can&#8217;t believe nobody has thought of that before! That sounds so useful!</p></li><li><p>Oh. Cool! Good for you. Is that ... a thing?</p></li></ol><p>Both of these reactions make me uncomfortable.</p><p>The first one makes me uncomfortable because &#8220;The Idea&#8221; is not a new category of product. We didn&#8217;t think we had discovered a new problem that nobody else had ever noticed. We just had a pain point in our own lives, found the available options lacking, and started imagining a version that would work better for us. We have a specific perspective about why it&#8217;s hard and we think there is room to try to make something better.</p><p>The second one makes me uncomfortable because I spent so many years designing for 150+ million users at a major tech company. At that scale, the goal is to appeal to as many people as possible. So when people don&#8217;t immediately get it, doubt creeps in. Is this really a meaningful problem? Is our solution too niche? Too complicated? Have I explained it badly? Am I totally off-base?</p><p>This binary I&#8217;ve created for myself makes the stakes of simply talking about &#8220;The Idea&#8221; artificially high. If I describe it with any confidence, its feels like I&#8217;m taking credit for the whole category, because awareness of that category is low. If someone&#8217;s reaction makes me feel doubt, then I&#8217;m undermining my belief in the indie path that got me excited to pursue this project in the first place.</p><h2>The algorithm is not my friend</h2><p>In reality, we&#8217;ve actually been working on this idea on and off since 2021. Just as a little hobby app for ourselves, because we weren&#8217;t satisfied with anything else on the market. Until recently, it wasn&#8217;t even possible to create an account because we were the only ones using it. But now that I&#8217;ve turned it into my full-time job, I have a lot more time to dedicate to it. And my algorithm has caught up with me.</p><p>Many, many times over the last few months, I&#8217;ve gotten excited about a feature I&#8217;m building, only to be served an ad for an existing app that does the exact same thing. On the one hand: yay! The market and demand in this space is bigger than I thought. On the other, bigger, louder, hand: Is there still room for us in that space? If there are already so many players here, what&#8217;s the point?</p><p>In general, my mindset is constantly ping-ponging between &#8220;we can differentiate with better design!&#8221; and &#8220;badly designed products win all the time.&#8221; </p><h2>Mindset practice</h2><p>Mindset-wise, a few things are rising to the top for me this week:</p><ul><li><p>Ideas are fine, but truly great execution is still hard and still takes time</p></li><li><p>The first version is just the first version</p></li><li><p>Similar things can coexist. Not everything needs to be for everyone</p></li><li><p>There is no single definition of &#8220;winning&#8221; a category or being the &#8220;best&#8221; product</p></li><li><p>It&#8217;s okay to be new at things, or out of practice at old things</p></li><li><p>Good design doesn&#8217;t speak for itself</p></li></ul><p>That last one gives me deja vu. As a junior designer, I treated stakeholder questions as evidence that the design wasn&#8217;t good enough yet. I assumed there was a single &#8220;right&#8221; solution that, if uncovered, would sell itself to the project approver. Eventually, I learned that packaging the work was a crucial part of the job: that I needed to position my recommendations against the problem and tradeoffs with a compelling narrative to push it forward.</p><p>Somehow, now that I&#8217;m working on my own thing, I entirely forgot that lesson.</p><h2>Lunch</h2><p>This week for lunch, I tried to recreate my favorite brunch from Zazie in San Francisco: a mushroom / spinach scramble with toast, roasted potatoes, avocado and habanero hot sauce.</p><p>See you next week!</p>]]></content:encoded></item><item><title><![CDATA[Severance as seed]]></title><description><![CDATA[Reflections on the strange past couple of years working in Big Tech and what I&#8217;m up to next]]></description><link>https://laidofflunch.com/p/severance-as-seed</link><guid isPermaLink="false">https://laidofflunch.com/p/severance-as-seed</guid><dc:creator><![CDATA[Jules Forrest]]></dc:creator><pubDate>Wed, 19 Aug 2026 12:02:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/67f608f3-e982-4dc1-bf5f-8890c3e173a5_2400x1260.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IQdP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IQdP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IQdP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IQdP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IQdP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IQdP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg" width="728" height="729.5294117647059" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:4293,&quot;width&quot;:4284,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:2044767,&quot;alt&quot;:null,&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;:&quot;https://laidofflunch.substack.com/i/211787597?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01231ffd-ea51-46c6-8083-60c4adc4a981_4284x4293.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IQdP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IQdP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IQdP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IQdP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5dee84e-cdd2-49f4-a0f3-50eee5db06d2_4284x4293.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>Working at a large tech company while AI crashed onto the scene was a strange experience. For the last couple of years, the drumbeat from the top was extremely clear:</p><ul><li><p>AI will fundamentally change the business</p></li><li><p>AI will fundamentally change outcomes for customers</p></li><li><p>AI will fundamentally change how we deliver products that enable those outcomes for customers</p></li><li><p>We should all be using AI, all the time, for everything, to increase velocity</p></li><li><p>And on and on and on...</p></li></ul><p>None of this is terribly surprising. But the funny part, to me, was the huge gap between the stated mandate and operational reality. Transformation is easy to declare, but tricky to execute. The legal, security, finance and procurement departments all needed time to adapt. While they sorted out the logistics, people debated the merit and viability of using AI to transform their work. An adage emerged: &#8220;You won&#8217;t be replaced by AI. But you will be replaced by someone who knows how to use AI.&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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>As a design director leading an org of 17, I took this seriously. I didn&#8217;t want anyone on my teams to get replaced or left behind (<em>Jules from the future side note: hahahaha)</em>. I was responsible for encouraging my org to increase their exposure to AI tooling and to model what experimentation and exploration could look like. I wanted to jump straight in to start building my own experience... but we didn&#8217;t yet have access.</p><h2>Self-study</h2><p>While I waited for the company to catch up, I decided to make headway on my own time. I&#8217;d long straddled the line between front-end development and product design, so it was fun for me to tinker on personal projects on nights and weekends with the extra set of hands AI provided. I built a tool to track my running progress, extracting Strava data and rearranging it into the exact configuration I wanted to see. I made Figma plugins to automate tedious aspects of personal design work I was playing around with. And then, during the 2025 winter break, I finally opened Claude Code and had my &#8220;oh, shit&#8221; moment.</p><p>It felt like a switch flipped.</p><p>Using a side project as a testing ground, I started building features that would have ordinarily required technical skill outside my grasp. After a couple of days, my ability to create increased by what seemed like a hundredfold. I was having a ton of fun, feeling both incredibly energized and incredibly rusty, deep in the weeds on product design details. I could squint at the future and see just how drastically these tools might change how designers approach their practice.</p><p>Having felt these possibilities, I dreaded going back to work in the new year, sitting in the same old meetings and working at the same old pace.</p><h2>&#8220;The design process is dead&#8221;</h2><p>In March, design leader <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jenny Wen&quot;,&quot;id&quot;:17820294,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9f0baf0-6240-4de5-8e50-9c51db983e4b_2048x1365.jpeg&quot;,&quot;uuid&quot;:&quot;3f2d6259-d562-4113-a2ea-56e199f082c1&quot;}" data-component-name="MentionToDOM"></span> went on <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Lenny Rachitsky&quot;,&quot;id&quot;:1849774,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/afba5161-65bb-4d99-8d6b-cce660917fa1_1540x1540.png&quot;,&quot;uuid&quot;:&quot;20d1afae-f66d-4abf-b117-9ff1904839ec&quot;}" data-component-name="MentionToDOM"></span>&#8217;s podcast to talk about her work at Anthropic. It&#8217;s a <a href="https://youtu.be/eh8bcBIAAFo?si=oGl_8umfhlJX5Ruf">great episode</a> and I recommend listening to the whole thing because Jenny goes into a lot of detail on how she sees the design process changing (or dying) with AI. But the part that stuck with me was her take on returning to IC work: that this particular moment calls for getting your hands dirty, picking up new hard skills, and building empathy for what it takes to evolve into an AI-native designer in this new era.</p><p>Her episode came up a lot in our design leadership meetings. We talked about the implications her conclusions might have for our team and how we, as leaders, could get closer to the work. Privately, I thought about my own experience during winter break and wondered if I should consider getting back on the IC track myself.</p><h2>Sabbatical-ing</h2><p>As it turns out, I didn&#8217;t have to wrestle with that question for long because I got laid off in May. The layoffs were bittersweet: after 9 years at one company, I was feeling burned out and ready for a break. Now, because of an &#8220;unbelieveable-to-everyone-in-my-life-who-doesn&#8217;t-work-in-tech&#8221; severance policy, I have the time and space to actually take a beat. While I&#8217;m planning to do. For at least the next six months.</p><p>There&#8217;s a lot I want to do with this time off. I want to travel, and become fluent in Portuguese, and run a marathon, and clicker train my cats, and relearn how to breathe (literally). I want to cook more and figure out how to feed myself in a sustainable and healthy way. I want to, for the rest of this sabbatical, never have a <a href="https://saddesklunch.com/">sad desk lunch</a>. </p><p>And yet...</p><p>My severance check feels like a mini seed round burning a hole in my pocket. I&#8217;m curious, <em>incredibly curious</em>, whether all of the changes of this era might make it possible for me to work on my own stuff, winter break style, for the foreseeable future.</p><h2>The Anti-Founder Founder Club</h2><p>I&#8217;m lucky to have a few extremely talented founder friends, and I really admire their grit, vision and tenacity. But personally, I&#8217;ve never been attracted to entrepreneurship. Building your own product sounds fun, but raising money or starting a company to do it has never appealed to me.</p><p>So it&#8217;s very surprising to have arrived at the conclusion that building my own product is the natural next step. I&#8217;m hoping there&#8217;s room for a new kind of company: a tech small business that thrives with a team of 1 or 2. A sustainable, indie app where scaling to millions of users is not the goal.</p><p>It&#8217;s been hard and humbling already, but I can&#8217;t think of a better way to get back to being close to the work. In this next chapter, I&#8217;ll be closer to the work than I&#8217;ve ever been: designing everything from product flows to branding to emails, providing customer support and figuring out how to actually build a business. There&#8217;s are still a lot of blanks to fill in and I&#8217;m incredibly excited to be in Learning Mode rather than Founder Mode.</p><p>I plan to document that journey, once a week or so, for at least the next six months. While I&#8217;m working, I&#8217;m also going to hold myself accountable to my sabbatical cooking goal by sharing something I&#8217;ve made for lunch with each post. Maybe that&#8217;s an odd combo, but it makes perfect sense to me.</p><h2>Holding many truths at once</h2><p>On a personal note, I&#8217;m working on my ability to hold opposing truths at the same time. So here goes:</p><p>I&#8217;m happy I was laid off, <em>and</em> I&#8217;m still grieving the wonderful work community I was once a part of.</p><p>I feel incredibly grateful and privileged to have the resources to pursue this path, <em>and </em>I&#8217;m worried I&#8217;ll regret spending my time and severance this way if I&#8217;m not able to find a job if needed next year.</p><p>It feels amazing to have so much agency on how to work and what to work on, <em>and </em>I already miss working and bouncing ideas around with a team.</p><p>I&#8217;m spending more time building than I ever have, <em>and</em> I feel like I&#8217;m getting worse at the actual design part.</p><p>I&#8217;m nervous I won&#8217;t be able to pull it off, <em>and</em> I think I&#8217;ll regret it forever if I don&#8217;t try.</p><h2>Lunch</h2><p>This week for lunch, I tried to recreate the excellent Turkey, Bacon and Avocado sandwich from <a href="https://www.google.com/maps?sca_esv=19d038241e14d62e&amp;output=search&amp;q=heirloom+market+at+comstock+ferre&amp;source=lnms&amp;fbs=ABfTbFVyMZGZf1hfvX9uKjN_-G8cqCQj_06QnZs315LoFmPf5dqyroBXl6jj_7yDLTa0R55LXEDymdn83ImpQLAG7wyXLHqXPsolQWbl_mfoJbJet6GSzt9ae7Z373Br0NpjVgmSsyCe5LV3b6Od8Ta9FE01YW9QP08AhvxIsctlTYAPw744oIZDAWwemhlDNBTkN7798TPQaavL7BGtHh87PYlgSFFZSQ&amp;entry=mc&amp;ved=1t:200715&amp;ictx=111">Heirloom Market at Comstock Ferre</a> in Wethersfield, Connecticut.</p><p>See you next week!</p>]]></content:encoded></item><item><title><![CDATA[Laid off]]></title><description><![CDATA[Friday was my last official day at Credit Karma, two weeks shy of my ninth work anniversary.]]></description><link>https://laidofflunch.com/p/laid-off</link><guid isPermaLink="false">https://laidofflunch.com/p/laid-off</guid><dc:creator><![CDATA[Jules Forrest]]></dc:creator><pubDate>Sun, 02 Aug 2026 21:42:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8K6F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8K6F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8K6F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8K6F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8K6F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8K6F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8K6F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg&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;:2730316,&quot;alt&quot;:null,&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;:&quot;https://laidofflunch.substack.com/i/209549903?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8K6F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8K6F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8K6F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8K6F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ec56b8f-ca1b-43ab-80a3-84b53a19eb61_3617x3616.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><span>Friday was my last official day at Credit Karma, two weeks shy of my ninth work anniversary. Back in May, I was laid off along with 3,000 others during Intuit's 17% reduction in force.</span><br><br><span>9 years is at least twice as long as I could have ever imagined staying at one job, but the thing that kept me there year after year was the community of people who joined, and more often than not, stayed. In what feels like a rarity in tech, I worked with many of my direct teammates for 5, 6, 7, 8+ years. It was an immense privilege to have the time and space to develop that kind of trust and shorthand with people. To be able to learn and grow together. To see our skills expand and flex as a team unit. To get multiple at-bats for our gnarliest problems.</span><br><br><span>Long tenures were the norm for a reason. Credit Karma really took care of its employees. During Covid, Credit Karma chose temporary paycuts and retraining those in non-essential roles instead of layoffs. Employee retention was strongly encouraged through internal mobility. Many people I worked with chose and were supported through transitions into entirely new roles or disciplines. It was not unusual for someone to experiment with their path, moving from the IC track to the management track and back again.</span><br><br><span>While I feel very grateful that I was able to experience it for as long as I did, I acutely feel the loss of the Credit Karma community and will be grieving it for some time as our paths now inevitably diverge. I'm telling myself that we'll all get the opportunity to work somewhere together again in the future. That being said, I know some kickass folks looking for their next role and I'd be thrilled to connect you.</span><br><br><span>As for me... I am incredibly excited and a little nervous to share what I'm up to next. More to come on that soon!</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laidofflunch.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 Laid Off Lunch! 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>