Frequency-ordered, not textbook-ordered. Other Chinese apps teach the words in their own textbook order. Wordbrush drills the 2,200 HSK 1-3 words in actual frequency-of-use order, the order you'd encounter them on the street. HSK levels unlock bottom up: HSK 2 doesn't start until HSK 1 is complete; HSK 3 waits on HSK 2. The user reaches conversational competence in the shortest possible vocabulary distance.
Three modes for every word. Recognition (see the character, recall the meaning), listening (hear the audio, recall the character), production (see English, produce pinyin + tones). The same word cycles through all three across days. The same hanzi seen as a glyph and heard as a sound becomes a different word in the brain; Wordbrush exercises both pathways and the productive recall pathway that learners typically neglect.
Character components annotated. Tap-reveal on any card shows the constituent radicals, with the meaningful ones highlighted in vermilion (e.g., the heart radical 心 in 想, "to think"). This isn't just decoration. Once you see 心 in 想, 念, 愛, 急, 恐, 患, you stop memorizing characters as flat shapes and start reading them as ideographic compounds.
Native audio, twice per word. Every word ships with two recordings: the word itself, and the word inside a curated example sentence (e.g., "我想喝水", "I want to drink water"). Both are generated by the same native voice (Chirp 3 HD), curated to use only words at or below the current HSK level. The user hears the target word, then immediately hears it doing real work.
FSRS v6 with personalised weights. The spaced repetition algorithm is Free Spaced Repetition Scheduler, the same Anki-derived schedule used by serious learners worldwide, with the optimisation loop that re-fits the user's personal forgetting curve from their own review history. After ~50 reviews, the app's cadence is tuned to that user; after ~500 reviews, the 21-weight FSRS parameter vector is itself re-fitted to that user's data.
No accounts, no sync, no ads, no IAP, no streak punishment. Open it, do today's session, close it. Skip a day and the app is exactly the same when you come back. The product opinion is that respecting the user's attention is the feature.
Wordbrush was built by Nate Desmond as a side project, originally a personal tool to drill flashcards on long train commutes through East Asia. The first sketches happened on a journey through Japan; the rest came together over enthusiastic late nights on vacation, then was field-tested during the day in pockets between sightseeing stops.
The product opinion was simple: the popular Chinese learning apps are full of dark patterns. Streak shame. Lessons gated by IAP. Premium reminders. Subscription paywalls on basic features. Wordbrush is the deliberate opposite. Every word is in the bundle. The audio is in the bundle. There is no server, no account, no telemetry, no advertising. The app gets out of the user's way and lets them work.
The technical bet was that an opinionated, modern stack would let one person ship something that competes on feature richness with team-built products. Wordbrush is SwiftUI + SwiftData + FSRS, with all 2,200 words and their audio shipping inside the binary. No backend exists.
Nate Desmond is the founder of Urban Algorithm, LLC, a small studio for software that respects its users. Previously: product and engineering work in growth tooling and developer experience. Currently splitting time between building Wordbrush and a workout-routine app under the same studio (Kangaroo Workout).