On 19 September 2026 I started learning Chinese. There was very little to learn it with in Uzbek, so four days later the first version of Zitou went up. A month on, it is a free app with a 124,039-word dictionary, every HSK list, native audio for 8,563 words, a six-lesson HSK 1 course for classrooms and, since today, two addresses: zitou.uz in Uzbek and zitou.app for everything else.
This is the long version: what is in it, how a class uses it, why it now lives at two addresses, how it is built, and what I am not claiming.


The core is a dictionary and a course. The dictionary comes from CC-CEDICT: 124,039 words, searchable by character, by pinyin with or without tones, or by the meaning in Uzbek, Russian or English. 8,296 of them, every word of HSK 1–6 plus 472 everyday words that are on no list, have an Uzbek and a Russian meaning. The course follows all three HSK lists: the 2025 revision (10,057 words), HSK 3.0 and HSK 2.0, each level its own course.
It works without an account, in ten interface languages, in the browser on a phone, a tablet or a computer.

Most learners here do not study alone. They sit in a class with a teacher and a textbook, so the newest part of Zitou is for that room. The HSK 1 course has six lessons. A teacher opens a lesson on the big screen at zitou.app/dars and gets a six-digit code. Students type it on their phones, with no account, and answer each exercise together. The teacher sees who answered, who got it wrong and who pressed "I don't understand", as it happens.

Between lessons there are two more pages. /vocab teaches the course's 162 words five at a time (listen, see, find) and has a mode where the phone says the words and you only listen. /daftar is the word notebook: each word's character, pinyin, meaning, stroke order and audio.


Lesson 6 went in yesterday: the telephone, shopping, food and the taxi. The textbook comes with its own recordings, and they are copyrighted, so I did not use them. Every word that audio-cmn has is a native recording. Every sentence, dialogue and word it lacks is generated with Kokoro v1.1-zh, an open speech model under Apache-2.0, in three fixed voices. The pages credit both.
Today Zitou got zitou.uz. The Uzbek pages moved there: the home page, the 7,823 word pages, the dictionary guide, HSK lists, grammar, the mock test, articles and China news. zitou.app keeps the other nine languages and the app.
The split follows one rule. Anything that holds a sign-in or saved progress stays on zitou.app (the app, the course pages, the live games) because a browser keeps those per address, and moving them would have split every learner's progress in two. Pages people read moved freely. A 301 sends every old URL to its new home, so nothing that was indexed or shared breaks.
Opening zitou.app on its own now picks a language. An Uzbek browser, or a visitor in Uzbekistan whose browser is not set to Russian, goes to zitou.uz; everyone else goes to their own language, or to English.
Why .uz at all? Google reads a country domain as a signal for that country, and a teacher in Tashkent can say "zitou nuqta uz" in class without spelling anything. It also gave the class code a short home: a student types zitou.uz/482915 and lands in whichever live lesson or game has that code.
Each address has its own sitemaps and robots file, its own Search Console and Bing Webmaster property, and one full RSS feed. zitou.uz/feed.xml carries release notes, articles, guides and the latest China news together. Questions now go to salom@zitou.uz.

Zitou is one Cloudflare Worker with static assets. The dictionary is not a database: it is static JSON built from CC-CEDICT and the HSK lists, which is how a 124,000-word dictionary runs on the free plan. D1 holds accounts, classes and the news; a Durable Object holds each live game and each live lesson, one room per code.
The free plan is a real constraint. Crawlers once used up the whole daily allowance of requests, so the Worker now keeps a budget: bulk crawlers are turned away before the limit, and Google, Bing and Yandex are always served.
The two addresses are one deploy. A single file decides which host a path belongs to. The build rewrites every link in every page for the host that serves it and writes each host's sitemaps and robots file; the Worker does the redirects and rewrites the pages it renders itself. The domain went live in two steps, first attached and checked with the old code and only then the redirects, because the .uz registry took about two hours to hand over the nameservers.
The channel @zitougg posts one HSK word a day with its recording and its stroke animation. The bot @zitouggbot looks words up in any chat, sends greetings in Chinese, and runs a daily word and quiz in groups.
The vocabulary underneath is public: 8,296 HSK words with Uzbek and Russian meanings on Hugging Face under CC BY 4.0, with a small dictionary Space next to it.
On 12 October Search Console showed about 5,950 pages indexed, and 927 impressions and 19 clicks over 28 days. That is small, and most of the impressions came from the HSK 7–9 list pages, which answer questions nobody in Uzbekistan is asking yet. zitou.uz is there to move those numbers for the pages that matter here. I will write down what happens.
The iPhone and Android versions are coming. Until then Zitou runs in the browser and installs to the home screen from zitou.app.
Try it at zitou.uz in Uzbek or zitou.app in any other language. Start with HSK 1, or type your own name.