January 10th. It's been about a month and a half since I launched my AI fortune-telling site.
Before I knew it, I had finished the last planned feature for my second project, TubeLingo — a grammar learning system in English, Japanese, and Korean.
The UI and UX still have that rough, not-quite-polished feel. There are probably bugs lurking somewhere. I have plenty of things I'd love to fix — but for now, I'm putting a bookmark in the TubeLingo chapter and calling it "version one."
Why? Because my husband — who takes his gym sessions far more seriously than his job — has already put in a request for a third app. And I want to start building it.
The daily struggle between ideals and reality
My goal at the start of the year was to build 10 apps. Two projects in, I've already learned my lesson: once you start building, your standards quietly creep up, and knowing when to stop is harder than it sounds.
So I'm revising the goal. First, 5 apps. Five ideas, brought to life.
Let me look back on the messy, unglamorous parts of the journey so far.
The first project was a simple fortune-telling site: input something, get a result. Even that was a battle. I had no idea how to work with AI in a coding context — what "Gemini Pro" was, what "fast mode" meant. I just copied and pasted and figured it out as I went.
Then came TubeLingo.
What I thought would be a straightforward feature kept expanding — the codebase grew far beyond what I'd imagined. My workflow was: ask Gemini for code via a prompt, copy it, paste it in. Looking back, that was a pretty reckless way to build something.
"Just copy and paste the code" — sounds simple. Reality disagrees.
As features multiplied, the code ballooned to hundreds of lines. Pasting a block in the wrong place by just one line could turn the entire preview screen white — the dreaded white screen of doom.
A single missing { bracket. A tag deleted that should have been left alone. Those tiny mistakes would leave me stuck for hours, unable to track down the source of the error. That was my everyday life.
On top of that, feeding long blocks of code to an AI means the AI starts forgetting the earlier context — and suddenly starts producing responses that have nothing to do with what you asked. Over and over, I hit the wall of token limits (the ceiling on how much information an AI can process at once), and ended up reluctantly upgrading to the expensive Ultra Plan. My wallet felt it.
When I was implementing the vocabulary and grammar features, I'd be stuck on error after error, barely moving forward. "Maybe I should just cut this feature entirely," I genuinely thought, and nearly gave up. What kept me going was slowly realizing: this is just what vibe coding in a real IDE actually looks like.
And just recently — when I'd started to feel a little more confident — I made another big mistake.
I spent an entire day building out 25 units of Korean grammar data. Then I noticed: only 1 unit was showing up.
Once again, whether it was my instructions or the AI's behavior, everything I'd done had vanished.
I asked the AI to restore it and let it run overnight. When I woke up and checked — garbled characters everywhere. Just... garbage.
The result of an all-night restore attempt: this
The moment of despair — nothing but sighs
But this was my second big failure. I didn't panic this time.
Fix it one step at a time with the AI. It's not as bad as it looks. I surprised myself with how quickly I bounced back — and how much more resilient I'd become compared to the first disaster.
What is a "Git Commit"?
Let me take a moment to explain "Git Commit" — the thing I neglected, and paid dearly for.
Think of it like saving your game before a boss fight. In programming, a Git Commit is exactly that: creating a save point.
If you don't do it regularly, and something goes wrong — a white screen, lost data — you could find yourself thrown back hours or, in the worst case, to the very beginning. It's the lifeline that every developer relies on to avoid that crushing feeling of lost work.
Three-plus weeks of TubeLingo development. So many lessons — which is just a polite word for failures.
Adapting to a new environment like Antigravity. The repeated frustration of hitting token limits. The rising costs. And yet — I'm genuinely glad I kept going.
TubeLingo was born from a personal wish: one day, my kids and my father might be able to exchange a few words with each other in Korean and Japanese. Offering quality educational content for free — if that helps even one person, even a little, it's worth it.
Now, onto the third project.
This time, I'm taking on login functionality and a database to save daily records. Not just screens — the invisible plumbing underneath. And maybe, just maybe, I can figure out how to monetize a premium feature. A girl can dream.
A mom in her mid-40s. Still stumbling. Still going.
Learn from Real YouTube Voices 📺
Just paste a video URL.
AI explains the real comments and slang.
Put It Into Practice Right Away ✍️
Try writing a diary entry with yourself as the subject.
Your AI tutor will polish it into natural expression.
