The vast majority of vibe-coded apps are subpar because they're not built by experienced developers who understand proper software engineering practices.
However...
while I risk sounding like the discussions in r/vibecoding, I am convinced that it is absolutely possible to create high-quality, entirely machine-generated applications. And yes it bothers me as well because I am also invested my craft.
What I found is that the key isn't in how you prompt the LLMs but in the comprehensive tooling and guardrails you build around the development process. This includes custom ESLint rules, specific type constraints, custom MCPs, and even tailored VSCode plugins. It works. Not fully autonomously, but effectively enough that you often only need to perform a final review before deployment.
I have no doubt in my mind that the majority of software will be written by machines but only after the right guardrails are set in place - not just better models, magic prompts and fingers crossed.
However...
while I risk sounding like the discussions in r/vibecoding, I am convinced that it is absolutely possible to create high-quality, entirely machine-generated applications. And yes it bothers me as well because I am also invested my craft.
What I found is that the key isn't in how you prompt the LLMs but in the comprehensive tooling and guardrails you build around the development process. This includes custom ESLint rules, specific type constraints, custom MCPs, and even tailored VSCode plugins. It works. Not fully autonomously, but effectively enough that you often only need to perform a final review before deployment.
I have no doubt in my mind that the majority of software will be written by machines but only after the right guardrails are set in place - not just better models, magic prompts and fingers crossed.