A lightweight Traditional Chinese study site
I’ve created other mandarin study tools for myself before. The problem I’ve faced with them is that I get too invested in building them and don’t spend as much time using them.
Programming has been an important part of my study journey. Not enough tools out there teach Traditional characters, so writing a program to convert Simplified to Traditional has been very helpful for me. It’s also nice to be able to bring flashcards I’ve made anywhere with me on my phone.
To balance both the usefulness of a custom website and limit my time actually creating that website, I resolved to under-engineer it. No backend, no accounts, no Chrome integrations, no PWA. Just jQuery and HTML.
The site I’ve come up with is a collection of pages meant to keep me on track
Other tools and useful things
Most Mandarin learning resources focus on Simplified Chinese, which is used in mainland China. Taiwan uses Traditional characters, which are more complex but also more visually meaningful — many characters retain the pictographic or ideographic logic they were built from. I’m learning Traditional because I spend time in Taiwan, so most off-the-shelf tools weren’t quite right for me.
Writing a converter from Simplified to Traditional was one of the first things I built. It’s not perfect, but for flashcard generation it works well enough.
Most Western learners use Pinyin (romanization) to learn pronunciation. Taiwan uses Zhuyin, a phonetic system made of 37 symbols that map to sounds in Mandarin. Learning Zhuyin is extra work upfront, but it pays off because it’s how Taiwanese dictionaries, children’s books, and phone keyboards are organized.
The Zhuyin trainer is a simple drill: a random character is selected and only the Zhuyin pronunciation is shown. Clicking reveal shows the character, but more importantly, the romanization.
The deliberate choice to avoid a backend has held up well. The flashcard sets are plain CSV files. Adding new vocabulary is a matter of adding rows. There’s no database to manage, no auth system to maintain, no server bills. The whole thing lives in a GitHub repo and deploys for free.
The one thing I’d add eventually is offline support — a PWA cache so I can drill flashcards on the subway without a connection.