Vibe coding is magic, but you still need to go to Hogwarts
(8 minute read) Four skills you need for effective vibe coding
đđź Welcome to A Founderâs Life for Me (FLFM). Iâm Alek, a repeat founder. Iâve built and sold one company so far. I share what Iâve learned in 5-minute reads.
Vibe coding is magic, but you still need to go to Hogwarts
Vibe coding wonât magically build your app for you â itâs a skill you can learn.
Many people think of âvibe codingâ as a magical new age of computer programming where all of your code is generated for you. Thatâs only partially true. It is magical, but you need to learn new skills to effectively use it.
Vibe coding is âa programming approach that uses an AI large language model (LLM) to generate functional code from natural language prompts.â
Iâve been using GitHub Copilot for AI-assisted programming for the last two years now (subscribed in August 2023). Here are four skills you need to master to magically build apps with vibe coding:
âDivinationâ - Develop AI foresight
âPotionsâ - Select the right ingredients
âTransfigurationâ - Choose the right words
âDefense Against the Dark Artsâ - Focus on what matters
1. âDivinationâ â Develop AI foresight
Let me share some context to help you understand what I mean by âAI foresight.â
Iâm currently building a personal financial planning desktop app, âSolidly Finance.â In the current flow of the app, you create a âDebtâ with a name and description. For example, you might load in the mortgage on your house.
After you create the mortgage, you can open it and add the details (e.g., the principal and the interest rate of the loan). Early users found this flow confusing. So, Iâm consolidating the two steps into one and using AI to do it.
There are a few different ways I can ask the AI to handle this feedback:
Send prompts where I expect the AI to generate >500 lines of code. In GitHub Copilot this often falls into a setting called âAgent mode.â
âUsers found it confusing that the debtâs details are added after the debt is created with a name and a description. Please address this feedback.â
Send prompts where I expect the AI to generate <500 lines of code. In GitHub Copilot this often falls into a setting called âEdit mode.â
Backend prompt: âLetâs merge these two API endpoints together so the user can create a debt and add the interest rate at the same time.â
Frontend prompt: âThe backend now allows for an interest rate to be added alongside the debt creation. Please update the frontend form to support this as well.â
Send prompts where I expect the AI to generate <50 lines of code. In GitHub Copilot this often falls into a setting called âIn-line edit mode.â
Backend prompts:
âAdd a section to this API endpoint that checks if an interest rate is provided. If so, add it to the debt.â
âAdd a section to this API endpoint that checks if a principal is provided. If so, add it to the debt.â
⌠continued for each change I want made to the backend code.
Frontend prompts:
âAdd a field that allows the user to enter an interest rate.â
âAdd form validation to confirm the interest rate is a number between 0% and 100%.â
⌠continued for each change I want made to the frontend code.
There isnât a way to be 100% confident in the outcome of any vibe coding prompt. If you only ask the AI to perform small tasks, it is more likely to execute each task correctly but you need to invest more thought and time. If you ask the AI to broadly address the feedback, the AI may spin for five-to-ten minutes only to make changes that donât align with how you want to solve the problem. These changes are easy to revert, but youâve waited five minutes and not made any progress.
In this case, my divination instincts tell me to go with approach #2. But, this isnât a one-size-fits-all solution. In my experience, frontend development is where vibe coding shines and you can get away with broader prompts. Backend logic usually depends heavily on business rules, database schemas, and application-specific quirks that an LLM canât fully intuit from a single prompt. Backend development requires higher specificity and more targeted asks.
2. âPotionsâ â Select the right ingredients
Every good potion starts with the right ingredients, and in vibe coding, those ingredients are the files, snippets, and context you give the AI. If you leave something outâor toss in the wrong thingâyou wonât end up with the outcome you wanted.
Once Iâve divined how broad of a prompt Iâll give the AI, I think about what ingredients I need to brew the right result. In the example above, that means pulling together four files:
The frontend code for the debt name & description form
The API endpoint that receives the name and description data
The frontend code for the interest rate and principal form
The API endpoint that receives the interest rate and principal data
Give the AI the wrong ingredients, and youâll likely get the wrong outcome. This is where your skills as a developer matter: you need to know your codebase well enough to grab the right components and present them clearly.
This is also where experienced developers shine with vibe coding. They know which files to pick, and which to ignore so the AI can create a working solution. If your codebase feels messy, spend some time with the AI reorganizing it into a structure that makes sense. Like a potions master labeling jars, the better organized your code is, the easier it is to concoct the right context.
3. âTransfigurationâ â Choose the right words
âWords are, in my not-so-humble opinion, our most inexhaustible source of magic.â
- Albus Dumbledore
Transfiguration is about transforming one thing into another without losing control of the outcome. In vibe coding, the same principle applies. But instead of using spells to change animals into goblets, weâre using prompts to change ideas into code.
The clearer and more structured your prompt, the more likely the AI will produce code that fits. For example, instead of writing:
âMake the form better.â
Youâll get far more useful results if you ask:
âAdd validation to confirm the interest rate is between 0% and 100%.â
I have found it useful to experiment with broad prompts like âMake the form better,â just to see if the AI opens my eyes to new outcomes that I hadnât envisioned. But, if youâre addressing specific user feedback or pushing your app forward, being precise with your words goes a long way to getting the outcome you want.
4. âDefense Against the Dark Artsâ â Focus on what matters
Defense Against the Dark Arts is about protecting yourself from dark magic. In vibe coding, âdark magicâ doesnât come in the form of curses or dementors â it comes as distractions. Hereâs an example:
I set out to consolidate two forms, as I showed you in my example above.
During testing I notice that the loading spinner is slow to appear after I submit the form.
I wonder âWhy is that taking so long? Can I fix it?â
I deep-dive into the loading spinner issue and figure out the problem.
I decide to make it more responsive and work with the AI to do it.
I decide to check if the same issue exists elsewhere in the app... It does.
I spend time resolving the loading spinner issue everywhere across my app.
Thirty minutes later⌠Iâm on top of the world! Iâve implemented the new and improved loading spinner everywhere! Mission accomplished!
I go back to my to-do list and remember that I was supposed to be consolidating two forms, not tweaking the loading spinners. Womp.
The curse of vibe coding is that every little improvement feels just a quick prompt away. You need defenses to protect yourself from this temptation. For me, my Patronus charm comes in the form of a clear to-do list. Instead of chasing every problem I stumble across, I jot it down â âinvestigate loading spinner delayâ â and move on. That way I can return to it when the time is right and stay focused on what matters.
Vibe coding is magic, but you still need to go to Hogwarts
Vibe coding is magic, but it wonât build your app for you. Itâs a magical skill you can learn. And, the four skills you need to harness this magic are:
Develop AI foresight
Select the right ingredients
Choose the right words
Focus on what matters
For me, the fastest progress has come from practicing these skills on real projects. So, if youâre curious about vibe coding, donât wait for your Hogwarts letter â start a small project! Experiment with different prompts, try varying levels of context, and learn where the AI shines and where it stumbles. Each attempt builds your skills, and those skills are what matter most.
Thanks for reading! Subscribe below to stay tuned! By sharing my experiences, I hope to provide advice to entrepreneurs facing similar challenges. Feel free to email me with any questions, or if youâre interested in trying the Solidly Finance app!
Related Articles
If you are new to coding and donât even know how to get started, try reading âHow to Teach Yourself to Solve Problems Using Code.â There, I give a more tactical guide and advice for non-coders. If youâre not interested in writing code yourself, it should help demystify what âcodingâ means. If you want to learn more, give it a read!