(above: a vibe coded flight sim from NicolasZu, created from several thousand prompts. Included his notes on his method at the very bottom)
Vibe coding is happening, you guysWe’ve all been surprised by LLMs being good at writing/brainstorming/generating text, but along the way, we also discovered it was surprisingly good at writing code. This was first harnessed by coding co-pilot features in IDEs like Cursor, but as many of you have followed, “vibe coding” is the new thing, coined by the great Andrej Karpathy:
There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away. It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
And of course, since this tweet from Feb 2025, we’ve seen an explosion of people playing around with all the tools to build a lot of cool things, particularly a bunch of fun little games like flight sims, tank battle games, and even first-person shooters.
@andrewchen is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.
So what happens next? I have a bunch of fun/random thoughts and wanted to share them:
- most code will be written (generated?) by the time rich. Thus, most code will be written by kids/students rather than software engineers. This is the same trend as video, photos, and other social media. Of course this seems surprising because today most software is being written by highly trained adults, who are generally time poor but money rich. This will change, and it means that over time, software will become dominated by youth culture the same way that social media is. Are you ready for software memes? Or memes in the form of software? It’s all coming.
- we are in the command line interface days of vibe coding. For the majority of creators, vibe coding will eventually fade, and vibe designing (with a visual paradigm) will come to dominate. People ultimately think better in a GUI-like format than a CLI-like format. Thus, in vibe designing you will show the AI the design outcomes you want, and then everything else is done for you. Yes, you may end up with tools to tweak the design details for extra controllability, and provide additional mockups that then get filled in underneath with code. But maybe folks will build software without seeing or learning a programming language.
- vibe coding could reduce the need for open source libraries as more code will be generated from scratch by AI. Code will be more of a disposable commodity, with less reuse, and instead generated on the fly for personalized use. It's interesting to see right now that creating a new project is easier than editing a project, because the latter requires a lot more context/complexity. Interesting dynamics if something like this continues
- "trad UX" and design standards give way to post-modern/fragmented software, as millions of new vibe coders create experiences with no prior know how and new perspectives. New patterns will emerge, as TikTok/YouTube has done to film making and trad entertainment. The world will go beyond buttons and modals and scrollbars and other things. Software may become unrecognizable before it coalesces again
- new bottlenecks for software. if vibe coding makes software trivial to build, then the bottlenecks shift to other places: 1) consistent creativity that stays ahead of everyone else. Anyone can write a tweet, but the best creators are the ones who consistently come up with new ideas. 2) distribution and network effects, where the first vibe coded product doesn't win, but rather the first vibe coded product that hits scale that wins
- adaptive software, specified by outcomes not code. imagine products that automatically adapt based on user behavior, rather than based on the actions of the vibe coder. For example, if the vibe coder has specified that the signup funnel should easy, then after seeing users struggle with it, the software can automatically vibe code itself to improve the flow by dropping steps or adding explanatory text. Right now we are in a paradigm where PMs specify behavior that software engineers specify in code. Imagine if PMs can specify outcomes, and the software is configured to automatically adapt to hit those outcomes
- this will accelerate software eating random long tail industries. Sort of like the advent of spreadsheets (aka programming for non-technical business people). Previously, you couldn't have gotten high-end software engineers excited about small/boring/slow-growth industries but now people within those industries will vibe code their way to greatness. Thus, those industries will get absorbed into the greater tech ecosystem. An accelerant to software eating the world
- software dev teams will change. today, there's a ratio in a typical software co of 5:1:1 of engineers to designers to PMs. What will that ratio look like in the future? Are we still going to have the currently dominant "EPD" paradigm or will the job titles be changed significantly. There's two arguments here: One version is that the ratio of engineers will go down, because things will be lower cost to build, and more of the emphasis will be in figuring out what the hell to build. But the counterargument might be a form of Jevon's Paradox, where the cheaper it is to build software, the more engineers you might want so you can build more, faster?
- marketing and sales. what does it mean to "vibe market?" or "vibe sell?" Perhaps in the same way that you can casually specify an app and an AI will vibe code it up, perhaps the same thing can happen from a marketing context. Just tell an agentic interface that you want to market your new app to kids via short form video, and it'll then go figure everything out. Hit the "execute" button and it'll go contact influencers, buy sponsored ads, and start creating customers. Same thing with a virtual sales team, but your vibe selling comes from creating outbound lists, scripts for selling, and then an interactive AI that can try to sell for you. What business functions won't be affected here?
- bugs, hacks, and other bad stuff. One of the weirdest things about building software is that, yes, the coding is hard, but so is just figuring out all the complicated logic. When you work on any product of sufficient complexity, you realize there are just lots of business decisions and edge cases and weird complex situations that need to be addressed, even when it’s rare. Can a customer redeem two coupons at the same time? If a customer wants a refund, but the delivery driver has already been paid, do you refund the whole thing or just the product? There’s a million of these things. And these issues bridge into problems of security, privacy, etc too. If two people share a folder with each other, and one person deletes the folder, does the other person also get the folder deleted? Or are they just logged off? When you make the wrong decisions here, people can get very upset. Vibe coding is fun, but addressing the infinite number of edge cases in software is not. Very curious to see how products will address this in the future.
These are just a few thoughts from a weekend of research and playing with the tools, and if you have further ideas, I hope you comment and add some more ideas.
Wait, but aren’t vibe coded apps bad?One thing you’ll notice when play around with all the vibe coded software people are building — they are kinda bad. That is, if you didn’t know it was built in a different way, you may not be that motivated to interact with it. After all, the hyper-blocky/pixelated tank battle games are not nearly as cool as something like World of Tanks, which has been under development for 10+ years and has millions of players.
Two points on this:
First, remember what happened with the progression of images from 2D diffusion models — it’s gotten very good very fast:
And of course, the same in LLMs, video, etc. My assumption is, we are on a fast climb towards much more sophistication and complexity with AI code gen. While the current output may feel almost trivial, imagine what all this tech will look like in 5 years? In the positive case, it’ll feel like everyone has a team of 100+ engineers in their pocket, ready to build any piece of software they want.
And second, maybe the triviality of the output doesn’t matter. If you compare to prior content creation trends, you could argue that the photos that people post online are a lot worse than what professional photographers post. Same with YouTube videos and what a filmmaker would create. But it doesn’t matter, simply because the sheer quantity of content — that is comprehensively able to fill every niche and nuance of demand, and created by real people as the creators (not corporations), make social media dominant. The same could be said of software.
In the past, maybe you would only mobilize a team of 10 developers to build a product that could generate $1M in revenue and scale to a multi-million dollar company. Anything less would be sub-scale. But maybe now you’ll build a new software product the same as what you’d do with a capturing a iPhone video. You’ll do it for fun, and it’ll be ephemeral, and you might share it with a few people. But then you’ll move on and build the next thing.
How vibe coding works todayFor those who are ready to explore, it’s not hard. Here’s a quick video on the topic, where a simple strategy game is built quickly so you can get a feel for it.
The tools are actually pretty easy to play around with and set up. I recommend Replit Agent if you want to get going quickly with a demo, but most people seem to be using Cursor.
Finally, I also wanted to link to NicolasZu’s recent post on how he built his flight sim game, to give you a sense for how to build something with thousands of prompts (but without coding).
I don't think the secret sauce is public yet. I can give you the fundamentals
- Grok 3 to transform a game idea in a game design document
- Grok 3 to define the best stack: front & backend for your game and ambition (multiplayer? etc)
- Grok 3 to transform the game design document into an implementation plan with super easy steps
IMPORTANT: start small. You will do this kind of document for every major upgrade (like multiplayer, or mobile, or server optimization, ...)
- Cursor setup with .cursorrules to clarify your stack (based on Grok), e.g. "optimise for mobile"
- Cursor with Sonnet 3.7 to learn the GDG and the impl plan.
- to Cursor "is it clear? what are your questions" => usually ask 9-10 questions. You answer and ask him to add to the impl file
- Sonnet 3.7 to start with phase 1. Then YOU test phase 1. You are the QA here. If phase one works, Sonnet to document what he did.
- Important: New chat between each phase
- Sonnet to go with Phase 2 ("please read the GDG and what was done in step 1). Then you test, etc.
- What if the test doesn't work? prompt away to get it done.
- Stuck? Grok 3 => your github repo => generate prompt for Claude
- Super stuck? go back 1 or several commits / prompts and try different ones.
- Hyper Stuck? Think what files could be the location of the error and drag them in the chat to investigate with Sonnet Thinking
- Project bigger than 20k LOC? Ask Sonnet to create an http://architecture.md. this file will help all future prompts.
Anyway, I am at 3000+ prompts in Cursor. I really feel like I am a whisperer 😂 I jump from Sonnet 3.5 to 4o and now to 4.5 depending on nuances I know those models have. For instance, "improve my messaging" => 4.5