By Josh Proto
Jul 25, 2025

Vibe Coding: How To Build Software With AI (Even If You're Not A Developer)

From the Code & Cognition Podcast by Olio Apps Artificial Intelligence is changing how software is written and who writes it. Thanks to large language models (LLMs) like ChatGPT, DeepSeek, and Claude, anyone with a clear idea can now generate code, learn new frameworks, and prototype apps. This is all done by collaborating with an AI assistant and this emerging approach has a name: vibe coding. Coined by AI researcher Andrej Karpathy, vibe coding describes a new, conversation-driven way of programming. Instead of manually writing every line of code, developers (or non-developers) “vibe” with the AI, guiding it via natural language prompts and iteratively improving results. In this post, we’ll break down what vibe coding is, how it works, and share 11 practical tips to get better results when using AI to build software, including tips on code generation, debugging, documentation, and prototyping.

What Is Vibe Coding?

Vibe coding is the process of building software by communicating with an AI model using natural language. You describe what you want and the AI returns working code, often faster than a human could (hopefully!). Unlike traditional programming, where coding knowledge is a prerequisite, vibe coding lowers the barrier to entry. Designers, entrepreneurs, product managers, and junior developers are now building MVPs, games, and tools without deep knowledge of frameworks or syntax. But make no mistake: vibe coding is still a skill. Just like knowing how to Google efficiently helps you debug faster, knowing how to communicate with an LLM can dramatically improve your output quality.

Why This Matters

Search interest for tools like ChatGPT, Cursor, and GitHub Copilot has exploded. As of 2024, over 50% of professional developers report using AI coding assistants weekly and that trend has only increased in throughout 2025. What this means:
  • Prototypes are being built in minutes instead of days.
  • AI is changing how the industry is learning how to code, prototyping applications, and launching products.
  • The bottleneck around shipping products becoming less contingent on knowing syntax, but now includes one's ability to instruct and communicate with LLMs like one would talk to a junior developer.

11 Practical Tips for Better AI-Powered Coding

Here’s what we’ve learned building real tools and workflows using LLMs like GPT-4 and Claude.
  1. Treat the AI Like a Teammate Imagine you're talking to a junior dev who never gets tired but can sometimes misinterpret instructions. LLMs are like this. LLMs are powerful, but they need structure and clarity just like a person would.
    Don’t just say: “Build me an accounting app.” Insead say “Build a simple accounting dashboard with login, user roles, and an expense entry form using React and Firebase.”
  2. Break Big Projects into Small Tasks Just like a real-world software team, AIs do better with modular, sequential instructions.
    Instead of saying, “Write the whole app,” instead try saying, “Let’s start with the login form UI.” Then, “Now write the Firebase auth logic.” Then, “Now wire them together.”
    This modular, step by step instruction will reduce the chance your LLM misunderstands your direction or jumps to conclusions regarding what you want.
  3. Provide Background and Style Preferences Before starting, give your AI some context, like what language or framework you’re using, your folder structure preferences, or your current coding conventions. This will help contextualize it’s answer based on your exact project, leaving it less opportunity to hallucinate.
    For example, you could tell your LLM, “This project uses Next.js, Tailwind CSS, and stores API calls in /lib/api. Please follow those conventions in your response.”
  4. Explain Why The Output is Wrong When the AI makes a mistake, explain the issue and ask for a fix. Tell it, “This breaks because useEffect needs a dependency array. Can you fix that?”
    Over time, this improves both your result and your ability to communicate technical expectations to the LLM.
  5. Choose Popular Frameworks When Possible Since LLMs have been trained on the most available data present on the internet, frameworks with longer usage histories and available examples are better candidates to "vibe" with.
    That means if your application uses lots of React, you should be good to vibe code! However if you’re asking the LLM to help you with ClosureScript edge cases, you may be better off skipping the vibe coding session.
    Use this principle to your advantage by not expecting your LLM to perform like a niche expert of esoteric frameworks. Let it do the undifferentiated heavy lifting instead of putting in charge of niche expertise.
  6. Use AI to Learn New Languages or Frameworks Want to learn Rust, Go, or Svelte? Ask the AI to build a sample CRUD app in that stack. Then ask it to explain each file, function, or line of code.
    This works like personalized tutoring on demand and can accelerate your learning in ways that are tailored to your unique learning style. If you know the way you like to learn, you can have the LLM teach you exactly like that!
  7. Rapid Prototyping = Less Attachment With vibe coding, it’s possible you can create 3 or 4 design variations quickly. If you don’t like them, throw them away. You haven’t lost weeks of work! You’ve only gained insight and perspective on how you don’t want to build your application.
    Being able to iterate prototypes quickly like this helps you avoid sunk cost bias and encourages iteration.
  8. Manage Large Codebases with Context Windows Modern LLMs can process more context (100k+ tokens), but still can’t “see” your entire codebase. Use code assist tools like Cursor to give it targeted files or examples to reference instead of having the LLM take its best guess at the design patterns inherent in your code base.
  9. Use Version Control Aggressively Vibe coding can quickly take your project from working to broken. Use Git (or any VCS) to commit early and often. Replit and Cursor have built-in checkpoint systems, but don’t rely on autosave alone. If you haven't already developed good version control habits, now is the time!
  10. Have It Write Docs and Tests To speed up workflows, you can manage LLMs to consistently generate README.md setup instructions, runbooks for production environments, and unit/integration tests for key functions. This is another area where LLMs can shine as these tasks can often be systematized and feel repetitive.
  11. Don't Sleep on Bash Scripts Need to spin up a dev environment, deploy to AWS, or notify Slack on success? Let LLMs write your Bash scripts with flags, logging, and dry-run options.
    You’ll find yourself writing and refining automation scripts in 10 minutes that you previously would’ve avoided for a week.

Use Case: Vibe Coding with AWS Bedrock and App Sync

In a recent project, we used Amazon Bedrock and AWS AppSync to build a real-time LLM interface using WebSockets. However, a new AppSync Real-Time Websockets feature was released mid project, (released in March 2025), and seemed like the ideal solution, but we were also learning the stack in real-time. We had to decide:
  • Use the “faster to implement” old method with higher cost, but with supportive “vibes” from the LLM?
  • Or use the “optimal but untested” new method with unknown quirks?
This is where vibe coding met long term engineering decision making. Vibe coding may be fast and powerful, but it isn't a substitute for judgment, experience, and experimentation. In this scenario, the time to value trade of vibe coding vs. utilizing a less supported but optimal stack were the critical points to consider.

So, Is Vibe Coding Cheating?

Not at all. Just like calculators didn’t stop people from learning math, vibe coding won’t stop people from learning to program. In fact, we’ve seen the opposite. Some of our team members attest that their understanding of programming has improved faster using AI than it did with bootcamps or video courses. LLMs give you instant feedback, endless examples, and real-time explanations. When skillfully utilizing LLMs, your learning is limited only by your curiosity.

Final Thoughts: Vibe Coding Is a New Methodology of Software Development

Whether you're an experienced engineer or a curious creative, we are seeing that AI coding tools and "vibe coding" unlocks a new kind of collaboration between humans and machines. Vibe Coding allows us to accomplish a myriad of tasks, including:
  • Building Prototypes
  • Learning new technologies
  • Shipping products faster
  • Building our communication skills
And most importlanly, have fun building software!

Resources Mentioned

  1. Code and Cognition Podcast
  2. Amazon Bedrock
  3. Cursor IDE
  4. Vibe Coding
Josh Proto
Cloud Strategist

Josh is a Cloud Strategist passionate about helping engineers and business leaders navigate how emerging technologies like AI can be skillfully used in their organizations. In his free time you'll find him rescuing pigeons with his non-profit or singing Hindustani & Nepali Classical Music.

Share This Post

Join our newsletter!

To get news on Gen AI

Development on AWS.

Don't worry, we don't spam