Advertise here with Carbon Ads

This site is made possible by member support. 💞

Big thanks to Arcustech for hosting the site and offering amazing tech support.

When you buy through links on kottke.org, I may earn an affiliate commission. Thanks for supporting the site!

kottke.org. home of fine hypertext products since 1998.

Beloved by 86.47% of the web.

🍔  💀  📸  😭  🕳️  🤠  🎬  🥔

Much Ado About Vibe Coding

Lauren Goode convinced her editors at Wired to let her spend a couple of days at a tech company called Notion learning how to vibe-code (i.e. AI-assisted computer programming): Why Did a $10 Billion Startup Let Me Vibe-Code for Them — and Why Did I Love It?

Expanding a mermaid diagram or alphabetizing a list of dog breeds hardly seemed like sticking it to the coding man. But during my time at Notion I did feel as though a trapdoor in my brain had opened. I had gotten a shimmery glimpse of what it’s like to be an anonymous logical god, pulling levers. I also felt capable of learning something new — and had the freedom to be bad at something new — in a semi-private space.

Both vibe coding and journalism are an exercise in prodding, and in procurement: Can you say more about this? Can you elaborate on that? Can you show me the documents? With our fellow humans, we can tolerate a bit of imprecision in our conversations. If my stint as a vibe coder underscored anything, it’s that the AIs coding for us demand that we articulate exactly what we want.

During lunch on one of my days at Notion, an engineer asked me if I ever use ChatGPT to write my articles for me. It’s a question I’ve heard more than once this summer. “Never,” I told her, and her eyes widened. I tried to explain why — that it’s a matter of principle and not a statement on whether an AI can cobble together passable writing. I decided not to get into how changes to search engines, and those little AI summaries dotting the information landscape, have tanked the web traffic going to news sites. Almost everyone I know is worried about their jobs.

One engineer at Notion compared the economic panic of this AI era to when the compiler was first introduced. The idea that one person will suddenly do the work of 100 programmers should be inverted, he said; instead, every programmer will be 100 times as productive. His manager agreed: “Yeah, as a manager I would say, like— everybody’s just doing more,” she said. Another engineer told me that solving huge problems still demands collaboration, interrogation, and planning. Vibe coding, he asserted, mostly comes in handy when people are rapidly prototyping new features.

These engineers seemed reasonably assured that humans will remain in the loop, even as they drew caricatures of the future coder (“100 times as productive”). I tend to believe this, too, and that people with incredibly specialized skills or subject-matter expertise will still be in demand in a lot of workplaces. I want it to be true, anyway.

A very interesting read. Over the past several months, I have been reading a lot about LLMs and coding, particularly pieces by experienced coders who have switched to using LLMs to code. There is a lot of silly (and perhaps dangerous) hype around AI, but over the past several months, LLMs and supporting tools have gotten unnaturally good at programming, when directed properly. Here are some of the things I’ve read recently in case you’re curious about what’s possible now:

I’m curious to know if any experienced (or inexperienced) coders among you have tried any of the recent suite of AI-assisted coding tools and what your experience has been. (Your general thoughts about AI — particularly its potential downsides, which have been amply documented elsewhere — are best left for some other time & place. Thx.)

Comments  22

Sort by: thread — thread . latest . faves

E
eadmundo Edited

I run a small software development agency, and we are actively working on how best to use AI tools for development. Here's another article which captures what we aspire to https://every.to/source-code/my-ai-had-already-fixed-the-code-before-i-saw-it - "Compounding Engineering", where you feed back into the AI to help it learn what you need it to do.

We are currently using OpenCode with Anthropic and Github Copilot, previously we were using Cursor.

Our experience is that it is incredible for rapidly iterating through various options but it needs a lot of guardrails and review, and constant tweaking and refining of the rules. We are all experienced developers.

D
David Friedman Edited

I love vibe coding. It has unlocked whole new doors for me as a person who has lots of ideas but only knows coding fundamentals. In addition to little quality-of-life scripts that automate the boring stuff for me, I vibe coded my daily word game Gisnep which is probably the biggest project I’ve done that way. And last week I used GPT-5 with Windsurf to finally vibe code another thing that’s been in my head for a while that I didn’t know how to build and couldn’t get quite right with GPT-4: an action game you play only by scrolling (I call it DOOMscrolling, and it’s a work in progress but you’re welcome to check it out so far). The ability to scratch an itch like that is just incredible to me.

S
Sara

Unrelated, but I love Gisnep and play everyday!

D
David Friedman

That makes me so happy to hear. Thanks, Sara!

Reply in this thread

J
Jonathan Dobres

I wanted MacOS to be able to control the volume of a Sonos Ray that was plugged in via a generic adapter. This use case is so terribly specific that no app provided the functionality I needed. So, with nothing but the free version of ChatGPT from a year ago helping me along, I wrote my own app. Though I am a data scientist and a fairly technical person, I’d never written app code before. Yet with the LLM’s help, I managed to write a mini Sonos API, audio manager, networking stack, UI, etc., over about a month. The app has “shipped” (it runs on both my personal and work machines), and never crashes.

R
Roland Tanglao

link to the code if possible please :-) ?

Reply in this thread

M
Michael Ward Edited

I find it incredibly useful for getting code on the edge of my knowledge or in a language I don't 'speak' very well.
Also fantastic for finding 'errors' - such as typos that one would spend hours trying to find!
Also terrific for 'little' quick jobs.
One has to be careful - 'cos it makes things up that don't exist, particularly when working with APIs.

N
Nick BLT

It has definitely become my new normal and I hope that when the venture capitalist subsidized era ends it will be affordable for home projects.

I use it for vibe coding small household apps where I don’t particularly care about code quality and let the ai run wild. I also use it in a professional context and keep a much closer eye on things; some of my work is in cryptography and it is pretty much garbage in that arena.

Man can it bang out unit tests like a champ. My code coverage has never been better

A
Alex S

I use it at work all the time. There's so many software tools in engineering that advertise "do something with our API"! But the scripting language or documentation would take a while to figure out.

Having AI generate the scripts that allow me to automate some tedious task is great. (But then other people want to also use the janky script so it leads me to spending time debugging it)

T
Tim Brown

I’m a fan of simple HTML/CSS/JS, so it helps to start with instructions about keeping the project simple and web-standard.

It also helps to ask models for guidance about crafting more successful prompts. ChatGPT 5 has been great at structuring prompts for me, given basic goals.

I’ve used Cursor and had one big failure (trying to edit huge amounts of text) and one big success — whipping up a side project for workshopping context engineering that I never even would have even started because of the barriers (interactivity, localStorage load/export).

T
Tom Robertson

I’ve been coding very on and off since I learned basic as a kit. I graduated to python at some point and have made a few utility scripts here and there for my own purposes, and made an automated COVID statistics newsletter during peak COVID.

Previously, troubleshooting an issue meant tons of googling, trial and error, hoping to find a forum post or documentation site that spoke to my specific issue. And maybe occasionally throwing my keyboard against the wall in frustration and walking away.

I’ve been using ChatGPT to write a lot of my utility scripts lately and it’s like magic. It just makes what I want. I need to test and refine a few times, but basically in ten to twenty minutes I have something that works. And I’ve even made a few very simple “web apps” that I host on my blog server that solve very specific use cases for me. Cliche I know but it feels like I have super powers.

The thing I find so helpful is that I can describe a very specific problem in my own words and it will know what I mean even if I didn’t use the right keyword to describe a function or something. That’s where I always hit a wall with google. I’d bounce around forum posts or whatever and maybe get my answer. (Not the ask I know but I do feel a little guilty I’m still benefiting from all these helpful forum posts that ChatGPT sucked up.)

W
Will Hopkins

I use programming LLMs at work, because I have to. I'm not a particularly big fan—in my experience, they produce bloated code and get themselves stuck in loops very easily. For the right task they can do well, but it really does feel like pulling a slot machine lever, and that doesn't feel productive.

My main problem is the hype cycle, but as you say, must saved for another thread.

J
Jon Dallas

I started out my career as a coder may years ago and, although I don't do it professionally any more, I still do it as a hobby because a) I really love it and b) see a. I recently started using AI tools when I'm coding to see what the fuss was about.

I have used ChatGPT, which I subscribe to, and the free Copilot that is built into Visual Studio Code. My experience has been divided broadly between "it's brilliant" and "its as dumb as a brick". It's brilliant (mostly) for tracing down bugs, and explaining language features or how to implement a particular design pattern in your chosen language. It's dumb when you ask it to write a full piece of code because it often gives you a skeleton and says "job done" when it clearly isn't, and sometimes it hallucinates wildly, for example making up keywords that don't exist. I have also tried vibe coding, rather than using it as a debugging or learning tool, and the results were pretty bad. It would be interesting to know what people did to make this successful.

I work with Flutter/Dart, which is an evolving language, and I have noticed that AI answers can be based on older versions of Flutter even if I specify the version I want it to focus on. I have wondered if a more stable language (with more available examples to learn from) would give better results with AI. I have noticed that answers to questions about SQL or DOS scripts tend to be pretty spot on. So maybe if you are working in a language that is ubiquitous, (relatively) ancient and stable, like the C family or Java or Python, then you might get more reliable answers.

What my experience has taught me is that AI is not intelligent. A better term would probably be "enhanced search engine (with a built-in love of whimsy)", which is capable of summarising content from multiple sources into a single answer. And sometimes it just makes stuff up because... well, what's life without whimsy?

P
peterc

I struggle with vibe coding. If I use a tool like Replit I find it rapidly collapses in on itself at the complexity of what I am asking it — even though they're almost always relatively innocuous ideas — but Replit handles the hosting, so it seems so easy to get things live.

Whereas if I use Cursor or OpenAI Codex, it seems to struggle at writing the first lines of code for a project. Similarly it can't help me with deploying the code, so I am never sure what to do next.

Am I missing something? I feel like I am missing the first 10% of vibe coding at getting something to start existing so that AI can take over, and similarly the last 10% of having it deployed somewhere.

P
Peter Binkowski

I'm working quite a lot with Claude Code in my day job. I'm a front end engineer at a tech-forward insurance company, and I hadn't really used LLMs for coding until we got access to copilot and then more recently Claude Code.

I have to say, it's really helped me take on more work that is outside of my comfort zone, as well as speeding up the work I'm already doing.

Instead of waiting for someone with domain knowledge, or even more back end experience, to be free to pair program, for 5$ of Claude usage I can knock out a problem that would have take a several hours total, in ~30ish minutes.

Ive found it really good at refactoring, TDD, and backend structure in particular. The front end stuff, admittedly I'm bias, seems to always be really useless.

It can be really dumb, and I definitely am not as good as some others at my company to getting it to quickly and efficiently get good output. But on the whole, I think its worth it so far.

D
Dalton

The front end stuff, admittedly I'm bias, seems to always be really useless.

Let's face it, that's 90% of the front-end code examples out there, and that's what the AI has been trained on. You have to be really opinionated and iterative but I have to say that Claude seems to be getting better the more I work with it.

Reply in this thread

O
Owen Mathews Edited

I'm a senior-level iOS developer, and I've enjoyed using Claude Code in a handful of projects. Overall, I feel like I'm working with a somewhat scatterbrained, overconfident, but knowledgeable developer with somewhere between junior and mid-level experience.

I redid my website from scratch in HTML/CSS/JavaScript (no fancy frameworks, just static pages). It definitely made me more productive, and it did things that I would have needed many hours to figure out on my own as a non-frontend developer.

Then I prototyped a web app to teach beginning programming with an LLM in the loop. That was much more sophisticated, and Claude Code built in several days what would have taken me months learning the requisite JavaScript and the components it pulled in. It did a credible job on the code; I could (and did) go in behind it and clean things up manually from time to time. It never got so unwieldy that it started to buckle under its own weight.

Then I tackled an iOS project, where I'm much more comfortable. It did some good work throwing together a quick SwiftUI prototype, and I iterated with it a good bit to refine it. There, though, I did run into some things that ultimately drove me to take over and finish it by hand. Maybe it's just because I have more experience in this area, or maybe it's not as competent with Swift/SwiftUI. Maybe both. At any rate, I do think it was valuable for building the prototype quickly.

For both of the software projects, I set up detailed project descriptions and worked with Claude to build extensive development plans, so this was a pretty structured process. I found that it was pretty good at following the plan, though I still had to keep an eye on things and make sure that none of the documentation got stale. It was generally competent at identifying issues and fixing them, though again I found that process a bit less reliable on iOS. Here are a few of my posts on the topic:

On Coding with LLMs

Claude Code: first impressions

Claude Code and iOS development

M
Matt Maggard

I'm a product manager but the devs at my company say that LLMs tend to write inefficient code — constantly opening and closing API connections for example — but that it works well for writing unit tests.

As a PM, I'm interested so I can build out prototypes and do more on my own without a dev – especially for side projects where I need to see if an idea has merit before I try to get anyone else involved

P
Phil Wells Edited

I'm weary of arguing the effectiveness of AI to write code. It's either great or it isn't. To me it's immaterial. I've been developing software for 15 years and I'm dealing with a lot of pressure to use Claude at work. Me, and everyone around me. And so I produce Claude-made code, reviewed initially by me. I then pass that off to another contributor on my team, who also either reviews the code that Claude wrote, or has Claude review it. And then I receive code to review from other people who used Claude to write the code. They want us to then use Claude to write tests for the code. To write all the documentation, so that Claude knows what we're trying to do with this code and how we prefer it to be, before it goes off and does its best to meet those parameters again, and again, and again.

I used to do that. I used to work at a trade. I feel like I used to bake bread for this bakery I work at, but then my boss said "we don't bake it anymore, we're just gonna buy it from another guy and sell it from our bakery." And it sells. And it's fine bread. But I didn't get my hands into the dough. I just make sure the loaves are ok and put them in the case now. It's a bummer, and every time I tell my boss that it's bumming me out he says, "well, ok, but the loaves are fine, right?" The customer gets a fine product either way. I haven't lost employment yet. But even if I don't get laid off I've already sort of lost my job. A whole vocation is being undermined.

L
Lisa S.

I've been very interested in this thread. I'm a basically clueless business person who has app ideas for businesses (or not businesses, non profits, even) that I would love to have coded. I've never gone there because I knew all the issues with hiring a "code monkey" from another country (I am sorry if I've just offended anyone with that term, but in my time working as a non-technical product manager at tech firms I've come to understand that you have to give a TON of direction to devs outside your org, especially contractors outside your country, to get anything usable). Is AI much different? Is it about the same as "Martin" who emailed me from India (supposedly) this week, offering his coding skills because I registered a business website 10 years ago?

L
Lisa S.

Should add here...I'm not totally clueless as I've learned to code over the years -- BASIC, HTML, Python, the latter two off the side of my desk. But I'm not in any way shape or form a coder and can't create an app on my own. Is AI much different than hiring someone who can do basic code?

Reply in this thread

Hello! In order to leave a comment, you need to be a current kottke.org member. If you'd like to sign up for a membership to support the site and join the conversation, you can explore your options here.

Existing members can sign in here. If you're a former member, you can renew your membership.

Note: If you are a member and tried to log in, it didn't work, and now you're stuck in a neverending login loop of death, try disabling any ad blockers or extensions. Or try logging out and then back in. Still having trouble? Email me!