I started to sweat as I looked at the Costa Rican grocery worker who was waiting for me to respond. Not one word of what he said landed, despite my two months of Duolingo practice. I wasn’t equipped for this basic grocery store interaction, and I didn’t even have the words to tell him I didn’t understand. That left me with only one option – the language barrier blank stare.
I pieced it together later; he’d asked if I was paying by card. He wanted me to move to another shorter line if I wasn’t paying with cash.
On the walk home from the grocery store I kept thinking about how this was the first of many international stops. I had a full year of these situations in front of me. Duolingo was the wrong tool, and I would have weeks, not months, to prepare for subsequent stops.
Ending the language barrier blank stare
In a new country, certain phrases and situations are very likely to be encountered. These became my focus, and everything else could wait. Duolingo didn’t have a feature that helped with this. Phrasebooks can’t be heard and don’t drill. I was unable to find a tool to meet this need.
For each new language it was the same grueling 15-20 hour study prep process: Find YouTube videos with native speakers and situational phrases. Listen to them repeatedly with pen and paper in hand, writing phonetic pronunciations. Finally transfer them to a Quizlet deck. After all that work I could then start studying.


There’s not enough clock
Portuguese was the fifth language of the year, and at that point I had invested nearly a hundred hours on study prep alone. I didn’t want to continue sinking more hours into this process, and I wanted a tool.
The tool needed to speak phrases to me from common situations in a native voice, so that I could begin to recognize hearing them. It would also need to have response phrases, but hold them back – allowing me a chance to respond myself, but also reveal and listen as needed while learning. Some situations while traveling require me to speak first, so the app would need to support scenario prompts.
Having estimated hundreds of projects in my career, I knew it would take a few hundred hours to build. I only had a couple hours of free time per day, so the math wasn’t working. If I used every scrap of free time, I would finish building the app about the time we arrived back in America. More daunting still, that’s just for the refined phrase list and basic plumbing of the UI – layout, styling, data model, localization, build pipeline, and refactoring across iterations.
As for the hard parts, it wasn’t clear they were solvable at all. The app needed to speak the phrases in a non-robotic, native sounding voice. I also needed a solution to replace the manual sleuthing of high frequency phrases. Until recent years, both of these problems would have been solved by hiring native speakers as consultants and voice over artists.
A lowering bar
I installed Claude Code, told it my goals for the app, and fed it my manually scoured phrases in Portuguese. In less than one hour I had a functional React app that could quiz me on the provided phrases, albeit with a robotic voice. I didn’t write one line of code myself.
Following that successful prototype, I worked with Claude Chat creating specification handoffs for Claude Code to enhance and refine the product. Each handoff took a few hours of my time. Ten rounds of handoffs later, that’s yesalittle.com as it stands now.
An app that was impractical as a side project in mid-2025 was created in less than a full time work week. The headache of sourcing common phrases was solved with Claude Chat recommending high frequency phrases. Those recommendations supplanted many of the phrases I spent so much time manually sourcing. Claude Code wrote all of it for $20 a month. And finally the biggest problem, natural text to speech, was solved with a $5/month ElevenLabs subscription.
The total price tag including human labor: $4,025. That’s rounding up to a full work week and paying myself $100 per hour. The pre-AI estimate was roughly 300 hours at that rate ($30,000), and that version would still need additional spend on high-quality phrases and native-sounding voices.
While I wasn’t watching
Building this tool went from impractical to straightforward once everything converged. Good phrases don’t help if nothing can speak them. Native-sounding speech doesn’t help without an agent to build around it. And an agent doesn’t help if voicing the languages still means hiring talent.
The thing I knew to be impractical based on 26 years of estimation experience quietly became trivial while I wasn’t checking.
