As an American adopted from China, I have always wanted to learn Mandarin to connect more with my culture. After enrolling in a local beginner Mandarin course, I decided I wanted to use flashcards to supplement my learning. I tested out a few flashcard apps, but wasn’t fully satisfied with any of them, so I decided to use Claude to vibe code my own flashcard app / general learning tool tailored specifically for Mandarin. In this post, I’ll explain why I decided to make my own software.
IMPORTANT AI CAVEAT: There is obviously a lot of controversy surrounding pairing AI with language learning. The tool I made is designed as a supplement for my learning and not a replacement for real, human instructors. The content and exercises in the app come from the course material taught by my Mandarin teachers.
Reason 1: An All-In-One Platform
While the flashcard apps I initially studied with were fine, I wanted a tool that wasn’t just a flashcard app. For example, I built an exercise in the app that generates a random date so I can practice saying the day, month, and year. I also built a similar exercise that generates a random time of day and a random temperature. These are exercises that wouldn’t work as well as flashcards. While I probably could’ve found these same exercises somewhere on the internet, I liked the idea of having them all in one place.
Reason 2: Adding Features is Blazingly Fast
Within a few hours of prompting Claude, I already had a basic flashcard app that supported creating flashcards, creating decks, studying cards, starring difficult terms, etc. With existing tools, if a feature I wanted didn’t exist, there wasn’t anything I could do about it. By building my own software, adding new features was quick and painless.
For example, one feature I really liked was the ability to add tones quickly by using numbers. To add the second tone (´), I would usually need to hit option+e and then type the letter (e.g. á). While this is only a two click process, it got cumbersome after a while, so I added a feature where you can just type the letter and then the tone number which will automatically add the tone to the proceeding letter:
| Tone | Input | Result |
|---|---|---|
| First tone | a1 | ā |
| Second tone | a2 | á |
| Third tone | a3 | ǎ |
| Fourth tone | a4 | à |
Reason 3: Free to Use
While tools like Quizlet are free to use, the site is riddled with ads with certain features requiring a subscription. With Claude, I was able to create a quizlet-like interface in only a couple hours, completely ad free! You may be wondering why I didn’t go with Anki, a popular, free, open-source flashcard app. This brings me to my next reason…
Reason 4: An App Tailored to Me
I used Anki for about a week before deciding it wasn’t for me. While Anki is an extremely powerful flashcard tool (the spaced-repetition was really neat!), the UI was a bit overwhelming for me. And while this is a huge nit, I also wasn’t a fan of the aesthetics of the PyQT interface. By creating my own tool, I got to design the UI and layout based on my own preferences. This also eliminated the learning curve that Anki presented since I wasn’t as familiar with it.
Reason 5: It Motivated Me to Study
I put off creating flashcards for Mandarin for a long time because I didn’t want to go through the hassle of testing flashcard apps. Creating this tool not only remotivated to study, but was also a great exercise for my professional development as a software developer.
Conclusion
With AI getting a bad rap in the language learning community, I hope that this post highlights an example of a potentially positive use for AI in this space. Lastly, I want to reemphasize that the in-person mandarin class I’ve been taking over the past few months has been pivotal in my learning journey. While this tool has greatly supplemented my studying, I wouldn’t have learned nearly as much without the carefully-crafted curriculums made by my mandarin teachers.
For anyone interested, here is the GitHub repository link for the tool: https://github.com/georgia-martinez/learn-mandarin