A Cantonese learning platform designed to help speakers master pronunciation,
tones, and reading through interactive lessons.
Overview
CantoGo is a comprehensive Cantonese learning platform built to help speakers master the
language's unique pronunciation and tonal system. The platform provides interactive
tools for learning Jyutping, the standard romanization system for Cantonese.
The platform features three core learning modules: Initials and Finals for building
pronunciation foundations, Cantonese Tones for understanding pitch variations, and
Cantonese Reading for practicing pronunciation through text passages.
Key Features
◈
Initials and Finals System
Systematic learning of Jyutping initials and finals with interactive tables,
pronunciation guides, and example characters for practice.
◈
Tone Learning Module
Visual representation of Cantonese's six basic tones with waveform displays and
example character practice to master pitch variations.
To tackle the learning challenge of Cantonese's "nine tones and six contours," I
also developed an app called ToneCanto, which uses innovative waveform
visualization to make abstract tones visible, comparable, and easy to master.
◈
Reading Practice
Text passages with automatic Jyutping annotation, traditional character
conversion, and interactive reading exercises.
Background
This project was born from a personal need—helping my sister learn Cantonese to adapt to
life in Hong Kong. Moving to a new city is challenging enough, but facing a language
barrier makes it exponentially harder.
I wanted to build a practical tool that could make learning Cantonese more accessible and
systematic. Instead of relying on scattered resources, learners can now access
structured lessons on pronunciation, tones, and reading practice all in one place.
Working with my dad, we developed this platform as a family project. It combines
technical implementation with real-world language learning needs, turning a personal
challenge into a practical solution that can help others facing similar situations.
Technical Implementation
The platform is built with modern web technologies:
Frontend: Clean, responsive interface optimized for both desktop
and mobile learning sessions
Interactive Elements: Dynamic tables, audio playback, and visual
aids for tone representation
Data Management: Structured datasets for Jyutping initials, finals,
tones, and example characters
Text Processing: Automatic Jyutping annotation and traditional
character conversion
Why I Built This
Language learning tools often feel clinical and disconnected from real human needs. I
wanted to build something that came from a genuine place—helping family adapt to a new
environment.
Cantonese is particularly challenging for learners because of its tonal system and lack
of standardized romanization resources. By creating a focused, systematic approach to
learning Jyutping and tones, I hoped to lower the barrier to entry.
This project reinforced my belief that the best software solves real problems for real
people. It's not about the fanciest tech stack—it's about understanding a need and
building something that genuinely helps.
Reflection
Before this project, programming meant games to me — something I built for fun, for
myself, for the joy of making a system come alive. CantoGo did not replace that joy; it
widened it. I realized code can also be a way of taking care of the people closest to
me.
Watching my family actually use something I built, and knowing it made a real difficulty
in their daily life a little easier, felt different from any game I have shipped. It was
not applause or downloads — it was the quiet happiness of being useful to someone I
love.
What I want to carry forward: I will keep making games, but I no longer
see them as the only thing code is for. Whenever someone around me struggles with
something, my first thought now is "could I build a small tool for this?" That shift in
how I see programming — from self-expression to care — is the most meaningful thing this
project gave me.