Getting started with vibe coding: a modern way to develop with AI
by Joseph Montero joseph.montero@edify.cr
What is vibe coding?
The term was coined by Andrej Karpathy. In Feb 2, 2025, he posted on X about a ânew kind of coding I call âvibe codingââ.
Vibe coding is a collaborative approach to software development where you work alongside an AI assistantâlike ChatGPT, Claude, or othersâto write, iterate on, and test code. Instead of traditional prompt engineering or ad hoc code generation, vibe coding is about creating a shared workflow between you and AI.
Think of it like pair programming with a lightning-fast minion dev that never gets tired and has read (almost) the entire internet.
While this approach is especially helpful for solo builders or small teams, itâs increasingly relevant for developers of all skill levels looking to move faster, explore new technologies, or reduce cognitive overhead.
Why should you care?
Even if your current workflow is efficient, AI coding tools are becoming a core part of modern software development. Vibe coding isnât a gimmickâitâs a shift in how we write, test, and structure code.
It can help you:
- Accelerate prototyping or internal tooling
- Offload boilerplate or repetitive tasks
- Improve test coverage with less friction
- Explore new stacks without a steep ramp-up
- Stay focused on what to build rather than how to write every line
That said, this workflow is not about outsourcing your judgment. Youâre still the only true dev in the mix, AI just gets to be the minion with great coding habilities.
What do you need to get started?
Hereâs a look at some tools commonly used for vibe coding. You can think of them like dev environments with AI baked in.
đ ď¸ Tool Options
| Tool | Description | Best for |
|---|---|---|
| Windsurf | Fork of VS Code with AI chat + write modes, memory, browser preview, and smart tab completions. | Full-featured local development |
| Cursor | Another AI-native fork of VS Code with tight integration and code context awareness. | Day-to-day code work with AI suggestions |
| Claude/ChatGPT Canvas | Browser-based, lightweight environments for writing and running HTML/JS code. | Quick experiments, UI mockups |
| Replit | Cloud IDE that includes AI + one-click deployment. | Web app prototyping, scripting |
đĄ If you're already comfortable in VS Code, Windsurf or Cursor will feel very familiarâjust more helpful.
Choosing a tech stack (hint: go where the AI has experience)
AI is more effective in languages itâs seen a lot. This doesnât mean you canât use niche techâbut starting with popular ecosystems will make your "minion" far more capable.
â Recommended combinations
Frontend: HTML + CSS + JavaScript
(Add React, Angular or a UI library like Bootstrap if needed)Backend: Python (with FastAPI or Flask). Java with Spring works well too.
(or use Node.js if you prefer to stay in JavaScript)
Databases: SQLite or Postgres
(easy for AI to scaffold queries, tables, and schema validation)
đ¤ JavaScript is the most common language AI is trained on. Python is the most AI-native. Choose what feels intuitive to you.
Step-by-step: the vibe coding workflow
This is the heart of it. Vibe coding follows a loop-based development style that keeps things modular, testable, and safe to iterate.
1. Define your plan
Use AI to help generate two key files:
prd.md: A clear product requirements docto-do.md: A breakdown of features, tasks, or epics to build
đ Example prompt:
âWrite a PRD for an app that summarizes research papers and lets me search through them using AI.â
Spend a fair amount of time in these documents since those will be the context and foundation for the AI models to draw from. If you have a vision of how to get things done then write it here, the chances of the AI matching your expectations are fairly low if you have not written them so, be descriptive. This is the backbone of everything, be diligent here. You are the only truly intelligent being here so prove that XD
2. Build one feature at a time
Choose a task from your to-do list and work on that only. Ask AI to:
- Scaffold the code
- Reuse existing patterns
- Avoid unnecessary rewrites
3. Write tests immediately after each feature
Tests are the guardrails for your code. Use AI to:
- Generate unit/integration tests
- Include edge cases and failure scenarios
4. Run the tests
- Run tests for the new feature
- Then run the full test suite
- If anything fails, fix or update the test or code accordingly
5. Version control your work
- Use
gitto save your progress (commit very frecuently. The AI can write the commit message too XD) - Push to your remote repository (GitHub, Gitlab, etc) for backup and collaboration
- If something goes wrong, roll back to a previous commit
Adding structure: rules for better AI collaboration
Most AI-native editors support rules, which are like system prompts that persist across your session.
Some sample global rules are:
- âPrefer simple and modular solutionsâ
- âOnly write new code if existing code canât be reusedâ
- âKeep files under 300 linesâ
- âAlways write and run tests for every new featureâ
- âRestart the dev server after code changesâ
These rules help guide the assistant to work with you, not against your architecture or preferences.
Security and responsibility (yes, it matters)
AI makes it easy to ship fast, but speed shouldnât come at the cost of safety or maintainability.
â ď¸ A few best practices (you should know these by heart at this point. Right?):
- Never commit API keys or credentialsâuse
.gitignore - Donât write your own auth unless necessaryâuse trusted providers
- Rate limit your APIs and validate user input
- Perform a security audit before deploying anything
- Automate tests for critical flows
If youâre unsure what counts as âcritical,â ask AI:
âWhat are common security risks in a FastAPI app?â
or
âWhat parts of my app should have automated testing?â
But I truly believe you should be capable to judging (at least on a general level) what is critical and what isn't. This is the kind of intelligence that you are bringing to the table. Although AI providers/developers like to label their models as capable to "think" that is just not true. Current generation of AI's are just fancy autocomplete machines desipite all the marketing.
You are the one who is responsible here. Exercise your ethics and put the effort to learn your craft. The more knowledge you have the easier it is to early capture and solve problems.
When to use vibe coding (and when to skip it)
â Use vibe coding for:
- Internal tools or admin dashboards
- One-off scripts or bots
- Exploring new tech stacks
- Small-to-medium solo projects
â Avoid vibe coding for:
- Highly regulated or safety-critical systems
- Large teams without clear version control
- Codebases with no test coverage or CI/CD
đ Remember: AI can help you code faster, but not always safer. Be intentional about where and how you apply it.
Final thoughts: itâs not about replacing you
Vibe coding isn't here to replace developersâitâs here to remove friction, unlock creativity, and empower learning. Whether youâre shipping a proof of concept or just tinkering with an idea, you donât have to do it alone anymore.
So next time you're staring at a blank file or just need help thinking through edge casesâinvite your AI assistant to pair up. You might be surprised how far the two of you can go.
Further exploration
- Windsurf Editor
- Cursor IDE
- GitHut 2.0 â See language popularity trends
- Awesome Cursor Rules â Predefined best practices per language
- Windsurf Rules Directory
- Cursor's Rules for AI
Th-Th-Th-That's All Folks!