Zhiyin: Learn Mandarin with Music

Independently designed, developed and distributed an iOS app end-to-end, helping Mandarin learners expand their vocabulary through music – from a minimum viable product on TestFlight to a fully rebuilt, publicly launched App Store product with 4,000+ downloads across 90+ countries and zero dollars in ad spend.

Role

Design, Development, Distribution

Year

2025 – Present

Platform

iOS (Swift)

Tools

Claude Code, Cursor, Xcode, Supabase, PostHog, RevenueCat

Impact at a glance

Built solo as a non-technical designer using AI coding tools. Launched on the App Store and grew entirely through organic marketing.

4k+Downloads
90+ countriesEvery Continent
5M+TikTok Views
★★★★★
App Store Rating
10+Speaking Events
$0Ad Spend

Introduction

Zhiyin (知音) began as a side project with two interconnected aims:

01

Learn how to use AI coding tools – Claude Code in particular – as a non-technical designer.

02

Use those tools to build something I genuinely cared about, that addressed a real problem I had lived myself and observed in others for years: learners of Mandarin – especially overseas Chinese and intermediate students – lacked tools that helped them progress beyond the basics, despite a strong motivation to do so.

In practice, it was the latter that drove the former. In caring deeply about the problem I was trying to solve, I figured out the tools as I went.

I built Zhiyin entirely in public, sharing progress on Instagram, LinkedIn, 𝕏 and TikTok. For 60 days straight, I uploaded a video every evening documenting my learnings as a non-technical designer building my first mobile app, with the help of AI coding tools. In the process, I managed to validate demand early and build a feedback loop that shaped the product before it launched. Following a TestFlight beta with 1,300 testers, the app launched on the App Store in January 2026. It has since been downloaded over 4,000 times across 90+ countries, fuelled largely by viral TikTok content that has generated over 5M views.

At its core, Zhiyin helps users learn Mandarin Chinese with Music. Each song comes with synced lyrics, pinyin, and translations, supported by AI-generated cultural notes and grammar guides, as well as a built-in dictionary and flashcard system. It turns the music people already love into a pathway for expanding vocabulary and deepening fluency.

Design

The Problem

Many language learning tools are built for beginners. Intermediate Mandarin learners and overseas Chinese speakers are a different audience, with unique needs, and few resources built specifically for them.

Overseas Chinese often grow up with Mandarin spoken at home to some degree, but live in English-dominant countries where their schooling, friendships, and daily life happen in English. Their pronunciation is broadly sound and they can hold a basic conversation, but their vocabulary is limited.

Intermediate and advanced learners worldwide – myself included – face a similar challenge. They have pronunciation, sentence structure and enough to get by in everyday situations. What they are missing is an engaging way to keep expanding their vocabulary.

Research & Discovery

I grew up in Singapore, where roughly 75% of the population is ethnic Chinese. I know this problem intimately as both a student of Mandarin Chinese myself, and a friend of many Chinese Singaporeans who struggle to develop their Mandarin proficiency.

When I embarked on this project, I combined years of informal observation with formal interviews across 8 Mandarin learners in Singapore, China, the UK and the US.

What I observed

From my years of informal observation, two behaviours stood out consistently across both groups.

01

Singing Karaoke. Many overseas Chinese, as well as intermediate and advanced learners who had hit a vocabulary plateau often went to karaoke with friends, singing Chinese songs but not necessarily understanding what they were singing. This has become a common joke in Singapore, with videos of people commenting on this 'phenomenon' frequently going viral. Below are a few comments from one viral video, which perfectly – and funnily – sum up the situation:

02

Discovering Chinese Music Online. These learners would often discover new Chinese songs going viral on TikTok or Instagram. They would then attach these songs to posts they would upload, share them on IG stories or, in some cases, take part in viral dance trends that made use of these songs (e.g. 弥渡山歌, 跳楼机, 八方来财). Again, they might only partially understand this Chinese music – if at all – but they loved it regardless.

What the interviews told me

Interestingly, when I asked learners how they were keeping up with Mandarin, many brought up Chinese music independently – I didn't once prompt it. Music was often treated as a supplement to methods they had tried and largely given up. These methods included Chinese language learning apps (HelloChinese, Duolingo, Pleco, HelloTalk and others) as well as textbooks. But both were almost universally abandoned after a certain period because they felt like "chores":

"In the past, I've bought Mandarin textbooks, all excited and motivated and thinking this time it'll be different. I tell myself I'll go through every chapter, create flash cards and memorise the key terms every week! But inevitably the motivation drops and the textbook starts gathering dust. It just feels like too much of a chore."

Interview participant, Singapore

Yet regardless of whether these learners kept up with textbooks or Chinese language learning apps, they almost always continued listening to Chinese music. Some in a passive manner, others in a very serious and concerted way. The latter group would create an ad hoc workflow:

1

Discover a Chinese song on TikTok, Instagram or at karaoke

2

Look for it on Spotify or Apple Music, only to discover these apps often didn't have the lyrics

3

Open Safari, and go to a site like Genius Lyrics to find the full lyrics

4

After seeing many unfamiliar Chinese characters, they would paste them into Google Translate

5

Then they would go to the Notes app, so they could paste (and save) the Chinese, pinyin and English translation for every line of the song

6

Switch back to Spotify or Apple Music to play the song, then back to the Notes app to follow along line by line

Needless to say, this is a process filled with friction. Countless apps and lots of copying and pasting, just to achieve one goal: expand one's Chinese vocabulary.

I asked a few of these users to show me how their notes app looked with these lyrics. In each case, I found that Chinese characters were put first, then pinyin, then English translation, for each respective line of the song.

This directly informed the design of the lyrics page for Zhiyin:

Design Goals

From these insights, I went into the project with three clear and interconnected goals.

1

Integrate learning into existing behaviours rather than creating new study routines.

2

Make it look and feel like a music app (though it should ultimately be an education app), so users don't feel the pressures that a curriculum, deadlines or even 'streaks' might provide.

3

Provide depth on demand so users can dive deeper into the idioms, grammar and cultural context of a song as much or as little as they want.

Development

To build Zhiyin, I used Claude Code, running it directly in the terminal within Cursor, and Xcode to build the app and test it on my iPhone. Over time, two practices made a real difference to how the process went.

01

Prompts reinforced with sketches, images, and references to markdown files. Rather than relying on text alone, I attached hand-drawn sketches of UI components, screenshots from other apps for interaction patterns, and markdown files giving Claude a clear understanding of particular features and functionality. Pairing these references with written prompts made it far easier to communicate intent and get outputs that matched what I was actually after.

02

Systematic debugging. The instinct is to describe a bug and ask for a fix. What worked better was having Claude set up debug logs first, then building in Xcode and reading the debug console to see what was actually happening beneath the surface. With the real failure visible, Claude could address the actual problem rather than the most plausible one.

Phase One: MVP

I did not start by building the best possible version of Zhiyin. I started by building enough to find out if anyone wanted it. If the answer was no, there was no point going further. If yes, I could study how they used it and let that shape what came next.

Working on weeknights and weekends, guided by my design goals, and learning through building with Claude, I launched the MVP within two months. The TestFlight version launched with 10 hardcoded songs and a YouTube-powered playback system. YouTube required no account or subscription, unlike every music streaming service. I thought this would let me reach the widest possible audience with the lowest barrier to entry. Keeping the scope deliberately tight meant I could get something real into users' hands quickly and validate whether the core idea resonated.

Thanks to viral distribution methods (see Distribution below), it attracted 1,300 testers and plenty of feedback, which set the stage for a redesign.

What I learned

01

YouTube was the wrong platform. Copyright restrictions meant videos that worked in one country wouldn't play in another, and some videos that may have used a song without permission might be available one week, and gone the next. YouTube's API also wouldn't allow background playback – the moment a user navigated away from the video, the audio stopped.

02

Users didn't want the video anyway. I uploaded screen recordings of two app designs to TikTok as a kind of A/B test. One showed the YouTube video in the top quarter of the screen with lyrics below it. The other removed the video so lyrics filled the full page. The second consistently got dramatically more engagement than the first. This indicated that the users this app was built for were far more interested in reading (and learning) the lyrics – the video was a distraction. So instead of YouTube, I turned to an actual music platform, with millions of Chinese songs in its catalogue and one that many of my users were already subscribed to: Apple Music.

03

Users wanted to navigate the lyrics freely. In the MVP, lyric lines appeared progressively as the song played. But users wanted to tap any line and jump directly to that moment in the song – backwards, forwards, wherever they needed to go. I discovered this from talking to users as well as seeing tap behaviour in PostHog analytics.

Phase Two: Rebuild & Launch

Based on what I had learned from my MVP testing, I rebuilt the app from the ground up.

Scaling the content

In the MVP, 10 hardcoded songs meant every grammar guide and artist context could be prepared in advance. Scaling to the entirety of Apple Music's Chinese catalogue meant those needed to generate dynamically: created on demand by large language models the moment a user selected a song, then saved to the database so subsequent users did not trigger a fresh API call. This required a different kind of thinking about data flows, caching, cost and latency, and it was precisely the kind of complexity I had deliberately deferred until I knew the product was worth building.

A personalised experience

The homepage was redesigned to be dynamic and personalised, surfacing recommendations based on a user's listening history alongside a Hot Tracks section showing what the broader user base was engaging with most. It was also an opportunity to do what the MVP had intentionally deferred: invest in the aesthetics. The MVP home screen used placeholder shapes where real artwork should have been, functional but deliberately unfinished. The rebuild brought in actual album artwork, artist images, and a custom gradient background. On the song page, removing the YouTube video made room for a more considered treatment: album art anchored to the top of the screen, with a blurred, scaled-up version of the same image filling the background. Something more alive than the flat red it replaced. A backend was built to support this, handling user data, personalisation signals and content delivery at scale.

The app launched on the App Store in January 2026.

Technical stack

Frontend: Swift / SwiftUI for iOS

Music: Apple MusicKit

Database: Supabase

Analytics: PostHog

Payments: RevenueCat

Development tools: Claude Code, Cursor, Xcode

App Demo

Distribution

Growth has been entirely organic, driven by three main channels:

TikTok is the primary growth channel, with over 5 million views across screen recordings of the app displaying lyrics of viral Chinese songs. It also functions as a form of A/B testing. Posting screen recordings of different app designs and tracking which ones get more views gives real-time signal about what users actually want to look at, and that feeds into my design and development process.

Instagram has also become an acquisition channel. I identify viral videos of people engaging with Chinese songs and leave comments with the Chinese characters, pinyin, and English translation of key lines. People who engage with those comments click through to my profile, and immediately see the link to Zhiyin in my bio and download it from there.

AI search has – unintentionally – emerged as another discovery path. When users ask Claude or ChatGPT for music-based Chinese language learning apps, Zhiyin frequently appears in the response – in several cases as the first recommendation. Combined with strong App Store search visibility for terms like "learn Chinese music," the app surfaces across multiple entry points without any spend.

Reflection

Zhiyin represents a full product cycle carried out independently, from design and development to distribution and continuous iteration. A year ago, that would not have been possible for me as a non-technical designer. AI enabled me to step beyond the surface of the interface and work across deeper layers of the product, including API integration, backend logic, playback behaviour, loading states and distribution strategy.

This shift gave me more ownership, but it also made design judgement more critical. When AI enables designers to shape more of the product, the central question becomes less about what can be built and more about what should be built. The fundamentals remain essential: understanding users, framing the right problems and iterating towards solutions that are thoughtful rather than merely possible. That is why this case study starts with – and spends a good deal of time discussing – the problem, rather than the tools themselves. Indeed, as Bryan Lawson wrote in 1980:

"Design is as much a matter of finding problems as it is solving them."

Bryan Lawson, How Designers Think: The Design Process Demystified, p. 117