Legal
Privacy Policy
The short version
- Shuye works without an account. On first launch it creates an anonymous one so your pages can be processed and saved.
- We keep what you put into Shuye (lessons, page photos, saved words, flashcards, writing practice, explanations) so the app can work, and we don’t use it for anything else.
- Page photos are private to your account. To read a page, the photo goes to Google Cloud Vision and the text goes to OpenAI. Neither receives your account ID, and OpenAI never receives your photos.
- No ads, no advertising IDs, no selling of data, no tracking across other apps or websites.
- We record how the app is used, never the text you read. You can turn that off in Me → Privacy → Help improve Shuye.
- You can delete everything at any time in Me → Account → Delete account.
1.Who we are
Shuye (书页) is an app for reading Chinese on iPhone, iPad and Android. In this policy “Shuye”, “we” and “us” mean the publisher of the app, who decides how your data is used (the “controller”, in data-protection terms). “You” means anyone who uses the app or this website.
This policy covers the Shuye apps and the website at this address. The stores you download from (Apple’s App Store, Google Play) and the sign-in providers you choose (Apple, Google) have their own privacy policies.
2.What we collect, and why
Your account
- An anonymous account, created on first launch. It is a random ID with no name or email attached. It lets our server tell your lessons and cards apart from everyone else’s.
- Sign in with Apple or Google, if you choose it (it’s optional). The provider tells us a stable account identifier and your email address. If you use Apple’s “Hide My Email”, we get a private relay address instead of your real one. Google may also include your name and profile picture as part of the basic profile it shares. We show the email in Me so you know which account you’re using; we don’t send marketing email.
- Our sign-in service also records when you sign in and from which IP address, for security.
Lessons and page photos
- Photos of pages you scan or pick, and pages from PDFs, uploaded as images. They are stored privately under your account: no other account can reach them, and share links never include them. We keep them so you can look at the original page from the reader.
- Text you paste, or send with Send to Shuye from another app.
- The lesson we build from each page: its sentences and words, pinyin, dictionary entries, a translation of each sentence, short notes on harder words, a title, and the lesson’s folder. We also keep each page’s status and where it came from (camera, photo, PDF or paste).
To build a lesson, our server sends a page photo to Google Cloud Vision, which returns the text in it. It then sends that text, with candidate dictionary meanings and your HSK level, to OpenAI, which returns the translations, the meaning of each word in context, the notes and a title. See section 4.
Saved words, flashcards, reviews and writing practice
- Each saved word: the word, its reading and meaning, the sentence you found it in and its translation, the lesson it came from, and its deck (for example “My words” or “HSK 3”).
- Each flashcard’s scheduling state (when it is due, how well you know it).
- Your review history: which card, the answer you gave, when, and how long you took. This is what spaced repetition runs on.
- Words you mark “I know this” in the HSK word lists: the word, and when you marked or unmarked it.
- Your writing practice: which character, the mode (Trace, Guided or Free), how many strokes, mistakes and hints, and when. Your drawings themselves are not kept.
- Dialogues you finish: which of the app’s built-in dialogues, how many of your replies were right first time, and when. Your replies themselves are not kept.
When you miss a word in a quiz and it already has a flashcard, that card comes due for review straight away; this changes the card’s due date only. Quiz questions are made on your phone, from your own lessons and from example sentences shipped with the app, so taking a quiz sends nothing to OpenAI or anyone else.
These are kept on your phone first, so they work offline, and copied to our server so they are backed up and sync to your other devices.
Explanations
When you tap Explain, we store the explanation, the follow-up questions you type (up to 300 characters each) and the answers, so you can reopen them for free. To write them, our server sends OpenAI the sentence, one sentence on each side of it, what you selected, its dictionary meanings, your HSK level and character set, and for a follow-up the explanation and the earlier questions and answers in that thread. Explanations on the built-in sample page are not stored on our server.
Talking with an AI character (Premium)
In an AI conversation, each time you reply our server sends OpenAI the situation (a topic, the one you wrote, or the dialogue you were in), your HSK level and character set, the conversation so far (up to the last 24 lines) and your reply. If you wrote your own situation, it is first checked by OpenAI’s moderation service. With each request we also send a code made from your account by a one-way hash (not your account ID or email), which OpenAI uses only to detect abuse of its service. We don’t store the conversation on our server: it stays on your phone. We only record that a conversation was used, for Premium’s daily limit.
Settings
Your character set (Simplified, Traditional or as written), HSK level, theme, time zone, when you finished onboarding, and your display and study settings: pinyin mode, translations, tone colours, text size, Listen speed, new cards per day, listening cards and reminder time. They sync so a new device opens the way you left it. Your choice of voice stays on each device.
Daily usage counts
To run the free daily limits (3 scans and 5 explanations), our server keeps a record of each scan and explanation charged: what kind, which page or explanation it was for, when, and whether it was refunded (a page that can’t be read is refunded). We also keep short-lived request counters to stop floods of requests; these are deleted after about an hour. Premium accounts have a fair-use ceiling that uses the same counts.
Study totals
For the Progress screen we keep one small row per day and device: minutes spent reading, characters read, lessons opened and finished, explanations and seconds of Listen. It syncs so each day adds up across your devices. Streaks, heatmaps and coverage are calculated on your phone.
Product analytics (“Help improve Shuye”)
Shuye records how the app is used, for example that a page was scanned or a review finished, so we can see what helps people read and what doesn’t. These events go to our own database; there is no third-party analytics service.
- The events: app opened; onboarding started and completed (with the character set chosen); lesson created (with where it came from: camera, photos, paste, PDF, share or import), opened and finished; Listen started; explanation requested (word, phrase or sentence) and follow-up asked; word saved; review session completed (with the number of cards); daily limit reached (scans or explanations); Premium screen viewed (and from where), plan selected, purchase started, completed, failed (with the store’s error code) or cancelled, purchases restored (found or not); sign-in completed (Apple or Google, and whether two devices’ data were combined); share link created or imported (lesson or deck); HSK word list opened (with the level and where from); HSK words marked known or added to study (with the level and how many); Flip through finished (with how many were known, added and skipped); writing practice finished (with the mode, how many characters and how many had no mistakes); HSK decks renamed for the 2025 lists (with how many); AI conversation started (the kind of situation) and finished (how many turns); quiz finished (where it was started, the HSK level, how many questions of each kind and how many were right); a quiz question reported (its kind, and for an example sentence from Tatoeba, that sentence’s public Tatoeba number); dialogue finished (its level, and how many replies were right); a dialogue reported (which built-in dialogue, and which turn).
- With each event: your account ID, a random ID for this installation of the app, the time on your device, the app version, iOS or Android, and your device’s language and region setting (such as “en_GB”).
- Never included: the text of your lessons, the words you look up or save, explanations, your email, or any advertising or device identifier.
This usage data is linked to your account. It is never sold or shared, and not used for tracking or advertising. It is on by default; turn it off in Me → Privacy → Help improve Shuye, which also clears any events waiting to be sent. Events are deleted after 13 months, or with your account.
Crash and error reports
When the app crashes or something goes wrong in the background, it sends a report to Sentry so we can fix it. A report contains:
- the error, and the stack trace showing where in the app’s code it happened;
- your device model, operating system and version, the app’s version and build, and similar technical details such as screen size, memory and whether the app was in the foreground;
- a random installation ID created by the crash reporter;
- a short trail of what the app did just before (for example the app going to the background, or a sync step), including brief diagnostic lines the app writes, which contain error codes and counts;
- for about one in ten sessions, timings of how long parts of the app took to run.
Reports are not linked to your Shuye account: the app doesn’t give Sentry your account ID, your email or your IP address, and our Sentry project is set never to store IP addresses. Sentry keeps the reports in the United States. The diagnostic messages we write never contain your lesson text, saved words, explanations or sign-in tokens. Error messages generated by the system itself are outside our wording and could, rarely, include a fragment of the data being handled; we use reports only to fix bugs.
Purchases
If you buy Shuye Premium, Apple or Google take the payment; we never see your card or bank details. RevenueCat, our purchase service, receives the store’s purchase records under your Shuye account ID. From it, our server stores whether you have Premium, the plan (monthly or yearly), the store, when the current period ends, whether it will renew, any payment problem, and the date of your first purchase.
On your phone
- Local copies of your lessons, saved words, cards, reviews, known-word marks, writing practice, finished dialogues and settings, plus a queue of changes and events waiting to be sent.
- Quiz history: which quiz questions you answered, when, and whether you got them right. It stays on your phone and is never sent to us; it only decides which questions come next.
- Listen uses your phone’s built-in voices. The text you listen to never leaves the device and nothing about it reaches us, apart from the “Listen started” event and the Listen seconds in your study totals.
- Speaking your replies in a dialogue uses your iPhone or iPad’s own speech recognition, on the device only: Shuye asks iOS to recognise speech without sending it anywhere, and on a device that can’t do that, the microphone button doesn’t appear. Your voice isn’t recorded or kept, and neither the audio nor the words reach us or anyone else. The app asks for the microphone and speech recognition the first time you use it; you can turn either off in Settings.
- The dictionary is on the phone, so looking words up sends nothing.
- Reminders are local notifications scheduled on the phone. We don’t use push notifications or collect a push token.
- Permissions: the camera (to scan pages), your photos (to pick pages) and notifications (only if you turn reminders on). Shuye doesn’t use the microphone, your location or your contacts.
3.What we don’t do
- We don’t show ads, and we don’t use advertising IDs (IDFA or the Android advertising ID). Shuye doesn’t ask to track you, because it doesn’t.
- We don’t sell or rent your data, and we don’t share it with data brokers.
- We don’t track you across other companies’ apps or websites.
- We don’t use your lessons, words or explanations to train AI models, and we ask OpenAI not to store them (see below).
- We don’t read your lessons. People at Shuye look at stored content only when you ask us to (for example, to investigate a problem you report) or when we must, to deal with abuse or a legal request.
4.Who processes your data
These companies process data for us, only to provide Shuye, under contracts that limit what they may do with it.
| Service | What for | What it receives |
|---|---|---|
| Supabase | Database, sign-in, file storage and server functions | Everything stored for your account (section 2). Stored in Supabase’s ap-northeast-2 region in Seoul, South Korea. Server functions run on Supabase’s network and can handle a request in a region near you on its way to Seoul. |
| OpenAI | Translations, word meanings in context, notes, lesson titles, Explain and AI conversations | Text only: the sentences of a page with dictionary meanings and your HSK level; for Explain, the passage, your selection and your questions; for AI conversations, the situation, the conversation and your replies (section 2). Never your account ID, email or photos. We send every request with storage turned off (store: false). Under OpenAI’s API terms, the content isn’t used to train its models, and OpenAI may keep it for up to 30 days to monitor abuse before deleting it. |
| Google Cloud Vision | Finding the text in a page photo | The page image, sent from our server, with no account ID. Google returns the text and processes the image as our service provider. |
| RevenueCat | Managing Premium subscriptions | Your Shuye account ID and the purchase records from Apple or Google (product, price, currency, store country, dates, renewal status), plus the technical details its software development kit collects to process purchases. |
| Apple and Google (stores) | Payments, refunds and the subscription itself | Whatever you give them when you buy, under their own privacy policies. They tell RevenueCat about the purchase. |
| Apple and Google (sign-in) | Sign in with Apple, Sign in with Google | Your sign-in with them. They give us your account identifier and email (section 2). When you delete your Shuye account, we also ask Apple to revoke Shuye’s Sign in with Apple link. |
| Sentry | Crash and error reports | The reports described in section 2, not linked to your account. Stored in the United States. |
| Vercel | Hosting this website | Standard request logs when you visit the website (section 13). Vercel doesn’t receive anything from the app. |
We may also disclose data if the law requires it, to protect people from harm, or as part of a sale or reorganisation of Shuye, in which case this policy would continue to apply to your data.
5.Shared links
When you share a lesson or a deck, we save a copy of it under a random link. A lesson link carries the lesson’s title and text (its sentences, pinyin, translations and notes), never its photos. A deck link carries the title and, for each word, the word, reading, meaning, sentence and translation. Anyone who has the link can see the title on the link’s web page and add a copy to their own Shuye library. We count how many times a link is opened, but record nothing about who opened it.
To turn a link off, go to Me → Sharing → Shared links. A link that’s off stops working for good and shows “This link no longer works.” Deleting your account turns off all your links. Copies that people already added to their own libraries are theirs, and stay with them.
6.How long we keep data
| Data | Kept |
|---|---|
| Lessons, photos, words, cards, reviews, known-word marks, writing practice, finished dialogues, explanations, settings, study totals, usage counts | Until you delete them (deleting a lesson deletes its photos and explanations) or delete your account. |
| Product analytics events | 13 months, then deleted automatically; earlier if you delete your account. |
| Request counters (flood protection) | About an hour. |
| Premium status | Until you delete your account. |
| Crash reports | Up to 90 days, then deleted by Sentry. |
| Text sent to OpenAI | Not stored by OpenAI for our use; up to 30 days for OpenAI’s abuse monitoring. |
| Server and sign-in logs | A short period, for security and troubleshooting. |
| Backups | Our database provider keeps daily backups for up to 7 days; deleted data disappears from them as they roll over. |
| Anonymous accounts with no activity | Deleted automatically, with everything in them, after 12 months without activity. |
If you never sign in and then delete the app, your anonymous account can’t be reached from a new install. We delete anonymous accounts automatically once they have had no activity for 12 months, together with everything stored in them, including page photos. Accounts you have signed in to are never deleted for inactivity. If you want an anonymous account gone sooner, use Delete my data before you uninstall, or write to us.
7.Deleting your data, and signing out
Delete account
In the app, go to Me → Account → Delete account (it’s called Delete my data if you never signed in) and type DELETE to confirm. This immediately and permanently deletes your account and everything stored with it: lessons, page photos, saved words, flashcards, review history, known-word marks, writing practice, finished dialogues, explanations, settings, study totals, usage counts, analytics events, Premium status and share links. It then clears the phone. Deleting needs a connection. Full steps are on the Delete account page, along with what to do if you can’t open the app.
Deleting your account doesn’t cancel a subscription. Cancel Premium in your App Store or Google Play settings, or it will keep renewing. When you delete your account, we also ask RevenueCat to delete its customer record for it. Apple and Google keep their own purchase records under their own policies, which we can’t delete.
Sign out
Signing out first tries to send any changes waiting on the phone, then clears this phone: lessons, words, cards, reviews, settings and queued events. It keeps only device-specific things: your voice choice, your device’s time zone, cached stroke-order data and the random installation ID. Everything in your account stays there, ready for when you sign in again. Shuye then starts fresh on that phone with a new anonymous account.
8.EU and UK: our legal bases
If you are in the European Economic Area or the United Kingdom, the GDPR or UK GDPR requires a legal basis for each use of your data. Ours are:
| What we do | Legal basis |
|---|---|
| Creating your account; storing and processing lessons and photos; translations and explanations; flashcards, sync and sharing; settings; daily limits; sign-in | Performing our contract with you (the Terms of Use) |
| Premium: checking and recording your subscription | Contract |
| Product analytics | Our legitimate interest in understanding which parts of Shuye help people read, balanced by keeping content out of events and letting you switch them off at any time |
| Crash and error reports | Our legitimate interest in keeping the app working; reports aren’t linked to your account |
| Rate limits, the fair-use ceiling, security logs | Our legitimate interest in protecting the service and its users from abuse |
| Camera, photo library and notification access | Your consent, given through your phone’s permission prompts; withdraw it in the phone’s settings |
| Answering your emails | Our legitimate interest in helping you, or contract when it concerns your account |
| Keeping records the law requires | Legal obligation |
We don’t make decisions about you based solely on automated processing that have legal or similarly significant effects. Spaced-repetition scheduling and AI explanations are study aids, not decisions about you.
9.Your rights
Wherever you live, you can ask us to:
- Access your data: tell you what we hold and send you a copy.
- Correct it. Most of it you can edit in the app yourself.
- Delete it. You can do this yourself in the app (section 7) or ask us.
- Port it: send your lessons, words, cards and review history in a machine-readable format (JSON).
- Object to processing based on legitimate interests, such as analytics. The switch in Me → Privacy does this instantly for analytics.
- Restrict processing while a complaint or correction is being sorted out.
- Withdraw consent where we rely on it, for example by turning off camera or notification access in your phone’s settings. Withdrawing doesn’t affect what was done before.
How to exercise them: email us (section 15) from any address and tell us what you’d like. Because Shuye accounts have no password and may have no email, we may ask you for details that show the account is yours, such as the email shown in Me, before we act. We reply within one month, and say so if a complex request needs longer. There is no charge.
Complaints: you have the right to complain to a data-protection authority, in particular in the country where you live or work. In the EU or EEA that is your national supervisory authority; in the UK it is the Information Commissioner’s Office (ico.org.uk). We would appreciate the chance to put things right first, so please write to us.
10.International transfers
Your account data is stored in Seoul, South Korea. The European Commission and the UK have both recognised South Korea as giving personal data adequate protection. Our service providers are based mainly in the United States, and some of them (OpenAI, Google, RevenueCat, Sentry, Vercel, and Supabase’s server functions and support) process data there or in other countries.
Where data from the EEA or UK goes to a country without such a recognition, we rely on the European Commission’s standard contractual clauses (and the UK addendum to them) where the provider offers them, or on the provider’s certification under the EU–US Data Privacy Framework and its UK extension. You can ask us for more information about these safeguards.
11.Children
Shuye is rated 9+ on the App Store and is made for learners of all ages, but it is not designed specifically for children. If you are under 13, you may use Shuye only with the permission of a parent or guardian. In the EEA and the UK, a parent’s or guardian’s consent is needed under 16, or under the age of digital consent in your country if it is lower (for example 13 in the UK).
Shuye has no ads, no advertising IDs, no social feed and no messaging between users, and we never sell personal data. Children’s use is covered by everything else in this policy.
We don’t knowingly collect data from children below these ages without that consent. If you are a parent or guardian and believe your child has used Shuye without it, contact us and we will delete the child’s data.
12.Security
Data travels between the app and our servers over encrypted connections. Our database only lets each account read its own rows, page photos are kept in private storage, and the keys to OpenAI, Google Cloud Vision and RevenueCat stay on our servers and never ship in the app. No system is perfectly secure; if a breach affected your data, we would tell you and the authorities as the law requires.
13.This website
This website sets no cookies, runs no analytics and loads nothing from other companies: the fonts and images come from this site. Our host, Vercel, keeps standard logs of requests (such as IP address, browser and the page asked for) for a short time to run and secure the site.
14.Changes to this policy
If we change this policy, we’ll update the “Last updated” date above. If the change is significant, for example a new kind of data or a new processor, we’ll also tell you in the app before it takes effect.
15.Contact
Questions, requests and complaints about privacy:
Please put “Privacy” in the subject line. More ways to reach us are on the Contact page.