Instead of a Language School, I Built My Own Study App in a Day

I am not a developer. But I started learning Japanese, and somehow also signed up for an English speaking test. While browsing language schools, I remembered the tiny vocabulary page my AI assistant and I had built a few days earlier. "Why not grow this instead?" This is the record of that one day — the robot voice incident, the AI that kept cutting me off, and the tutor that changed the subject whenever I got something wrong.

1. Where It Started — A Page with 24 Words

What I had was humble: 24 words per language, flip cards, spaced repetition. Strictly "I made a thing" level. Growing it into a real study app meant a clear list: leveled vocabulary, sentence patterns, grammar notes, conversation practice, and test prep. Alone, that's months of work. But I have an AI assistant. My job isn't coding — it's asking, using, and complaining. And the complaining turned out to be the whole point of this story.

2. The Content Factory — AI Generates, a Validator Filters

The body of a study app is content. 260 English words, 260 Japanese words, 50 sentence patterns, 24 grammar lessons. Typing that by hand takes days. So I had the AI generate all of it — with one condition. Never trust AI output on the AI's word alone. Before generating anything, I had it write a validation script that mechanically checks everything: is the format right, are there duplicates, does the blank in each fill-in-the-blank question actually appear in the sentence?

That validator caught the first accident. I asked for 260 Japanese words and got back only 100 beginner entries — the output had been silently truncated mid-generation. No error, and the result looked perfectly plausible. If the validator hadn't printed "intermediate: 0, advanced: 0", I would have shipped it. We regenerated just the missing part and merged it in.

Lesson: the scary thing about AI output isn't being wrong — it's being plausibly incomplete. Let a machine do the counting.

3. Incident #1 — "Why Does It Sound Like That?"

I added a pronunciation button using the browser's built-in speech synthesis — zero server cost. I shipped it proudly. The first reaction after a few minutes of English practice: "Why does the voice sound like that?"

It really was bad. A robotic tone, like English read with a heavy foreign accent. The cause was simple: browser speech synthesis uses the device's "default voice", and on many phones that default points to a very low-quality engine. Good voices are often already installed — but unless you explicitly pick one, they're never used.

The fix was "voice-picking code": fetch every installed voice, score them — points if the name contains Natural, points for certain vendors, points for an exact language match — and explicitly select the best English/Japanese voice. The reaction after redeploying: "This isn't just better. This is how it should have been." One-line summary: if you use browser text-to-speech, voice selection is not optional.

4. Incident #2 — Free Talking, Except the AI Cuts Me Off

The conversation tab got an AI tutor: pick a topic, it talks to you in the target language and corrects your grammar in your native one. Then I added a microphone for real free talking — speak, the speech recognizer transcribes, and when you finish, it auto-sends.

In practice, something was off: "Even a brief pause sends the message." Speech recognition treats short silence as end-of-sentence. When you speak a foreign language, pausing to find a word is the most natural thing in the world — and at that exact moment, your half-sentence flew away.

The fix was a silence timer. Switch recognition to continuous mode, and only declare "done speaking" after two full seconds of silence. Any new sound resets the timer; tapping the mic again sends immediately. That number — two seconds — didn't come from code. It came from someone actually stammering through a sentence and telling me where it broke.

5. Incident #3 — The Tutor That Changes the Subject

The most interesting bug wasn't technical — it was personality. When I gave a wrong or off-topic answer during conversation practice, the tutor would correct me, then quietly steer the conversation somewhere else. Like a socially skilled adult smoothing over an awkward moment with a fresh question. For a learner, that's the worst possible behavior — the thing you failed to understand never comes back for another attempt.

The fix wasn't code; it was one paragraph of instructions: "Even if the learner's answer has errors or misses the point, never change the subject. Stay in the same context, and if the learner seems to have misunderstood the question, ask the same question again in simpler words." I tested it by answering a restaurant-ordering dialogue with "my dog is cute." After the fix: "Your dog sounds adorable! So — what would you like to eat?" Acknowledge, then return. That's a tutor.

Having registered for a speaking test, I needed exam practice too. My first reaction was fear — aren't test questions a copyright minefield? It turns out the line is clear. Copying real past questions is infringement; question types and formats themselves are not protected. Every commercial workbook is built on that distinction.

So I had the AI create 230 original questions — grammar, listening, level-based — under one explicit condition: no copying, same format only. Then I sample-checked that the answer keys were actually correct. For speaking practice, we reused the app's microphone stack: prep and answer timers count down like the real test, your answer is transcribed, and the AI grades it — what went well, what to fix, and a model answer.

One piece of honesty was required here. Since the grading works on a speech-recognition transcript, it cannot evaluate pronunciation or intonation. We wrote that limitation right on the screen. A tool that admits what it can't do gets used longer than one that pretends.

7. The Last Request — "I Want Lectures Next to It"

Just when I thought we were done: one more request. The textbook publisher had official free lecture videos online — could they play right next to the study app? Again my first instinct was copyright anxiety, and again the answer was calmer: the video platform's official embed feature is explicitly allowed by its terms. You're not copying the video; the original player plays in place, and views and ad revenue all go to the creator.

The fun trap was in "register the whole series." A single video link carries no information about the series it belongs to. But somewhere in the raw source of the video's page, a trace of its playlist does exist — the problem is that it sits around the 880,000th character of the document. My first version only read the first 500,000 characters and kept reporting "no series found." Widening the read window fixed it. Now you paste one link and the app asks: "This video is part of a series. Register the whole thing?"

8. What One Day Taught Me

  • An app is finished not when it ships, but after the fifth complaint is fixed. The voice, the cut-offs, the subject-changing, the missing mic button, the send timing — all surfaced in real use, none while building.
  • Filter AI-generated content through a validator that doesn't trust the AI. Format checks, counting, answer-key verification. Boring checks catch plausible incompleteness.
  • Copyright is something to understand, not something to route around. Copying past exams: no. Original questions in the same format: yes. Downloading videos: no. Official embeds: yes. Knowing the line means you can build far more than you feared.

FAQ

Q. Can a non-developer really do this in a day?

"A day" is honest, but with caveats: the skeleton (the vocabulary page) already existed, the AI assistant wrote every line of code, and my role was planning, testing, and complaining. And as this post shows, fixes kept coming after launch. "v1 in a day; the complaints finished it" is the accurate version.

Q. There are plenty of language apps. Why build one?

Off-the-shelf apps are built for the average learner. Mine is tuned to my exam schedule, the lectures I actually watch, and the questions I personally keep getting wrong. And when I want a change, it ships the same day. That sense of fit is what keeps the studying going.

Q. Does AI conversation practice help with real conversation?

Pronunciation feedback has limits (stated honestly above). What it does build is the muscle of finishing full sentences out loud, and the nerve to keep a conversation going after a mistake. As a zero-pressure sparring partner before facing humans, it's more than enough.