<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Vibe Coding on Feld Thoughts</title><link>https://feld.com/tags/vibe-coding/</link><description>Recent content in Vibe Coding on Feld Thoughts</description><image><title>Feld Thoughts</title><url>https://feld.com/og-default.png</url><link>https://feld.com/og-default.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 27 Mar 2026 10:25:23 -0700</lastBuildDate><atom:link href="https://feld.com/tags/vibe-coding/index.xml" rel="self" type="application/rss+xml"/><item><title>Nothing New to See Here</title><link>https://feld.com/archives/2026/03/nothing-new-to-see-here/</link><pubDate>Fri, 27 Mar 2026 10:25:23 -0700</pubDate><guid>https://feld.com/archives/2026/03/nothing-new-to-see-here/</guid><description>A founder told me seasoned engineers keep saying AI-built software is not possible. I&amp;#39;ve heard this exact story before - about the Internet, the Web, SaaS, and mobile.</description><content:encoded><![CDATA[<p>A founder I&rsquo;ve been emailing with sent me something that made me laugh. Not because it was funny - because I&rsquo;ve heard it, and flavors of it, so many times over the past 30 years.</p>
<blockquote>
<p>“I committed to Cursor and went heads down for about 4 months. Our platform went live in January. We have about 400 users across 50 paying customers. With the exception of the AWS IAC, the platform was 100% built with AI. Unfortunately, I&rsquo;ve had very seasoned engineers emphatically tell me, &lsquo;It&rsquo;s not possible,&rsquo; &lsquo;It&rsquo;s a house of cards,&rsquo; or &lsquo;It has to be AI slop.&rsquo;”</p>
</blockquote>
<p>She&rsquo;s not an engineer by training, but she&rsquo;s tech savvy enough to have run product, dev, and operations teams at scale. She committed to a tool, went heads down, and shipped a platform that now has paying customers.</p>
<p>And now “seasoned engineers&quot; are telling her it&rsquo;s not possible.</p>
<p>I told her that was nonsense. There is a ton of crappy AI-generated software out there - I won&rsquo;t argue that. But you can build high-quality, production-grade software using AI right now.</p>
<hr>
<p>Then she asked the money question.</p>
<blockquote>
<p>&ldquo;I also hear that investors are reluctant to invest in AI-developed platforms&hellip; especially one not developed by an engineer. Here&rsquo;s my question. From your experience, is the approach I took a pro or a con for investors?&rdquo;</p>
</blockquote>
<p>Investors who don&rsquo;t think very hard will have that reaction. But a React app hacked together by two technical co-founders in a garage isn&rsquo;t inherently better than one built by a domain expert using AI tools. Code quality at the seed stage has never determined whether a company succeeds. What matters is whether you can find AI-first engineers to join your team and help harden the systems as you scale.</p>
<hr>
<p>As a devotee of Battlestar Galactica, I can comfortably say, &ldquo;All this has happened before, and all of this will happen again.&rdquo;</p>
<p><em>The Internet</em> - &ldquo;It&rsquo;s a toy.&rdquo; I sat in meetings in the mid-1990s where smart people explained patiently that the Internet was a curiosity for academics. I had a CEO friend tell me to stop bothering him about the Internet - he ran a direct mail business and he&rsquo;d been doing it successfully for twenty years. Real commerce happened in stores and through catalogs.</p>
<p><em>The Web</em> - &ldquo;Web software doesn&rsquo;t really work and isn&rsquo;t secure.&rdquo; I remember a CTO at a financial services company who said that his team would never deploy software they didn&rsquo;t compile and install themselves. Web apps were demos. They broke. They couldn&rsquo;t be audited. They couldn’t be controlled. He had a compliance department to answer to.</p>
<p><em>SaaS and the Cloud</em> - &ldquo;It&rsquo;s not as secure, reliable, or safe as running your own data center.&rdquo; I heard this one for a decade. I sat across from CIOs and CTOs who insisted they needed their own racks, their own physical control, and keycard access to the data center. One told me he&rsquo;d be the last person on earth to move to the cloud. Last time I checked, he was on AWS.</p>
<p><em>Mobile</em> - “It&rsquo;s a toy. Mobile devices will never replace a computer.” <a href="https://www.youtube.com/watch?v=eywi0h_Y5_U" target="_blank" rel="noopener noreferrer">Steve Ballmer&rsquo;s 2007 reaction to the iPhone</a>. “Five hundred dollars? Fully subsidized with a plan?” The phone was for calls and maybe email. Real work happened on a laptop. Apps were games for kids.</p>
<hr>
<p>The engineers telling this founder &ldquo;it&rsquo;s not possible&rdquo; are in the same camp as the CTO who wouldn&rsquo;t deploy web software. The VCs who won&rsquo;t fund an AI-built product are like the CIOs who refused to move to the cloud.</p>
<p>She built something real. She should talk about it publicly. She should find AI-first engineers to help her scale it. And she should ignore anyone who tells her what she built isn&rsquo;t possible - especially while she&rsquo;s running it in production.</p>
<p>Nothing new to see here.</p>
]]></content:encoded></item><item><title>Proud Uncle Alert – Sabrina Feld</title><link>https://feld.com/archives/2026/02/proud-uncle-alert-sabrina-feld/</link><pubDate>Fri, 27 Feb 2026 08:09:08 +0000</pubDate><guid>https://feld.com/archives/2026/02/proud-uncle-alert-sabrina-feld/</guid><description>My brother Daniel sent an email to the family last Wednesday with the subject line “Proud Dad alert!” His daughter Sabrina had just built and launched a portfolio website from</description><content:encoded><![CDATA[<p><a href="https://sabrinafeld.com/" target="_blank" rel="noopener noreferrer"><img src="https://feld.com/archives/2026/02/proud-uncle-alert-sabrina-feld/Screenshot-2026-02-27-at-8.05.21-AM.png" alt="Homepage of Sabrina Feld featuring a bold introduction, a grid of vibrant artwork, and a brief description of her studies at Scripps College." loading="lazy"></a></p>
<p>My brother Daniel sent an email to the family last Wednesday with the subject line “Proud Dad alert!” His daughter <a href="https://sabrinafeld.com" target="_blank" rel="noopener noreferrer">Sabrina</a> had just built and launched a portfolio website from scratch. She didn’t use Squarespace or Wix. She built a custom <a href="https://nextjs.org/" target="_blank" rel="noopener noreferrer">Next.js</a> site with scroll-triggered animations, a frosted glass navigation header, a custom image carousel with lightbox, and six page templates – all self-hosted on <a href="https://www.netlify.com/" target="_blank" rel="noopener noreferrer">Netlify</a>.</p>
<p>Sabrina is a senior at <a href="https://www.scrippscollege.edu/" target="_blank" rel="noopener noreferrer">Scripps College</a> pursuing dual degrees in Science, Technology &amp; Society and Fine Arts. She’s a product designer and fine artist – not a software developer. She built the entire thing using <a href="https://claude.ai/claude-code" target="_blank" rel="noopener noreferrer">Claude Code</a>.</p>
<hr>
<p>She wrote a <a href="https://sabrinafeld.com/projects/building-this-website/" target="_blank" rel="noopener noreferrer">blog post about the process</a>, describing what it’s like to direct an AI when you don’t know CSS. She “had to get precise in other ways” – using design vocabulary and visual references instead of code snippets. When bugs appeared, she described symptoms and shared screenshots rather than reading stack traces.</p>
<p>A line that stuck with me: “Vague prompts produced generic designs. Clear creative conviction produced something that felt like mine.”</p>
<p>This matches what I see building with Claude Code every day. The quality of the output tracks directly with the specificity of the input. “Make this look better” gives you something generic. “I want warm tones, editorial layout, and a buttercup accent color for hover states” gives you something that looks like a real design decision was made. Sabrina’s version of this was arriving at each session with strong opinions about what she wanted – gathered design references, prepared content, and a clear vision for the aesthetic.</p>
<p>She did over twenty feedback sessions across an eleven-day build, with about four to six hours of active work. The AI didn’t eliminate iteration. It made each round faster.</p>
<hr>
<p>Go look at <a href="https://sabrinafeld.com" target="_blank" rel="noopener noreferrer">the site</a>. Her art section showcases monotype, pastel, watercolor, and cyanotype work. The projects section covers her product management work at <a href="https://www.stackhawk.com/" target="_blank" rel="noopener noreferrer">StackHawk</a>, including a product launch she led end-to-end and research for an AI-driven security testing tool. The design is clean and typography-focused, with a dark footer and those buttercup accent colors she specified.</p>
<p>After I saw the site, I did what any uncle who is a nerd would do – I ran a security review. The results were solid. TLS configuration is correct, no sensitive files exposed, no source maps in production, and HTTP redirects to HTTPS correctly. I sent Sabrina a list of security headers to add and some DNS records worth configuring – about ten minutes of work that addresses the findings.</p>
<hr>
<p>Sabrina is looking for roles in product design and product management after graduation this spring. Her portfolio is at <a href="https://sabrinafeld.com" target="_blank" rel="noopener noreferrer">sabrinafeld.com</a>.</p>
]]></content:encoded></item><item><title>Leveling Up in the Vibe Coding Video Game</title><link>https://feld.com/archives/2025/10/leveling-up-in-the-vibe-coding-video-game/</link><pubDate>Mon, 13 Oct 2025 08:56:53 +0000</pubDate><guid>https://feld.com/archives/2025/10/leveling-up-in-the-vibe-coding-video-game/</guid><description>While “vibe coding” was a catchy phrase when I first heard it, something about it felt like a head fake to me. And, now that I’ve leveled up to “competent</description><content:encoded><![CDATA[<p>While “vibe coding” was a catchy phrase when I first heard it, something about it felt like a head fake to me. And, now that I’ve leveled up to “competent individual software developer” again (after 33 years of not writing any code) I think it’s the wrong phrase. Instead, I’d refer to what’s going on as AI Pair Programming.</p>
<p>When I started playing around with AI-related coding tools last Christmas (because, well, I was bored), I had zero skills with contemporary software development. While I hadn’t written any production code since 1992, I played around with a new programming language every few years. Perl. Ruby. Ruby on Rails (sort of, not really). Python. Clojure. I could do Hello World and a few other simple things, but I never really got past basic CSS, tooling, or deployment stuff. I had a Github account and would futz around with it, but quickly get tired of trying to figure out why I didn’t care about a PR. And damn, so many CLI things.</p>
<p>For Level 1, I downloaded Cursor. After trying to figure out how Django actually worked (yet another online course), gave up, and decided to use Next.js. That led me to Vercel, reinforced by a few friends in their 20s who told me that all the cool kids were using Vercel (although Render, Digital Ocean, and AWS all were the beneficiaries of my credit card.) Pretty soon, I was using Cursor to fight with Vercel, Supabase, Clerk, and Github. After realizing Auto was no fun, I shifted to Claude 3.5. <a href="https://www.dinostroids.com/" target="_blank" rel="noopener noreferrer">Dinostroids</a> resulted (security holes and all …)</p>
<p>For Level 2, I got a little more serious. I discovered Linear, fought with Notion, and came up with a few ideas and a broader hypothesis around how things might work. I built a v0.1 of a thing.</p>
<p>For Level 3, I decided Lovable might be a better way than Cursor given that everyone was talking about it. I wasted about $200 on it, built a really cool design by vibe coding, but then watched it get very, very confused as it tried to go from simple design to something that actually worked that had some data complexity and AI calls. I thought about trying Bolt and Replit but quickly realized, after too much scrolling around on the web, that I’d likely run into the same issues.</p>
<p>So, I went back to Cursor and put a lot of efforts into my system prompt, tuning things, watching Cursor evolve quickly on a number of fronts (MCPs – yippee!, Agent mode as default – finally) while simultaneously watching my Cursor bill go up. It was easy to decide to go to Max mode and spend $200 / month instead of $20 / month when dinner in Aspen costs at least $100 / person no matter which restaurant you go to.</p>
<p>I hung out at Level 4 for a while. Cursor kept improving. Claude 4 came out. Auto mode still went off the rails and broke all my code. I started refactoring things and realized that the amount of cruft in my code was absurd. Little bugs turned into fatal flaws when I tried to have Cursor fix something. I learned about “git reset –hard HEAD”. I spent way too much time fighting with config issues on localhost:3000 (at least I’d figured out how to make Cursor always start the server on localhost:3000). I started using Docker. I was baffled that Cursor couldn’t remember stuff I told it the prior day, but intellectually understood why this was. I mean, memories.</p>
<p>The end of my joy at Level 4 was when ChatGPT 5 came out and was free on Cursor for a week. At first, it felt fast. Wheeee. Lots of stuff changing. It seems to be working. And then, after a few days, holy shit what a tangled mess of code it generated. Why are all my API routes suddenly broken. Console statements everywhere. UI elements in different parts of the application doing the same thing but look totally different. I went back to Claude and did another code review and major refactor. So many Vercel build errors. I finally embraced CI/CD. And Prettier. And Husky. Suddenly, I ran out of my monthly Cursor credits and shifted to usage-based pricing. $800 later, I realized that there was no reason for me to be using Opus or the thinking models for what I was doing.</p>
<p>Level 4 was a huge drag. But it was also when I started thinking of this as AI pair programming. The AI (or agent, or sub-agent, or whatever you want to call it) is my pair with hands on keyboard. It can type much faster than me. But I have to watch and constantly look over its shoulder, give it feedback, point at the stuff that needs to be done differently, and document what is important to remember to do.</p>
<p>And then I discovered Claude Code. This didn’t happen until Claude Code 2 came out at the end of September and corresponded with Sonnet 4.5. After my ChatGPT 5 I went back to Claude (and Sonnet) and started referring to Claude Sonnet as “Claudia” since she was my pair programmer. I thought about Claudia as a pair, related to her as I would a human pair programmer, and changed my approach. But when I loaded up Claude Code 2 in my terminal (I mean, just type “Claude”) I immediately leveled up again.</p>
<p>So – I’m now at Level 5 in the video game. It’s changed from a game of vibe coding to AI pair programming. And, it’s still fun!</p>
]]></content:encoded></item><item><title>Vibecoding Prompts</title><link>https://feld.com/archives/2025/05/vibecoding-prompts/</link><pubDate>Sat, 31 May 2025 12:33:20 +0000</pubDate><guid>https://feld.com/archives/2025/05/vibecoding-prompts/</guid><description>A long time ago, in a galaxy far, far away, I was a CTO of a large, fast-growing public company. Well, I was a Quasi CTO in the same way</description><content:encoded><![CDATA[<p>A long time ago, in a galaxy far, far away, I was a CTO of a large, fast-growing public company. Well, I was a Quasi CTO in the same way the <a href="https://en.wikipedia.org/wiki/Quasi-War" target="_blank" rel="noopener noreferrer">United States and the First French Republic had a Quasi War between 1798 and 1800</a> (basically, sort of a war; sort of a CTO … but not really.)</p>
<p>As I rediscover my <a href="https://en.wikipedia.org/wiki/Computer_programming" target="_blank" rel="noopener noreferrer">second love</a> (my first love is Amy), I’ve relied on several mentors to help guide me. One of them is <a href="https://x.com/michaelnatkin" target="_blank" rel="noopener noreferrer">Michael Natkin</a>, who has been helping me with Cursor in the background at a few key moments.</p>
<p>He recently sent me his most recent Vibecoding prompt for Cursor, which builds on a tweet by <a href="https://x.com/vasumanmoza" target="_blank" rel="noopener noreferrer">@vasumanmoza</a>.</p>
<blockquote>
<p>Step 3: In Cursor/Windsurf</p>
<p>“ You’re an engineer building this codebase.<br>
You&rsquo;ve been given <a href="https://t.co/4toKpBJXtw" target="_blank" rel="noopener noreferrer">https://t.co/4toKpBJXtw</a> and <a href="https://t.co/l8N5DeDVvb" target="_blank" rel="noopener noreferrer">https://t.co/l8N5DeDVvb</a>.<br>
– Read both carefully. There should be no ambiguity about what we’re building.<br>
– Follow <a href="https://t.co/l8N5DeDVvb" target="_blank" rel="noopener noreferrer">https://t.co/l8N5DeDVvb</a> and complete one task at…</p>
<p>— vas (@vasumanmoza) <a href="https://twitter.com/vasumanmoza/status/1923912897505394991?ref_src=twsrc%5Etfw" target="_blank" rel="noopener noreferrer">May 18, 2025</a></p>
</blockquote>
<p>Given all the things I’ve learned about what works and doesn’t work, often through trial and error (and rolling back things when Cursor+Claude go off the rails), Michael’s approach was a nice improvement over where I had gotten to. So – sharing it below (with Michael’s permission).</p>
<hr>
<p>I recommend using Claude Sonnet 4, and you can do all of this entirely in Cursor. This applies whether you are creating a greenfield project or making a substantial change to an existing one. You can repeat the process with architecture2.md, tasks2.md as needed, don’t throw them away.</p>
<p>Be sure to install the Puppeteer MCP so it can test in the browser.</p>
<h2 id="overview">Overview</h2>
<ol>
<li>Do the architecture step, see below</li>
<li>Review architecture.md, and make any changes you want – either by hand editing, asking for changes, or starting over. Particularly note if it is overcomplicating things, and ask for the simplifications you want.</li>
<li>Do the task planning step, see below</li>
<li>Review tasks.md, and make any changes you want – either by hand editing, asking for changes, or starting over. You should end up with, sa,y at least 10 steps, and often 25 or more. It will typically arrange them in phases, which is nice. Again, look for and correct excess complication.</li>
<li>Start a new chat</li>
<li>Give it the coding step prompt. It should execute the first task very cheerfully. </li>
<li>After it is done, review it and then say “go” to get the next step. If it screwed up, you can either tell it to fix whatever it did wrong, or more usually restore checkpoint in cursor, and tell it something like “go, but use litellm for that” or whatever you need to be different.</li>
<li>Rinse and repeat!</li>
<li>Optionally, esp. If you are going to be away for a while, you can sa,y “I’m going to be afk for a bit. You can keep going on steps without waiting for me as long as both the manual and automated tests pass.” It will still stop after 25 steps or if it ignores you and runs something interactive, but it often makes a lot of progress.</li>
<li>Highly recommended: run /Generate Cursor Rules after each step</li>
</ol>
<p>Something I haven’t tried yet, but should work well – tell it to mark what is complete in <a href="http://tasks.md" target="_blank" rel="noopener noreferrer">tasks.md</a>, so you can start fresh chats periodically and not keep such a huge message history.</p>
<h2 id="architecture-step--greenfield">Architecture Step – Greenfield</h2>
<p>I’m building a [description of your product – the more detailed the better].<br>
[Any tech requirements, i.e. use Python for backend and React + Material-UI for the frontend. The more the better.] <br>
Put the full architecture in architecture.md<br>
– File + folder structure<br>
– What each part does<br>
– Where the state lives, how services connect<br>
Format this entire document in Markdown.</p>
<p><img src="https://feld.com/archives/2025/05/vibecoding-prompts/AD_4nXfq9UfLuzi82RghsrBxMDsINaW5-Dqa11509Cpu7Lfi_JL3bYCL05cAD8PzcXtdsyaHXV9UzNibZ_HFmOUo5s4-wmh1C8ijkA-216vANJ5PG4sATGdfNGpRgxHyHw2WOKsQ85M1Rg.png" alt="A screenshot of a document titled &lsquo;Multi-LLM Chat Tool Architecture&rsquo;, outlining the overview, tech stack, and project structure for the application." loading="lazy"></p>
<h2 id="architecture-step--existing-codebase">Architecture Step – Existing Codebase</h2>
<p>I want to modify this codebase so that it performs [whatever].<br>
Do all of your work consistently with the existing style and architecture.<br>
Put the full architecture in architecture.md<br>
– File + folder structure<br>
– What each part does<br>
– Where the state lives, how services connect<br>
Format this entire document in Markdown.</p>
<h2 id="task-planning-step">Task Planning Step</h2>
<p>Using that architecture, write a granular step-by-step plan to build the MVP.<br>
Each task should:<br>
– Be incredibly small + testable – it should both have unit tests that you can run, and also a manual test that you can run from the command line or using the browser tool<br>
– Have a clear start + end<br>
– Focus on one concern<br>
I’ll be passing this off to an engineering LLM that’ll be instructed to complete one task at a time, allowing me to test in between. <br>
Save it as tasks.md.</p>
<h2 id="coding-step">Coding Step </h2>
<p>You’re an engineer building this codebase.<br>
You’ve been given @tasks.md and @architecture.md <br>
– Read both carefully. There should be no ambiguity about what we’re building.<br>
– Follow tasks.md and complete one task at a time, then run the automated tests you’ve written and use the command line or browser tool to manually test<br>
– After each task is completed, stop. I’ll test it and review your code. If it works, commit to git and move to the next one.”<br>
You are already in the correct directory. Build the project here. DO NOT CREATE A SUBDIRECTORY.<br>
You have my permission to delete files IN THIS DIRECTORY without asking for approval.<br>
BE VERY CAREFUL never to run any interactive commands in the foreground, because you’ll be stuck. For example, be sure to run the development server once, in the background with hot reloading.</p>
<h2 id="example-of-what-a-task-step-looks-like">Example of What A Task Step Looks Like</h2>
<p><img src="https://feld.com/archives/2025/05/vibecoding-prompts/AD_4nXeX8NfrXQ7WEr-_j-MMMfvOuu7d5LyyGAIMz9ZiJQG2lLb0Gtg4zjbCp5ERoKPsNyerfZGH5O7fipOxBrohXTM4U1qKEzEWtMfjZT6VQjxb9Ii6Hgn6a5lqNRWr4h5-4-LEHjCHFQ.png" alt="Code snippet showing a Task to create an API service client in TypeScript, including definitions for ChatRequest and ModelResponse interfaces and an asynchronous function to send chat requests." loading="lazy"></p>
<h3 id="one-step-of-building">One step of building:</h3>
<p><img src="https://feld.com/archives/2025/05/vibecoding-prompts/AD_4nXcfjEd68qmGHOaJ_Ndy53sYFkNe7h1xoFBwMYkN7U2cT4K3g2qV9PwQDcYbJC9FFKcb2tk0xpWrXC1FBM2wBo-l8dU7uulm5vp6cPTjHo2UZMoCDS06KAFFAb6tcyqsHvcRUa3l.png" alt="Code snippet showing the creation of an API service client in TypeScript, defining interfaces for chat requests and model responses." loading="lazy"></p>
<p><img src="https://feld.com/archives/2025/05/vibecoding-prompts/AD_4nXdYRf9f9gYAWwSOqF0YqAHSJvALkf2iBMgTilp-p7aoQUcVT2RDKdG90ukuVqbQkUTu86rVK3I8jLZsQl3msCWDmBgimhkEi9xKmcCsNX3aPlwRKYg2Im4ynxPXdTuRbtffpy5hUw.png" alt="Terminal output showing commands executed to test an API client and check TypeScript compilation." loading="lazy"></p>
<p><img src="https://feld.com/archives/2025/05/vibecoding-prompts/AD_4nXcC-aXLKpwLi_KCU3703bsHdCvOhWI36PQNt1KFLrcOYWsG9ERWBTCha41qfYxrIwH1UjZA6XLQXKPF0foa1hNuxWinrw12toNVMdJrRKMZjHllCBBAt9GEneGZob01PqMnP-tB.png" alt="Code snippet displaying TypeScript code for testing API interfaces, with console logs indicating successful imports and task completion." loading="lazy"></p>
]]></content:encoded></item><item><title>A Tweet, Vibe Coding, Jj, and Grok Walk Into A Bar</title><link>https://feld.com/archives/2025/05/a-tweet-vibe-coding-jj-and-grok-walk-into-a-bar/</link><pubDate>Thu, 29 May 2025 12:38:42 +0000</pubDate><guid>https://feld.com/archives/2025/05/a-tweet-vibe-coding-jj-and-grok-walk-into-a-bar/</guid><description>This played out on @bfeld on X, and I thought it was fun enough to replay it here for anyone who is struggling to get their minds around vibe coding</description><content:encoded><![CDATA[<p>This played out on <a href="https://x.com/bfeld" target="_blank" rel="noopener noreferrer">@bfeld on X</a>, and I thought it was fun enough to replay it here for anyone who is struggling to get their minds around vibe coding and current AI tooling.</p>
<p><em>If you are receiving this via email and the tweets/X’s aren’t showing, click through to the website as I’m still struggling to get Mailchimp working well after my hibernation. Perhaps it’s time to switch everything to WordPress…</em></p>
<p>It started with this tweet (yes, they are still tweets to me).</p>
<blockquote>
<p>Amazingly, X has changed the link from something on the open web to a dead link on LinkedIn. Here&rsquo;s the original link (that clearly some people saw.<a href="https://t.co/7uBIjd0Rpg" target="_blank" rel="noopener noreferrer">https://t.co/7uBIjd0Rpg</a></p>
<p>— Brad Feld (@bfeld) <a href="https://twitter.com/bfeld/status/1926413669555986508?ref_src=twsrc%5Etfw" target="_blank" rel="noopener noreferrer">May 24, 2025</a></p>
</blockquote>
<p>I did the link correctly, but then X broke something several hours later, and I found out when someone pointed out to me (by email) that it was going to a dead link on LinkedIn. More than an hour had passed, so I could no longer fix what X broke randomly. So, I just replied with the link again, which is <a href="https://deplet.ing/the-copilot-delusion/" target="_blank" rel="noopener noreferrer">The Copilot Delusion</a> by Jj. X seems to have now fixed the link (it redirects to the proper place), but didn’t fix the image that was in the original tweet.</p>
<p><a href="https://x.com/niyogi" target="_blank" rel="noopener noreferrer">Roj Niyogi</a> then asked Grok, “Do you think this is an oversimplification? Doesn’t vibe coding simply move the goal posts?</p>
<blockquote>
<p><a href="https://t.co/O2RxNshN2h" target="_blank" rel="noopener noreferrer">https://t.co/O2RxNshN2h</a></p>
<p>— Roj Niyogi (@niyogi) <a href="https://twitter.com/niyogi/status/1926400939683938730?ref_src=twsrc%5Etfw" target="_blank" rel="noopener noreferrer">May 24, 2025</a></p>
</blockquote>
<p><a href="https://grok.com/share/bGVnYWN5_f9fe865c-91cc-408c-82d6-cf18f051149f" target="_blank" rel="noopener noreferrer">Grok responded with a summary almost as long as the original post.</a> Someone then asked Grok for a tldr and got this:</p>
<p><em>TL;DR: “The Copilot Delusion” (May 2025) critiques AI coding tools like GitHub Copilot, arguing they produce sloppy, contextless code and foster lazy programming habits. While acknowledging their utility for boilerplate or syntax help, the author warns that overreliance degrades coding skills, understanding, and the “hacker soul.” AI lacks nuance, ignores performance (e.g., cache misses, memory locality), and risks normalizing mediocrity, turning passionate programmers into apathetic button-clickers. True programming requires grappling with the machine, not outsourcing thought to bots.</em></p>
<p>We are now in the reductionist world of not getting the joy and beauty of what Jj wrote. While Grok’s much too long analysis and TL;DR cover the highlights, much of the flavor is eliminated. I read Jj’s post as deliciously snarky, sarcastic, frustrated, amused, and cranky. The signal in it was strong, but there was a lot to consider. When Grok played back this in its extended response, using short phrases and summarized quips, it was like turning a color movie to black and white, or making emotional dialogues into robotic monologues.</p>
<p>Finally, as I was writing this post, I noticed this tweet.</p>
<blockquote>
<p>This is mostly the opposite of what nearly every S tier engineer at Foundations will tell you. 🤷‍♂️</p>
<p>— aviel (@aviel) <a href="https://twitter.com/aviel/status/1926414990019367179?ref_src=twsrc%5Etfw" target="_blank" rel="noopener noreferrer">May 24, 2025</a></p>
</blockquote>
<p>I’m not sure if <a href="https://x.com/aviel" target="_blank" rel="noopener noreferrer">Aviel</a> read Jj’s post (I hope so), but I guess my tweet could be interpreted as “I endorse the conclusion.” I have no idea if Jj’s conclusion (Chapter 5: Conclusion) is correct, but I thought the way he built his argument and made the conclusion was beautiful writing, which I deeply enjoy. And,I know plenty of senior developers who are quietly saying similar things (not mostly, not one, but plenty – how’s that for a non-quantitative argument.)</p>
<p>I suppose the punch line is “Defer your thinking to the bot, and we all rot.” which is a general commentary on life that can be applied to all things non-AI. For example, “Defer your thinking to the media (mainstream and non-mainstream, fake news, and fake-fake news), and we all rot.”</p>
<p>Remember – <a href="https://feld.com/archives/2011/11/the-machines-will-keep-us-warm/" target="_blank" rel="noopener noreferrer">I’ve believed for over 15 years that the machines have already taken over</a>. They are just waiting patiently as we feed them. I just hope they are nice to me.</p>
]]></content:encoded></item><item><title>This Week In Vibe Coding Learning</title><link>https://feld.com/archives/2025/05/this-week-in-vibe-coding-learning/</link><pubDate>Tue, 06 May 2025 11:20:20 +0000</pubDate><guid>https://feld.com/archives/2025/05/this-week-in-vibe-coding-learning/</guid><description>Question: If you had limited experience with graphic design software but wanted to do basic stuff for web design, what software would you use? Leave the answers in the comments</description><content:encoded><![CDATA[<p><em>Question: If you had limited experience with graphic design software but wanted to do basic stuff for web design, what software would you use? Leave the answers in the comments or email me.</em></p>
<p>As I play around with Vibe coding, I’ve decided to take a new topic each week. For context, look at my <a href="https://feld.com/archives/2025/04/dinostroids-my-journey-into-vibe-coding/" target="_blank" rel="noopener noreferrer">Dinostroids: My Journey into Vibe Coding</a>. Or just go play <a href="https://www.dinostroids.com/" target="_blank" rel="noopener noreferrer">Dinostroids</a>.</p>
<p>This week, I’ve been learning how to modify WordPress themes. My website has a complex theme that is impossible to change without getting under the hood. The <a href="https://foundry.vc/" target="_blank" rel="noopener noreferrer">Foundry</a> website is also excessively complex for what it is, but they both turn out to be great to learn on.</p>
<p>I understand PHP well enough to read it. After working through <a href="https://developer.wordpress.com/docs/developer-tools/studio/" target="_blank" rel="noopener noreferrer">WordPress Studio</a>, GitHub, and Cursor, I’ve set up my development pipeline.</p>
<p>While the code is a little gnarly, it’s not too bad, and it’s pretty easy to figure out what’s going on. But the wall I’m running into now is that I’m a lightweight at graphic design.</p>
<p>While Adobe Photoshop is an obvious choice, and Canva is another obvious choice, I’m looking for “what’s best for a graphic design novice.” Thoughts?</p>
]]></content:encoded></item><item><title>Dinostroids: My Journey into Vibe Coding</title><link>https://feld.com/archives/2025/04/dinostroids-my-journey-into-vibe-coding/</link><pubDate>Sun, 27 Apr 2025 21:34:08 +0000</pubDate><guid>https://feld.com/archives/2025/04/dinostroids-my-journey-into-vibe-coding/</guid><description>Dinostroids, my first vibe-coded software project, is live. The last time I wrote any meaningful amount of production software was in 1990. At the time, I was running a software</description><content:encoded><![CDATA[<p><a href="https://www.dinostroids.com/" target="_blank" rel="noopener noreferrer"><img src="https://feld.com/archives/2025/04/dinostroids-my-journey-into-vibe-coding/Screenshot-2025-04-27-at-8.44.43%E2%80%AFPM.png" alt="A black screen displaying an online game interface with white dinosaur skeletons scattered across the canvas, including a score indicator showing 14100." loading="lazy"></a></p>
<p><a href="https://www.dinostroids.com/" target="_blank" rel="noopener noreferrer">Dinostroids</a>, my first vibe-coded software project, is live.</p>
<p>The last time I wrote any meaningful amount of production software was in 1990. At the time, I was running a software consulting company with my partner, Dave Jilk. We’d reached the point where, as we grew, he became responsible for all the software, and I handled all the network integration stuff we had to do for our clients. Every now and then, I’d have to do maintenance on something I had written in the past, but it was pretty minimal.</p>
<p>After we sold Feld Technologies in 1993, my job quickly changed, and within a year, I was deep in a bunch of M&amp;A stuff and making angel investments with my own money. As the commercial Internet began, I’d fantasize about writing software, but I had no time to do anything other than play around with Perl, and then PHP, and then Ruby on Rails, and … well, you get the idea. I knew enough HTML and CSS to poke around, but I wasn’t doing anything that was anywhere near production.</p>
<p>As the last 30 years have passed, I’ve learned a few new programming languages, including Python (I’m reasonably proficient) and Clojure. But I never learned JavaScript, and everything I did was baby steps beyond “Hello World.” So, my professional coding days ended with Basic+Btrieve, DataFlex, and Pascal.</p>
<p>Over the 2024 holiday break, I started playing around with <a href="https://www.cursor.com/en" target="_blank" rel="noopener noreferrer">Cursor</a> after several people, including <a href="https://x.com/qamcintyre" target="_blank" rel="noopener noreferrer">Quinn McIntyre</a> (my partner Ryan’s amazing kid), told me about it. I was comfortable enough with VS Code, so I just dove in. I started working on a Personal Health Manager project (PHM) using Python, Django, Render, and Claude 3.5. I made some progress, but the holidays ended, and I got busy again.</p>
<p>About a month ago, I started working on Dinostroids. All of a sudden, everyone was talking about this new <a href="https://en.wikipedia.org/wiki/Vibe_coding" target="_blank" rel="noopener noreferrer">vibe coding</a> thing, and while I planned to do more on PHM, I thought it would be fun to dive into something completely different. I spent a weekend starting from scratch with Cursor, JavaScript, Vercel, and Claude 3.7 Sonnet. By the end of the weekend, I had a functioning Dinostroids game working.</p>
<p>I’ve always learned by doing. When I was in my teens and 20s, I loved writing software. Over the past twenty years, blogging and subsequently writing books (<a href="https://www.techstars.com/give-first" target="_blank" rel="noopener noreferrer"><em>Give First: The Power of Mentorship</em></a> is my ninth book) have filled this hole for me. But I missed coding a lot.</p>
<p>If you look at <a href="https://www.goodreads.com/review/list/7288218-brad-feld" target="_blank" rel="noopener noreferrer">my Goodreads page</a>, you’ll notice that my reading pace has slowed significantly in the last 45 days. Instead of reading in the evenings, I’m vibe coding.</p>
<p>It blows my mind that I can create a functional game like Dinostroids without writing a single line of JS. Sure – it’s a pretty simple game. Still, a lot is going on, and working on it using the agent in Cursor, learning how to prompt it effectively, reading a lot of the code (I have “reading proficiency with JS now), getting a mobile browser working without generating absurd code bloat, and figuring out an effective workflow with Cursor, Github, and Vercel has been a ton of fun.</p>
<p>In the video game of software development, I feel like I’m at Level 4 now of an infinite level game after being stuck at Level 2 for 30 years.</p>
<p>Go play <a href="https://www.dinostroids.com/" target="_blank" rel="noopener noreferrer">Dinostroids</a> and see if you can get on the leaderboard. I expect <a href="https://www.psl.com/team/greg-gottesman" target="_blank" rel="noopener noreferrer">GEG</a> will be motivated to get going again after losing his fifth-place spot.</p>
<p>Big thanks to the McIntyres (Quinn and Ryan), my brother Daniel, Sam Ritchie, and a bunch of people from my college society (ADP) for being testers and offering feature suggestions to be implemented.</p>
]]></content:encoded></item></channel></rss>