I built a GPT app to help me learn Spanish

Learning a language is hard. But I’m convinced that large language models like GPT could make it a lot easier.

I spent the last few days trying to figure out how. The result is Check My Writing. It’s a decent starting point, but I want to do more.

After writing text in a language you’re learning, it provides (with the help of GPT):

  • the key message in the text
  • a list of errors (if any)
  • the complexity of the text (using the CEFR framework)
  • an error-proof version of your writing


The main motivation is that I’m learning Spanish and find writing short essays to be the best way for me to progress.

However, my wife (who speaks Spanish) doesn’t have time to check all my writing - and other tools like Google Translate don’t give the kind of feedback I need.

But stepping back: what does it take to learn a language, and how could AI models like GPT help?

The four aspects of language learning

There are four types of language learning, which vary in two axes: consumption vs creation and time pressure vs no time pressure

Creating is harder than consuming, and time pressure is harder than no time pressure. So I consider the tasks to increase in difficulty: reading (easiest), listening, writing, speaking (hardest).

For me, the biggest pain points have been with practicing reading writing. For listening, there are endless podcasts (for Spanish at least - this was much harder when I was learning Polish). For speaking, you can get tutoring or speaking buddies.

But for reading, I really struggle to find text that’s at my current level. If a text is too hard, I get fatigued. If it’s too easy, I don’t learn. And for writing, I have to rely on feedback of relatives or pay for a tutor.

Using GPT to supercharge language learning

It feels like GPT is well suited to solve some of these problems.

I started by trying to solve the reading problem - by getting GPT to make text at different complexity levels. In short, I struggled to get it to output things at certain complexity levels. Specifying objective measures like CEFR or Flesch-Kincaid readability scores didn’t seem to work.

So then I switched it up and focussed on the writing problem. I’ve been writing daily short essays in Spanish, and I asked GPT for feedback. That led to the tool Check My Writing tool, and it’s been helpful (and saved my wife some time 😅). But ultimately, it’s not been transformative.

I think the real game changer would be something that’s more adaptive and real-time. Like a conversational agent that responds to your current level. That picks up on your grammatical errors, and then coaches you through understanding them. ChatGPT is decent at this, but I think it can be improved.

So that’s what I’m going to build next. And given that I’m building in public right now, I’ll be sharing real-time updates on Twitter and my mailing list.