<?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[Vibecode Lisboa]]></title><description><![CDATA[Learn how to build software as a non-engineer using the latest GenAI tools https://vibecodelisboa.com/]]></description><link>https://blog.vibecodelisboa.com</link><image><url>https://substackcdn.com/image/fetch/$s_!jWaE!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65d90bb6-952b-4e5a-aeeb-618d381e2a67_531x531.png</url><title>Vibecode Lisboa</title><link>https://blog.vibecodelisboa.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 29 Oct 2026 00:46:34 GMT</lastBuildDate><atom:link href="https://blog.vibecodelisboa.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Sean Tierney]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[scrollinondubs@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[scrollinondubs@substack.com]]></itunes:email><itunes:name><![CDATA[Sean Tierney]]></itunes:name></itunes:owner><itunes:author><![CDATA[Sean Tierney]]></itunes:author><googleplay:owner><![CDATA[scrollinondubs@substack.com]]></googleplay:owner><googleplay:email><![CDATA[scrollinondubs@substack.com]]></googleplay:email><googleplay:author><![CDATA[Sean Tierney]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[“I don't think I'll ever feel secure at any job again”]]></title><description><![CDATA[Fear of job obsolescence is prevalent. FounderOS stitches together time-tested frameworks for early-stage entrepreneurship and helps people launch their first side hustle. Learn how.]]></description><link>https://blog.vibecodelisboa.com/p/i-dont-think-ill-ever-feel-secure</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/i-dont-think-ill-ever-feel-secure</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Wed, 28 Oct 2026 14:37:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M2J3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F__ss-rehost__tw-video-preview-13_2103401824732467200.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>&#8220;I don&#8217;t think I&#8217;ll ever feel secure at any job again.&#8220;</em></p><p>That&#8217;s from <a href="https://www.reddit.com/r/jobs/comments/18uucog/">a thread on r/jobs</a> I&#8217;ve been reading for the last couple of weeks. It&#8217;s not an outlier. I&#8217;ve now read hundreds of comments from people working through knotted emotions around job obsolescence, losing meaning, feeling like a &#8220;meat proxy&#8221; in steering AI. </p><p>&#8220;<a href="https://news.ycombinator.com/item?id=41462486">I&#8217;m scared, I fear my career may have just come to a screeching halt.</a>&#8220;</p><p>&#8220;<a href="https://www.reddit.com/r/cscareerquestions/comments/1wabetl/">Lately for the past year I&#8217;ve been super depressed knowing that the end is near for the industry.</a>&#8220;</p><p>&#8220;<a href="https://news.ycombinator.com/item?id=50158129">It just really hurts that I spent well over a decade of my life learning and honing skills to engineer safe, quality software and now it&#8217;s just, useless.</a>&#8220;</p><p>One person described <a href="https://news.ycombinator.com/item?id=33261466">grinding their teeth in their sleep</a>. Another wrote that employees are now seen &#8220;<a href="https://www.reddit.com/r/ExperiencedDevs/comments/1shhupi/getting_laid_off_without_warning_taught_me/ofdipqk/">as a liabilty to be replaced with AI as soon as practical</a>.&#8221; </p><p><strong>People are scared and I think I&#8217;m uniquely positioned to do something about it.  </strong></p><h3>Anyone can build now</h3><p>I&#8217;ve taught 22 people to build with AI in <a href="https://vibecodelisboa.com/courses/claude-code-101">my vibecoding course</a>. All 22 shipped a working app.</p><p>Some of those changed lives. Ramin had an idea for a health app he could sell to enterprises and he took my course, vibecoded a proof of concept, raised a pre-seed round and is now off to the races with <a href="https://www.healthycanary.com/">Healthy Canary</a>. Shannon had an app idea sitting on his to-do list for as long as he can remember built on material from a mentor, a doctor friend who has since passed. In the course he finally <a href="https://youtu.be/nLtAgBNPfbc?si=teeqYHFWomVmKXMd">built it</a> and launched it in his friend&#8217;s honor. </p><p>William had managed multiple tech projects that never got finished, and had never written a line of code. Here&#8217;s how he put it:</p><blockquote><p>&#8220;<a href="https://www.youtube.com/watch?v=NvBlktkjrHQ">You get past those first couple days and you realize this is just the best time to be alive.</a>&#8220;</p><p>&#8220;<a href="https://www.youtube.com/watch?v=NvBlktkjrHQ">Tech is so much of a creative. You&#8217;re an architect of whatever you want to build.</a>&#8220;</p></blockquote><p>He has since built <a href="https://dynamiceventsuite.com/">Dynamic Event Suite</a>, a tool to improve the efficiency of his own events business and then productized it and offered it to other event organizers struggling with dwindling event numbers to help them reinvigorate their events and maintain profitability.</p><p><a href="https://vibecodelisboa.com/">Watch the student testimonials</a></p><p><strong>Building things right is no longer the hard part. It&#8217;s now a matter of building the right thing. </strong></p><p>These students above knew their fields deeply so they had the pre-existing audience and domain expertise to build the right thing based on previous experience. For the rest of us unless you have fought in the trenches alongside your prospects, you won&#8217;t have the degree of customer empathy necessary to serve them. </p><h3>The hard questions</h3><p><em>What do you build? Who is it for? How do you make something people will actually buy?</em></p><p>These are the real challenges my students wrestle with now that they know how to build. The vibecoding craze has democratized who can create software and lowered the bar for who can build software. And while this is amazing it&#8217;s like giving Promethian fire to people that don&#8217;t know what to do with it so they&#8217;re out scorching the countryside. </p><h3>Why this matters right now</h3><p>If these threads on Reddit and Hacker News are to be believed, society (starting with programmers) is now wrestling with a crisis of meaning and all the gnarly emotions that come from realizing the craft you spent a lifetime to hone is being performed better by machines. </p><p>The way to defend one&#8217;s relevance in this scenario is not to turn a blind eye and pretend it&#8217;s not happening. Nor is it to take the Luddite stance and chuck wrenches in the gears sabotaging data centers. Nor is it to pout around and complain online pining for the glory days of old. <strong>The way forward is to lean into the role change and immerse early in learning how to leverage these tools.</strong>  </p><p>DHH gave this amazing talk recently framing it so eloquently. Watch all three minutes of this clip: </p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/scottstts/status/2103401938058723765?a=pDKqQlM0ff31dFLSf_8&amp;s=20&quot;,&quot;full_text&quot;:&quot;My god this is such a good speech that every SWE needs to hear. You know what? Every person should hear it\n\nKeep the happy memories, eyes on the reality, be excited about the future. That&#8217;s the best that anyone can do &quot;,&quot;username&quot;:&quot;scottstts&quot;,&quot;name&quot;:&quot;Scott&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1908069171029544960/0SNz063B_normal.jpg&quot;,&quot;date&quot;:&quot;2026-09-25T08:31:16.000Z&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!M2J3!,w_1028,c_limit,f_auto,q_auto:best,fl_progressive:steep/l_play_button_usfui2,w_88,e_colorize:0/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F__ss-rehost__tw-video-preview-13_2103401824732467200.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/KKFUXfesFb&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:377,&quot;retweet_count&quot;:2070,&quot;like_count&quot;:15858,&quot;impression_count&quot;:3697916,&quot;expanded_url&quot;:null,&quot;video_url&quot;:&quot;https://video.twimg.com/amplify_video/2103401824732467200/vid/avc1/1280x720/NJLfaCIk-ECygL6d.mp4&quot;,&quot;video_preview_media_key&quot;:&quot;13_2103401824732467200&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><h3>My thesis</h3><p>The best way to learn anything is by diving in and getting your hands dirty with it. </p><p><strong>Build a lifeboat using Agentic AI in the form of a cashflowing, passive revenue-generating side hustle that you can build up in your spare time and this becomes your insurance policy.</strong> Once you have it working you have max negotiating leverage and peace of mind. </p><p>Ironically in the process of building the lifeboat <strong>the skills you acquire are exactly the skills that make you the last one to be let go in a company.</strong> So not only do you have the fallback but you represent more value to your current employer.  </p><p>One senior engineer in a thread about feeling obsolete put it plainly: &#8220;<a href="https://www.reddit.com/r/ClaudeAI/comments/1xa0gn5/15_years_as_a_software_engineer_and_ai_is_making/phq53px/">I&#8217;ve been showing my managers in different ways that I know more about AI than many people in the company.</a>&#8220; Another, 22 years in: &#8220;<a href="https://www.reddit.com/r/ClaudeAI/comments/1xa0gn5/15_years_as_a_software_engineer_and_ai_is_making/phpuqcn/">I was scared a year ago, I&#8217;m still uncomfortable today but at least now I&#8217;m in favorable position.</a>&#8220;</p><h3>That all sounds great Sean, but how? </h3><p>There are time-tested entrepreneurial frameworks that have already proven themselves. They have Lindy having served entrepreneurs for decades. By stacking these and sequencing them in order we can leverage AI to assist with the grunt work and spend our time on the parts that truly need our judgment, domain expertise and taste.</p><p>That&#8217;s FounderOS.</p><h3>What it is</h3><p>A stage-gated system that draws inspiration from Amy Hoy and Alex Hillman&#8217;s <em>30x500</em>, Steve Blank&#8217;s <em>customer development</em>, the <em>Business Model Canvas</em>, Infusionsoft&#8217;s <em>lifecycle marketing</em> and about a dozen other frameworks I&#8217;ve used over the years.  Each step has a deliverable, and it coaches you until you get it right before you move on. You go at your own pace and it leads you from zero to hero.</p><p>There are a bazillion courses and programs and mastermind groups out there but I have yet to see the resource that pulls apart the best frameworks, agentifies them and leads you through a system self-serve with AI as co-pilot to reliably get to a winning result.</p><h3>How it works (and how this post was made)</h3><p>Everything quoted at the top of this post came out of FounderOS. I picked an audience (people worried about their jobs in the age of AI), found the threads where they were congregating, and ran them through the system: 25 threads, over 13,000 notes on what they struggle with, what they fear, how they are dealing with it. A process which would have taken months of reading and analysis pre-LLM can now be done in days with the right tooling. </p><ul><li><p><strong>Start with people, not an idea.</strong> Pick an audience you want to serve.</p></li><li><p><strong>Go where they talk.</strong> Observe the communities and read the conversations already happening there.</p></li><li><p><strong>Make sense of it all.</strong> Fears, dreams, what they buy, their vocabulary. The LLMs do what they&#8217;re good at: chewing through huge piles of text, finding patterns, surfacing clusters.</p></li><li><p><strong>Help first.</strong> Speak to them in their own words and give away small, useful fixes. That builds trust and starts conversations.</p></li><li><p><strong>Map it all onto a Business Model Canvas</strong>. This is your overhead map of all the physics of the business and how you navigate and perform experiments. </p></li><li><p><strong>Own your real estate.</strong> That content lives on your blog, so the equity builds up with you: SEO, and now AEO and GEO too. You get a reliable fountain of highly-calibrated educational content. </p></li><li><p><strong>Let the product emerge</strong> from analyzing all those conversations. All the insights from digging into what people are saying and reading between the lines then aggregating it across threads and formulating and testing hypotheses.  </p></li></ul><p>You still need to read (a TON) and load up the ultimate computer (your brain) with the source material but at this point we have LLM&#8217;s to assist with the grunt work of finding and surfacing insights. </p><p><strong>You retain agency:</strong> the direction, the hypotheses, the vision, your own personality in the messaging - the system surfaces the opportunities and proposes avenues to explore. <strong>You still have to walk the avenues</strong> but the result is a level of customer empathy and depth of understanding that emerges organically from the market vs. you imposing your idea on the market.  It avoids the doom loop trap of endlessly pivoting, duct-taping and product-market-fit retrofitting to preserve the thing you built instead of building the right thing from the start. </p><h3>Is it finished?</h3><p>No. Reid Hoffman famously said: &#8220;<em>If you are not utterly embarrassed by the first version of your product, you&#8217;ve launched too late.</em>&#8221;</p><p><a href="https://vibecodelisboa.com/founder-os">FounderOS</a> is embarrassingly early, but it&#8217;s to a stage where I&#8217;m now using it myself so it&#8217;s time to invite a select few to begin trying it.</p><h3>What happens on November 5th</h3><p>I&#8217;m unveiling FounderOS for the first time to the people in the room at <a href="https://vibecodelisboa.com/events">this event</a>.  We&#8217;ll take a volunteer and run FounderOS live from literally zero: find where they hang out, mine the threads, pull out the insights, write a first helpful piece of content.</p><p><strong>People in the room get:</strong> </p><p>- A first glimpse at FounderOS and skip the waitlist </p><p>- &#8364;200 off the <a href="https://vibecodelisboa.com/events/agentic-ai-mastery-weekend">Agentic AI Mastery Weekend</a> happening Dec 11 to 13 at DOMA in Mafra</p><p>Seats are capped at 50 and it&#8217;s free, but you need to RSVP to claim your spot.</p><p><strong><a href="https://vibecodelisboa.com/events/unveiling-founderos">Claim your spot</a></strong></p><p>If you&#8217;re not in Lisbon the event will be recorded and posted to the site. You can read more about FounderOS and <a href="https://vibecodelisboa.com/founder-os">join the waitlist here</a>. </p><p>There is no better time to be building <em>but only if you&#8217;re building the right thing</em>. Let&#8217;s help you figure out what that is for your people and in the process of doing so give you both the lifeboat and the superpower that makes the lifeboat unnecessary. </p><p>-Sean</p>]]></content:encoded></item><item><title><![CDATA[Long LLM explanations should be explainer videos]]></title><description><![CDATA[This is the companion skill to the Loom Vision one I opensourced in July. It allows you to go the other direction and get back animated explainer videos from your agent.]]></description><link>https://blog.vibecodelisboa.com/p/long-llm-explanations-should-be-explainer</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/long-llm-explanations-should-be-explainer</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Fri, 25 Sep 2026 17:33:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tAzV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>LLM brain fatigue</h3><p>If you&#8217;ve done much work with LLMs you&#8217;ve likely experienced this &#8220;cognitive swiss cheese&#8221; feeling - the mental tax of wading through paragraphs of LLM-generated text. <a href="https://www.reddit.com/r/ClaudeAI/comments/1wm5c21/i_am_done_with_this_shit/?solution=f04a18ed6a247a9bf04a18ed6a247a9b&amp;js_challenge=1&amp;jsc_token=2824be10929bdc604753c70a67a1c33105c478deaf138566c0c1a6b61c681a9d&amp;jsc_orig_r=">This thread</a> went viral in the development community a few days ago with hundreds of people piling on expressing this frustration. </p><p>LLM&#8217;s are great token predictors for generating textual responses. But there are two main contributors to that &#8220;brain damage&#8221; cognitive fatigue everyone is experiencing: 1) LLM&#8217;s don&#8217;t fundamentally &#8220;understand&#8221; concepts the way humans do - they don&#8217;t maintain mental models of the world and perform assimilation/accommodation on their schemas, they are just predicting the next most logical token in a sentence. This means they can&#8217;t explain phenomena like physics the way Richard Feynman could explain physics because they lack a ground up mental latticework of the concepts. 2) Even if they were to gain this capability, they are inherently text-generating factories that return paragraphs of verbiage as responses. Not everyone learns best from reading - some of us are auditory and/or spacial/visual learners and we need a multi-modal experience. </p><p>#1 is a deficiency of the current state of the tech. This is gradually getting solved by stronger models, tool use and deep reasoning chain of thought iterative calls. Almost at some point with enough parameters and stackable model tooling it will arrive at something approximating cognition and understanding. Until that happens we can&#8217;t  solve deficiency #1. #2 however is fully-solvable today and I&#8217;ll show you how. </p><h3> A multi-modal tutor that meets you where you&#8217;re at</h3><p>What if instead of receiving blocks of text responses to your questions you could get back animated explainer videos that meet you precisely where you&#8217;re at? What if the &#8220;tutor&#8221; could first do an archeological expedition to unearth your current level of understanding of a subject to know exactly where your knowledge gaps are and then fill those in via custom-built animated explainer videos? </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tAzV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tAzV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!tAzV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!tAzV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!tAzV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tAzV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2395286,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/217398539?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tAzV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!tAzV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!tAzV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!tAzV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b49c41c-116d-426a-ad2f-8aefc079b187_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The Video Explainer skill </h3><p>I use <a href="https://loom.com">Loom</a> a lot for making narrated screencasts that capture requirements with me explaining something to the LLM and being able to talk through it on my screen. I open sourced <a href="https://github.com/scrollinondubs/behalfbot-plugins/tree/main/loom-vision">this plugin</a> back in July to make it so my bot could ingest my Loom videos and immediately have the narrated transcript to correlate with the video frames and be able to make sense of my videos. This has been a game-changer for communicating complex requirements, reproducing bugs, or even just talking through my todo list and priorities to communicate complex info quickly and with high fidelity. </p><p>This <a href="https://github.com/scrollinondubs/behalfbot-plugins/tree/main/video-explainer">video explainer</a> skill I just released is the other side of that coin giving any agent the ability to respond with its own equivalent of a narrated Loom video. This too has been an absolute game-changer as an alternative to having to wade through paragraphs of explanation for understanding what it&#8217;s trying to convey. We can essentially have high-bandwidth inbound/outbound comms with our agents now the way we would communicate by trading Loom videos. </p><p>The irony here of me explaining all this via paragraphs of text is not lost on me&#8230; so here&#8217;s a real example of how I used this tandem set of skills today: <br><br>I&#8217;m currently learning how to solve a type of number puzzle called &#8220;<a href="https://en.wikipedia.org/wiki/KenKen">KenKen</a>&#8221; (it&#8217;s like a variant of sudoku with these caged regions in which the contents have to obey certain math). Here is the Loom video I made today for my bot Jax when I got stuck: </p><p><a href="https://www.loom.com/share/86108fac4e164f62b76a83efd08488f6">KenKen Strategy for Spotting Logic Errors - Watch Video</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.loom.com/share/86108fac4e164f62b76a83efd08488f6" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WOn4!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 424w, https://substackcdn.com/image/fetch/$s_!WOn4!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 848w, https://substackcdn.com/image/fetch/$s_!WOn4!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 1272w, https://substackcdn.com/image/fetch/$s_!WOn4!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!WOn4!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif" width="640" height="360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.loom.com/share/86108fac4e164f62b76a83efd08488f6&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WOn4!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 424w, https://substackcdn.com/image/fetch/$s_!WOn4!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 848w, https://substackcdn.com/image/fetch/$s_!WOn4!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 1272w, https://substackcdn.com/image/fetch/$s_!WOn4!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0964e3-e043-4a32-909a-733577d17c13_640x360.gif 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And below is the animated explainer video I got back from Jax as a response: </p><div id="youtube2-fz7V5isL6wg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;fz7V5isL6wg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/fz7V5isL6wg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>What&#8217;s great about this is I&#8217;m able to very quickly give it my current understanding and express what I&#8217;m struggling with and why. It can then process that and instead of giving me a wall of text to decipher and understand, it can just talk me through it the way a tutor would explain something at the whiteboard. </p><h3>The implications </h3><p>I showed this to my buddy <a href="https://marcjohnson.xyz/">Marc</a> and immediately he said <em>&#8220;Khan Academy should be all over this.&#8221;</em> 100% agree with him. This would definitely amplify the <a href="https://www.khanmigo.ai/">Khanmigo AI tutor</a> to be more useful to audio/visual learners. But think about the other implications this has: </p><ul><li><p>To <strong>content marketers</strong>: this is a factory for lead magnets that show concise solutions to customer problems. </p></li><li><p>To <strong>site owners</strong>: imagine the evolution of context-sensitive help widgets that rather than giving boilerplate tutorials could ingest your visitor&#8217;s session through something like Hotjar and then give return a custom explainer vid based on their session and their inferred intent. </p></li><li><p>To <strong>educators</strong>: your students who are falling behind can now get calibrated help to meet them exactly where they&#8217;re at and clear up their misunderstandings. Conversely your star students can get stretch tutoring to push them beyond the standard book material with more sophisticated concepts. </p></li></ul><p>These are just a few of the use cases that come to mind. Auditory &amp; visual learners are finally on equal footing with reading-centric learners in being able to get bespoke tutoring from the LLM&#8217;s via the formats at which they excel. </p><h3>How to use it</h3><p>These are two separate skills that can work independently but are more powerful together. If you&#8217;re using something like Claude Code, easiest is to point it to <a href="https://github.com/scrollinondubs/behalfbot-plugins/">this github repo</a> and tell it to install the loom-vision and video-explainer skills. </p><h3>How it works under the hood </h3><p><a href="https://scrollinondubs.substack.com/p/loom-videos-are-the-ultimate-unlock">This post</a> explains the Loom Vision skill. <br>The Video Explainer skill basically has two generation modes: </p><ol><li><p><strong>Simple</strong>: uses ffmpeg + whisper to make a basic narrated explainer vid with just frames that change. </p></li><li><p><strong>Advanced</strong>: uses Remotion + whisper to make a narrated explainer vid that can do fades and animation and save the template so that it can be used to change elements dynamically next time. </p></li></ol><p>The simple mode is faster and uses less tokens whereas the advanced mode uses more tokens and requires extra time to render the full video. </p><h3>Where to go for more</h3><p>There are a handful of other useful skills in that github repo above. These and more come standard in <a href="https://behalf.bot/">Behalf.bot</a> which is itself open source. I&#8217;m also now teaching others my methodology for using <a href="https://github.com/siyuan-note/siyuan">SiYuan</a> as a 2nd brain and building up a bespoke knowledge base of interlaced learning videos for being able to learn anything. You can learn more about that program <a href="https://vibecodelisboa.com/join">here</a>. I hope this pair of skills helps you in having a more audio/visual way of communicating with your agents. </p>]]></content:encoded></item><item><title><![CDATA[Loom videos are the ultimate unlock for directing agents]]></title><description><![CDATA[This skill will single-handedly 100x your ability to convey high-fidelity high-bandwidth feedback to your agent.]]></description><link>https://blog.vibecodelisboa.com/p/loom-videos-are-the-ultimate-unlock</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/loom-videos-are-the-ultimate-unlock</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Tue, 21 Jul 2026 08:56:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8MaK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>They say &#8220;a picture is worth 1000 words.&#8221; If that&#8217;s true then a 30sec video at 30 frames per sec is worth roughly 1000 pictures or 1MM words.  </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8MaK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8MaK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!8MaK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!8MaK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!8MaK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8MaK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2428292,&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://scrollinondubs.substack.com/i/207877795?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.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_!8MaK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!8MaK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!8MaK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!8MaK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610d5874-9031-4f65-82d1-3d0ab18fbad6_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If your job involves Agentic AI then you likely spend a good portion of your time conveying complex, nuanced directions to your agent daily by pasting annotated screenshots and writing paragraphs of narrative text to explain current and desired behavior. I was doing this for a long time until I had the &#8220;1MM words&#8221; epiphany. </p><p>My workflow for the past few months has been to freehand write out my priority list on my reMarkable tablet in the morning of all my high-level todo&#8217;s prioritized by importance. I then record a followup Loom video in which I narrate my list cross-referencing the notes from the reMarkable app on my iPad with web pages and anything necessary for explaining the rationale and goal of each request.  </p><p>Claude Code is my daily driver and already has read/write access to my tablet to be able to ingest and transcribe my handwritten notes so when I&#8217;m doing the loom vid narrating my list, it has already scanned it and I&#8217;m just enriching what it has with context and explanation. This has yielded a complete step change in terms of my ability to convey high-level goals accurately with near flawless information fidelity at high speed. I then have CC parrot back its understanding of my directives before it launches into anything and 98% of the time it gets the list exactly right, deconstructs goals into its own actionable todo&#8217;s, asks any clarifying questions and then just goes and executes. And because it has my narrated rationale and stream-of-consciousness thoughts it on occasion can catch false assumptions on my part and provide even better suggestions than I had proposed. </p><h3>How it works </h3><p>Here&#8217;s an example of the most recent Loom I just recorded: </p><p><a href="https://www.loom.com/share/b269d5a5d4954445956ccf6b8b4f7d2e">iOS recording - 18 Jul 2026 - Watch Video</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yvTT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yvTT!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 424w, https://substackcdn.com/image/fetch/$s_!yvTT!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 848w, https://substackcdn.com/image/fetch/$s_!yvTT!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 1272w, https://substackcdn.com/image/fetch/$s_!yvTT!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yvTT!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif" width="518" height="360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:518,&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;: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_!yvTT!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 424w, https://substackcdn.com/image/fetch/$s_!yvTT!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 848w, https://substackcdn.com/image/fetch/$s_!yvTT!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 1272w, https://substackcdn.com/image/fetch/$s_!yvTT!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21eedddf-478d-470e-80be-8c5340bf7c6a_518x360.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What&#8217;s actually happening behind the scenes via the video ingestion skill is CC:</p><ol><li><p>Downloads and parses the transcript</p></li><li><p>Downloads the video file and uses ffmpeg to parse it into frames</p></li><li><p>It then correlates by timestamp in the transcript which frames correspond to my narration so it can understand when I say &#8220;Move this here&#8221; exactly what I&#8217;m pointing to and talking about. </p></li></ol><p>I use this not only for software engineering tasks in reproducing bugs or conveying ideas for complex UX sequences that involve many screens, conditionals and lots of moving parts but as you can see in my example video, I am using it for handling high-level operational issues across many aspects of my life now. I have it integrated to SiYuan as my second brain and it uses that system as persistent long-term context storage with Memory MCP as short-term context storage. Combined with various tools/skills it enables it to serve essentially as my EA automating a ton of admin for me.</p><h3>How to set it up</h3><p>I&#8217;ve made this skill available via ClawHub.ai <a href="https://clawhub.ai/scrollinondubs/loom-vision">here</a> so you can get it with a single line install: </p><pre><code><code>clawhub install @scrollinondubs/loom-vision</code></code></pre><p>Or if you prefer you can grab the source code directly from github <a href="https://github.com/scrollinondubs/behalfbot-plugins/tree/main/loom-vision">here</a>. It comes as a core primitive of Behalf.bot along with the ability to read/write OTA to the reMarkable tablet. Installation is straightforward via the README and it should work with both Claude Code and Claude Cowork as well as any LLM powering OpenClaw.<code> </code></p><p><em>Nota bene</em>: I teach my systems thinking-based approach to using CC via <a href="https://vibecodelisboa.com/courses/claude-code-101">this course</a> and as well run weekly office hours helping people gain leverage with Agentic AI in their lives via <a href="https://vibecodelisboa.com/join">Vibecode Lisboa</a>. I&#8217;m also in process of recording a follow-on second half to that course that teaches how I use Behalf.bot as my EA for high-leverage operation as a solopreneur - if you want to be the first to receive that course, <a href="https://vibecodelisboa.com/courses/behalfbot-agentic-automation">request a notification here</a>. Hopefully this skill helps you streamline how you&#8217;re interacting with your agent and improves your efficiency. </p>]]></content:encoded></item><item><title><![CDATA[How I used Behalf.bot to transform my body]]></title><description><![CDATA[I just completed the 12-week "Body for Life" program and used my AI agent to keep on track throughout the process. Here's how I did it.]]></description><link>https://blog.vibecodelisboa.com/p/how-i-used-behalfbot-to-transform</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/how-i-used-behalfbot-to-transform</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Sat, 20 Jun 2026 17:51:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!udhh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I just completed a 12-week exercise &amp; nutrition program and attained some results that I&#8217;m really proud of. Here they are: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!udhh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!udhh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 424w, https://substackcdn.com/image/fetch/$s_!udhh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 848w, https://substackcdn.com/image/fetch/$s_!udhh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!udhh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!udhh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg" width="1131" height="592" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:592,&quot;width&quot;:1131,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:147881,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/202855946?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!udhh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 424w, https://substackcdn.com/image/fetch/$s_!udhh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 848w, https://substackcdn.com/image/fetch/$s_!udhh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!udhh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a7773c-4777-4c4c-9099-3ea5e3bca2b6_1131x592.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m going to share the key learnings from this experience and how I used the open source <a href="https://behalf.bot/">Behalf.bot</a> agent day-to-day to keep me on track. </p><h2>What is &#8220;Body for Life?&#8221; </h2><p>This is a <a href="http://vibecodelisboa.com/build-school">12-week fitness program</a> created by Bill Phillips back in 1999. You can still get the book <a href="https://en.wikipedia.org/wiki/Body_for_Life">here</a> on Amazon - it&#8217;s very good. It&#8217;s basically a regimen of diet and exercise that can be distilled down to some very simple rules: </p><p><strong>Diet:</strong> </p><ol><li><p>Eat six times per day</p></li><li><p>Portion sizes are size of your fist and you should eat a protein, carb and vegetable or substitute a protein shake for a meal. </p></li><li><p>There&#8217;s a list of authorized foods and ones that are off limits (primarily saturated fats and trans fats) </p></li><li><p>Sunday = cheat day. Eat whatever you want. Pizza. Ice cream. Whatever. The sanity valve... </p></li></ol><p><strong>Exercise:</strong> </p><ol><li><p>Alternate gym and running every day</p></li><li><p>In the gym alternate between upper/lower body each workout. Muscle groups: Upper = chest, shoulders, back, biceps, triceps. Lower = quads, hamstrings, calves and abs. </p></li><li><p>Interval training: </p><ol><li><p>In gym start high reps, low weight and work up to low reps, high weight. Do that for each muscle group then add an extra exercise for same muscle group where you go back to high reps low weight and try to hit a high intensity point and the end of each where you go to failure.  </p></li><li><p>In running: runs are short - 20min.  2min warmup then 4min blocks of progressively increasing intensity aiming to go flat-out during minutes 5, 10, 14, 18-19 then a 1min cooldown.</p></li></ol></li><li><p>Take Sunday off. No exercise. </p></li></ol><p>That&#8217;s it. That&#8217;s the entire program. </p><p>Of course it&#8217;s easier said than done and success in the program comes down entirely to your ability to stick to it for twelve weeks. </p><p>I had actually completed the program 17 years ago and achieved <a href="https://scrollinondubs.com/2009/05/18/body-for-life-conclusion/">some impressive results</a> back then. The open question this time was whether I could pull off similar results at age 50... </p><h2>How I used Agentic AI to stack the odds </h2><p>The program encourages participants to keep a <a href="https://www.scribd.com/document/318234637/Body-For-Life-Workout-Training-Charts-pdf">meticulous journal</a> of their meals and workouts by logging every meal, run and workout. </p><p>I started out logging everything in a notebook but wanted to have the info digitally.  I teach a <a href="https://vibecodelisboa.com/build-school">vibecoding course</a> and initially figured I&#8217;d just vibecode an app to track all this stuff. But thinking through what that experience would be like constantly tapping on my phone in the gym after every rep logging the exercise seemed super annoying. It occurred to me I already have a capable agent accessible via Discord via the <a href="https://behalf.bot/">Behalf.bot</a> code I <a href="https://github.com/scrollinondubs/behalfbot">open sourced</a> and that maybe a simpler option instead of coding a new app from scratch would be to just make a dedicated channel for health stuff. I could then log my workouts via shorthand in a notebook and then just upload photos of the journal and have handwriting recognition parse those pages into data in a database. I could also have an LLM estimate the macronutrients of my meals and log those. Combined with my sleep and recovery data from my Oura ring this should give a really comprehensive picture of everything. </p><p>Using the bot itself to implement these as skills I taught it my shorthand for logging exercises and it became as simple as snapping a photo of my notebook after every workout and snapping a photo of every meal. I had it use gpt-4o-mini for photo recognition and at less than $.01 per image it gives me a decent estimate of the macronutrient breakdown of everything I&#8217;m eating and extracts the reps, weights, intensity, exercise, muscle group and workout date &amp; time and logs it in the database. </p><p>With a little more work I made a little dashboard using FastAPI that allows me to see all my workouts, meals, runs and sleep data in one place. And because it&#8217;s structured data in a db it&#8217;s queryable ad hoc by talking to the agent. </p><p>I then have my bot Jax configured so that every morning when I take my Oura ring out of airplane mode it syncs and Jax gets the night&#8217;s sleep data and then assembles a morning briefing with a bunch of helpful stuff starting with a plan based on the previous day&#8217;s workout, meals, sleep, etc. It puts together a little motivational briefing starting with the health rundown and an analysis of the day&#8217;s <a href="https://amzn.to/4acl1By">Daily Stoic</a> thought. </p><h2>Some takeaways from this process </h2><ol><li><p>Could you do this program without using a bot to track everything? Of course. And millions of people have since 1999 but if you&#8217;re a quantified self person and <strong>seeing the data day-to-day motivates you to stick with it</strong> then the tools are all there today to make it relatively frictionless for logging the data and presenting it in a helpful format. I managed to make it the full 12 weeks without missing a single run or workout. On the meal regimen I admittedly averaged around 4-5 meals falling short of the prescribed 6. Had to find a feasible balance of convenience and effectiveness. </p></li><li><p>Working with <strong>agents gives you malleable fabric</strong> that can adapt to the way you want to work vs. trying to shoe horn your process into a brittle app that works its own way. It was less work to build and ultimately a better UX to just upload photos to Discord rather than build a mobile app for tracking this stuff. I baked the <a href="https://github.com/scrollinondubs/behalfbot/tree/main/plugins/bfl">Body for Life skills</a> into the Behalf.bot chassis so that&#8217;s a standard plugin that anyone else can now use. And I packaged it using the OpenClaw plugin format so that it can be easily ported to that system if that&#8217;s the harness you&#8217;re using. </p></li><li><p>Bill Phillips&#8217; program <strong>still holds up a quarter century later</strong>. Its strength is its simplicity and I was stoked to be able to use what I know how to do to stack the odds of sticking to it and completing the program in my favor. Hopefully at this point the diet and exercise habits are ingrained enough to stick beyond the 12 weeks of the program. </p></li></ol><p>I had Jax export all the data from my 12-week program and create a clickable dashboard replica of my dynamic one so you can see how my dashboard for this works. Click image below and browse to any day of the program to see how it worked.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://jacketyjax.github.io/bfl-viewer-poc/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xSMP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 424w, https://substackcdn.com/image/fetch/$s_!xSMP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 848w, https://substackcdn.com/image/fetch/$s_!xSMP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 1272w, https://substackcdn.com/image/fetch/$s_!xSMP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xSMP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png" width="1456" height="562" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:562,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153296,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://jacketyjax.github.io/bfl-viewer-poc/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/202855946?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.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_!xSMP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 424w, https://substackcdn.com/image/fetch/$s_!xSMP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 848w, https://substackcdn.com/image/fetch/$s_!xSMP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 1272w, https://substackcdn.com/image/fetch/$s_!xSMP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff02e313-9318-4200-88a0-90ef5b1185d2_1762x680.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And here&#8217;s a Loom vid showing how I actually use it: </p><div id="youtube2-Xch-oggGWII" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Xch-oggGWII&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Xch-oggGWII?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>If you&#8217;ve read this far, thanks for reading. I highly endorse the Body For Life program. I&#8217;m planning to share some other creative uses of how I&#8217;m using Behalf.bot to help me in my day to day. Subscribe to my substack to follow that journey and/or <a href="https://behalf.bot/">get your own Behalf.bot here</a>. And if you want to learn to vibecode as a non-technical founder using Claude Code we&#8217;re taking applications for the <a href="https://vibecodelisboa.com/build-school">next cohort here</a>. </p>]]></content:encoded></item><item><title><![CDATA[Behalf.bot Is Now Open Source]]></title><description><![CDATA[Behalf.bot - the autonomous Claude Code harness I've been building since February - is now publicly-available at github.com/scrollinondubs/behalfbot.]]></description><link>https://blog.vibecodelisboa.com/p/behalfbot-is-now-open-source</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/behalfbot-is-now-open-source</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Wed, 03 Jun 2026 16:21:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wjtE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Excited to announce that the entire codebase for <a href="https://behalf.bot/">Behalf.bot</a> is now freely-available under the OSaasy.dev license <a href="https://github.com/scrollinondubs/behalfbot">here</a>. </p><h3>What is Behalf.bot? </h3><p>It&#8217;s basically a more capable <a href="https://openclaw.ai/">Open Claw</a> that can legally run under a Claude Max subscription so you have it for a monthly fixed cost with an incredibly capable model powering it. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wjtE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wjtE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 424w, https://substackcdn.com/image/fetch/$s_!wjtE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 848w, https://substackcdn.com/image/fetch/$s_!wjtE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!wjtE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wjtE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png" width="1456" height="815" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f94d0df5-48da-4302-a912-a5028273317a_2044x1144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:815,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1060615,&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://scrollinondubs.substack.com/i/200470143?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.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_!wjtE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 424w, https://substackcdn.com/image/fetch/$s_!wjtE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 848w, https://substackcdn.com/image/fetch/$s_!wjtE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!wjtE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d0df5-48da-4302-a912-a5028273317a_2044x1144.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The story behind it</h3><p>Back in early February I setup <a href="https://openclaw.ai/">Open Claw</a> and tinkered for about a month but it was like the <a href="https://www.youtube.com/watch?v=J1gol0HwAXM">main character from Memento</a> - incapable of performing any kind of ongoing work that involved multi-step tasks. Anytime I could get it do something useful it would wake up the next day like an amnesiac oblivious to what we had done. I&#8217;d spec out a skill to compose a morning briefing and one day it&#8217;d be in HTML format with all the desired sections and the following day it was in markdown format with completely different sections and content&#8230; even the simplest templated jobs couldn&#8217;t be replicated reliably - very frustrating. </p><p>Rather than give up though on the vision of having a capable virtual assistant agent I played a hunch that Claude Code itself could become a capable harness for an assistant. Anthropic had just announced their new <a href="https://code.claude.com/docs/en/channels">channels feature</a> which made it possible to use chat apps like Discord, Telegram and WhatsApp to interface with it. </p><p>Fast forward three months and Behalf.bot has evolved to become an essential employee for me. Just some of the things my agent Jax does for me daily: </p><ul><li><p>Content marketing (research, revisions, social promotion) </p></li><li><p>Morning briefings (aggregate info from multiple sources) </p></li><li><p>Quantified-self tracking &amp; advisement (workouts, macros, sleep, runs)</p></li><li><p>Dating profile automation (concierge full-serve handles chatting up people and setting coffees) </p></li><li><p>Customer service and billing for Vibecode Lisboa </p></li><li><p>Multi-modal interaction (voice in/out &amp; collab via the reMarkable tablet)</p></li><li><p>Claude Pulse self-improvement (auto finds ways to make itself better) </p></li><li><p>Autonomous software engineering (builds apps and landing pages end-to-end with just voice direction) </p></li><li><p>Midnight Oil (autonomously ships PRs overnight)</p></li></ul><p>You can see demonstrations of these in the video below where I unveiled this at our last user group meeting: </p><div id="youtube2-UneiNkMhoLQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;UneiNkMhoLQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/UneiNkMhoLQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h3>Why this all matters</h3><p>The world of work is rapidly evolving. Some activities and roles are being commoditized while other new opportunities are blossoming from agentic AI. We are still incredibly early in the game but now is the time to roll your sleeves up and get dirty with this suff to learn how it works. </p><p>Pick a fun idea as a side project and see if you can accomplish what you&#8217;re imagining using an agent like Behalf.bot. This is all just practice and gives you early first-hand exposure to agentic engineering which is the only way to learn. You don&#8217;t learn to surf by reading a book about it - you learn by getting in the water and trying to ride waves. It&#8217;s no different with this stuff. </p><h3>What&#8217;s next </h3><p>You can download the entire codebase <a href="https://github.com/scrollinondubs/behalfbot">here</a>. I&#8217;ve also created a fully-managed whiteglove install option that&#8217;s available for purchase on <a href="https://behalf.bot/">Behalf.bot</a> for &#8364;250. </p><p>We&#8217;re just finishing Cohort 4 for <a href="https://vibecodelisboa.com/build-school">Build School</a>. Cohort 5 will be completely restructured around using Behalf.bot to do fully-agentic software development as well as marketing, sales, customer service and other functions of whatever side hustle you&#8217;re intending to start. If you want to be part of that next group <a href="https://vibecodelisboa.com/community">join the Vibecode Lisboa communit</a>y and stay tuned for the announcement once dates are locked down for Cohort 5. </p><p>There has never been a better time to start tinkering with agentic AI. Watch the video above to see what it can do and star the repo on Github to follow along as this project evolves. </p>]]></content:encoded></item><item><title><![CDATA[What the Naysayers of Vibe Coding Are Getting Wrong]]></title><description><![CDATA[We're witnessing a rapid unbundling of the science and art of software engineering. Some people are capitalizing on it and others are crying about it. We've seen this movie before...]]></description><link>https://blog.vibecodelisboa.com/p/what-the-naysayers-of-vibe-coding</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/what-the-naysayers-of-vibe-coding</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Sat, 09 May 2026 13:39:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m0AM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The brick layers are angry again. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m0AM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m0AM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!m0AM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!m0AM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!m0AM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m0AM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg" width="800" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79209,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/197006690?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m0AM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!m0AM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!m0AM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!m0AM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44bc24e-2738-4c5f-a2c8-6fbee9af1441_800x533.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When someone spends two decades learning to write production-grade code by hand and then watches a non-engineer ship a working product in a weekend with English prompts, it&#8217;s understandable why the reaction is to lash out. The pushback takes a familiar shape: vibe-coded apps are buggy, insecure, unmaintainable, unscaleable. </p><p>We have run this play before. Twice that I can remember, and both times the people in front of the curve got called clowns by the people behind it.</p><h2>ColdFusion, 1998</h2><p>I started my career building web applications in ColdFusion. ColdFusion was a tag-based language. You wrote it like HTML with a few extra verbs. If you could write &lt;table&gt;&#8203;, you could write &lt;cfquery&gt;&#8203;. Bolt a database to a website without learning CGI or Perl or anything that had a real syntax tree. The learning curve from a static HTML page to a real dynamic application was measured in days.</p><p>The CS-trained developers hated it. They had spent years on pointers, memory, threading models, build systems... ColdFusion let laypeople who hadn&#8217;t done any of that ship working web apps. The criticism was identical to today&#8217;s vibe-coding pile-on: the code is sloppy, the apps don&#8217;t scale, the security model is whatever the developer happened to think about that morning.</p><p>And some of that was on point. ColdFusion apps did get hacked. They didn&#8217;t always scale. There were sloppy ones because the bar had been lowered for who could write applications.</p><p>But net net the pie exploded. A whole generation of people with deep domain expertise and zero CS background suddenly had a way to build the application their job needed. Real estate agents, lawyers, school administrators, small-business owners. Software that never would have been written before now existed, served real people, and eventually needed real engineers to harden it once it mattered. The &#8220;bad apps&#8221; complaint was the visible cost. The invisible win was a much bigger software ecosystem.</p><h2>Twitter, 2007</h2><p>Then we ran the playbook again.</p><p>Twitter launched on Ruby on Rails because Rails was what let two guys ship a working SMS-to-web service in two weeks. SXSW 2007 took it from 20,000 daily messages to 60,000 overnight. By 2008 the Fail Whale was a weekly regular occurrance. Eighty-four hours of downtime were logged that year. TechCrunch ran a piece literally titled &#8220;<em>Twitter Said to Be Abandoning Ruby on Rails.</em>&#8221; A Hacker News thread from May 2008 called the dev team &#8220;<em>the biggest jackasses in history</em>&#8221; for not having written it in Java or C++ from day one.</p><p>The critics weren&#8217;t altogether wrong in their criticism that Rails wasn&#8217;t ideal at Twitter&#8217;s eventual scale. But they were also completely missing the point.</p><p>If Twitter had been written in C++ from the start, there would have been no Twitter. The team would never have iterated fast enough to find product-market fit. The scaling problems happened because they shipped fast and people loved the thing. That&#8217;s the good problem. We should all be so lucky as to build something that generates such incredible demand that it has the fortunate problem of encountering scaling issues.</p><p>DHH put it best on Lex Friedman: Twitter was &#8220;<em>the best advertisement ever for Rails... because nothing happened for 10 years after they switched over.</em>&#8221; The eventual rewrite to Scala didn&#8217;t unlock new product innovation. It just shored up what Rails had enabled them to unearth and establish product-wise. </p><p>A single Twitter dev ported the message queue to Scala in his spare time and turned a 2.5-hour processing backlog into 20 seconds. That&#8217;s the punchline. The &#8220;wrong tool&#8221; was right enough to keep Twitter alive long enough for one engineer&#8217;s spare-time project to become the fix.</p><h2>The Pattern</h2><p>Both times, the priesthood got angry that someone had moved their cheese.</p><p>Both times, the bar lowered because a new tool let people who weren&#8217;t in the priesthood ship working software. Both times, the early output had real flaws. And both times, those flaws were the visible, narratable cost. <strong>The invisible benefit was a permanent expansion of who got to build</strong>.</p><p>Vibe coding is the third turn of this same wheel. People with deep domain expertise but no CS background can now build the application their work needs. Some of those apps will be buggy. Some will leak data. Some will fail. None of that contradicts the bigger point. The surface area of buildable software just got dramatically bigger. The amount of useful software in the world goes up. <strong>And with all this new surface area the amount of work for actual engineers (to harden, refactor, architect, secure) goes up too, not down.</strong></p><h2>What&#8217;s actually left for engineers</h2><p>Software engineering was never just code. It was code-writing plus architecture, taste, customer-extraction, judgment, the ability to look at a half-formed business idea and know which technical decisions you&#8217;ll regret in two years.</p><p>The code-writing piece is what got commoditized. A model can do bricklaying better than I can now. It cannot, yet, sit across from a customer and figure out what they truly need and translate that into a system that won&#8217;t fall over in eighteen months.</p><p>The profession of software engineering is evolving, not disappearing. </p><p>It&#8217;s just decoupling the brick-laying (science) from the architectural aspects (the art). Brick-laying is commoditized and solved at this point. But if anything the artful aspects are ever more in demand. </p><p>The engineers who are mad about this decoupling are mad because part of their job got easier and they&#8217;re worried their craft is now on the chopping block and will be valued less. The reverse is true. The architects, the taste-havers, the customer-whisperers, their work just became more leveraged. One good engineer can now own decisions that used to require five.</p><p>Adapt or cling to what once was. We&#8217;re witnessing a Darwinian transition in progress. The people who embrace the evolution of the craft are positioning themselves to capitalize on this disruption. The ones who spend the next year writing angry comments under HN threads are going to be replaced by the people they&#8217;re calling clowns.</p><h2>We should be so lucky</h2><p>The real risk isn&#8217;t building something that doesn&#8217;t scale.</p><p>It&#8217;s building nothing at all.</p><p>If a non-engineer vibe-codes an app that gets traction, generates revenue, creates real value for real people, then yes, they will eventually need to hire engineers to harden it. That is the good problem. That is the problem every founder I know would trade their morning coffee for. The gatekeeping impulse (you shouldn&#8217;t build software unless you can do it &#8220;properly&#8221;) is the same impulse that told Twitter to use Java in 2007 and ColdFusion users to learn Perl in 1996. Both times it was wrong. This time is no different.</p><p>This is the work, by the way. <a href="https://vibecodelisboa.com/">Vibecode Lisboa</a>, <a href="https://vibecodelisboa.com/build-school">Build School</a>, <a href="https://vibecodelisboa.com/confabulator/">Confabulator</a>. This is exactly what we help people do. Take an idea, get it to a working prototype, ship it to real users, find out if it matters. The next great applications are going to come from people who weren&#8217;t supposed to be in the room.</p><p>The bricklayers can keep grumbling. The pie keeps growing.</p><div><hr></div><h2>Sources</h2><ul><li><p><a href="https://business.time.com/2013/11/06/how-twitter-slayed-the-fail-whale/">How Twitter Slayed the Fail Whale (Time, 2013)</a> - definitive retrospective on the scaling journey</p></li><li><p><a href="https://techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-on-rails/">Twitter Said To Be Abandoning Ruby on Rails (TechCrunch, 2008)</a> - peak of the Rails criticism</p></li><li><p><a href="https://www.sitepoint.com/did-rails-sink-twitter/">Did Rails Sink Twitter? (SitePoint)</a> - good analysis concluding it was architecture, not language</p></li><li><p><a href="https://www.zdnet.com/article/twitter-clears-ruby-on-rails-on-scaling-wrongdoing/">Twitter Clears Ruby on Rails on Scaling (ZDNet)</a> - Twitter&#8217;s own defense of Rails</p></li><li><p><a href="https://lexfridman.com/dhh-david-heinemeier-hansson-transcript/">DHH on Lex Fridman</a> - &#8220;nothing happened for 10 years after they switched&#8221;</p></li><li><p><a href="http://highscalability.com/blog/2009/6/27/scaling-twitter-making-twitter-10000-percent-faster.html">Scaling Twitter: Making Twitter 10000% Faster (High Scalability)</a> - the technical details</p></li><li><p><a href="https://news.ycombinator.com/item?id=178917">HN thread on Twitter/Rails (2008)</a> - raw developer sentiment at the time</p></li><li><p><a href="https://www.theatlantic.com/technology/archive/2015/01/the-story-behind-twitters-fail-whale/384313/">The Story Behind Twitter&#8217;s Fail Whale (The Atlantic, 2015)</a> - origin of the icon</p></li><li><p><a href="https://en.wikipedia.org/wiki/Adobe_ColdFusion">ColdFusion (Wikipedia)</a> - history of Allaire&#8217;s tag-based language and its market role</p></li><li><p><a href="https://en.wikipedia.org/wiki/Jeremy_Allaire">Jeremy Allaire (Wikipedia)</a> - same person, ColdFusion to Circle/USDC</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Not Yet ;-) 30 Lessons to Juice Your Agent]]></title><description><![CDATA[I've been working since early March to create the ultimate personal assistant. I now have an agent 10x more capable than Open Claw. Here are the patterns and lessons learned in that building process.]]></description><link>https://blog.vibecodelisboa.com/p/not-yet-30-lessons-to-juice-your</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/not-yet-30-lessons-to-juice-your</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Thu, 30 Apr 2026 11:09:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pTut!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Remember the scene from the movie &#8220;The Matrix&#8221; when Trinity is atop the roof and needs to immediately learn how to fly a helicopter? Neo asks, &#8220;<em>can you fly that thing?</em>&#8221; And she smirks &#8220;<em>&#8230;not yet</em>&#8221; and then calls to Tank via her headset who sends her a training program over the air that instantly gives her the skills necessary to fly.</p><div id="youtube2-SoAk7zBTrvo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;SoAk7zBTrvo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/SoAk7zBTrvo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>One of the many epic and mind-blowing things about working with agents and AI is that this paradigm that was fantasy 20 years ago is now real today. Our agents can instantly assimilate bottled experience in the form of skills that are just markdown files of procedural instructions which give them new capabilities as if they had trained a lifetime to develop them. </p><p>In this post I&#8217;ve distilled two months worth of lessons from building my personal assistant Jax from the ground up using Claude Code as the harness. You can find <a href="https://vibecodelisboa.com/events/how-to-replace-your-open-claw-with-claude-code">the talk I did last month</a> demo&#8217;ing some of its capabilities and how I use it day-to-day. Jax has become indispensable to how I work and live at this point. It&#8217;s assisting me in realms of business, health, social life and handling minutiae so can be more strategic in my daily life. </p><h2>Why now</h2><p>Tomorrow is <a href="https://www.agentsday.org/">AgentsDay in Lisbon</a> and my buddy <a href="https://marcjohnson.xyz/">Marc</a> and I are going to hack on an idea for making prediction markets more agent-friendly. In advance of that event I figured it might be helpful for the participants to have a &#8220;training program&#8221; they can  inject into their agent to get the benefit of what I&#8217;ve learned over the past two months in building mine. Some of these are specific to my unique situation but most are universally applicable to anyone attempting to setup their own decidedly-not-Open-Claw personal assistant agent. This is purely an index of the lessons - the expanded version with all the detail on each is available via this talk the access to which requires either a Vibecode Lisboa subscription or purchasing a content license to <a href="https://vibecodelisboa.com/events/how-to-replace-your-open-claw-with-claude-code">the talk</a>. Once you have them though you can just say: &#8220;<em>Please review the lessons from this blog post and incorporate the ones that make sense given our objectives and scenario into our own setup.</em>&#8221; </p><p>Wild times.</p><p>Without further ado, here is the index of all the lessons having Claude Code reflect and examine our entire working history over the past two months to extract the key places where we went off the rails or down an unfruitful rabbit hole. Note these lessons apply for the scenario of building an Open Claw replacement using Claude Code as the harness on a Mac Mini. I&#8217;m using N8n as helpful duct tape and deploy some helper apps to Vercel and Google Cloud. </p><h2>The 30 Lessons </h2><ol><li><p>The platform features you think you need, you don&#8217;t.</p></li><li><p>tmux is the seatbelt of every headless agent setup.</p></li><li><p>OAuth tokens expire ~8 hours headless and you don&#8217;t fight that, you build around it.</p></li><li><p>Discord-channel mode is incompatible with auto-mode today, period.</p></li><li><p>When official APIs hit a permission wall, Playwright against the logged-in browser is the answer.</p></li><li><p>Treat the AI like an employee with its own accounts, graduated trust, and hard limits.</p></li><li><p>Gather first, prompt second &#8212; let cheap shell scripts decide whether the model gets to run.</p></li><li><p>Issuing /clear&#8203; over Discord kills the channel pairing &#8212; context resets aren&#8217;t scoped to the conversation.</p></li><li><p>Pre-emptively respawn Claude Code on a schedule, don&#8217;t wait for it to fail.</p></li><li><p>For apps with no web interface, an Android emulator plus UI Automator XML dumps is the universal escape hatch.</p></li><li><p>Scheduled features can be fully scaffolded and still dead if not registered in the dispatcher config.</p></li><li><p>Auto-throttles need new-block auto-lift, not just high-usage auto-enable.</p></li><li><p>Sharing destructive-read state between two heartbeats is a race waiting to happen.</p></li><li><p>Merge-conflict markers in a JSON config silently break every consumer.</p></li><li><p>&#8203;gh issue list --label &#8220;a,b&#8221;&#8203; requires BOTH labels (AND semantics), not &#8220;either&#8221; (OR).</p></li><li><p>UserPromptSubmit hooks don&#8217;t fire on Discord-channel inbound messages.</p></li><li><p>Vercel Deployment Protection silently breaks automated Playwright testing against preview URLs.</p></li><li><p>Google Workspace primary-domain flip does NOT auto-rename users.</p></li><li><p>DKIM record values get chunked by DNS hosts into 255-char quoted strings.</p></li><li><p>The dispatcher gather script is the right place for expensive checks to no-op cheaply.</p></li><li><p>Adding &#8220;negative references&#8221; to a similarity-based scorer can collapse scores to zero.</p></li><li><p>n8n&#8217;s splitInBatches&#8203; iterates over INPUT items, not nested array fields.</p></li><li><p>Webhooks that send email need to persist the returned Gmail threadId&#8203; immediately after send.</p></li><li><p>When testing an auto-picker, the trigger conditions matter more than the query logic.</p></li><li><p>Three failure patterns recur: silent dormancy, subtraction-or-race collapse, implicit assumptions about API behavior.</p></li><li><p>LaunchAgents pause without a logged-in user; LaunchDaemons survive reboots.</p></li><li><p>Substring-grep guardrails false-positive on documentation inside heredocs.</p></li><li><p>What matters for behavior is what&#8217;s on disk, not in the merge log.</p></li><li><p>Single-tool reverse-image search false-positives in noisy domains &#8212; triangulate before you act.</p></li><li><p>&#8220;The agent can read everything&#8221; doesn&#8217;t scale ethically &#8212; privacy boundaries are surface-specific.</p></li></ol><p>To get the expanded version of this list to feed to your agent with all the granular nitty-gritty detail that can juice up your agent, you&#8217;ll need to purchase <a href="https://vibecodelisboa.com/resources/bundle_5fc589eec28036bfb7e80d2c">this resource bundle </a>or buy a <a href="https://vibecodelisboa.com/pricing">subscription to Vibeode Lisboa</a>. </p><p>And if you want to get on the waitlist to have your own Jax, I&#8217;m distilling the chasis of my agent into <a href="https://behalf.bot/">Behalf.bot</a> - a bootstrappable, customizeable version that anyone can deploy for themselves. It leverages <a href="https://x.com/karpathy/status/2040470801506541998">Karpathy&#8217;s idea file</a> concept to combine the core pieces of my repo with the custom bits you specify in an interview to give you a bespoke virtual assistant agent that functions at an insanely competent level. Look for that next month and follow this substack to get the announcement. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pTut!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pTut!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 424w, https://substackcdn.com/image/fetch/$s_!pTut!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 848w, https://substackcdn.com/image/fetch/$s_!pTut!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 1272w, https://substackcdn.com/image/fetch/$s_!pTut!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pTut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png" width="1456" height="750" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:750,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1891726,&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://scrollinondubs.substack.com/i/195976188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.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_!pTut!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 424w, https://substackcdn.com/image/fetch/$s_!pTut!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 848w, https://substackcdn.com/image/fetch/$s_!pTut!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 1272w, https://substackcdn.com/image/fetch/$s_!pTut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e2098cc-5792-4856-a6e6-14097ef1c825_2090x1076.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[You can now attend Build School remotely]]></title><description><![CDATA[Cohort 3 just graduated. Cohort 4 starts May 4th. And for the first time you don&#8217;t have to be in Lisbon to participate.]]></description><link>https://blog.vibecodelisboa.com/p/you-can-now-attend-build-school-remotely</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/you-can-now-attend-build-school-remotely</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Fri, 24 Apr 2026 14:06:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oykS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp" 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://vibecodelisboa.com/build-school" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oykS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!oykS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!oykS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!oykS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oykS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2197692,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://vibecodelisboa.com/build-school&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/195350607?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oykS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!oykS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!oykS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!oykS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cadbc0f-b3f5-4482-95b8-7d7744b0aed2_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We just ran seven non-technical people through a month of learning how to build apps with AI. All seven shipped working apps some already with traction.</p><p>But here is the kicker for Cohort 4: eight of the sixteen seats are now entirely remote.</p><h3>Why this matters</h3><p>IBM laid off 8,000 people earlier this year to replace them with AI agents. Intel: 21,000. Microsoft: 15,000. Here are some of the more striking moves with companies signaling or even explicitly stating they&#8217;re going AI-first:</p><h5>Block (Jack Dorsey) - Feb 27, 2026 - ~40% of workforce cut, AI-attributed</h5><p>Cut 4,000+ of 10,000+ employees. Dorsey&#8217;s shareholder letter: &#8220;<em>the intelligence tools we&#8217;re creating and using, paired with smaller and flatter teams, are enabling a new way of working which fundamentally changes what it means to build and run a company.</em>&#8221; Stock jumped ~22-24% on the announcement. Dorsey followed with: &#8220;<em>Within the next year, I believe the majority of companies will reach the same conclusion and make similar structural changes.</em>&#8221;</p><ul><li><p><a href="https://www.bbc.com/news/articles/cq570d12y9do">BBC: Jack Dorsey&#8217;s Block cuts thousands of jobs as it embraces AI</a></p></li><li><p><a href="https://www.forbes.com/sites/digital-assets/2026/02/27/jack-dorsey-bets-blocks-future-on-ai-cuts-nearly-half-its-workforce/">Forbes: Jack Dorsey Bets Block&#8217;s Future On AI, Cuts Nearly Half Its Workforce</a></p></li><li><p><a href="https://fortune.com/2026/02/27/jack-dorsey-block-40-percent-layoff-ai-intelligence-tools-smaller-team/">Fortune: Intelligence tools have changed what it means to build and run a company</a></p></li><li><p><a href="https://x.com/jack/status/2027129697092731343">Jack&#8217;s X post</a></p></li></ul><h5>Shopify (Tobi L&#252;tke) - March 20, 2025 - prove AI can&#8217;t do it before you hire</h5><p>Leaked-then-shared internal memo: &#8220;<em>Reflexive AI usage is now a baseline expectation at Shopify</em>.&#8221; Core hiring policy change: &#8220;<em>Before asking for more headcount and resources, teams must demonstrate why they cannot get what they want done using AI.</em>&#8221; </p><ul><li><p><a href="https://www.cnbc.com/2025/04/07/shopify-ceo-prove-ai-cant-do-jobs-before-asking-for-more-headcount.html">CNBC: Shopify CEO: Prove AI can&#8217;t do jobs before asking for more headcount</a></p></li><li><p><a href="https://www.theverge.com/news/644943/shopify-ceo-memo-ai-hires-job">The Verge: Shopify CEO says no new hires without proof AI can&#8217;t do the job</a></p></li><li><p><a href="https://www.businessinsider.com/shopify-ceo-tobi-lutke-employees-prove-ai-job-2025-4">Business Insider: Before hiring anyone new, employees must prove AI can&#8217;t do the job better</a></p></li></ul><h5>Zapier (Wade Foster) &#8212; 2025 &#8212; 100% AI fluency required for new hires</h5><p>Foster made AI fluency a hiring requirement across every role at Zapier, published a four-tier rubric (Unacceptable / Acceptable / Adaptive / Transformative), and ran a company-wide hackathon that took internal AI usage from ~10% to 97%. </p><ul><li><p><a href="https://www.linkedin.com/posts/daanvanrossum_zapier-ceo-wade-foster-said-yesterday-that-activity-7335991162689740801--2YX">LinkedIn (primary-quote post by Daan van Rossum): &#8220;100% of new hires must be fluent in AI&#8221;</a></p></li><li><p><a href="https://gtmnow.com/gtm-185-zapier-ceo-ai-adoption-hackathon-playbook/">GTMnow podcast with Claire Vo: How one hackathon took Zapier&#8217;s AI usage from 10% to 97%</a></p></li></ul><h5>Duolingo (Luis von Ahn) - April 2025 - &#8220;AI-first,&#8221; contractors phased out</h5><p>Duolingo announces it will stop using contractors for tasks AI could handle (content creation + translation specifically), and tie AI usage to both hiring and performance reviews. Analogy Von Ahn drew: &#8220;<em>We&#8217;re making a similar call now, and this time the platform shift is AI.</em>&#8221; </p><ul><li><p><a href="https://www.computing.co.uk/news/2025/ai/duolingo-goes-ai-first-as-it-phases-out-human-contractors">Computing: Duolingo goes &#8216;AI first&#8217; as it phases out human contractors</a></p></li><li><p><a href="https://www.usatoday.com/story/tech/news/2025/04/30/duolingo-ai-first-contract-workers-replaced/83366078007/">USA Today: Duolingo going &#8216;AI-first&#8217;, replacing contractors with artificial intelligence</a></p></li></ul><h5>Klarna (Sebastian Siemiatkowski) &#8212; Feb 2024 &#8594; 2026 &#8212; replaced 700 CS workers with AI</h5><p>Klarna replaced 700 customer service agents with AI in Feb 2024 and initially claimed major wins (2-minute resolution vs 11-minute human baseline). CEO later (2025-2026) said AI had &#8220;<em>halved the workforce without layoffs</em>&#8221; via attrition + hire-freeze. </p><ul><li><p><a href="https://www.independent.co.uk/news/business/klarna-ceo-sebastian-siemiatkowski-ai-job-cuts-hiring-b2755580.html">The Independent: Klarna&#8217;s AI replaced 700 workers. It now wants some back</a></p></li><li><p><a href="https://www.digitalapplied.com/blog/klarna-reverses-ai-layoffs-replacing-700-workers-backfired">Digital Applied: Klarna Reverses AI Layoffs</a></p></li></ul><p>Basically you can stick your head in the sand or you can spend four weeks with a cohort of people who are all recognizing the profound moment we&#8217;re in and treating it like the industrial revolution shakeup that it is. </p><h3>The good news: Cohort 4 welcomes you wherever you are</h3><p>Same curriculum, same office hours, same Demo Night - just joining from wherever you are. The tools and methods taught are all remote-friendly.</p><p>Bonus: Agentic design. This cohort I&#8217;m teaching the same pattern I used to build Jax, my AI assistant who handles my customer support, outreach, devops, assists with content promotion and of course, engineers new features.</p><p>Cohort 4&#8217;s curriculum. Four Friday coworks, nine office hours, a kickoff, a Demo Night. You have an MVP launched and in-market by the end of the 30 days but most importantly you have <strong>the skills and experience to build whatever you need going forward</strong>.</p><h3>The schedule</h3><ul><li><p>Kickoff: Monday May 4, 18:00 Lisbon </p></li><li><p>Four-week sprint: two office hours per week, Friday coworks</p></li><li><p>Demo Night: Saturday June 6 at Tribe Social Club (+ live stream for the remote cohort)</p></li><li><p>Price: &#8364;498. </p></li></ul><h3>How to apply</h3><p><a href="https://vibecodelisboa.com/build-school/apply">Apply here</a>. </p><p>2min to fill out the application. If you are a fit, funds capture, you&#8217;re approved and you&#8217;re in.</p><h3>One more thing: Cohort 3 Demo Night is next Wednesday</h3><p>We are going to try to live-stream it this time, for people considering Cohort 4 who cannot make it to Lisbon. This is our first time live streaming so this is one big experiment but it will be available here <a href="https://vibecodelisboa.com/live">vibecodelisboa.com/live</a></p><p>Watch talks from the seven amazing participants of Cohort 3 as they share their creations and the lessons they learned in the process of building them.</p><p>If you&#8217;re based in Lisbon come join us in-person <a href="https://vibecodelisboa.com/events/build-school-demo-night-cohort-3">here</a>. </p><p>I will teach you how to thrive and not just survive in the coming storm. It&#8217;s not scary once you learn how to work with this stuff but the time to begin playing with these tools is today, not next year. <strong><a href="https://vibecodelisboa.com/build-school">Apply for Build School today</a></strong>. </p><p>I look forward to meeting you. </p><p>Sean</p>]]></content:encoded></item><item><title><![CDATA[Software is having babies now]]></title><description><![CDATA[Andrej Karpathy dropped a gist the other week that got 16 million views and Jack Dorsey's endorsement. It's called an "idea file" and it's a completely new way of distributing software.]]></description><link>https://blog.vibecodelisboa.com/p/software-is-having-babies-now</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/software-is-having-babies-now</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Tue, 14 Apr 2026 16:46:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sFTy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f">The gist</a>: instead of shipping an installer for an app with a fixed codebase - same binary, same experience, same constraints for everyone - you ship a <em>description of what the software should do</em>. An AI agent reads that <em>set of suggestions</em> and builds a custom app based on your situation, namely your goals, infrastructure &amp; constraints.</p><p>You can think of it like an architect shipping a conceptual blueprint for a house with aspects that are open to interpretation by the builder. The builder comes briefed on the  buyer&#8217;s wants &amp; needs and puts his spin on the architect&#8217;s original plan to create a bespoke house for the client. </p><h3>The old model of parameterizing settings of a cloned codebase</h3><p>Every piece of software you&#8217;ve ever installed was a clone. Same installer, same binary, same app. Maybe you tweak some config settings, pick a theme, toggle a few preferences. But underneath, it&#8217;s the same code base running on every machine and simply adjusting parameters to yield a slightly-modified variant of the experience to the user.</p><p>That made sense when humans had to write every line of code. Write once, ship it to millions. Economies of scale. </p><p>The equation changes here though when the cost of writing custom software approaches zero with agentic coding platforms. </p><h3>A sufficiently well thought-out idea file is the ultimate installer</h3><p>Karpathy&#8217;s proposal: what if instead of shipping the building, you ship a blueprint that&#8217;s open to interpretation by the consumer? Not even a detailed blueprint - more like an architectural philosophy. &#8220;<em>Here&#8217;s what this system should do, here&#8217;s how it should be structured, here are the constraints</em>.&#8221;</p><p>Then an AI agent - Claude Code, Codex, whatever you&#8217;re using - reads that spec and builds it fresh and builds it just for you. It factors in your existing tools, your preferences, your technical context, your actual needs.</p><h3>Software 2.0 looks more like sexual reproduction</h3><p>Maybe a better analogy for what Karpathy is proposing is not blueprints and buildings but more about cloning vs sexual reproduction from two parents. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sFTy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sFTy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sFTy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sFTy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sFTy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!sFTy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg" width="800" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92224,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/194198155?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sFTy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sFTy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sFTy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sFTy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1ffea30-4420-4a96-b628-ab0c7b5f40b4_800x533.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The software provider contributes one set of chromosomes - the specification. The goals, the architecture, the patterns, the constraints.</p><p>The consumer contributes the other set - their unique context. Their existing infrastructure. Their preferences. Their specific problem. Their resources.</p><p>What comes out is a software baby conceived uniquely from the ground up that carries the DNA of both parents but is identical to neither. And just like actual offspring, it&#8217;s a better fit for its environment than either parent would produce alone.</p><p>Every &#8220;install&#8221; is non-deterministic and produces something different that&#8217;s uniquely yours and adapted to your scenario.</p><h3>We&#8217;re already doing this at Vibecode Lisboa</h3><p>We&#8217;ve been doing a version of this at Vibecode Lisboa with the <a href="https://vibecodelisboa.com/confabulator">Confabulator tool</a>.</p><p>When a student goes through the Confabulator, they describe their project in plain English. The tool takes that description - their chromosomes - and combines it with our template architecture - our chromosomes - and produces a unique GitHub repo. Same idea file. Different user DNA. Different software baby every time.</p><p><a href="https://benlakoff.com/">Ben</a>, a non-technical student in Build School Cohort 2, used the Confabulator and had a deployed <a href="https://www.macrodigest.xyz/">micro-SaaS for investors</a> in two days. His app looked nothing like the app I built the same weekend (<a href="https://prep.training/">Prep.Training</a>) using Confabulator. Same tool, same birthing process, completely different output because our unique inputs shaped the result.</p><h3>Why this matters for you</h3><p>If you&#8217;re building software: think about whether your distribution model should shift. Instead of shipping apps, maybe you ship idea files. Let the user&#8217;s agent build what they actually need.</p><p>If you&#8217;re a non-coder: this is the future getting closer to you. The gap between &#8220;<em>install this app that kind of does what I want so I&#8217;ll accept the tradeoffs</em>&#8221; and &#8220;<em>describe exactly what you need and an agent builds it</em>&#8221; is closing fast.</p><p>If you&#8217;re somewhere in between: this is why learning to work with AI agents matters. The person who can clearly articulate what they need and mesh that with a promising idea file is the person who can generate custom software that fits like a glove. The person who can&#8217;t is still tracking down installers and settling for shoe-horning his/her business into a shoe that knowingly doesn&#8217;t fit right.</p><h3>Where do we go from here</h3><p>We are living in the future. The software you use tomorrow might share DNA with a million other installations but be genetically unique to you. Karpathy sees it. Dorsey sees it. The 16 million people who viewed his tweet see it.</p><p>If you&#8217;re shipping software consider distilling the essence of your application to an idea file that your consumers can give to their agent to birth the perfect app for their needs.</p><p>And if you&#8217;re a non-technical user seeking to wade into these waters and test this stuff out, take five minutes and create <a href="https://vibecodelisboa.com/confabulator">your first Confabulator project</a> and experience this new &#8220;software birthing&#8221; process first-hand. </p>]]></content:encoded></item><item><title><![CDATA[Anthropic lays the smack down on Open Claw users]]></title><description><![CDATA[Anthropic just officially closed a loophole people have been exploiting to run their Open Claw via subscription pricing. I'll show you how to make Claude Code your agent.]]></description><link>https://blog.vibecodelisboa.com/p/anthropic-lays-the-smack-down-on</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/anthropic-lays-the-smack-down-on</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Sat, 04 Apr 2026 19:51:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8df5c8cd-ef6f-4a32-b90e-ba749990dc91_1381x884.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Half of the Open Claw users I talk to are  running their Open Claw instance using their Anthropic Max subscription via an OAuth loophole to avoid paying per-token API costs. It&#8217;s technically against Anthropic&#8217;s terms of service. Everyone knows it and has been hoping they can continue skating under the radar undetected. </p><p>Today Anthropic finally issued this ultimatum that confirms they are officially closing this loophole:<br></p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/bcherny/status/2040206440556826908&quot;,&quot;full_text&quot;:&quot;Starting tomorrow at 12pm PT, Claude subscriptions will no longer cover usage on third-party tools like OpenClaw.\n\nYou can still use these tools with your Claude login via extra usage bundles (now available at a discount), or with a Claude API key.&quot;,&quot;username&quot;:&quot;bcherny&quot;,&quot;name&quot;:&quot;Boris Cherny&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1902044548936953856/J2jeik0t_normal.jpg&quot;,&quot;date&quot;:&quot;2026-04-03T23:14:55.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:1570,&quot;retweet_count&quot;:628,&quot;like_count&quot;:7687,&quot;impression_count&quot;:4118353,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:false}" data-component-name="Twitter2ToDOM"></div><p>They&#8217;re now actively blocking third-party harnesses from using subscription tokens. <a href="https://news.ycombinator.com/item?id=47633396">This thread on Hacker News</a> is hovering just under 1000 points and 700+ comments in hours. The community is furious. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iIme!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iIme!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 424w, https://substackcdn.com/image/fetch/$s_!iIme!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 848w, https://substackcdn.com/image/fetch/$s_!iIme!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 1272w, https://substackcdn.com/image/fetch/$s_!iIme!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iIme!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png" width="1210" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1210,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:368524,&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://scrollinondubs.substack.com/i/193198894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.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_!iIme!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 424w, https://substackcdn.com/image/fetch/$s_!iIme!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 848w, https://substackcdn.com/image/fetch/$s_!iIme!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 1272w, https://substackcdn.com/image/fetch/$s_!iIme!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1d61fc-a666-42e2-b00c-57a2a4975249_1210x764.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I don&#8217;t blame Anthropic for this move at all. Any subscription model relies on some level of breakage and a vast majority of users not consuming more than their subscription is worth. Open Claw as an always-on, proactive, autonomous agent is throwing the curve, breaking their subscription economics and they know it. So they&#8217;re doing the rational response here. </p><p>If you&#8217;ve been running Opus through Open Claw on your Max plan, the math just changed dramatically. </p><p>Your options now:</p><ol><li><p>Switch to API billing. Variable costs. Horror stories of $200+ inference bills from runaway agent loops are no longer hypothetical - they&#8217;re your new reality.</p></li><li><p>Downgrade to a lesser model that fits within whatever free tier you can cobble together. Good luck getting meaningful work done reliably.</p></li><li><p>Give up on the whole autonomous agent idea.</p></li></ol><p>None of those are great paths.</p><p>I went through all of this already last month. I spent 30 days and 40+ hours trying to make Open Claw work for me. Tried every model. Local models on my Mac Mini weren&#8217;t powerful enough. Frontier models meant runaway costs because you have one runaway heartbeat checking snafu that eats up a bunch of tokens and don&#8217;t realize it until it&#8217;s too late. The memory was broken. The context kept falling apart. It couldn&#8217;t even parse my RSS feed to figure out my writing voice - a task that Claude Code handles trivially.</p><p>So I went a different direction.</p><p>I know from experience Claude Code is an incredibly capable platform and its Opus model is super competent at complex, goal-oriented, multi-stage tasks. My hypothesis was that I could setup a persistent, autonomous agent running on a Mac Mini using Claude Code to replace Open Claw as the always-on agent. Discord as the interface via their new <a href="https://code.claude.com/docs/en/channels-reference">channels feature</a>. Voice notes in via Discord, trustworthy work out. Persistent memory that actually works and gets smarter over time. A heartbeat system for scheduled tasks. MCP tools wired into Gmail, my production database, my note system, browser automation, analytics - all the key systems.</p><p>This thing runs legally under the Max plan. Fully compliant with Anthropic&#8217;s terms of service. Fixed monthly cost. No OAuth hacking. No wondering if you&#8217;re going to get banned or forced to API-based billing.</p><p>Where Open Claw struggled to perform any kind of meaningful work reliably, my Claude Code-based agent is working with me like a dependable teammate.</p><p>Every day it drafts my outreach emails, scores leads from my production database, researches blog topics in my actual voice, monitors 30+ community groups and surfaces what matters in a morning briefing I can read in two minutes all while slaying issues on Github. I interact with it the way I&#8217;d converse with an employee: high-level goals instead of micromanaged instructions.</p><p>I&#8217;m demoing this setup live on <a href="https://vibecodelisboa.com/events/how-to-replace-your-open-claw-with-claude-code">Wednesday, April 8th here in Lisbon</a>. Small group. I&#8217;ll show exactly how it works, the repo structure, the tools, and a side-by-side comparison of Open Claw fumbling a task that this setup handles cleanly.</p><p>If you&#8217;re in Lisbon, come see it: <a href="https://vibecodelisboa.com/events/how-to-replace-your-open-claw-with-claude-code">RSVP here</a></p><p>If you&#8217;re not in Lisbon, the recording will be available after. If there&#8217;s enough demand I&#8217;ll sanitize my repo and make an installer skill for it and put it out there for all the Open Claw Opus refugees who are up in arms today.</p><p>Anthropic&#8217;s move may have just handcuffed everyone&#8217;s Claws but it doesn&#8217;t have to mean the end to your subscription-based, fixed-cost, Opus-powered agent.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Ya7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Ya7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!4Ya7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!4Ya7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!4Ya7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Ya7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp" width="377" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:377,&quot;bytes&quot;:1440676,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/193198894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!4Ya7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!4Ya7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!4Ya7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!4Ya7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067e522e-5be9-424d-9d76-54c0b1c15faa_1024x1024.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>Sean Tierney builds software with AI at <a href="https://vibecodelisboa.com">Vibecode Lisboa</a>. He runs <a href="https://vibecodelisboa.com/build-school">Build School</a>, a 30-day cohort where non-technical founders ship their first product.</p>]]></content:encoded></item><item><title><![CDATA[See What the Participants of Cohort 2 Built]]></title><description><![CDATA[Last week at Tribe Social Club in Lisbon, five people got up and demoed software they&#8217;d built from scratch. None of them had any programming experience prior. Here's what they created.]]></description><link>https://blog.vibecodelisboa.com/p/see-what-the-participants-of-cohort</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/see-what-the-participants-of-cohort</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Wed, 11 Mar 2026 11:58:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Gccv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Ben: &#8220;<em>I missed the syllabus and finished the whole thing in a week</em>&#8221;</h2><p>Ben Lakoff is the General Partner for <a href="https://www.bankless.ventures/">Bankless Ventures</a>. He&#8217;s spent years working with external dev teams and internal tech teams, and he knows what that costs in time and money. He joined <a href="https://vibecodelisboa.com/build-school">Build School</a> to finally understand the tools himself.</p><p>&#8220;<em>Taking this course was more on the spirit of learning as opposed to developing the next billion dollar idea</em>,&#8221; Ben said in his demo. He started with a throwaway project - an AI influencer - and finished it on day one. Then he pivoted to something he actually needed.</p><p><a href="https://macrodigest.xyz/">MacroDigest</a> is a dashboard that pulls market signals from everywhere: indices, sentiment analysis, Reddit&#8217;s WallStreetBets, RSS feeds from analysts he follows. It runs NLP on everything and tries to gauge where markets are heading.  </p><p>The fun fact of Ben&#8217;s story: he didn&#8217;t realize there was a syllabus in the beginning. He just dove into the self-paced video course and came out the other side days later with a deployed product. He&#8217;d gone through <a href="https://vibecodelisboa.com/confabulator">Confabulator</a>, hooked up Stripe, spun up a marketing site and made it all work in the first week of a 30-day course proving Derek Sivers&#8217; point that <a href="https://sive.rs/kimo">there is no speed limit</a>. </p><div id="youtube2-CvMSTyOuFmY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;CvMSTyOuFmY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/CvMSTyOuFmY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>Petra: Years of waiting, one month of building</h2><p>Petra runs her own business and came to Build School with an idea she&#8217;d been carrying around for years for <a href="https://justlooking.pro">JustLooking</a>: an app to help people passively scout for promising career opportunities. </p><p>&#8220;<em>2.59 billion people are passive job seekers</em>,&#8221; she explained at demo night. &#8220;<em>They&#8217;re open to switching jobs if something better comes along. Figuring out what&#8217;s better is usually the hardest part.</em>&#8221;</p><p>Her app works like the Hinge dating app for careers. You swipe through roles. The system learns your preferences over time. It notices when you keep liking remote positions even though you said you wanted hybrid. It builds a calibrated picture of what you actually want - like a recruiter who takes the time to really understand your interests.</p><p>&#8220;<em>I tried to build this years ago but I didn&#8217;t manage.</em>&#8221;</p><p>In a month with Claude Code and no prior experience she made it real. </p><p>From her testimonial: &#8220;<em>Claude Code can do pretty much everything you want. That&#8217;s not the hard part. The hard part is knowing what you want to build and actually leading Claude into building it.</em>&#8221; </p><p>Her advice to anyone considering the course? &#8220;<em>Don&#8217;t wait. Just get started. The first week might feel like you don&#8217;t know what you&#8217;re doing. But after a week or two, you&#8217;ll be self-sustained.</em>&#8221;</p><div id="youtube2-psYWegsF1KU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;psYWegsF1KU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/psYWegsF1KU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-vyH4G7t4no8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;vyH4G7t4no8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/vyH4G7t4no8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>William: 16 years of events, one month of tools</h2><p>William has thrown over 500 events in his career, mostly in the nightlife and entertainment space. Sixteen years running he&#8217;s a veteran of this space.</p><p>He also knows demand for alcohol-centric events is receding. Younger people drink less. Health consciousness is up. Event attendance across the industry is down.</p><p>Instead of accepting the down-tick in attendance, William is building features to find and recruit his customers.</p><p>&#8220;<em>I approached Sean and said these are the first two tools I&#8217;m going to start with,</em>&#8221; William recounted. &#8220;<em>I said I hired a dev company and he said to me, &#8216;You&#8217;re going to fire them.&#8217; I said okay. He said, &#8216;You&#8217;re going to do this yourself.&#8217;</em>&#8221;</p><p>So he did. Six weeks later he built <a href="https://dynamiceventsuite.com/">Dynamic Event Suite</a> consisting. Dynamic pricing that works like surge pricing in Uber - set your min and max, and the system adjusts based on actual demand. An affiliate system that turns every ticket buyer into a promoter automatically. Analytics that track where every click and purchase comes from.</p><p>&#8220;<em>Your best tool has always been your buyers,</em>&#8221; William explained. &#8220;<em>We turn all your buyers into affiliates for you.</em>&#8221;</p><p>The social boost feature is already outperforming his paid advertising. His St. Patrick&#8217;s Day events in Chicago are live right now with the new tools running.</p><p>&#8220;<em>I don&#8217;t want to personally respond to questions about why things are so unfair while you&#8217;re drunk at 2 a.m. anymore,</em>&#8221; he joked. &#8220;<em>I&#8217;ve earned it after 16 years. I want Claude to take care of that for me.</em>&#8221;</p><div id="youtube2-gEcy8-4DOH8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;gEcy8-4DOH8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/gEcy8-4DOH8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-NvBlktkjrHQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;NvBlktkjrHQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/NvBlktkjrHQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>Koos: The language learner who built a better Anki </h2><p>Koos is Dutch, living in Portugal, and frustrated with current language learning apps. He&#8217;d used <a href="https://apps.ankiweb.net/">Anki</a> previously - the spaced repetition tool that everyone recommends and nobody enjoys. It works, but it&#8217;s cumbersome, uses an antiquated algorithm and  doesn&#8217;t tailor specifically to the words you use everyday.</p><p>His insight: vocabulary should be contextual. You should learn words relevant to your actual life, in the dialect spoken around you. His Brazilian Portuguese is out of place in Lisbon so he&#8217;s using his app to teach himself European Portuguese.</p><p>He built <a href="https://apps.apple.com/us/app/llyli/id6759156687">Learn the Language you Live In</a> (currently US/China only - if in Europe take Koos&#8217; <a href="https://tally.so/r/KYMZEK">survey here</a>) to be his own spaced repetition system. It&#8217;s an iOS app that makes vocabulary learning contextual to your location and your life.</p><p>Koos has the most commits of anyone in the cohort. Feature after feature, refinement after refinement he&#8217;s tweaked it to be exactly the tool he himself wanted and has now made it available to others via the Apple App Store.</p><div id="youtube2-uZAm4YPh8JI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;uZAm4YPh8JI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/uZAm4YPh8JI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-gPQVhX1rcIc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;gPQVhX1rcIc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/gPQVhX1rcIc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>Cristiano: Capturing stories before they disappear</h2><p>Cristiano cares about legacy. About the stories families carry forward and what gets lost when people pass without recording them.</p><p>He built Mabel, an iOS app that acts like a guided memoir-authoring interviewer and coach. You speak into the app via voice notes. An AI interviewer prompts you, draws out your stories the way a skilled biographer would.</p><p>Using his app anyone can speak an autobiography into existence.</p><p>Think about your grandparents. The stories they carry that you&#8217;ve never heard. The ones that will disappear when they do. Cristiano&#8217;s app makes it almost effortless to capture them. No writing required - talking is the UX so anyone can use it including your grandparents. </p><div id="youtube2-GamLa_s-Zi0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;GamLa_s-Zi0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/GamLa_s-Zi0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-Q4AikVcQ-wM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Q4AikVcQ-wM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Q4AikVcQ-wM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>What these five have in common</h2><p>They built tools for themselves. Ben wanted market intelligence. William wanted event optimization. Koos wanted better language learning. Petra wanted a career exploration tool. Christiano wanted legacy preservation. They had strong visions and willed these into existence via natural language. </p><p>They prove the thesis of Build School: <strong>that the tools have evolved to the point that with a small amount of hand-holding anyone regardless of background can use natural language to make their dream reality.</strong> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gccv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gccv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 424w, https://substackcdn.com/image/fetch/$s_!Gccv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 848w, https://substackcdn.com/image/fetch/$s_!Gccv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 1272w, https://substackcdn.com/image/fetch/$s_!Gccv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gccv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png" width="1456" height="949" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:949,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2303352,&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://scrollinondubs.substack.com/i/190600547?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.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_!Gccv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 424w, https://substackcdn.com/image/fetch/$s_!Gccv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 848w, https://substackcdn.com/image/fetch/$s_!Gccv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 1272w, https://substackcdn.com/image/fetch/$s_!Gccv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d152ffa-abe3-4bbb-a0a7-0ad780b30b59_1516x988.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Cohort 3 begins</h2><p>We kicked off Cohort 3 on Monday with eight students - our biggest cohort yet. </p><p><strong><a href="https://vibecodelisboa.com/build-school">Applications for Cohort 4 </a> starting April 20th are now open.</strong> Early-bird pricing runs until April 1st.</p><p>If you have an app idea you&#8217;ve been carrying around, if you&#8217;ve been waiting for a technical co-founder who hasn&#8217;t shown up, if you&#8217;re curious whether you could actually build the thing yourself - this is for you.</p><p>Build School is a 30-day sprint. You show up with an idea. You leave with a deployed MVP. And in the process you learn a mindset and system that you&#8217;ll be able to leverage for the rest of your life. Come see what it&#8217;s all about. </p><p><a href="https://vibecodelisboa.com/build-school">Learn more about Build School &#8594;</a></p><div><hr></div><p><em>About 60 people came out for demo night. If you&#8217;re in Lisbon, join us at the next <a href="https://vibecodelisboa.com/events">Vibecode Lisboa meetup</a>. If you want to build, <a href="https://vibecodelisboa.com/confabulator">start with Confabulator</a> to lay your project foundation.</em></p>]]></content:encoded></item><item><title><![CDATA[Github for Muggles]]></title><description><![CDATA[Git and Github are indispensable tools for building software applications but they can be overwhelming for non-technical founders. This post gives an overview of the key concepts to get started.]]></description><link>https://blog.vibecodelisboa.com/p/github-for-muggles</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/github-for-muggles</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Tue, 03 Feb 2026 17:00:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xWgM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Unless you&#8217;re already a tech wizard familiar with using <a href="https://git-scm.com/">Git</a> and <a href="https://github.com/">Github</a> for shipping software, it can be a daunting to get started with these tools. We&#8217;re going to demystify both Git and Github in this post and by the end you&#8217;ll have the necessary conceptual understanding to begin using this powerful platform to reliably build your app as a non-technical solo founder. Let&#8217;s start off with some backstory. </p><h2>Origin Story</h2><p>Git is the open source technology underpinning Github. It was created by <a href="https://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>, the creator of the Linux operating system. Git is his second amazing contribution to the world of computing and arguably has had as much an impact if not more in terms of total benefit to other software creators. Before Git, software developers relied upon less ideal platforms like Visual Source Safe, SVN and CVS for source control but Git fixed a lot of the deficiencies with these systems by offering a more flexible, efficient way of how it handles changes. </p><h2>What are Source Control, Git and Github? </h2><p><em><a href="https://en.wikipedia.org/wiki/Version_control">Source control</a></em> (sometimes called &#8220;version control&#8221;) is the term of art for any system that allows you to reliably manage files in software development. Git is a source control system that makes it possible to collaboratively develop software with other people in a more sane manner and to manage your changes with peace of mind. You can build software without it but it&#8217;s a bit like rock climbing without a rope. You and I aren&#8217;t <a href="https://www.youtube.com/watch?v=4Njojo9vKU0">Alex Honnold</a> - we use protection when climbing any structure above ten feet and we use source control when developing any software application that we want to build and maintain over time.  </p><h2>What is a commit? </h2><p>If we follow the rock climbing analogy for a minute it gives a useful mental image because every time you check your source code into a source control system like Git, it&#8217;s like clipping into protection on a precarious rock face. As we scale the rock wall that is our increasingly-complex software project we want to periodically &#8220;clip in&#8221; so that we don&#8217;t fall all the way back to the ground in the event of a catastrophic mistake.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!usUW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!usUW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 424w, https://substackcdn.com/image/fetch/$s_!usUW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 848w, https://substackcdn.com/image/fetch/$s_!usUW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 1272w, https://substackcdn.com/image/fetch/$s_!usUW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!usUW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png" width="606" height="411.4689075630252" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:808,&quot;width&quot;:1190,&quot;resizeWidth&quot;:606,&quot;bytes&quot;:108771,&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://scrollinondubs.substack.com/i/186753106?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.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_!usUW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 424w, https://substackcdn.com/image/fetch/$s_!usUW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 848w, https://substackcdn.com/image/fetch/$s_!usUW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 1272w, https://substackcdn.com/image/fetch/$s_!usUW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6649002f-1b6f-454e-ba90-da53acce8df5_1190x808.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The way we &#8220;clip in&#8221; while climbing is by saving or &#8220;committing&#8221; our changes. Doing so gives us a save point or a &#8220;<em><a href="https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits">commit</a></em>&#8221; that we can always revert to if things get messed up. This should give you great peace of mind because as long as you&#8217;re committing regularly at sensible progress points there are no fatal mistakes you can make while developing and the furthest fall you can ever have is to is the point of your last commit. </p><h2>Setting up your first Github repo</h2><p>If you use <a href="https://vibecodelisboa.com/confabulator">Confabulator</a> on the last step it will create your Github repository (or repo). It takes the foundational files you developed (plus some other helpful scaffolding) and injects those into a new Github repo into your account. Obviously first you need to create your Github account and then grant Confabulator access (it will prompt you to do so when using it for the first time) but once you do that it has everything it needs to operate on your behalf and create new repos. The newly-created repo now exists on Github&#8217;s servers. </p><h2>Understanding Local vs. Remote</h2><p>We call this a &#8220;<em><a href="https://docs.github.com/en/get-started/git-basics/about-remote-repositories?versionId=free-pro-team%40latest&amp;productId=pull-requests&amp;restPage=committing-changes-to-your-project%2Ccreating-and-editing-commits%2Cabout-commits">remote repository</a></em>&#8221; (or repo) because it&#8217;s not stored locally - it lives remotely on someone else&#8217;s computer (in this case, Github&#8217;s). This is important to understand because until we <em><a href="https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository">clone</a></em> that repo locally to our machine it only exists in the cloud. Once we clone locally though then Claude Code running on our machine can begin to work with the files. When you then commit code it&#8217;s storing those changes in a git repo that&#8217;s running locally on your machine and until you push that commit remotely to the Github repo (or &#8220;origin server&#8221;) those changes exist only on your laptop. So every time we make a commit and want it to end up in our Github repo there are actually two sequential steps happening: committing the code locally and then pushing that code remotely. If ever we have a teammate working in parallel and pushing their changes to Github and we want those changes we need to periodically <em><a href="https://docs.github.com/en/get-started/using-git/getting-changes-from-a-remote-repository#fetching-changes-from-a-remote-repository">fetch</a></em> the remote repo to check status and <em><a href="https://github.com/git-guides/git-pull">pull</a></em> down the new remote changes locally to incorporate them into our local instance. </p><p>The good news with this stuff is that Claude has a deep understanding of Git commands so you don&#8217;t need to memorize the nitty gritty syntax necessary to perform these operations. Once you&#8217;ve setup your local <em><a href="https://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a></em> (Integrated Development Environment - in our case Cursor) to talk to your Github repo and given Claude Code the necessary access to operate on your behalf by installing the <em><a href="https://cli.github.com/">Github CLI</a></em> (Command Line Interface) or <em><a href="https://github.com/github/github-mcp-server">Github MCP</a></em> (Model Context Protocol) you can just direct it in english and it will handle issuing the appropriate commands to do what you want. You only need to know conceptually what&#8217;s going on and have Claude Code execute  your directives via natural language translating those into the necessary git commands. </p><h2>What are branches? </h2><p>When we&#8217;re working by ourselves on an early project, often we&#8217;ll develop directly on &#8220;Main&#8221; or the trunk of our tree if we use that analogy. It can be advantageous in different situations though to create a <em><a href="https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository">branch</a></em> from the main trunk and do our work there. For instance when you have different developers or even entire teams working on different features, for sake of not stepping on each others changes, they&#8217;ll each be working on their own branch. You can think of a branch almost like an alternate timeline that splits from the base reality and goes off in another direction. You initiate this new timeline by checking out the code into a new branch that you name typically with a short descriptive name. You can have a whole set of changes occurring there and being committed without affecting the main timeline. Then when you&#8217;re ready for these changes to be incorporated back into production (the trunk or the live version of the app visible to the world) you can merge your branch. </p><h2>What is a merge? </h2><p><em><a href="https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github">Merging</a></em> is the process of incorporating the changes from one branch into another. Main is actually a branch itself - it&#8217;s the root branch so it&#8217;s technically the trunk, but it has all the same behavior of a branch. Once again you don&#8217;t need to worry about the specifics of how to merge. Once configured properly Claude Code will handle this for you and handle even sophisticated &#8220;branches of branches&#8221; merging strategies. The net net of merging to Main is that your changes get incorporated into your main timeline and therefore your production instance. </p><h2>What is a merge conflict? </h2><p>What happens if you and I have both created our own branches and are working on the same files and then go to merge? When this occurs you can end up with conflicting changes on different branches - this is called a &#8220;<em><a href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github">merge conflict</a></em>.&#8221;  If you used Confabulator to create your repo it takes an extra step and creates a dependency graph and <em><a href="https://git-scm.com/docs/git-worktree">git worktrees</a></em> for your issues. These devices identify which github feature issues can be worked on in parallel and which require sequential development and in what order. This reduces the likelihood of merge conflicts when building the project. Even with these safeguards though sometimes merge conflicts are inevitable. Fortunately Claude Code is extremely good at resolving these. And worse case you can always revert to your last commit on one of the branches and have it do the work over from the new merged branch. </p><h2>What are issues and epics? </h2><p><em><a href="https://docs.github.com/en/issues">Github issues</a></em> are like support tickets independent of the code that are used to capture instructions about new features, bugs and any modification you intend to make to the source code. A typical workflow is to work with Claude Desktop or Claude Code to brainstorm a sensible feature and then have it create an issue representing what&#8217;s called an &#8220;Epic&#8221; for that feature. An Epic is a comprehensive summary of the requirements and acceptance criteria of a feature. It&#8217;s basically the &#8220;what&#8221; without the &#8220;how&#8221; of the specific implementation details necessary to make it real. This allows you to create new features agnostic of how they&#8217;re to be implemented and then delegate that job of translating those into detailed implementation issues to Claude Code. Claude Code has intimate familiarity with your codebase and therefore is better qualified to convert these logical requirements into an actionable implementation plan. </p><h2>What are Github actions and CI/CD pipelines? </h2><p><em><a href="https://docs.github.com/en/actions">Github actions</a></em> are recipes that can be set to run when code is committed. A common use case is to setup a Github action to push code into your deployment environment when it&#8217;s merged into your Main branch. You can get fancy and setup a gauntlet of different security and unit tests that check to ensure things work properly before code is allowed to be pushed to the Main branch. This is called a <em><a href="https://plainenglish.io/explain/what-is-cicd">Continuous Integration / Continuous Deployment Pipeline</a></em> and typically implemented once the cost of any downtime on the live site merits having a more bulletproof approach to ensuring no bad code is deployed. As you can imagine sites like Amazon and Facebook have rigorous CI/CD pipelines with extensive automated testing to minimize the chances of a bug making its way into the production environment. For early-stage founders though when working on your MVP before you have users a CI/CD pipeline is probably overkill and mis-spent calories and unnecessary friction early on. Once you have paying customers it&#8217;s a good idea to get a more disciplined approach to your deployment workflow. </p><h2>How to revert if things get messed up? </h2><p>Let&#8217;s say you&#8217;ve been developing your app and you&#8217;ve had a great idea for a feature and attempted to implement it but something got messed up and now your code doesn&#8217;t work. Assuming you haven&#8217;t committed it yet, all you need to do is <em><a href="https://git-scm.com/docs/git-revert">revert</a></em> back to a previous commit. That will preserve your changes in the commit history while allowing you to rollback the app to its prior state. Alternatively you can just backup your local .env file (where your API keys and variables are stored), nuke your local repo and clone your remote repo to your local machine again. That will put you back in the state of your last commit. If you happen to have checked in the bad code and pushed it to your remote Github repo it&#8217;s still no trouble because everything is versioned there so you can &#8220;peel off&#8221; the latest commit and have it revert to a previous commit. If you&#8217;ve ever used TimeMachine on MacOS it&#8217;s similar to reverting your filesystem to a previous state.  If you want to preserve what you did instead of trashing it completely (maybe there was some useful functionality you created) you can have it store those changes on a side branch and revert the main branch to the last commit. Again Claude Code can handle these details for you so you don&#8217;t need to know the sophisticated commands to make all this happen, you just need to know it&#8217;s possible. </p><h2>Linking commits to issues</h2><p>Issues can be resolved by one or more commits and commits may contain code that resolves multiple issues. A good strategy is to <em><a href="https://gitdailies.com/articles/link-github-commit-to-issue/">link your commits</a></em> to the issues they resolve. If you&#8217;re using the process taught in my course then Claude Code is already linking your commits to issues. This is valuable because it allows you to cross-reference things and later determine which commits were responsible for which features and bugfixes. </p><h2>Where to go from here</h2><p>Git and Github are powerful systems that can do so much more that what we&#8217;ve covered here but this short intro gives you the 80/20 primer of what you need to know to get started using them. Taking my course gives you the &#8220;just-in-time learning&#8221; approach to this stuff where we dive in the deep end and start using them and then backfill the explanations as we go along. If you want a more methodical,  Github-focused, comprehensive course this Udemy course is a great way to get deeper on this foundational tech that you&#8217;ll use on every project. </p><p>And now you have all the foundational understanding of a fledgeling Github wizard. Please report to platform 9 3/4 to build your first app using Github. Try <a href="https://vibecodelisboa.com/confabulator">Confabulator</a> for your next project if you haven&#8217;t already as it helps with the ideation and setup of your github repo when beginning a new vibecoding project. &#129417;&#129668;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xWgM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xWgM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!xWgM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!xWgM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!xWgM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xWgM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2339185,&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://scrollinondubs.substack.com/i/186753106?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.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_!xWgM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!xWgM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!xWgM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!xWgM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6546d71-130d-4b17-8b21-a5767b2e9f9a_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Vibecoding a micro-SaaS in two days]]></title><description><![CDATA[With the right process using Claude Code along with Ralph Loops you can now knock out a passive revenue-generating business idea in a single weekend.]]></description><link>https://blog.vibecodelisboa.com/p/vibecoding-a-micro-saas-in-two-days</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/vibecoding-a-micro-saas-in-two-days</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Sun, 25 Jan 2026 16:22:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-EAe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The tech has officially reached the point where you just need to be able to clearly articulate your business idea and app requirements and in a weekend you can bang out a viable micro-SaaS business idea. </p><p>Friday morning I went through <a href="https://vibecodelisboa.com/confabulator">Confabulator</a> and had it generate my first github repo commit: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oFcj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oFcj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 424w, https://substackcdn.com/image/fetch/$s_!oFcj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 848w, https://substackcdn.com/image/fetch/$s_!oFcj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 1272w, https://substackcdn.com/image/fetch/$s_!oFcj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oFcj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png" width="424" height="270.19607843137254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:650,&quot;width&quot;:1020,&quot;resizeWidth&quot;:424,&quot;bytes&quot;:170766,&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://scrollinondubs.substack.com/i/185734756?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.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_!oFcj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 424w, https://substackcdn.com/image/fetch/$s_!oFcj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 848w, https://substackcdn.com/image/fetch/$s_!oFcj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 1272w, https://substackcdn.com/image/fetch/$s_!oFcj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22366da3-2eee-46ff-8f79-1943cfa35203_1020x650.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Fast forward to now Sunday afternoon and I have <a href="https://prep.training/">Prep.Training</a> live and wired up to accept payments via Stripe. This is an idea a buddy and I had talked about wherein we gamify the art of improving ones disaster preparedness in a way that appeals to ordinary, rational people and not just the diehard doomsday preppers. We need to make it simple for the average person to carve out 15min per day towards taking small incremental steps that greatly improve their resilience in the face of life&#8217;s curveballs. Prep.Training uses standard gamification patterns like streaks, badges, points and unlocks to introduce preparedness concepts and give people a tool for improving their readiness. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://prep.training/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-EAe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 424w, https://substackcdn.com/image/fetch/$s_!-EAe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 848w, https://substackcdn.com/image/fetch/$s_!-EAe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 1272w, https://substackcdn.com/image/fetch/$s_!-EAe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-EAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png" width="1456" height="1038" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1038,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:353638,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://prep.training/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/185734756?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.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_!-EAe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 424w, https://substackcdn.com/image/fetch/$s_!-EAe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 848w, https://substackcdn.com/image/fetch/$s_!-EAe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 1272w, https://substackcdn.com/image/fetch/$s_!-EAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27cc8735-a174-42f1-a075-b4b72c618a35_2102x1498.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Even if this app doesn&#8217;t make a dime it&#8217;s a win because it&#8217;s a tool I wanted myself to be able to load up material from various sources and have it gamify a bunch of instructional content to help me and my friends have these conversations and help each other level up. </p><p>This is the future where anyone regardless of their programming background in short order can conceive and implement a business idea that delivers value and creates another passive income stream to make him or her more self-reliant. This is my feature backlogue with the features I want to add:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0-jg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0-jg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 424w, https://substackcdn.com/image/fetch/$s_!0-jg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 848w, https://substackcdn.com/image/fetch/$s_!0-jg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!0-jg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0-jg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png" width="418" height="493.47222222222223" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1190,&quot;width&quot;:1008,&quot;resizeWidth&quot;:418,&quot;bytes&quot;:247253,&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://scrollinondubs.substack.com/i/185734756?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.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_!0-jg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 424w, https://substackcdn.com/image/fetch/$s_!0-jg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 848w, https://substackcdn.com/image/fetch/$s_!0-jg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!0-jg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b0de3d-ce6a-4ffd-b23e-cf379c48f899_1008x1190.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>My process from here is to work through this list having a conversation with Claude Desktop (which has access to my github) to strategize about how to optimally implement these. I have Claude Desktop stub out the detailed Epics as Github issues, then work via Claude Code to refine them and execute the <a href="https://ghuntley.com/ralph/">Ralph Wiggum system</a> via /ralph-orchestrate slash command that now comes in all Confabulator repos to implement these features while I sleep. </p><p>This time ten years ago I was living in Newport Beach I had attempted a startup concept called <a href="https://web.archive.org/web/20160306134847/http://survivalschool.tv/">SurvivalSchool.TV</a>. If you want to see a cringe-worthy season premier trailer check this out:  </p><div id="youtube2-k4LLw9brvqs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;k4LLw9brvqs&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/k4LLw9brvqs?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>What&#8217;s funny though is with my current effort teaching people vibe coding via <a href="https://vibecodelisboa.com/">Vibecode Lisboa</a>, the goal remains the same: <em>to help make people more self-reliant</em>. The method to accomplish that goal has changed but the Prep.Training app I just spun up this weekend is a convergence themes. The timeline from start to finish working on this was two days with the majority of one of those spent up in beautiful Nazar&#233; watching the big waves from tropical storm Ingrid. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HvcD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HvcD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 424w, https://substackcdn.com/image/fetch/$s_!HvcD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 848w, https://substackcdn.com/image/fetch/$s_!HvcD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!HvcD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!HvcD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png" width="1412" height="1280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1280,&quot;width&quot;:1412,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3683367,&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://scrollinondubs.substack.com/i/185734756?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.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_!HvcD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 424w, https://substackcdn.com/image/fetch/$s_!HvcD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 848w, https://substackcdn.com/image/fetch/$s_!HvcD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!HvcD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8710d021-3f3f-4576-b1a1-8f0eeb648392_1412x1280.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The guy on the left side of that pic is my good buddy Ben who is currently a student in Cohort 2 of Build School. As a non-technical person he picked up this stuff extremely quickly via my course and was able to build and launch <a href="https://macrodigest.xyz/">his own micro-SaaS for investors</a> in two days as well. More on that wild story in <a href="https://www.linkedin.com/posts/seantierney_professional-macro-intelligence-at-1-of-activity-7419353119815311360-WZPD?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAAAibkBGnpJwRZlb8J4D7qOI5Uh8PgUSgU">this LinkedIn post</a>. </p><p>We are living in the future. If you&#8217;re &#8220;<em>vibe-curious</em>&#8221; the best way to dip your toes in this stream is to start with <a href="https://vibecodelisboa.com/courses/claude-code-101">my course</a> and complete the first section (first section completely free - full course $69). I used the same Confabulator tool shown in the course to jump start Prep.Training. This stuff works. If you&#8217;re considering building an app idea there is no better time than now to jump in these waters and get to it.  </p>]]></content:encoded></item><item><title><![CDATA[Learn the Instrument in Service of Playing the Song]]></title><description><![CDATA[Claude Code is a powerful instrument - possibly the most transformative piece of software in existence. But setting out to learn the instrument for its own sake is the wrong approach.]]></description><link>https://blog.vibecodelisboa.com/p/learn-the-instrument-in-service-of</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/learn-the-instrument-in-service-of</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Wed, 21 Jan 2026 11:21:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!J02q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is me at age sixteen- a scrawny kid two months into my journey learning to play guitar, obsessed with Eddie Van Halen and inseparable from my instrument. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J02q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J02q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!J02q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!J02q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!J02q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J02q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg" width="600" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132536,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/185283573?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!J02q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!J02q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!J02q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!J02q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53d2c79f-8528-43f6-aac1-727886bac19e_600x800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I took my guitar everywhere. I&#8217;d fall asleep with it. When I couldn&#8217;t bring my guitar I&#8217;d bring this little &#8220;grip master&#8221; device with individual spring-loaded pistons you squeezed to improve your finger strength. Within six months I would record an album of songs I wrote, perform solo&#8217;s live in concert - basically zero to full-on guitar hero in six months. </p><p>Was I naturally a musical prodigy? No. I had tried and failed twice before to learn piano and violin. So what was different about guitar? My previous attempts at learning these other instruments were train wrecks. The violin was a disaster trying to learn via the Suzuki method - I just never could get it.  I flamed out on piano as well and eventually gave up - practice was boring and the finger exercises excrutiating. So what was the secret sauce that made guitar stick?  This man, <a href="https://www.youtube.com/playlist?list=OLAK5uy_lGn4WB52vkYNGBI5CqdhVmPV2d-cGspkM">Frank Danna</a>: </p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H37U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!H37U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!H37U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!H37U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H37U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg" width="355" height="303.86831275720164" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:208,&quot;width&quot;:243,&quot;resizeWidth&quot;:355,&quot;bytes&quot;:9217,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/185283573?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H37U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!H37U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!H37U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!H37U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ea85f5e-8cbc-4bae-98b3-e27a3a21f871_243x208.jpeg 1456w" sizes="100vw"></picture><div></div></div></div></figure></div><p>He intuitively understood what my piano and violin teachers did not: that <em><strong>the way to learn any instrument is in service of playing the song you want to play</strong></em>. </p><p>He didn&#8217;t start me out learning scales, reading music, establishing finger picking techniques, acquiring chords, etc. The first thing he said to me was &#8220;<em>What song do you want to play?</em>&#8221; </p><p>I was obsessed with the guitar from the song &#8220;<em><a href="https://www.youtube.com/watch?v=zhLDc2Xw66M">Hungry</a></em>&#8221; by White Lion so we dove head first into that. Frank and I would sit weekly in a little practice room at Keyboard City only slightly bigger than a phone booth and bar-by-bar, measure-by-measure work through that song until I could play the entire thing. Each session I would learn a little bit more. <em>&#8220;Here&#8217;s what he&#8217;s doing there- that&#8217;s called a &#8216;hammer-on / pull-off&#8217;. That&#8217;s a pentatonic scale that he&#8217;s playing. He&#8217;s muting the string with his palm - that&#8217;s why it sounds chunky like that&#8230;&#8221;  </em>After each session I had something new I could go home and show my friends and celebrate. The wins stacked in a virtuous loop that pulled me deeper into the instrument and instead of being put off by the theory and practicing scales, I was seeking those out so I could play the song better. Little by little I picked up all the knowledge and techniques via just-in-time learning to play that song and countless others.   </p><p>Years later I&#8217;m still in love with the guitar and I attribute my life-long obsession largely to Frank&#8217;s intuition as a teacher of the best way to learn an instrument. I believe these same dynamics apply with any kind of instrument, software being one of them. </p><p>The way to learn a tool like Claude Code is not to read the docs and reference materials cover-to-cover or even take a course that teaches all of its functionality and capabilities. <em>The way to learn is to learn the instrument in service of playing the song</em>, or in this case, <em>through gradually bringing your app idea to life</em>. This is why I structured my <a href="http://vibecodelisboa.com/courses/claude-code-101">Claude 101 course</a> the way I did to help you acquire all the important concepts along the journey to making your app idea progressively more real. </p><p>I don&#8217;t know where Frank is now but it&#8217;s rare that a single individual has such outsized impact shaping not only one&#8217;s life-long hobby so profoundly, but simultaneously instilling a worldview for a fundamentally different approach to teaching. If you want to try applying this approach to learning Claude Code for app building I invite you to <a href="https://vibecodelisboa.com/courses/claude-code-101">join the course</a> or signup for our next cohort of <a href="https://vibecodelisboa.com/build-school">Build School</a>.  </p>]]></content:encoded></item><item><title><![CDATA[Build School Cohort 2: The Complete Syllabus]]></title><description><![CDATA[This is a detailed overview of the syllabus for our second officialcohort starting on Jan 12th. The Claude Code 101 course from which this material originates is available now for anyone.]]></description><link>https://blog.vibecodelisboa.com/p/build-school-cohort-2-the-complete</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/build-school-cohort-2-the-complete</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Tue, 06 Jan 2026 13:45:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jWaE!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65d90bb6-952b-4e5a-aeeb-618d381e2a67_531x531.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>January 12 &#8211; February 13, 2026 | 4 Weeks | Ship Your MVP</strong></p><div><hr></div><p>Build School is back. In Cohort 1, five founders went from little to no coding experience to <a href="https://vibecodelisboa.com/events/build-school-demo-night">deployed applications in 30 days</a>. Now we&#8217;re doing it again - with a refined curriculum and everything we learned from round one.</p><p>This post serves as both the official syllabus for Cohort 2 students and a look inside the program for anyone considering joining. (Yes, we still have <strong><a href="https://vibecodelisboa.com/build-school">one spot left</a></strong>.)</p><h2>How Build School Works</h2><p>You&#8217;ll work through the <a href="https://vibecodelisboa.com/courses/claude-code-101">Claude Code 101</a> video course on your own time, completing assigned lessons before each session. Then we meet three times per week:</p><ul><li><p><strong>Mondays &amp; Wednesdays (6-8pm):</strong> Virtual office hours via Zoom - bring your questions, blockers, and wins</p></li><li><p><strong>Fridays (10am-2pm):</strong> In-person cowork session in Lisbon - focused building time with support</p></li></ul><p>The course has 12 lessons across 3 sections (~4 hours of video total). We&#8217;ll cover one section per week, leaving Week 4 for polish and demo prep.</p><p><strong>Communication:</strong> We&#8217;re using Discord this cohort (not Slack) so your conversation history never expires.</p><div><hr></div><h2>Week 1: Plan Your App</h2><p><strong>January 12-17 | Section 1 of Claude Code 101</strong></p><p>Before you write a single line of code, you need to know what you&#8217;re building. This week transforms your app idea from a vague concept into a concrete, buildable plan.</p><h3>Session 1: Kickoff (Monday, Jan 12 - In Person)</h3><p><em>Our kickoff event doubles as the first office hours</em></p><p><strong>Complete before this session:</strong></p><p>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=szj2hcadve5tesakttm667z5">Lesson 1: Start with Confabulator</a> (35 min)<br>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=akvth1v8ndwren0w62styae9">Lesson 2: Configure your local development environment</a> (16 min)</p><p><strong>What you&#8217;ll learn:</strong></p><ul><li><p>How to use Confabulator to generate your foundational project documents (PR/FAQ, PRD, Vision Doc, Biz model canvas, etc.)</p></li><li><p>Setting up your machine with the prerequisite technologies: Node.js, Git, VS Code, Claude Code</p></li></ul><p><strong>Why this matters:</strong> Without proper planning documents, you&#8217;ll waste weeks building the wrong thing. Without a working dev environment, you can&#8217;t build anything at all. We knock out both of these blockers on day one. This is the biggest technical lift so we do it in person and once you&#8217;re past it everything gets easier because you can actually use Claude Code to help you solve technical challenges like these from then on. </p><p><strong>By end of session:</strong> Your project has a GitHub repo with foundational docs, and you can run <code>claude</code> in your terminal.</p><div><hr></div><h3>Session 2: Office Hours (Wednesday, Jan 15 - Virtual)</h3><p><strong>Complete before this session:</strong></p><p>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=pwms5dfg9x7mai8igixl27i2">Lesson 3: Create mockups of the screens in your app</a> (28 min)<br>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=cxp488fbllxbvh2a507f0rgq">Lesson 4: Conduct an Architectural Review</a> (17 min)</p><p><strong>What you&#8217;ll learn:</strong></p><ul><li><p>Triangulating your UX by generating mockups through three independent approaches</p></li><li><p>Working with Claude Code to tighten up your implementation plan and create detailed GitHub issues</p></li></ul><p><strong>Why this matters:</strong> Mockups force you to think through user flows before you&#8217;re knee-deep in code. The architectural review ensures your technical plan is realistic and properly scoped. Skip these and it leads to unnecessary pain and thrashing.</p><p><strong>By end of session:</strong> You have visual mockups of every screen and a prioritized backlog of GitHub issues ready to work.</p><div><hr></div><h3>Session 3: Cowork (Friday, Jan 17 - In Person)</h3><p><strong>No new lessons&#8212;this is building time.</strong></p><p>Use this IRL session to:</p><ul><li><p>Complete any planning work that&#8217;s still in progress</p></li><li><p>Get to know your fellow cohort members</p></li><li><p>Resolve any environment setup issues</p></li><li><p>Start exploring the codebase Claude Code generated</p></li><li><p>Ask questions before diving into the Build section next week</p></li></ul><p><strong>By end of session:</strong> Planning phase complete. You&#8217;re ready to start building.</p><div><hr></div><h2>Week 2: Build Your App (Part 1)</h2><p><strong>January 20-24 | Section 2 of Claude Code 101 (Lessons 5-7)</strong></p><p>Now the real work begins. This week you&#8217;ll convert mockups into functional screens, add user authentication, and connect your app to a real database.</p><h3>Session 4: Office Hours (Monday, Jan 20 - Virtual)</h3><p><strong>Complete before this session:</strong></p><p>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=capowpkqurh9ra3c28xw0spf">Lesson 5: Create your app screens</a> (14 min)<br>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=qvkfqjrasu744xchhxi9maby">Lesson 6: Add authentication</a> (10 min)</p><p><strong>What you&#8217;ll learn:</strong></p><ul><li><p>Converting your mockups into usable screens with real UI components</p></li><li><p>Adding login functionality and enforcing authentication for protected routes</p></li></ul><p><strong>Why this matters:</strong> Screens are where users actually interact with your app. Authentication is table stakes most applications - users will expect accounts and you need to know who&#8217;s using your product and provide varying levels of access depending on who they are.</p><p><strong>By end of session:</strong> Your app has real clickable screens (not mockups) and users can sign up and log in.</p><div><hr></div><h3>Session 5: Office Hours (Wednesday, Jan 22 - Virtual)</h3><p><strong>Complete before this session:</strong></p><p>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=tdtlgew6gv2sr9kfhvvwdy73">Lesson 7: Implement the database</a> (13 min)</p><p><strong>What you&#8217;ll learn:</strong></p><ul><li><p>Replacing hard-coded dummy data with live data pulled dynamically from a database</p></li><li><p>Database schema design and data relationships</p></li></ul><p><strong>Why this matters:</strong> Static data is fine for demos, but a real app needs persistent storage. This is where your app starts to become a real product - the data your users create persists.</p><p><strong>By end of session:</strong> Your app reads and writes to a real database. No more dummy data.</p><div><hr></div><h3>Session 6: Cowork (Friday, Jan 24 - In Person)</h3><p><strong>No new lessons&#8212;focused building time.</strong></p><p>Use this session to:</p><ul><li><p>Catch up if you&#8217;re behind on lessons 5-7</p></li><li><p>Debug database issues</p></li><li><p>Work on your specific app&#8217;s core features</p></li><li><p>Get unstuck on any blockers from the week</p></li></ul><p><strong>By end of session:</strong> Core screens, auth, and database are working. Foundation is solid.</p><div><hr></div><h2>Week 3: Build Your App (Part 2) + Deploy</h2><p><strong>January 27-31 | Section 2 (Lessons 8-9) + Section 3 (Lesson 10)</strong></p><p>You&#8217;ll complete your core features and get your app deployed to the internet. By the end of this week, you&#8217;ll have a live URL you can share.</p><h3>Session 7: Office Hours (Monday, Jan 27 - Virtual)</h3><p><strong>Complete before this session:</strong></p><p>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=h42lbsrdjj9agyl8ynf1babk">Lesson 8: Build the Admin Dashboard</a> (20 min)<br>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=drgkvfvgqe5f5kwp195o1gfv">Lesson 9: Add Appointment Bookings</a> (13 min)</p><p><strong>What you&#8217;ll learn:</strong></p><ul><li><p>Creating admin interfaces for managing your app&#8217;s data</p></li><li><p>Building interactive features like scheduling and bookings</p></li></ul><p><strong>Why this matters:</strong> Most apps have two sides: what end-users see, and what admins/operators see. The booking system demonstrates a complete user flow from request to fulfillment - a pattern you&#8217;ll reuse constantly.</p><p><strong>By end of session:</strong> Your app has both user-facing and admin-facing functionality. Core features are complete.</p><div><hr></div><h3>Session 8: Office Hours (Wednesday, Jan 29 - Virtual)</h3><p><strong>Complete before this session:</strong></p><p>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=ykh8iet6pwb4lxvwp3j7pw8v">Lesson 10: Deploy your App</a> (29 min)</p><p><strong>What you&#8217;ll learn:</strong></p><ul><li><p>Deploying your application to Vercel (frontend/backend)</p></li><li><p>Setting up Turso for production database hosting</p></li><li><p>Environment variables, build configuration, and deployment troubleshooting</p></li></ul><p><strong>Why this matters:</strong> An app that only runs on your laptop isn&#8217;t a product - it&#8217;s a prototype that only you can use. Deployment is the point at which your app becomes real. You get a URL you can share with anyone in the world.</p><p><strong>By end of session:</strong> Your app is live on the internet with a working URL.</p><div><hr></div><h3>Session 9: Cowork (Friday, Jan 31 - In Person)</h3><p><strong>No new lessons&#8212;deployment and debugging focus.</strong></p><p>Use this session to:</p><ul><li><p>Troubleshoot any deployment issues</p></li><li><p>Test your production app thoroughly</p></li><li><p>Fix bugs that only appear in production</p></li><li><p>Start thinking about polish and Demo Night</p></li></ul><p><strong>By end of session:</strong> Your MVP is deployed and stable. The hard part is done.</p><div><hr></div><h2>Week 4: Polish + Demo Night Prep</h2><p><strong>February 3-13 | Section 3 (Lessons 11-12) + Demo Preparation</strong></p><p>Your app works. Now we make it shine. This week is about visual polish, final features, and preparing to present your creation.</p><h3>Session 10: Office Hours (Monday, Feb 3 - Virtual)</h3><p><strong>Complete before this session:</strong></p><p>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=ep1h3nejkgdvxgu4pnhmcyz9">Lesson 11: Refine and Launch your App</a> (24 min)<br>&#128250; <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=ystyyno9olmwd1greujyas3i">Lesson 12: Make some post-launch tweaks</a> (20 min)</p><p><strong>What you&#8217;ll learn:</strong></p><ul><li><p>Improving visual identity and branding</p></li><li><p>Launching under a custom domain</p></li><li><p>Running &#8220;fire drills&#8221; to boost confidence in your deployment</p></li><li><p>Post-launch improvements: favicon, logo fixes, additional features</p></li></ul><p><strong>Why this matters:</strong> First impressions matter. A polished app with a custom domain signals credibility. The fire drill process ensures you can recover from problems quickly.</p><p><strong>By end of session:</strong> Your app looks professional and runs on your own domain.</p><div><hr></div><h3>Session 11: Office Hours (Wednesday, Feb 5 - Virtual)</h3><p><strong>No new lessons&#8212;demo prep focus.</strong></p><p>This session is dedicated to:</p><ul><li><p>Practicing your Demo Night pitch</p></li><li><p>Getting feedback on your presentation flow</p></li><li><p>Fixing last-minute bugs or polish items</p></li><li><p>Preparing screenshots, talking points, and demo scripts</p></li></ul><p><strong>By end of session:</strong> You have a clear 3-5 minute demo plan and have practiced it at least once.</p><div><hr></div><h3>Session 12: Cowork (Friday, Feb 7 - Virtual)</h3><p><strong>Final working session before Demo Night.</strong></p><p>Use this session for:</p><ul><li><p>Last-minute fixes and polish</p></li><li><p>Full dress rehearsal of your demo</p></li><li><p>Peer feedback on presentations</p></li><li><p>Mental preparation for Demo Night</p></li></ul><p><strong>By end of session:</strong> You&#8217;re ready to present.</p><div><hr></div><h3>Demo Night (Week of Feb 9-13)</h3><p><em>Exact date TBD based on venue availability</em></p><p>You&#8217;ll present your MVP to the Vibecode Lisboa community and invited guests. Each participant gets 3-5 minutes to:</p><ul><li><p>Explain the problem you&#8217;re solving</p></li><li><p>Demo your working application</p></li><li><p>Share what you learned</p></li><li><p>Field questions from the audience</p></li></ul><p>This is your moment. You came in with an idea. You&#8217;re leaving with a deployed product.</p><div><hr></div><h2>The Full Lesson Schedule At a Glance</h2><p>Session Date Homework Due Topics 1 Mon Jan 12 Lessons 1-2 Confabulator + Environment Setup 2 Wed Jan 15 Lessons 3-4 Mockups + Architectural Review 3 Fri Jan 17 - Cowork: Complete Planning 4 Mon Jan 20 Lessons 5-6 Screens + Authentication 5 Wed Jan 22 Lesson 7 Database Implementation 6 Fri Jan 24 - Cowork: Core Features 7 Mon Jan 27 Lessons 8-9 Admin Dashboard + Bookings 8 Wed Jan 29 Lesson 10 Deployment 9 Fri Jan 31 -Cowork: Deployment Debugging 10 Mon Feb 3 Lessons 11-12 Polish + Launch 11 Wed Feb 5 - Demo Prep 12 Fri Feb 7 - Final Cowork + Dress Rehearsal &#127881; Feb 9-13 - <strong>Demo Night</strong></p><div><hr></div><h2>Time Commitment</h2><p><strong>Video content:</strong> ~4 hours total (spread across 4 weeks)<br><strong>Weekly sessions:</strong> 6-8 hours (2 office hours + 1 cowork)<br><strong>Independent building:</strong> 5-10 hours per week (varies by project complexity)</p><p><strong>Total:</strong> 10-15 hours per week for 4 weeks.</p><div><hr></div><h2>One Spot Left</h2><p>We keep cohorts small (5-6 people) so everyone gets direct attention. Cohort 2 has one remaining spot.</p><p><strong>If you:</strong></p><ul><li><p>Have an app idea you&#8217;re serious about building</p></li><li><p>Can commit the time for the next 4 weeks</p></li><li><p>Are willing to learn AI-powered development tools</p></li><li><p>Want to ship, not just plan</p></li></ul><p><strong>&#8594; <a href="https://vibecodelisboa.com/build-school">Apply for Build School</a></strong></p><p>You get a response within 24hrs and applications are reviewed first-come-first-serve. Program starts January 12th.</p><div><hr></div><h2>Questions?</h2><p>Join us at the next <a href="https://vibecodelisboa.com/events">Vibecode Lisboa meetup</a> or ask a question in <a href="https://vibecodelisboa.com/qa">our Q&amp;A section</a>.</p><p>See you at the kickoff. Let&#8217;s build something great together.</p><p>- Sean</p><div><hr></div><p><em>Build School is part of <a href="https://vibecodelisboa.com/">Vibecode Lisboa</a>, a community of 100+ builders learning to create software using AI tools.</em></p>]]></content:encoded></item><item><title><![CDATA[10 Power Tips for Claude Code Users]]></title><description><![CDATA[Here are ten hard-earned lessons from building apps with Claude Code that will help you get the most out of your sessions.]]></description><link>https://blog.vibecodelisboa.com/p/10-power-tips-for-claude-code-users</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/10-power-tips-for-claude-code-users</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Fri, 19 Dec 2025 13:19:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!U7Yp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve spent the last year building applications with Claude Code - from <a href="https://vibecodelisboa.com/confabulator">Confabulator</a> to our entire Build School platform with a custom-built, <a href="https://vibecodelisboa.com/courses">Udemy-like LMS</a>. Along the way, I&#8217;ve learned what works and how to get better results while keeping token costs to a minimum.</p><p>Regardless of your current level of proficiency with CC you&#8217;ll gain value by incorporating these suggestions into your current workflow.</p><div><hr></div><h2><strong>1. Begin Every Feature with Plan Mode</strong></h2><p>Always start in Plan Mode.</p><p>Resist the temptation to dive directly into implementation. You can give CC the exact same prompt but by starting first in plan mode and having it think through things up front it will give you a far better result every time by having to propose and defend a plan up front.</p><p>This slightly-delayed gratification vs. rushing into implementation is well-worth the 2min wait.</p><p>You engage plan mode by hitting &#8220;Shift Tab&#8221; from the CC command line and you&#8217;ll know you&#8217;re in Plan Mode when you see</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U7Yp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U7Yp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 424w, https://substackcdn.com/image/fetch/$s_!U7Yp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 848w, https://substackcdn.com/image/fetch/$s_!U7Yp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 1272w, https://substackcdn.com/image/fetch/$s_!U7Yp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U7Yp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png" width="688" height="350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:688,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61823,&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://scrollinondubs.substack.com/i/182081118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.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_!U7Yp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 424w, https://substackcdn.com/image/fetch/$s_!U7Yp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 848w, https://substackcdn.com/image/fetch/$s_!U7Yp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 1272w, https://substackcdn.com/image/fetch/$s_!U7Yp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ebc6977-55c9-4ee7-8710-321e0704d5d1_688x350.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2><strong>2. Know When to Use File Scaffolding vs. GitHub Issues</strong></h2><p>Both preserve context, but they serve different purposes:</p><p><strong>Create a </strong>.md<strong> scaffolding file when:</strong></p><ul><li><p>The context is something that will be referenced repeatedly in the future</p></li><li><p>It&#8217;s a distilled representation of complexity that saves CC from having to ingest the entire codebase to gain specific understanding</p></li><li><p>It&#8217;s a living document that will evolve and there&#8217;s benefit to versioning it in source control</p></li></ul><p><strong>Create a GitHub issue when:</strong></p><ul><li><p>It&#8217;s related to a solvable issue and will be obviated once it&#8217;s resolved</p></li><li><p>You want to associate this context with a specific feature or bug</p></li><li><p>The task is discrete and can be closed when complete</p></li></ul><p>The two are not mutually-exclusive. It&#8217;s totally fine to save as a GitHub issue for the &#8220;what&#8221; and a scaffolding doc for the &#8220;how&#8221; but remember that storing outdated context confuses the LLM so you&#8217;ll want to be sure and prune context docs as they diverge from the reality of the codebase. I like to put scaffolding.md files in /guidance directory and /temp subdirectory if they&#8217;re transient or /docs subdir if they&#8217;re permanent. </p><div><hr></div><h2><strong>3. Master Context Management</strong></h2><p>Three slash commands that you need to know:</p><p><code>/context</code> - A visual representation of what Claude currently has loaded. It&#8217;s an eye-opener to see how your context window is currently allocated. This gives you the breakdown by what&#8217;s consuming most context by category and as well a granular view of which particular MCP&#8217;s are eating up context.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NPvo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NPvo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 424w, https://substackcdn.com/image/fetch/$s_!NPvo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 848w, https://substackcdn.com/image/fetch/$s_!NPvo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 1272w, https://substackcdn.com/image/fetch/$s_!NPvo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!NPvo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png" width="866" height="694" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:694,&quot;width&quot;:866,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:260796,&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://scrollinondubs.substack.com/i/182081118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.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_!NPvo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 424w, https://substackcdn.com/image/fetch/$s_!NPvo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 848w, https://substackcdn.com/image/fetch/$s_!NPvo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 1272w, https://substackcdn.com/image/fetch/$s_!NPvo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620bd6d1-0684-46bc-80e5-3967a5b7fb94_866x694.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><code>/clear</code> - Nuclear option. Wipe everything and start fresh. Use liberally between features.</p><p><code>/resume</code> - Pick up where you left off. Essential for multi-session work or when your IDE crashes and you lose context in the middle of developing a feature.</p><p>The mental model: Claude&#8217;s context window is like expensive real estate: you want to get the most out of every square foot and protect it at all costs. Every unnecessary file loaded is stealing space from your actual work.</p><div><hr></div><h2><strong>4. Token Budget Management</strong></h2><p>If you&#8217;re using a Claude Pro or Claude Max subscription your usage quota governs how long you can work before you get temporarily frozen. If you&#8217;re on the API-based billing you&#8217;re paying a la carte so this directly affects your total bill:</p><p><strong>Use CLIs instead of MCPs whenever possible.</strong> The GitHub CLI is more token-efficient than the GitHub MCP. Same with Vercel, Turso, Stripe and most other services. To the extent you can you should be using CLI&#8217;s instead of MCP&#8217;s when a comparable CLI solution exists.</p><p><strong>Disable auto-compact.</strong> It sounds helpful, but it&#8217;s just eating up about 20% of your buffer. Better to manually manage context than let the system compress your important context away.</p><p><strong>Create context summary docs.</strong> Instead of letting Claude read your entire filesystem every time, maintain a PROJECT_CONTEXT.md that summarizes the current state. Point Claude there first and it saves gobs of tokens because it doesn&#8217;t have to ingest the entire file stystem to understand the codebase.</p><p><strong>Clear context after each feature.</strong> Don&#8217;t let the cruft accumulate. Finished a feature? /clear before starting the next one.</p><p><strong>Monitor your usage:</strong> Run <code>npx ccusage@latest</code> to see token consumption by day. Pro tip: you can update your CLAUDE.md file with instructions to calculate the total token expenditure by feature and log that to the github issue when you close out each issue. NOTE: the dollar figures shown by this command are the a la carte API-based usage pricing. If you&#8217;re on a subscription this is not what you&#8217;re actually paying (good way to value your subscription and see if you&#8217;re getting your money&#8217;s worth). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aeAb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aeAb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 424w, https://substackcdn.com/image/fetch/$s_!aeAb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 848w, https://substackcdn.com/image/fetch/$s_!aeAb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 1272w, https://substackcdn.com/image/fetch/$s_!aeAb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!aeAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png" width="1072" height="684" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95553fbf-224a-4bf8-a117-48091332a220_1072x684.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:684,&quot;width&quot;:1072,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:527505,&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://scrollinondubs.substack.com/i/182081118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.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_!aeAb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 424w, https://substackcdn.com/image/fetch/$s_!aeAb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 848w, https://substackcdn.com/image/fetch/$s_!aeAb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 1272w, https://substackcdn.com/image/fetch/$s_!aeAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95553fbf-224a-4bf8-a117-48091332a220_1072x684.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2><strong>5. Give Maximum Autonomy with MCPs and CLIs</strong></h2><p>The goal is disinter-mediate the interaction whenever possible and give Claude Code agency to operate on your behalf across systems without you being the relay middleman constantly.</p><p>Here&#8217;s my stack:</p><p><strong>MCPs I use:</strong></p><ul><li><p><strong>chrome-devtools</strong> - Let CC open browser windows, inspect elements, debug until acceptance criteria are met</p></li><li><p><strong>context7</strong> - Live documentation lookup without leaving the session</p></li><li><p><strong>n8n</strong> - Workflow automation integration</p></li></ul><p><strong>CLIs I configure:</strong></p><ul><li><p><strong>Turso</strong> - Database operations</p></li><li><p><strong>GitHub</strong> - Repository management</p></li><li><p><strong>Vercel</strong> - Deployment and logs</p></li><li><p><strong>Stripe</strong> - Manage ecommerce, check logs</p></li></ul><p>The magic is when Claude can: check production logs &#8594; identify the bug &#8594; fix the code &#8594; verify the fix  &#8594; deploy and all without you having to be involved in each step.</p><div><hr></div><h2><strong>6. Pre-Authorize Actions to Avoid Interruptions</strong></h2><p>Nothing kills flow like Claude stopping every 30 seconds to ask &#8220;Can I run this command?&#8221;</p><p><strong>Option 1: Configure </strong>.claude/permissions.json Define what actions Claude can take without asking. This gives granular control over which commands, which directories, which operations are pre-approved.</p><p><strong>Option 2: Launch with </strong><code>claude --dangerously-skip-permissions</code> Full autonomy mode. Claude does whatever it thinks is right (equivalent to &#8220;Yolo Mode&#8221; in Cursor).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DUOV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DUOV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 424w, https://substackcdn.com/image/fetch/$s_!DUOV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 848w, https://substackcdn.com/image/fetch/$s_!DUOV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 1272w, https://substackcdn.com/image/fetch/$s_!DUOV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!DUOV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png" width="1360" height="350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94490,&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://scrollinondubs.substack.com/i/182081118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.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_!DUOV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 424w, https://substackcdn.com/image/fetch/$s_!DUOV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 848w, https://substackcdn.com/image/fetch/$s_!DUOV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 1272w, https://substackcdn.com/image/fetch/$s_!DUOV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe760fb7c-1195-4426-b065-1223d3fa9612_1360x350.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Option 3: Launch with </strong><code>claude --permission-mode acceptEdits </code>A slightly dialed-back version of the above where it doesn&#8217;t have full permissions but auto-accepts many of the approval steps on its own. </p><p>&#9888;&#65039; <strong>Warning:</strong> Giving it full autonomy carries risk. Only use with repos you trust completely and running in sandboxed environments. A malicious repo could use prompt injection to exfiltrate data or install malware. This risk can be mitigated by sandboxing your CC instance (more on this at the end).</p><div><hr></div><h2><strong>7. Write an Optimal Claude.md</strong></h2><p>Your <a href="https://www.anthropic.com/engineering/claude-code-best-practices">CLAUDE.md file</a> is a master prompt that runs on every interaction. This is a powerful file because it includes directives that shape everything in the project.</p><p><strong>What belongs in CLAUDE.md:</strong></p><ul><li><p>Project architecture overview</p></li><li><p>Key conventions and patterns</p></li><li><p>Common gotchas unique to this codebase</p></li><li><p>Links to important docs and supplementary guides</p></li><li><p>Your preferred coding style</p></li></ul><p><strong>Progressive disclosure:</strong> Don&#8217;t cram everything into the top level. Use includes or references to deeper docs that Claude can pull in as needed. This &#8220;just-in-time context&#8221; is called &#8220;progressive disclosure&#8221; and is another huge context-saving tip.</p><p><strong>Claude.md vs. .clauderules:</strong></p><ul><li><p>CLAUDE.md = project-specific context</p></li><li><p>.clauderules = personal preferences that apply across all projects</p></li></ul><p>Keep them distinct. Your rules travel with you. Project context stays with the project.</p><div><hr></div><h2><strong>8. Escalate Thinking When Needed</strong></h2><p>Claude has different thinking modes. Use them strategically:</p><ul><li><p><strong>Default</strong> - Fine for straightforward tasks</p></li><li><p><strong>&#8220;Think&#8221;</strong> - Pause and reason before acting</p></li><li><p><strong>&#8220;Think hard&#8221;</strong> - More deliberate analysis</p></li><li><p><strong>&#8220;Ultrathink&#8221;</strong> - Maximum reasoning depth for complex problems</p></li></ul><p>Hat tip to my friend <a href="https://marcjohnson.xyz/">Marc Johnson</a> for introducing me to these modes.</p><p><strong>Pro Tip:</strong> The <a href="https://github.com/BeehiveInnovations/pal-mcp-server">PAL MCP</a> server lets you create a &#8220;consensus advisory board&#8221; - you can have a little virtual round table of Grok, Claude, OpenAI, Gemini, Ollama and other models debating architectural approaches. Five heads are better than one!</p><div><hr></div><h2><strong>9. Run Claude Code Inside Cursor</strong></h2><p>Best of both worlds.</p><p>Cursor gives you the IDE experience: file navigation, syntax highlighting, visual diffs, easy manual edits.</p><p>Claude Code gives you the brain: superior reasoning, better context management, more capable tool use.</p><p>Run CC as your terminal within Cursor. You get Cursor&#8217;s interface with Claude&#8217;s intelligence. The combination is more powerful than either alone.</p><div><hr></div><h2><strong>10. Extract Learnings Across Projects</strong></h2><p>As you develop and resolve bugs, learn key findings and make progress you should seek to extract and distill key learnings into markdown files that can be portable across projects.</p><p>Maintain two files that travel with you:</p><p><strong>dev-culture.md</strong> - Your development philosophy. Patterns you prefer. Conventions that work for you. The &#8220;way you like to work&#8221; that Claude should respect.</p><p><strong>mistake-patterns.md</strong> - Things that have gone wrong before. Common pitfalls Claude falls into. Errors you&#8217;ve corrected multiple times. Next time, Claude can avoid them before they happen.</p><p>These become institutional memory. It&#8217;s like the raw nutrients extracted from the fruits of your labor and converted into a portable serum that you can inject into future projects. Instead of the typical downward spiral of entropy that people report in working with these AI&#8217;s you get a positive upward spiral of increasing effectiveness with this &#8220;bottled judgement.&#8221; This is the grail as your system becomes like a team that&#8217;s getting more capable over time and more adapted to how you work.</p><div><hr></div><h2><strong>BONUS: The Security Sandbox</strong></h2><p>Claude Code can do real damage if it goes off the rails. You hear stories like <a href="https://www.reddit.com/r/ClaudeAI/comments/1pgxckk/claude_cli_deleted_my_entire_home_directory_wiped/">this one</a> where CC decides to delete one&#8217;s entire home directory. You also have <a href="https://www.reddit.com/r/ClaudeCode/comments/1nlval4/shaihulud_npm_worm_has_it_touched_claude_code/">supply chain attacks</a> that can target the MCP&#8217;s and dependency libraries and wreak havoc, not to mention prompt injection attacks where it can sabotage your system purely by reading malicious instructions in the repo code. </p><p>My setup on Mac:</p><ol><li><p>Create a separate user account just for Claude Code work</p></li><li><p>Use Fast User Switching to move between accounts</p></li><li><p>Don&#8217;t log into sensitive accounts (email, banking, cloud consoles) from the sandboxed user account</p></li><li><p>Keep your sensitive data under your main admin account and never run CC there </p></li></ol><p>This constrains the blast radius. If Claude goes rogue and starts deleting things, it can only delete things that user can access.</p><p>More friction for working? Yes. But I&#8217;d rather introduce a little friction and have peace of mind that the worst CC can do is nuke the AI user account and file system rather than access files in my main account and/or impersonate me and take over browser sessions where I&#8217;m logged into sensitive accounts.</p><div><hr></div><h2><strong>The Overarching Lesson</strong></h2><p>All of these tips share a common theme: <strong>learn to act like the playmaker, not the quarterback.</strong></p><p>Your job is to:</p><ul><li><p>Set up the environment for success</p></li><li><p>Provide the right context at the right time</p></li><li><p>Give Claude the autonomy to work</p></li><li><p>Capture key learnings for next time to shape things</p></li></ul><p>The better you get at being the play maker, the better Claude can be at winning games on the field as your quarterback.</p><div><hr></div><p><em>What tips have you discovered? Reply to this email&#8212;I&#8217;m always looking to improve my workflow.</em></p><div><hr></div><p><strong>About Build School:</strong> I teach non-technical founders to ship production MVPs in 30 days using AI coding tools. If you want hands-on guidance applying these techniques,<a href="https://vibecodelisboa.com/build-school"> check out our next cohort</a> or take <a href="https://vibecodelisboa.com/courses/claude-code-101">my self-serve video course</a> and work at your own pace.</p>]]></content:encoded></item><item><title><![CDATA[5 Lessons Learned From Build School Cohort 1]]></title><description><![CDATA[Just over a month ago five non-engineers sat in a room talking about ideas for their apps. Last Thursday they demoed working applications to a room of people. Here's what we learned along the way.]]></description><link>https://blog.vibecodelisboa.com/p/5-lessons-learned-from-build-school</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/5-lessons-learned-from-build-school</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Mon, 15 Dec 2025 09:27:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Kpcb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong>Lesson 1: Environment Setup Is Key</strong></h3><p><strong>The Reality:</strong></p><ul><li><p>This is the first domino that needs to fall for things to work. Get this wrong and it blocks everything else and leads to frustration. </p></li><li><p>Getting SSH keys working, WSL on Windows, GitHub authentication - these &#8220;simple&#8221; setup steps consumed more time than expected. </p></li><li><p>Doing this at an in-person kickoff event was very helpful as we were able to bust through most hurdles and everyone left with ability to begin working. </p></li></ul><p><strong>What We Learned:</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.vibecodelisboa.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Vibecode Lisboa! 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><ul><li><p>Setup is boring but critical - if your foundation is broken, it blocks everything else.</p></li><li><p>Windows users need WSL (<a href="https://learn.microsoft.com/en-us/windows/wsl/install">Windows Subsystem for Linux</a>) set up first and this has its own challenges as Toby found.</p></li><li><p>Don&#8217;t skimp on the setup checklist, even if it&#8217;s drudgery</p></li></ul><p><strong>The Fix:</strong></p><ul><li><p>Made environment setup a mandatory first session</p></li><li><p>I distilled all the learnings from setup challenges into <a href="https://vibecodelisboa.com/courses/claude-code-101/learn?lesson=akvth1v8ndwren0w62styae9">this lesson</a> which is now the 2nd step in the video course. Toby made this <a href="https://docs.google.com/document/d/10_TRDCri9RS0DDRI6eHzZ20jzqZ6jc-NvpYnGLV47v8/edit?usp=sharing">comprehensive setup guide for WSL and Frame0 for a Windows user</a>. </p></li></ul><p><strong>Takeaway:</strong> <em>The unglamorous work of getting your tools configured properly is the bedrock of everything that follows so it&#8217;s worth taking this part slowly to get it right. Once you can get Claude Code working you&#8217;re pretty much in the clear as it helps with tedious technical steps like this but you have to get over that first technical hurdle. Fortunately these steps and caveats are all now well-documented in that lesson linked above.</em></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kpcb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kpcb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Kpcb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Kpcb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Kpcb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kpcb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg" width="720" height="536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:536,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78249,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://scrollinondubs.substack.com/i/181604230?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Kpcb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Kpcb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Kpcb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Kpcb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc93280-2cfa-40bc-9d91-da491519da05_720x536.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Our small but mighty crew working during one of the Friday cowork sessions</em></p><h3><strong>Lesson 2: Start Visual, Not Technical</strong></h3><p><strong>The Surprise:</strong></p><ul><li><p>Students who started with <a href="https://frame0.app/">Frame0</a> mockups (a free web-based Balsamiq-like tool) made faster progress than those who dove straight into code</p></li><li><p>Imran did comprehensive Frame0 mockups for all screens and spent extra time on this step but this design-first approach gave him clarity on exactly what to build for his admin interface. </p></li></ul><p><strong>What We Learned:</strong></p><ul><li><p>Non-technical founders think best in terms of UX, not in code</p></li><li><p>Having visual mockups makes it easier to communicate with Claude Code: &#8220;Make this screen look like this mock&#8221;</p></li><li><p>The &#8220;wireframes &#8594; prototype &#8594; Frame0 &#8594; build&#8221; flow became our standard process</p></li><li><p>Students proposed alternative tools (<a href="https://uxpilot.ai/">UXPilot.ai</a>) showing the visual-first approach resonated however I will continue to teach Frame0 as it has this <a href="https://github.com/niklauslee/frame0-mcp-server">free open source MCP server</a> which makes it possible for Claude Code to act as your UX designer</p></li></ul><p><strong>The Methodology:</strong></p><ol><li><p>Review wireframes.md from <a href="https://vibecodelisboa.com/confabulator">Confabulator</a></p></li><li><p>Use Claude to generate prototypes from PRD</p></li><li><p>Generate screens with Frame0 MCP</p></li><li><p>Tweak in Frame0, save to <code>/confabulator/mocks</code></p></li><li><p>Give Claude Code the mocks: &#8220;Build these screens&#8221;</p></li></ol><p><strong>Takeaway:</strong> <em>When you can see it, you can build it. Get a &#8220;meeting of the minds&#8221; with Claude on the screens of your app before you start building anything. This reduces false starts, code debt and headaches from having to backtrack and make changes once you&#8217;ve begun building.</em></p><div><hr></div><h3><strong>Lesson 3: The Pivot is a Feature, Not a Bug</strong></h3><p><strong>The Story:</strong></p><ul><li><p>Louise started with Coachnova (coaching platform), pivoted to dog walking app mid-course but came back to Coachnova once she &amp; Nick partnered up</p></li><li><p>Nick&#8217;s original idea got invalidated, switched to language learning tool and shipped the fastest. </p></li><li><p>Rita iterated on her value prop and &#8220;<a href="https://grid7.com/2020/06/lateral-thinking-and-flintstoning/">flintstoned</a>&#8221; the case study categorization manually via Claude Desktop on her first few before automating things. </p></li></ul><p><strong>What We Learned:</strong></p><ul><li><p>The Confabulator &#8594; Frame0 &#8594; rapid iteration workflow makes pivoting cheap</p></li><li><p>Traditional development makes changing direction expensive (sunk cost fallacy kicks in)</p></li><li><p>To the extent you can reduce switching costs and make pivoting more frictionless the cost of experimenting goes to nearly zero and you can iterate faster. </p></li><li><p>With AI tools, you can rebuild your entire app in hours, not months compressing the iteration loop to the point where you can be on a zoom call with a prospect  making tweaks and pushing to production during the course of a call. </p></li><li><p>The students who embraced changing direction based on input from prospects ended up with stronger products. </p></li></ul><p><strong>Why This Matters:</strong></p><ul><li><p>Your first idea is probably wrong - and that&#8217;s fine. It&#8217;s a matter of breaking analysis paralysis and just moving forward with something that then gives you the excuse to talk with prospects and incorporate learnings from those conversations to dialing in the product. </p></li><li><p>The goal isn&#8217;t to build your original idea perfectly; it&#8217;s to build something that earns you the right to have substantive conversations with prospects so you can learn and iterate. </p></li><li><p>The cohort format gave everyone permission to change direction without feeling like failure. </p></li></ul><p><strong>Takeaway:</strong> <em>The ability to pivot quickly is a superpower. Don&#8217;t fall in love with your initial idea or you&#8217;ll defend it in the face of contrary evidence. Instead fall in love with the problem and the discovery / pivot process to unearth and attack it.</em></p><div><hr></div><h3><strong>Lesson 4: Accountability &gt; Instruction</strong></h3><p><strong>The Pattern:</strong></p><ul><li><p>Nick showed up to every session, asked questions, kept building and had a completed MVP 2wks in (and that was after spending the first week on an idea that didn&#8217;t work)</p></li><li><p>&#8220;Ninety percent of success in life is just showing up.&#8221; - Woody Allen. Students who missed sessions or &#8220;hadn&#8217;t done anything since last week&#8221; fell behind. Accountability and showing up to calls yields a virtuous cycle.   </p></li><li><p>The group dynamic created positive peer pressure: &#8220;Everyone else is shipping, I should too.&#8221;</p></li></ul><p><strong>What We Learned:</strong></p><ul><li><p>The live troubleshooting sessions mattered more than the recorded lectures</p></li><li><p>Having Kelly share his <a href="https://padelmaps.org/">PadelMaps.org</a> success story on Day 1 set the tone: &#8220;This is possible&#8221; - equivalent of breaking the four-minute mile and inspiring the cohort that it can be done. </p></li><li><p>The format worked: Mon/Wed office hours + Friday in-person co-working</p></li><li><p>Students proposed tools (Gummy Search, 2chat.io) to each other. As a group we cast a wide net of awareness in a space that&#8217;s evolving quickly so it&#8217;s yet another perk: being able to unearth useful tools by having broad awareness via others. </p></li></ul><p><strong>The Office Hours Magic:</strong></p><ul><li><p>Real-time debugging (Toby&#8217;s quota limit issues, Rita&#8217;s API integration)</p></li><li><p>Watching others solve problems taught as much as solving your own</p></li><li><p>Social proof: &#8220;If they can do it, I can do it&#8221;</p></li></ul><p><strong>What Didn&#8217;t Work:</strong></p><ul><li><p>Expecting significant progress between check-ins. Everyone in the group had a full-time job and/or family commitments and it&#8217;s just not realistic to think that it&#8217;s possible to commit multiple hours per day to working on their project. </p></li></ul><p><strong>Takeaway:</strong> <em>What&#8217;s missing for most people is not the knowledge/instruction. It&#8217;s the accountability, peer motivation, and someone to unstick you when you&#8217;re blocked. Our cadence of M/W office hours and Friday in-person cowork was the perfect mix for this. </em></p><div><hr></div><h3><strong>Lesson 5: Ship Ugly, Ship Early, Ship Often</strong></h3><p><strong>The Success Story:</strong></p><ul><li><p>Nick essentially had his iOS app done by Week 2 (Nov 14)</p></li><li><p>He shipped incomplete features, tested them, iterated</p></li><li><p>Meanwhile, some students were still &#8220;refining their foundational docs&#8221;</p></li></ul><p><strong>What We Learned:</strong></p><ul><li><p>Perfectionism kills momentum. I said this repeatedly throughout the course but &#8220;<em>Don&#8217;t let perfection be the enemy of shipping.</em>&#8221; </p></li><li><p>The students who deployed to Vercel early (even with bugs) made faster progress</p></li><li><p>&#8220;Comfortable with the unknown&#8221; became a mantra - trust Claude Code even when you don&#8217;t understand every line. </p></li><li><p>The database lesson: Build with dummy data first, add real database later. </p></li></ul><p><strong>The Workflow That Emerged:</strong></p><ol><li><p>Confabulator &#8594; foundational docs</p></li><li><p>Mockups &#8594; basic screens with hardcoded data</p></li><li><p>Deploy to Vercel (even if it&#8217;s borked)</p></li><li><p>Add database</p></li><li><p>Iterate based on user feedback</p></li></ol><p><strong>The Mindset Shift:</strong></p><ul><li><p>From: &#8220;I need to understand everything before I build&#8221;</p></li><li><p>To: &#8220;I&#8217;ll build, test, and figure out what I need to know as I go&#8221;</p></li></ul><p><strong>The &#8220;Checkpoint&#8221; Technique:</strong></p><ul><li><p>Commit early, commit often</p></li><li><p>Each commit is a save point - you can always <code>/rewind </code>or absolute worst case nuke your installation and pull the last known-good version from Github.</p></li><li><p>This gave students confidence to experiment without fear of breaking everything.</p></li></ul><p><strong>Takeaway:</strong> <em>The flawed app you ship today beats the perfect app you&#8217;ll launch &#8220;someday.&#8221; Get it live, get feedback, get better. I am planning to add a &#8220;firedrill&#8221; step early on in the next cohort where we intentionally break things, throw away the code and pull down a pristine copy from github so students internalize how proper Github habits make you bulletproof. That confidence to develop with abandon will be priceless and liberating. </em></p><div><hr></div><h3><strong>Conclusion: What I&#8217;m Changing for Cohort 2</strong></h3><p><strong>What&#8217;s Staying:</strong></p><ul><li><p>Design-first approach (Frame0 mockups before coding)</p></li><li><p>Monday/Wednesday/Friday rhythm</p></li><li><p>Inspirational guest speaker on Day 1 (Kelly&#8217;s testimonial was gold - likely invite students from Cohort 1 back as alumni to inspire Cohort 2)</p></li><li><p>Keep small cohort size (5-6 students max)</p></li></ul><p><strong>What&#8217;s Changing:</strong></p><ul><li><p>Better Windows setup documentation (WSL guide upfront)</p></li><li><p>Frame0 and Frame0 MCP in initial setup (not added later)</p></li><li><p>Material now taught via the <a href="https://vibecodelisboa.com/courses/claude-code-101">self-paced video course</a> and office hours used for answering questions vs. teaching concepts </p></li><li><p>More explicit &#8220;checkpoint&#8221; rituals (commit after every session)</p></li><li><p>Standardized database approach from Day 1 (SQLite &#8594; Turso path)</p></li></ul><p><strong>The Big Lesson:</strong> <em>Five students, five working apps, 30 days. These tools allow you to be a product manager and leverage AI as your engineering team - this is the future of building software even if you already know how to code. You can find all student demos from <a href="https://vibecodelisboa.com/events/build-school-demo-night">graduation night here</a>. If you want to be part of Cohort 2 starting Jan 12th <a href="https://vibecodelisboa.com/build-school/apply">applications are now open</a>. Or if you&#8217;re a self-starter and don&#8217;t need the cohort-based accountability component feel free to <a href="https://vibecodelisboa.com/courses/claude-code-101">take the course</a> and work independently at your own pace. Whatever your style we have an option to support you. The only question is &#8220;what will you build?&#8221; </em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.vibecodelisboa.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Vibecode Lisboa! 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[Why learning Claude Code is the best thing you can do for your résumé in 2026]]></title><description><![CDATA[Whether you want to start a side hustle or upskill/reskill for your job, this is the time to learn vibecoding tools, and specifically Claude Code]]></description><link>https://blog.vibecodelisboa.com/p/why-learning-claude-code-is-the-best</link><guid isPermaLink="false">https://blog.vibecodelisboa.com/p/why-learning-claude-code-is-the-best</guid><dc:creator><![CDATA[Sean Tierney]]></dc:creator><pubDate>Fri, 12 Dec 2025 15:55:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sak9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.vibecodelisboa.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.vibecodelisboa.com/subscribe?"><span>Subscribe now</span></a></p><h2>If you do one thing this year, learn to vibecode</h2><p>The future of work is uncertain. You&#8217;ve heard about massive layoffs - <a href="https://fortune.com/2025/08/08/ai-layoffs-jobs-market-shrinks-entry-level/">800k+ layoffs in the first seven months of 2025</a> in the US alone. Progressive companies like <a href="https://quasa.io/media/zapier-now-only-hires-ai-savvy-talent-here-s-what-you-need-to-know">Zapier announced that they are &#8220;AI-first&#8221;</a> and require that 100% of new hires have proficiency with AI in their role. In an environment where big companies openly use AI to justify cutting &#8220;replaceable&#8221; roles, the way to become in-expendable is to be the person who can wield AI, automation, and vibecoding to create value, not just knowledge to perform a narrow, automatable task.</p><h3>What is vibecoding?  </h3><p>&#8220;Vibecoding&#8221; is the process of building software using plain english as your programming language. You can pick up a tool like Bolt.new or Lovable.dev and in a matter of minutes build a functional prototype application that works without knowing how to program. This method of building software promises to give superpowers to the layperson with the ability to create software without having to spend years learning how to write code. </p><p>It&#8217;s attractive - even seductive - the idea that you can generate an app in a matter of minutes. People have built internal tools that saved their teams countless hours and even launched side businesses that earn 5-figure MRR without knowing how to code. The problem is this utopian vision of vibecoding your way to riches and financial freedom tends to break down as soon as your application gains paying customers and it needs to be supported and extended with new features. Vibecoding is fantastic for prototyping but in its &#8220;shoot from the hip without a process&#8221; variant is inadequate for running production software. We need an approach that&#8217;s more deliberate and bulletproof to build production software. Fortunately one exists and <a href="https://vibecodelisboa.com/courses/claude-code-101">I&#8217;m now teaching it</a>. </p><h3>Why this is important</h3><p>A few examples of AI cannibalizing jobs in the corporate environment: </p><p>&#9;&#8226;&#9;IBM: <a href="https://www.finalroundai.com/blog/ai-tech-layoffs-mid-2025">Around 8,000 employees laid off in 2025</a>, largely from HR, with the company stating those roles were being replaced by an internal AI chatbot (&#8220;AskHR&#8221;) while they rehire into software and data roles. </p><p>&#9;&#8226;&#9;Intel: <a href="https://www.finalroundai.com/blog/ai-tech-layoffs-mid-2025">Announced over 21,000 job cuts</a> (nearly 20% of its workforce), tied to a shift in focus toward AI chip manufacturing and away from other units. </p><p>&#9;&#8226;&#9;Microsoft: <a href="https://www.finalroundai.com/blog/ai-tech-layoffs-mid-2025">More than 15,000 cuts in 2025</a>, including 9,000 roles in gaming and cloud, framed as simplification and reinvestment in AI; management has explicitly linked productivity gains to tools like GitHub Copilot reducing the need for certain support layers. </p><p>&#9;&#8226;&#9;Meta &amp; Google: <a href="https://www.finalroundai.com/blog/ai-tech-layoffs-mid-2025">Both have trimmed staff in specific divisions</a> (e.g., Reality Labs at Meta; platforms/devices at Google) while simultaneously announcing increased investment in AI research and AI-powered product features. </p><p>Guess who the people are who are not getting let go? </p><p>The ones who learn to embrace these technologies and use them to amplify their effectiveness &amp; productivity. </p><p>Learning how to vibecode an application is a double-whammy in that it:</p><ol><li><p>Makes you less expendable and more desirable as an employee at a day job. </p></li><li><p>Gives you a superpower to start a revenue-generating side hustle that can provide a supplementary income stream and give you greater negotiating leverage. </p></li></ol><h3>So why doesn&#8217;t everyone learn this?  </h3><p>Tools like Lovable.dev and Bolt.new are super accessible and easily picked up by non-technical folks. The problem is they fall short when it comes to building production-grade software applications. Tools like Cursor, Claude Code, Windsurf, Anti-gravity, Codex and Copilot are the second tier, more-sophisticated implements one needs to accomplish this however there&#8217;s still a non-trivial technical barrier to overcome in using them. One needs to configure SSH keys, gain some basic proficiency with using the Linux command line, learn some basics of Git and Github, MCP&#8217;s, etc. </p><p>There has been no straightforward path (until now) that hand-holds the average non-engineer across this technical chasm by delivering just the minimum effective dosage of instruction with concepts one needs to know to gain proficiency with these tools. This gap is just wide enough to preclude 99% of people from using these incredibly-powerful tools. </p><h3>Enter Vibecode Lisboa</h3><p>I started <a href="https://vibecodelisboa.com/">this group</a> three years ago in Lisbon in an attempt to close this gap. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sak9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sak9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 424w, https://substackcdn.com/image/fetch/$s_!sak9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 848w, https://substackcdn.com/image/fetch/$s_!sak9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!sak9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!sak9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png" width="1456" height="844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:683730,&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://scrollinondubs.substack.com/i/181430592?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.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_!sak9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 424w, https://substackcdn.com/image/fetch/$s_!sak9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 848w, https://substackcdn.com/image/fetch/$s_!sak9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!sak9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01c2631c-0b91-4f0f-a356-255b3e3846ca_2009x1164.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>It pre-dated the recent GenAI tools that have sprung up in the past year and was originally called &#8220;Nocode Lisboa&#8221; and centered around using tools like Bubble.io, Webflow and Adalo for building software as a non-technical person. With the advent of these recent powerful AI-based tools I pivoted the group to center on using them to take the place of Nocode. This is the way at this point. Once you grasp the basics of working with an LLM to build an application the Nocode approach seems incredibly arcane and restrictive (vendor lock-in, high fees, constrained in how fast you can iterate, none of the extensibility that MCP affords you). </p><p>As of today Vibecode Lisboa is a group with a physical presence in Lisbon, Portugal but one that welcomes participation in our online community regardless of where you are from. As a semi-retired individual it&#8217;s now my main focus and charge to help laypeople gain proficiency with these tools and get liberated from the rat race so they can comfortably create whatever it is they&#8217;re born to create on their own terms. </p><h3>What will you build?  </h3><p>As we close out 2025 I invite you to take this thought exercise: imagine forward one, two, three years with your current work trajectory given your current skill set and changing nothing. What do your days look like? What types of work are you doing and how stable is your footing? </p><p>Now imagine your path with the capability to create fully-functional web and mobile apps in an afternoon. What can you build with the specific domain knowledge and judgement you&#8217;ve amassed over a career and a life of all the exposure to ideas and opportunities that are uniquely yours? What would it be like to emerge as the leader in your organization who figures out how to leverage these tools productively and levels up your team? How does that confidence feel once you&#8217;ve mastered the basics enough to create a side hustle which can provide for you and your family even if your corporate job gets cut? How much negotiating leverage does that give you next time you&#8217;re up for promotion in your day job? And what will you do with the hours you win back in your daily life having been able to automate and delegate drudgery via these tools? </p><p>2026 is the year to become proficient with GenAI tools and I will teach you how. My name is Sean Tierney and I am teaching people like you how to employ this stuff productively. Take my <a href="https://vibecodelisboa.com/courses/claude-code-101">online self-serve course</a> or apply for <a href="https://vibecodelisboa.com/build-school">our next cohort</a> and take the first definitive step to gaining proficiency with the tools that represent the greatest leverage potential of our lifetimes. I look forward to meeting you. </p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.vibecodelisboa.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Vibecode Lisboa! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>