← BACK TO THE MAIN BLOG
SEPTEMBER 11, 2025

What to Expect from Vibe Coding

I’ve been trying out vibe coding for almost a year and have developed a few products using these tools.

I’d like to divide these tools into two main categories. The first is primarily for programmers, including tools like Cursor, Augment Code, Claude Code, and GitHub Copilot. The second category includes tools like Bolt.new and lovable.

I’ve tried both types of tools, and I don’t think a programmer should use them unless they know exactly what they want to do. Imagine that a LLM is simply a transformer—it can convert any input into a different text format. But the quality of its output depends mainly on your prompt and the model’s capabilities. LLMs aren’t like humans; they don’t have creativity or a sense of motivation. Currently, they’re just a translator.

So, if you just give a prompt like: “Make an outstanding landing page.”

WHAT THE HELL?

Although an LLM won’t refuse this task, the result will likely be garbage.

Imagine you’re a programmer and your client asks you to build a website without providing any details. It would be impossible for you to do anything.

But how detailed does a prompt need to be?

Almost every vibe coding tool uses techniques to compress context and call other tools to search for relevant code. They try their best to understand and fill in the gaps we leave out, assuming they know certain things we automatically assume are true. With these tools, we can indeed omit some details. But back to our original question: if we get our prompt right, can we code successfully? If you can confidently say “YES!”, you’re most likely to get good results.

As I said before, LLMs lack creativity and motivation. They don’t have ideas; they just help us turn our ideas into products. So, even though some models support a form of “thinking,” they only think within the current context. Our brains, on the other hand, can make long-term decisions. We can’t count on an LLM’s thinking to replace our own efforts.

An LLM helps us with the easiest part of the process: the work itself, not the planning, creating, or designing. When the model gets stuck on a problem, we need to have the ability to help it. This is why I believe it’s not a good idea for a non-technical person to try to build and iterate on a complex product. There are countless problems and unknowns that come up before a product can even launch.

What I’ll Do Next

I’ll keep mastering programming skills like an “old” programmer while continuing to use LLMs.