<?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[Vibe100]]></title><description><![CDATA[Learning AI One Mini-Project at a Time]]></description><link>https://www.vibe100.ai</link><image><url>https://substackcdn.com/image/fetch/$s_!Scuv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe66a8d74-38e9-4ab8-b1c3-aa63592675f4_1024x1024.png</url><title>Vibe100</title><link>https://www.vibe100.ai</link></image><generator>Substack</generator><lastBuildDate>Sat, 25 Apr 2026 13:23:24 GMT</lastBuildDate><atom:link href="https://www.vibe100.ai/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Vibe100]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[vibe100@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[vibe100@substack.com]]></itunes:email><itunes:name><![CDATA[Vibe100]]></itunes:name></itunes:owner><itunes:author><![CDATA[Vibe100]]></itunes:author><googleplay:owner><![CDATA[vibe100@substack.com]]></googleplay:owner><googleplay:email><![CDATA[vibe100@substack.com]]></googleplay:email><googleplay:author><![CDATA[Vibe100]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[March Maddle]]></title><description><![CDATA[Background]]></description><link>https://www.vibe100.ai/p/march-maddle</link><guid isPermaLink="false">https://www.vibe100.ai/p/march-maddle</guid><dc:creator><![CDATA[Vibe100]]></dc:creator><pubDate>Wed, 25 Mar 2026 21:00:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vEDF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.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_!vEDF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vEDF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 424w, https://substackcdn.com/image/fetch/$s_!vEDF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 848w, https://substackcdn.com/image/fetch/$s_!vEDF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 1272w, https://substackcdn.com/image/fetch/$s_!vEDF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vEDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png" width="1456" height="1206" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1206,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vEDF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 424w, https://substackcdn.com/image/fetch/$s_!vEDF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 848w, https://substackcdn.com/image/fetch/$s_!vEDF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 1272w, https://substackcdn.com/image/fetch/$s_!vEDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eba3158-36a7-45e0-8a1c-dcd1d640b3b5_1600x1325.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Background</strong></h1><p>My previous project was NBA-dle, and while I was building it, I saw a bigger idea that had logins, more puzzles, historical play, etc.  I spent weeks on this, overengineered, and never launched.  Then I had a newborn child and a couple freelancing contracts so I had no free time and this project went into abeyance.  But here we go again!  I figured why not start where we left off.</p><h1><strong>What I Built</strong></h1><p><a href="http://marchmaddle.com">MarchMaddle.com</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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>It&#8217;s NBA-dle but with a March Madness twist and a few upgrades:</p><ul><li><p><strong>Limited Time</strong>: I&#8217;m only going to maintain this through the end of March Madness (instead of indefinitely like NBA-dle).</p></li><li><p><strong>Users Accounts</strong>: you can sign in with Gmail and create a username which tracks your usage.  This also gives the following bonuses:</p><ul><li><p><strong>Streaks</strong>: if you get more than one game in a row, your game score will be higher.</p></li><li><p><strong>Standings</strong>: you&#8217;ll be entered into global competition to see how your score for the season stacks up with everybody else.</p></li><li><p><strong>Historical Games: </strong>you can play historical games (not just that day&#8217;s game).</p></li></ul></li><li><p><strong>Game Scores</strong>: Points are awarded for streaks, solving quickly, and playing the day a puzzle drops.</p></li><li><p><strong>Refactored Backend: </strong>I did a lot to rewrite the backend so I can quickly add new puzzle types in different verticals.</p></li></ul><h1><strong>What I Learned</strong></h1><h2><strong>2026 Agents Can Do What 2025 Agents Couldn&#8217;t</strong></h2><p>Agents are improving in lots of different dimensions, but what&#8217;s most exciting is not when they can do things faster or longer, but when they can do things they previously couldn&#8217;t.  I had two examples in this project.</p><ul><li><p><strong>Framework Refactor</strong>: NBA-dle was written in a Javascript framework called Vite but I prefer Next.  I  tried to do a Next migration in 2025 but it was too painful with agents, and doing it myself would have taken hours to get right, so I abandoned it.  For MarchMaddle, Claude Code was able to knock this out in &lt;10 minutes.</p></li><li><p><strong>Data Collection</strong>: when I made NBA-dle, I had to do a lot of manual scraping and data pipelining work myself that was tedious and took hours.  When building MarchMaddle, I was able to do all the scraping, storage, and database with a few prompts.</p></li></ul><p>In all. Claude Code saved me at least 4-6 hours of work compared to what this would have taken last year.</p><h2><strong>Agents Can&#8217;t Solve All Problems</strong></h2><p>If I&#8217;d fully trusted the agents to build this product, I would have never launched.  I ran into a bug where the user creation and authentication logic didn&#8217;t work right, and neither Claude nor Codex could figure it out.  They kept spinning in circles and repeatedly trying the same solutions with no resolution.  The bug was related to a flawed AuthContext component and I decided we should simply rip that out and rebuild without it.  Claude initially refused because &#8220;that would take days of work and we&#8217;re 5 minutes away from solving this&#8221; but I told it to go ahead and do the rewrite.  Instead of days, it took about 5 minutes and after it was done, the user login flow worked as expected.</p><p>This was the first time I&#8217;ve had agents hit a wall like this in months and I&#8217;m surprised that it couldn&#8217;t resolve on its own.  Maybe there&#8217;s a creativity or novel problem-solving aptitude these things still lack?  Whatever the reason, it reminded me of <a href="http://youtube.com/watch?t=170&amp;v=XbSJpfu1EHA&amp;feature=youtu.be">how Kirk defeated Khan through experience and not intelligence</a>.</p><h2><strong>Skills Are Cool and Going to be Huge</strong></h2><p>Garry Tan (the current head of YC and technically my former boss) released a series of skills related to building an early stage product called gstack. One of the skills is called office-hours, and I used it a lot to refine my thinking when creating this MVP.  Most of my Claude Code usage is me pushing work onto the agents, but the office-hours skill reverses this and has the agent push me on my thinking, what I&#8217;m trying to do, my goals, etc.</p><p>Skills are exploding in popularity.  As of writing this post, <a href="https://github.com/garrytan/gstack">gstack</a> has 47K stars and <a href="https://github.com/obra/superpowers">superpowers</a> (a repo of technical-focused skills) has 112K stars.  In the future, instead of releasing eBooks or seminars, I hope elite practitioners condense their learnings into a set of skills that one could directly inject into the project like <a href="https://www.youtube.com/watch?v=6vMO3XmNXe4">Neo learning kung fu</a> or <a href="https://www.youtube.com/watch?v=6AOpomu9V6Q">Trinity learning to fly a helicopter</a>. I&#8217;ll write a longer post but I could see this being for company management what open source was for software.</p><h2><strong>You Have 3 Seconds to Hook a User</strong></h2><p>When I shared this product to get feedback, multiple friends said &#8220;oh cool man!  I&#8217;ll definitely check this out!&#8221; and they clearly never used it.  I&#8217;d follow up and ask what happened and most of the time the response was &#8220;I didn&#8217;t know how to use it&#8221; despite the fact that there&#8217;s text that says &#8220;Enter your guess here&#8230;&#8221; and a modal that explains how to play.</p><p>Do I have shitty friends?  Yes.  But the larger point is that the dopamine economy is insanely efficient.  If you&#8217;re building something for consumers and they don&#8217;t get a dopamine hit or can see how they&#8217;ll get a dopamine hit within 3 seconds, you&#8217;re screwed.</p><h2><strong>Distribution Is the Hardest Part</strong></h2><p>In the military, there&#8217;s a saying &#8220;amateurs talk strategy, veterans talk logistics.&#8221;  In startups, it&#8217;s &#8220;first-time founders focus on product, repeat founders focus on distribution.&#8221;  In the GenAI world where it&#8217;s trivially easy to iterate and improve products, actually getting a compelling product into somebody&#8217;s hands, having them use it, and keeping them exposed is still very hard and something I&#8217;m not good at.  The reality is that an awesome product that nobody sees will be less successful than a mediocre product in front of lots of people.  In fact, an excellent product that nobody can see is effectively identical to having no product at all.</p><h1><strong>What&#8217;s Next</strong></h1><p>My priority for my next project is to research distribution <em>before</em> building the product. Because I rewrote the backend of this product to flexibly handle new puzzle types, I can pivot to whatever vertical has the most promising distribution angle.  I&#8217;m going to reach out to different people to see if they&#8217;d be interested in collaborating, and if they are, tweak the product to fit their niche!  If you don&#8217;t like this format but would like other verticals, let me know!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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[Here We Go Again]]></title><description><![CDATA[A CovId Comp & Blog Relaunch]]></description><link>https://www.vibe100.ai/p/here-we-go-again</link><guid isPermaLink="false">https://www.vibe100.ai/p/here-we-go-again</guid><dc:creator><![CDATA[Vibe100]]></dc:creator><pubDate>Fri, 20 Feb 2026 20:19:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!emh2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.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_!emh2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!emh2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 424w, https://substackcdn.com/image/fetch/$s_!emh2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 848w, https://substackcdn.com/image/fetch/$s_!emh2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 1272w, https://substackcdn.com/image/fetch/$s_!emh2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!emh2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png" width="498" height="323" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:323,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!emh2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 424w, https://substackcdn.com/image/fetch/$s_!emh2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 848w, https://substackcdn.com/image/fetch/$s_!emh2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 1272w, https://substackcdn.com/image/fetch/$s_!emh2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f61dbd1-c701-44d8-997b-d6e6fdde4e5f_498x323.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>CovId Redux</h1><p>The last time I felt this way was March 6, 2020. [1]</p><p>I was at my buddy&#8217;s bachelor party in New Orleans, and for the previous two months, I&#8217;d been anxiously watching the spread of CovId.  We&#8217;d stockpiled supplies. I wore a mask.  I almost cancelled at the last minute, and although I ended up flying out, I was on edge the whole flight.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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>And yet &#8230; everything seemed fine.  Looking around, life seemed normal and nobody was concerned, including multiple friends who were doctors.  I remember thinking to myself I&#8217;m being neurotic and paranoid, and this CovId thing is probably an Internet panic that will peter out.</p><p>One week later the country was locked down.</p><p>I&#8217;m starting to feel that same dissonance again.  On the one hand, most of the time everything looks and feels normal.  My day-to-day life is very similar to how it was a year ago.  That is except for my day job.</p><p>I&#8217;m a software engineer &#8230; who no longer writes code.  I now chat with my computer and it does my job better than I can.  And increasingly, I don&#8217;t even sit at my computer when I code.  This past weekend I edited a major code change by texting my AI bot in between games of pickleball.</p><p>Like CovId, my Twitter feed is freaking out as AI-written code increases exponentially.</p><p>Like CovId, this change will likely transition from being an internet meme to impacting (and disrupting) the lives of normal people.</p><p>Like Covid, I&#8217;m genuinely concerned that the world isn&#8217;t prepared for what&#8217;s coming.</p><p>As I see this disconnect between &#8220;normal&#8221; day-to-day life and the crazy stuff happening on my phone, I keep saying to myself &#8220;here we go again.&#8221;</p><h1>Blog Relaunch</h1><p>As I&#8217;ve watched the AI agent revolution take place and incorporated these tools into my life, I&#8217;ve noticed a couple changes.  First, the capabilities of these things are noticeably improving every month, even every week.  I didn&#8217;t trust these things for major code changes as late as August 2025 but now they&#8217;re able to build whole apps from scratch.  Just last week, while I was putting gas in my car, I started texting my AI agent to code up a prototype for an app I&#8217;ve been wanting to build for years.  By the time my tank was filled, it sent me a working codebase.  I made more progress in those couple of minutes than in the previous years combined.</p><p>Second, as my skills and know-how have increased, people are reaching out to me with questions and advice on a more frequent basis.  Nobody was asking for my thoughts as of last year, but now I&#8217;m fielding requests from one or two new people each week.  And in each of these conversations, there&#8217;s a consistent theme: &#8220;This AI stuff is cool but how do I use it?&#8221;  My response is <strong>&#8220;ask the AI, do what it says, and repeat this until your life gets better&#8221;</strong>, but that doesn&#8217;t seem to be enough.  Most people are still too overwhelmed or intimidated to give them a try.</p><p>Except &#8230; when I <em>show them </em>concrete use cases.  Then things seem to click.  For example, most of my friends don&#8217;t code and never will, but they all want better to-do lists, email management, expense tracking, tax prep, etc.  All of these are great AI use cases!  Instead of doing these on a case-by-case basis, I&#8217;m going to write them down so anybody can reference and integrate to reduce the tedium and BS in their lives.</p><p>In addition, as I add more use cases, I hope it gives you ideas and guidance on how to use these tools in your life.  While this can be fun and empowering, it also may be necessary.  AI agents have transformed software over the last year, and I expect they will take over your industry soon.  That process may already be under way.  If that&#8217;s the case, you can either a) embrace these tools and get ahead of the curve or b) stick your head in the sand and hope for the best.  The choice is yours.</p><p>One last thing.  I originally had the goal to &#8220;Vibe100&#8221;, aka vibe code 100 apps, back in June 2025, but I didn&#8217;t prioritize it.  Since then, things have changed and now I think its time has come.</p><p>Let&#8217;s see if we can get to 100 apps.</p><p>Here we go again.</p><p>[1] I&#8217;m not the only one making this observation.  Twitter is replete with people making the same CovId-GenAI comparison, with <a href="https://x.com/mattshumer_/status/2021256989876109403">this Twitter post</a> being the most viral and prominent.  You should read it if you have time, I agree with pretty much everything in it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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[Deprecate by Default]]></title><description><![CDATA[What happens when making an app is like posting to TikTok?]]></description><link>https://www.vibe100.ai/p/deprecate-by-default</link><guid isPermaLink="false">https://www.vibe100.ai/p/deprecate-by-default</guid><dc:creator><![CDATA[Vibe100]]></dc:creator><pubDate>Fri, 08 Aug 2025 21:15:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tghI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>Hey, my content output has sucked, but in my defense and I had a son earlier this month and started two consulting contracts, so I&#8217;m busy!  I have a few more posts in the pipeline and I&#8217;ll be pushing those out this month.  Also I <a href="https://x.com/maxschorer">reactivated my Twitter</a> so if you can give me a follow, I&#8217;d appreciate it.</strong></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_!tghI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tghI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tghI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tghI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tghI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tghI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tghI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tghI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tghI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tghI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd849bc42-9b15-463c-a682-e3eabaadea68_500x500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>My daughter loves to take photos. Not really of anything in particular, just whatever is in front of her. She recently got a hold of my phone and 2 minutes later this is what my camera roll looked like:</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YXg7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YXg7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YXg7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YXg7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YXg7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YXg7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg" width="268" height="580.5054151624548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:554,&quot;resizeWidth&quot;:268,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!YXg7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YXg7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YXg7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YXg7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c36266-9461-4be4-b107-eca0b5ac343e_554x1200.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>While watching one such photo shoot, my mom commented that photos used to be precious. Both the film itself and the cost to develop were not cheap, and it could take days to get them back. But now they're so cheap and easy toddlers can do it.</p><p>This was an immediate effect of the smartphone, and in addition to precious memories, and new use case for photos was unlocked: communication. Snapchat was quick to realize this, built an app around it, and made deletion the default behavior. Thus Snapchat pioneered "delete by default."</p><p>Something similar is happening to software code. A friend recently had a dude's weekend, and after a couple adult beverages, they decided to vibe code an app for fun despite the fact that none of them are technical. While that app will likely never enter production or be used again, they still had a good time.</p><p>Code, like photos, used to be difficult and expensive to make. And now with AI tools like Lovable, Bolt, Replit, etc, code is like photos: cheap and easy. Most code going forward will have the same value as my daughter's pictures of the ceiling. Other SWEs can dismiss this as "throwaway code", but "deprecate by default" is the new norm.</p><p>Which leaves me wondering ... what happens next? When photos became "delete by default", people used them to talk. When code becomes "deprecate by default", what new use cases will there be? For example, is there going to be an Instagram or Twitter feed that's just vibe coded apps? Will you go to TikTok one day and it'll be different app ideas that people have tested out? Or maybe the only change is that people will make silly web apps at home with their friends?</p><p>I don't know the answer but whoever capitalizes on this behavior will eventually have 3 commas.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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[#2: NBA-dle]]></title><description><![CDATA[Background]]></description><link>https://www.vibe100.ai/p/2-nba-dle</link><guid isPermaLink="false">https://www.vibe100.ai/p/2-nba-dle</guid><dc:creator><![CDATA[Vibe100]]></dc:creator><pubDate>Fri, 13 Jun 2025 14:09:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FnnY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.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_!FnnY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FnnY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 424w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 848w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1272w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FnnY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png" width="540" height="369.7664835164835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aba244cf-55e6-42e2-a13d-799103703969_2100x1438.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:997,&quot;width&quot;:1456,&quot;resizeWidth&quot;:540,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FnnY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 424w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 848w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1272w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Background</h1><p>I&#8217;ve tried to build the global voting/ranking app multiple times.  Each try has ended in failure, but after one of these failures, my friend Shan gave me a different idea.  He regularly played <a href="https://spotle.io/">Spotle</a>, a Wordle-like game where you guess the musical artist of the day, and he wondered if I could develop something similar for the NBA. This idea was much smaller than the voting app, so I figured &#8220;let&#8217;s see if Bolt can build this on the first try.&#8221;  That didn&#8217;t work (more on that later), but I did deploy the app and gained several valuable insights along the way.</p><h1>What I Built</h1><p><a href="http://nba-dle.com">NBA-dle.com</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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>It&#8217;s similar to Wordle but each day has a new NBA player instead of a word. You start by guessing a player and seeing how their attributes compare to the day&#8217;s player. If any attributes match, they&#8217;ll be green. If they&#8217;re close, they&#8217;ll be yellow. Otherwise they&#8217;ll be gray.  For example, my first guess today was Jalen Williams.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I6Oj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I6Oj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 424w, https://substackcdn.com/image/fetch/$s_!I6Oj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 848w, https://substackcdn.com/image/fetch/$s_!I6Oj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!I6Oj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I6Oj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png" width="1456" height="1297" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1297,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201205,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://vibe100.substack.com/i/165802440?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.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_!I6Oj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 424w, https://substackcdn.com/image/fetch/$s_!I6Oj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 848w, https://substackcdn.com/image/fetch/$s_!I6Oj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!I6Oj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b22134-13b0-4834-99b1-a44175d3dc2a_1684x1500.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With this guess, I learned that the target player was</p><p>1) not a shooting guard</p><p>2) American</p><p>3) not in the Northwest division</p><p>4) in the league 3 seasons</p><p>5) Had an NBA 2k rating just above 89</p><p>I used this info to make the next guess and steadily got closer until I got the target player in 5 tries.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FnnY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FnnY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 424w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 848w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1272w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FnnY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png" width="1456" height="997" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aba244cf-55e6-42e2-a13d-799103703969_2100x1438.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:997,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:509706,&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://vibe100.substack.com/i/165802440?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.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_!FnnY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 424w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 848w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1272w, https://substackcdn.com/image/fetch/$s_!FnnY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faba244cf-55e6-42e2-a13d-799103703969_2100x1438.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you guess within 8 attempts, a victory modal will pop up with a button that makes it easy to share with your friends.  A video of my game from June 12th is below.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;19e41fc8-4872-48c6-ac70-7bc7c97079d5&quot;,&quot;duration&quot;:null}"></div><p>If you&#8217;re an NBA-hole or know ball, see if you can guess <a href="https://www.nba-dle.com">today&#8217;s player</a>! I added a chat window in the bottom right to collect feedback, so if there&#8217;s anything you don&#8217;t like, please message me.</p><p>If you have fun, please share it with your friends. And if you guess right, be sure to have your sound on &#8230;</p><h1>What I Learned</h1><h2>Skill Issue is No Longer an Excuse</h2><p>It took me a while to get the UI how I wanted (more on that below), but after lots of iterations, I hit what felt like an insurmountable block: CSS animations.</p><p>If you watch the above video, you can see that each attribute flips over in sequence.  This gives a little suspense and looks cleaner and more polished than if I just rendered the attributes.  However to write this required using CSS animations, which I had no idea how to create.  I figured this would be easy for Cursor or ChatGPT to code, but for whatever reason, they couldn&#8217;t get it working.  I spent a lot of time explaining what I was seeing and asking for fixes and both were completely unhelpful. I was pretty demoralized, and if it was pre-2023, I would have done one of three things.</p><p>First, I&#8217;d reach out to a friend who&#8217;s a stronger React dev and see if they could help me.  Most of the time my friends are either too busy to talk at that exact moment, so I&#8217;d have to wait hours or even days before we could find a time to sync.  And that assumes they&#8217;d know how to fix it. When I reached out to a friend of mine who&#8217;s a full-time frontend SWE, he said he hadn&#8217;t written an animation in years and wouldn&#8217;t be much help. </p><p>Second, if I was interested in learning the topic, I&#8217;d watch a YouTube course or find a cheap Udemy class.  However, this approach has two issues.  First, I&#8217;d have to learn a lot of CSS stuff I didn&#8217;t care to learn.  All I really cared about was animations and didn&#8217;t want to be bothered with anything else.  Second, I really just didn&#8217;t want to learn CSS at all.  I&#8217;ve never liked it or cared to learn it, and the idea of paying $10 to watch some lectures on it filled me with dread.</p><p>So if those two options didn&#8217;t work, my third option would be to give up and settle for a shittier experience.</p><p>But it&#8217;s not 2022.  It&#8217;s 2025.  And in 2025, you can get the world&#8217;s best teacher with access to the world&#8217;s information for $20/month.  So I asked ChatGPT the following:<br><br><em>&#8220;I want to build a CSS animation similar to how Wordle works. There are 5 cards, and each card should flip over on sequence. Cursor is struggling to implement this so I&#8217;ll need to write myself but I don&#8217;t understand CSS animations.</em></p><p><em>So with that in mind, I want you to build me a mini curriculum on CSS animations. I want you to think through what I need to know and tests/mini projects to confirm my understanding. Design this course for me.&#8221;</em></p><p>It then created a five module course series with code examples and quizzes to confirm my understanding.  It took about 45-60 minutes, but once I completed it, I got the animations working how I wanted within 30 minutes.</p><p><strong>This experience blew my mind.</strong>  It wasn&#8217;t quite like <a href="https://www.youtube.com/watch?v=6vMO3XmNXe4">Neo learning kung fu</a>, but it&#8217;s the closest I&#8217;ve come.  The distance between who we are and who we want to be has never been closer or easier to bridge.  It&#8217;s just a matter of will, not skill, to get there.  Because if you have the will but need the skill, ChatGPT will upload those missing skills to your brain.</p><p>I can say without exaggeration this is the most inspiring personal use case I&#8217;ve had with GenAI to date.  If you want to learn something and can spend $20/month, you have no excuse!</p><h2>GenAI Tools Only Get You So Far</h2><p>When I started this project, I&#8217;d hoped I could create a quick product requirements doc (&#8220;PRD&#8221;) in ChatGPT, feed this to Bolt, and voila, I&#8217;d get my working app.  As I mentioned before, the UI didn&#8217;t match my expectations, and there were several other bugs.  Two of the most glaring were:</p><ul><li><p><strong>The code didn&#8217;t select the player of the day. </strong>This app had two tables: players and daily_players.  Players contained the metadata on each player, while daily_players specified who the player of the day was on a given day.  Bolt created both tables for me in Supabase (woo!) with no issue, which was impressive.  But when I inspected the frontend code, I saw that instead of getting the player of the day from daily_players, it would randomly select a player on each page load.  This was the exact opposite of what I wanted and I had to rewrite this using Cursor.</p></li><li><p><strong>Player search was inefficient</strong>.  I&#8217;d assumed that the app would first query all eligible players, store them locally, and then do lookups based on that local copy.  Instead the code was doing the player search on the database itself, so it was making repeated network requests <em>per guess</em> instead of looking at the local cache.  While this app has pretty small usage, this would be insanely inefficient at scale.  I&#8217;m confident any CS student with a year of experience would not do search this way, so I was a surprised the machine gods cooked up what they did.</p></li></ul><p>There were a few other issues, but I came away convinced the world still needs software engineers who understand codebases.  I highly doubt a nontechnical person would have resolved these issues.</p><h2>Design First, Build Second</h2><p>Surprisingly what took me the most time to get right wasn&#8217;t animations or backend calls or data wrangling but figuring out a UI that worked and I didn&#8217;t hate.  This meant I spent a lot of time coding multiple different ugly UIs in Cursor instead of designing one clean UI in Figma and pushing that to Cursor.  Henry Ford used to say &#8220;Unless you see a thing, you can&#8217;t simplify it.&#8221;  In retrospect, if I&#8217;d spent more time up front making it easy to <em><strong>see</strong></em> what I was building, I would have realized it sucked and spent more time upfront cleaning and simplifying it before turning it into code.</p><p>There&#8217;s a carpenter&#8217;s adage that you should &#8220;measure twice, cut once.&#8221;  Going forward, I plan to &#8220;design twice, build once.&#8221;</p><h2>Actually Design First, <em>PRD Second</em>, Build Third</h2><p>Markets have price-makers and price-takers.  When you buy milk at the grocery store, the grocery store is the price-maker, while by accepting the price, you&#8217;re a price-taker.  Similarly, in large enterprises, there are people who decide what work&#8217;s to be done and there are people who do it.  The former are work-makers and the latter are work-takers.</p><p>For most of my career, I&#8217;ve been a work-taker. One of my perennial frustrations is work-makers are often bad at describing or even knowing what they actually want.  I cannot tell you how many times somebody&#8217;s made an ask and I&#8217;ve responded &#8220;ok but what exactly would you like me to do?&#8221;  Or how many days of my life I&#8217;ve lost because of a situation like below:</p><p><strong>Work-Maker</strong>: &#8220;Hey, could you get me X?&#8221;<br><strong>Me: </strong>&#8220;Sure.&#8221;<br>&lt;several hours later&gt;<br><strong>Me: </strong>&#8220;Hey, here&#8217;s X like you&#8217;d asked.&#8221;<br><strong>Work-Maker: </strong>&#8220;Oh, sorry I actually don&#8217;t need X.  Could I get Y?&#8221;</p><p>This is one of the few instances in my life where I was the work-maker and frankly, I did a bad job. I wasn&#8217;t explicit about the UI, UX, performance constraints, goals, purpose, motivation, etc.   I made some lazy asks about a bunch of stuff and I&#8217;m sure the machines did their best, but they&#8217;re not mind readers (at least for a few more years).</p><p>So for my next project, besides starting with a clearer design, I will create a more thorough and thoughtful PRD to act as a de facto contract between myself and the machine. Anecdotally, it seems the more context you can give these tools, the more time you will save, so I will improve that going forward.</p><h1>What&#8217;s Next</h1><p>This app took a lot longer to build than I expected, but on the plus side, I learned way more than I expected, have a clearer sense of my skill gaps, and am proud of this cute little web app.  For my next project, I plan to do the following:</p><ul><li><p><strong>Get a little dangerous in Figma: </strong>one glaring skill issue for me is Figma, as it seems the best way to quickly prototype a design and translate that design to CSS/HTML. Similar to how I learned CSS animations, I&#8217;ll have ChatGPT design a custom course for me to learn the basics of Figma so I can quickly prototype the designs before getting into the code.</p></li><li><p><strong>Spend more time on the PRD: </strong>I&#8217;ve read (and by read, I mean skimmed and largely ignored) many PRDs in my life, but made very few. The default one ChatGPT gave me wasn&#8217;t great, but <a href="https://www.youtube.com/watch?v=fD4ktSkNCw4&amp;t=453s&amp;ab_channel=HowIAI">this video</a> seems like a promising starting point and I&#8217;ll likely test out <a href="https://www.chatprd.ai/">ChatPRD</a>. If you happen to have recommendations or ideas though, please share.</p></li><li><p><strong>Go a Little Bigger: </strong>getting this app working, and more importantly, seeing my friends have fun with it, was a blast. As I finalized it, I realized there&#8217;s a bigger version of it that could be a better product and appeal to a larger audience, which will be what I build for #3.</p></li></ul><p>If you haven&#8217;t already, please test out <a href="http://nba-dle.com">NBA-dle.com</a>, let me know what you think, and subscribe!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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[#1: Derby or Not]]></title><description><![CDATA[Background]]></description><link>https://www.vibe100.ai/p/1-derby-or-not</link><guid isPermaLink="false">https://www.vibe100.ai/p/1-derby-or-not</guid><dc:creator><![CDATA[Vibe100]]></dc:creator><pubDate>Thu, 12 Jun 2025 16:58:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m-3Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.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_!m-3Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m-3Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 424w, https://substackcdn.com/image/fetch/$s_!m-3Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 848w, https://substackcdn.com/image/fetch/$s_!m-3Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 1272w, https://substackcdn.com/image/fetch/$s_!m-3Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m-3Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png" width="396" height="347.04395604395603" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1276,&quot;width&quot;:1456,&quot;resizeWidth&quot;:396,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m-3Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 424w, https://substackcdn.com/image/fetch/$s_!m-3Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 848w, https://substackcdn.com/image/fetch/$s_!m-3Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 1272w, https://substackcdn.com/image/fetch/$s_!m-3Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bda253f-bd9d-4358-902c-abc61f568912_1476x1294.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Background</h1><p>I built this app while drinking beer and making sure my daughter didn&#8217;t accidentally smash her face. It was an experience I think I&#8217;ll remember for the rest of my life.</p><p>We were in Hawaii, taking a break from the pool, while my daughter was jumping on the furniture despite both my wife and I begging her to stop. While I was scrolling Twitter, I saw a tweet that caught my eye. It was the day of the Kentucky Derby, and somebody made a graphic showing the names of the horses in the race. And I thought to myself, &#8220;what the fuck are these names?&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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>I was about to share the tweet with my friends and say &#8220;if you give me one of these names and nonsense, I couldn&#8217;t tell you which one&#8217;s actually a horse&#8217;s name&#8221; when an idea hit. Instead of <em>saying</em> this point, why don&#8217;t I <em>show</em> it by building a simple quiz app?</p><p>It was a fun and simple idea, but in the past, it probably would have gone nowhere. To actually build an idea from scratch and get the experience and corner cases right would have taken me longer than I&#8217;d like. I&#8217;m not a bad engineer, but I&#8217;m not cracked, (at least not yet) and pre-GenAI, it would have taken me hours at best and realistically a couple days. And that&#8217;s assuming I would have had dedicated time to focus and concentrate, which any parent of a toddler knows, is like hoping the sun will rise in the West.</p><p>But these types of projects are perfect for the AI tools, and I&#8217;d bought a Bolt subscription earlier that month, so I asked myself &#8220;how fast can I whip this up?&#8221; It took a few iterations and tweaks to the UI but the answer was &#8220;10 minutes.&#8221;</p><h1>What I Built</h1><p>The result was <a href="https://derby-or-not.netlify.app/">Derby or Not.</a></p><p>The app is pretty simple: you&#8217;re presented two names and have to guess which one is the Kentucky Derby horse.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7ejk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7ejk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 424w, https://substackcdn.com/image/fetch/$s_!7ejk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 848w, https://substackcdn.com/image/fetch/$s_!7ejk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 1272w, https://substackcdn.com/image/fetch/$s_!7ejk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7ejk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png" width="1350" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1350,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7ejk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 424w, https://substackcdn.com/image/fetch/$s_!7ejk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 848w, https://substackcdn.com/image/fetch/$s_!7ejk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 1272w, https://substackcdn.com/image/fetch/$s_!7ejk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a4e3cb-a217-43bf-aa74-5a60782d332e_1350x704.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You do that 10 times and at the end you&#8217;re told how many you got right. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sp6j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sp6j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 424w, https://substackcdn.com/image/fetch/$s_!sp6j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 848w, https://substackcdn.com/image/fetch/$s_!sp6j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!sp6j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sp6j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png" width="1064" height="1390" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1390,&quot;width&quot;:1064,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:210919,&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://vibe100.substack.com/i/165801709?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.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_!sp6j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 424w, https://substackcdn.com/image/fetch/$s_!sp6j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 848w, https://substackcdn.com/image/fetch/$s_!sp6j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!sp6j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca18246-b0af-467c-bc63-d03520313269_1064x1390.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you try it out, let me know your score. It will be just as important as points in <a href="https://www.youtube.com/watch?v=9KAGwNtI26w&amp;ab_channel=DubyaScott007">Who&#8217;s Line Is It Anyway?</a>, but maybe you&#8217;ll have fun. [1]</p><h1>What I Learned</h1><p>My reaction to building and deploying this app was a lot like Ashton Kutcher seeing Josh Gad&#8217;s PC for the first time (i.e. <a href="https://www.youtube.com/watch?v=PWUvc5_Yp-I">first 12 seconds of this trailer</a>). I&#8217;d seen the Loom videos and heard the testimonials of people who quickly built and deployed web apps using tools like Lovable, Bolt, and Replit, but it was another thing entirely to do it for myself. To put it bluntly, it was a &#8220;holy shit&#8221; moment.</p><p>So what did I learn?</p><ul><li><p>If you have a simple idea and know what you want, you don&#8217;t need to know how to code. You can <a href="https://www.youtube.com/watch?v=JXNBeUQS5H4">Rick Rubin</a> it.</p></li><li><p>The integration of these tools is more mature than I expected. While I used Bolt to design and build the app, it automatically linked to Netlify to host it. I didn&#8217;t even have a Netlify account!</p></li></ul><p>Anyway, if you want to build something silly and fun but don&#8217;t know CS, that&#8217;s fine. Take the leap! And if you have questions, feel free to reach out.</p><h1>What&#8217;s Next</h1><p>Similar to <a href="https://www.youtube.com/watch?v=8L1l_vPSCFg&amp;t=57s">Calvin Candie in Django Unchained</a>, where GenAI once had my curiosity, it now had my attention. I had another idea I&#8217;d been wanting to build out for months &#8230; could Bolt one-shot that as well? Read this to find out. [2]</p><p>[1] One of my friends got 1/10, which is incredible, because if you guess randomly you should be able to get 2 or more 99% of the time.</p><p>[2] No. No it couldn&#8217;t. But I did build it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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[LFG]]></title><description><![CDATA[&#8220;500 street fights and you could consider yourself a legitimate tough guy.&#8221;- Taylor, Knockaround Guys]]></description><link>https://www.vibe100.ai/p/lfg</link><guid isPermaLink="false">https://www.vibe100.ai/p/lfg</guid><pubDate>Thu, 12 Jun 2025 16:33:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!j3NE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.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_!j3NE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j3NE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!j3NE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!j3NE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!j3NE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j3NE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png" width="294" height="294" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:294,&quot;bytes&quot;:1616792,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://vibe100.substack.com/i/165799643?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.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_!j3NE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!j3NE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!j3NE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!j3NE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F858a35de-f56c-452e-b878-718d64d661d2_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>&#8220;500 street fights and you could consider yourself a legitimate tough guy.&#8221;- Taylor, Knockaround Guys</em></p><p><em>&#8220;All you have to do is &#8230; make 100 videos and improve something every time.&#8221;- Mr. Beast</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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>I have no desire to be or a <a href="https://www.youtube.com/watch?v=8ztWA_vcGMI&amp;t=47s">tough guy</a> or <a href="https://www.youtube.com/watch?v=QIWW4sh8r2U">YouTube creator</a>. But I do hope to build great software products with great people. And with the advent of GenAI and agents, there&#8217;s really no better time to do so. The tools and new products with GenAI is truly magical.  It&#8217;s like if living in the Harry Potter universe when the wizards and witches started figuring out how to cast magic spells.  </p><p>These developments are really exciting but so far I&#8217;ve built &#8230; 0 apps using GenAI tools.  While I&#8217;d love to say I&#8217;m a GenAI coding ace, I&#8217;m not. And as far as I can tell there&#8217;s only one way to get there: <strong>build, </strong>aka<strong> &#8220;vibe code&#8221;, 100 apps. </strong>[1]</p><p>This blog will be straightforward: each post will be a product I built and what I learned along the way. Most people who read this post will read nothing else and move on with their lives. A smaller group of people will read this post, look at one of my projects, conclude this is stupid, and move on with their lives.</p><p>But a small portion of you may find this fun. Some of you may even learn something. And maybe, just maybe, we&#8217;ll work together someday to build something wonderful.</p><p>If you&#8217;ve made it this far, hopefully you&#8217;re intrigued, but if not, please don&#8217;t be a dick on the way out. And for the rest of you &#8230; Let&#8217;s. Fucking. Go.</p><h1>The Vibe 100</h1><p>Below is the running list of the apps I&#8217;ve built so far using GenAI tools.  I also included the logo to this blog since I made that using ChatGPT.</p><ol start="0"><li><p>The logo</p></li><li><p><a href="https://substack.com/home/post/p-165801709">Derby or Not</a></p></li><li><p><a href="https://open.substack.com/pub/vibe100/p/2-nba-dle?r=5uk4yk&amp;utm_campaign=post&amp;utm_medium=web">NBA-dle</a></p></li></ol><h1>Appendix</h1><p>[1] I&#8217;ve witnessed a lot of great rebrands (ex: crypto becoming &#8220;web3&#8221;) but I have to say rebranding &#8220;hacking&#8221; as &#8220;vibe coding&#8221; may be the best.  This meme captures that.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q-hG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q-hG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Q-hG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Q-hG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Q-hG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q-hG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg" width="500" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q-hG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Q-hG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Q-hG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Q-hG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3df00ad2-ed98-4bcb-99ce-3537934b6e1b_500x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.vibe100.ai/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! 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>