I used AIs for vocaBull 2 (vb2) development. It’s not vibe-coded. I designed database tables, Pydantic classes, backend endpoints, UI workflow, practice card design, etc. I wrote more than 90% of backend code and 60-70% of frontend code. In this post, I write how I used AIs for developing vb2.
Use multiple AIs (all free-tiers)
I think using multiple AIs is a good idea. I can ask the same question to them, which can reduce the hallucination risks. Some AIs are good at coding. Others are good brainstorming partners.
| AI | role | comments |
|---|---|---|
| Claude | main coding partner | strong reasoning |
| DeepSeek | sub coding partner; help fix issues | generous tokens |
| ChatGPT | help fix issues | nerfed, but still strong |
| Gemini | for 2nd opinion and search | good personality :) |
| Grok | for search; good at latest info | all round, but… |
Among these, Gemini and Grok are secondary. Because…
- Gemini - somehow it has hard time solving issues and its reasoning not convincing
- Grok - frequently stop responding due to high demand
They are all free tiers. I rarely hit their usage limits probably because:
- Use multiple AIs
- Share only relevant portions of my code with AI
- I don’t do the asking code → refine loops
I don’t really understand why people complain token/CPU limitations of paid tiers.
Instruct not to give code to Claude
Claude is my main coding partner. It’s good at handling complex, end-to-end logic. As AIs tend to be willing to help too much, I explicitly tell Claude not to give me code upfront. Here’s from a prompt to Claude:
Preferences
- Socratic, one problem at a time, concise replies
- I write all code myself; do not provide code unless I explicitly ask
- Answer the immediate question only, no piled-on options or next steps
Sometimes use code by AIs
I usually write code myself, but sometimes I use code generated by AIs.
New area
When I add something that are completely new to me, I don’t know how to write code. Yes, many libraries have quick start section and minimum code examples. But if what I want is more than the minimum, I don’t know what to do.
In such a case, I give AI (other than Claude) my current code and ask AI how I should write. Then, I decipher and learn what AI gives to me, consulting official docs and/or further googling. This is much faster than I first read documents and gradually understand to the point where I can write code without AI’s help.
I make it a rule not to bulk copy & paste code blocks written by AI. I try to manually type what AI gives to me line-by-line.
The downside of this approach is that I only read what are required in my specific use case.
Polished frontend code
When I find my designed page is poor-looking, I ask AI to make it nicer and more modern. AIs are surprisingly good at web page designs. No wonder many vibe-coded apps look good.
I tend to manually copy TypeScript code given by AI line-by-line, but I bulk copy & paste html and css portions because I could cause type errors that I find hard to debug.
Debug
I find debugging with Claude – when I ask it not to give code and guide one step at a time – pretty frustrating. So, I use ChatGPT and DeepSeek for debugging.
If I find error messages too enigmatic, I copy & paste them to the prompts. After a couple of similar errors, I notice the pattern and can read messages myself.
Brainstorming
I often ask AIs possible improvement ideas. For example, I’d ask:
What security improvements do you think vb2 need?
Or,
Explain CSRF and XSS. How can I address these? Are there good libraries that I might use?
Or even,
Compare vb2 with other popular flashcard apps.
On prompting
Although I learned some prompting techniques, I don’t usually use them. CoT (Chain of Thoughts) is just “thinking” mode. I don’t use PREV, ReAct or Self-Ask. My prompt are just like normal Q&As with humans.
One thing I found useful and important is to set proper context. AIs respond to words in your prompts. Bad prompts would result in wrong and useless answers. AIs are extremely knowledgeable for wide variety of topics, and they can go very deep if you know how/what to ask.
Arguing with AIs is a complete waste of time. What would you get if you make AI apologize?