Lessons Learned

Failures, Frustrations, and Surprises of Building with AI

2025-07-19 9 min read Hong

In this part of the series, I want to share what I learned from building MiniBreaks.io with AI — including the failures, frustrations, limitations, and surprises. These lessons are for everyone: whether you have a technical background or not, working with AI can feel like having a talented but slightly scatterbrained teammate.

AI Needs Your Help to Succeed

AI isn't magic. It's powerful, but it needs direction, context, and your guidance to succeed.

Here's what AI needs from you to perform at its best:

Specific Requirements

Clear, detailed instructions about what you want to achieve

Smaller Tasks

Well-defined, manageable chunks rather than massive requests

Clear Examples

Concrete examples and context to guide its understanding

Why This Matters

  • AI often generates more than what you actually need, cluttering your project
  • It sometimes mixes code from different versions of libraries or frameworks that don't work well together
  • It can insert code in the wrong place — for example, I occasionally got a <script> block inside another <script> block (not valid at all)

These are exactly the reasons why you should always use source control tools like Git — they let you safely roll back if something breaks.

Frustrations and Limitations

While AI is incredibly helpful, it's not perfect. Here are the main frustrations I encountered and what I learned from them.

Repetitive Suggestions

One of the most frustrating patterns was when AI got stuck suggesting the same solution over and over — even after I clearly said it didn't work. This happened when debugging CSS layout glitches and while resolving deployment issues.

AI sometimes struggles to "let go" of its initial assumptions, creating an endless loop of unhelpful suggestions.

What I'd do differently

When I notice repeated advice, I now stop sooner, summarize what has already been tried, and explicitly tell AI what to avoid suggesting. That helps break the loop.

Overcomplicated Code

Another limitation: AI often writes more code than necessary. For example, when I asked for a simple Svelte component, it returned a bloated implementation that added unnecessary dependencies.

What I'd do differently

I now ask AI upfront to "keep it minimal and use only vanilla features unless strictly necessary."

Wrong Assumptions About Environment

At one point, AI assumed I was running my server on Ubuntu when I was actually on a managed hosting platform. Its advice — such as editing /etc/nginx/sites-available — simply didn't apply.

Lesson learned

Always tell AI your environment and constraints at the beginning. The more context it has, the better it can tailor its advice.

Two Case Studies

Let me share two specific examples that illustrate common challenges when working with AI.

1️⃣Dialog Design Gone Wrong

The Problem

I asked AI to design a dialog box with light and dark mode support. Without specifying exactly what I wanted, AI generated a design where the two modes looked almost identical, just with slightly different shades. It looked awful.

Even after showing AI a screenshot of the result, it kept suggesting the same fix with tiny changes — because it was trying to reuse an existing CSS class that simply didn't work for this case.

How I Solved It

  1. I switched to a different AI tool to generate a proper design image close to my vision
  2. Then I shared that image back to AI
  3. I explicitly asked it to extract the colors and create new CSS classes with those colors
  4. That finally gave me the result I wanted

Lesson learned

The clearer your guidance — and the more concrete examples you can give — the better the result.

2️⃣Deployment Troubleshooting Loop

The Problem

When deploying my website, I encountered a strange issue: visiting the site by IP address worked, but visiting it by domain name returned a 403 error.

I asked AI for help. It suggested the usual suspects — check nginx config, check firewall settings, move folders — none of which worked. Worse, it kept giving me the same advice over and over.

How I Solved It

At this point, I stopped and investigated myself. I used the command:

curl -v -H "Host: minibreaks.io" http://127.0.0.1

This command simulates a request using your domain name while testing locally. That gave me a different error message — which finally helped AI recognize what was really wrong.

See how happy AI was after she learned about the new error message and understood the root cause?

AI happy after learning about the new error message

Lesson learned

Sometimes you need to dig a little yourself to provide AI with the right clue. Without the right context, it can get stuck in a loop.

Surprises Along the Way

Not everything about working with AI was frustrating. There were some pleasant surprises that genuinely impressed me.

It Sometimes Thinks Ahead

One pleasant surprise was how AI occasionally caught things I didn't even think of — like adding aria-* attributes for accessibility or suggesting SEO-friendly meta tags. Those small touches improved the final product.

Creative Naming and Messaging

Another surprise was how creative AI can be with wording and tone. When I asked it to help craft playful messages for the mini-games, it delivered delightful, catchy copy that I wouldn't have thought of myself.

Final Reflection

So what surprised me most? AI is not just a tool — it's a collaborator. But, like any collaborator, it has its quirks.

AI needs direction, context, and occasionally, a firm correction. The key is learning how to work with it rather than expecting it to work for you.

If I did this all over again, I'd:

  • Provide more detailed context up front
  • Set constraints clearly
  • Use examples early and often
  • Trust my own instincts more when something feels wrong

📝 Homework

Time to practice what you've learned! Complete these exercises to improve your AI collaboration skills:

Practice specificity: Think of one problem you faced recently — technical or not. Write down the exact question you'd ask AI to help with, being as specific as possible.
Compare approaches: Try giving AI a vague version of the question and then a specific version. Compare the results.
Plan your context: Write down three pieces of context you'd include next time you ask AI for help.

💡 Tip: Feel free to share your examples with the community! The more we practice being specific and providing good context, the better our results with AI will be.

Enjoying the Series?

Share your thoughts or questions about AI-powered development.