Privacy Policy
Last updated: June 2, 2026
KidSchooler is a free Nepali learning site, supported by display advertising. We don't run user accounts. Most of what you do here stays on your device. Two opt-in features touch our server-side storage — saving pronunciation recordings and submitting community phrases — and both are tagged with a random ID generated in your browser, not your identity. Our ads are served by Google AdSense, which uses cookies; the Advertising section below has the details. Plain English, no dark patterns.
What we collect
Two analytics tools, both privacy-first, both opt-out friendly:
- Plausible Analytics — cookieless, no fingerprinting, no cross-site tracking. We see aggregate visit counts, country (country, not city), referrer, and the URL of the page you viewed. Plausible processes data in the EU and doesn't store IP addresses.
Plus the things your browser stores locally on your device (these never leave your device): localStorage entries for your bookmarks, your flashcard decks, your FSRS spaced-repetition state, your study-streak progress, your theme preference (light/dark), and any settings you change.
Advertising
KidSchooler is free, and we cover our running costs with display advertising. We use Google AdSense to show ads on some pages. Here is what that involves:
- Google and its partners are third-party vendors. They use cookies to serve ads based on your prior visits to KidSchooler and to other websites — most notably Google's advertising cookie.
- These cookies let Google and its partners display ads and measure how they perform. We don't receive the data those cookies collect, and we never link it to the anonymous browser ID or local data described elsewhere on this page.
- You can turn off personalized advertising at any time through Google Ads Settings. To opt out of many other vendors at once, visit aboutads.info/choices (or youronlinechoices.eu in Europe).
- For details on how Google uses information from sites that use its services, see Google's partner sites policy.
- If you are in the EEA, the UK, or Switzerland, we ask for your consent through a Google-certified consent message before any personalized ads or non-essential ad cookies are used. You can accept, reject, or change your choice later — and without consent you'll only see non-personalized ads.
Optional cloud library (Cloudflare R2 + D1)
When you hit Save on a pronunciation recording, two things happen:
- The audio bytes upload to a Cloudflare R2 bucket called
kidschoolerat the object keyrecordings/{client-id}/{id}.webm. R2 is S3-compatible storage hosted in Cloudflare's ENAM region. - A row gets inserted into our Cloudflare D1 database (SQLite at edge) with: an internal ID, your anonymous browser ID, the optional phrase slug, the R2 key, MIME type, file size, duration, and a timestamp.
The browser ID is a random UUID we generate the first time a server feature needs one. It lives in your browser's localStorage at the key kidschooler:client-id. It is not tied to an email, an IP-address fingerprint, or anything else — clear site data and the link between you and your recordings is gone forever.
When you delete a recording from /my-recordings, we delete the bytes from R2 the same moment. We also soft-delete the D1 row (keep it for audit) and write an audit log entry recording the action — that log keeps no PII beyond your anonymous browser ID.
We also count anonymous aggregate phrase views in D1 (which phrases are being studied most). This counter has no link to any browser ID — it's just a phrase slug and a number. It powers the “trending phrases” feature.
If you never click Save and never submit a community phrase, no row about you ever lands in our database.
Community submissions
The /contribute form sends your phrase suggestion to D1 with the same anonymous browser ID. A human moderator reviews the queue at /admin and either approves it for the next deploy or rejects it. Rejected submissions stay in D1 for audit. Submitted text is not shared elsewhere.
What we don't collect
- No accounts, no usernames, no passwords.
- No email addresses. The newsletter signup is currently a stub that does nothing.
- No payment information — KidSchooler is free.
- No device fingerprinting by us, no first-party advertising profiles, and we never sell your data.
- No Facebook Pixel and no email- or account-based ad targeting. (Display ads come from Google AdSense — see Advertising for the cookies that involves.)
- No microphone or camera access (the audio you hear is generated by your browser).
Bring-your-own-key API integrations
Some optional tools (the translator helper, the conversation roleplay) let you paste an Anthropic or Azure API key in Settings to call the model directly from your browser. That key is stored only in your browser's localStorage. It never touches our servers. The actual API requests go straight from your browser to Anthropic or Azure — we don't proxy them, we don't see them, we don't log them. Clear browser storage to remove the key.
External services we link out to
- Web Speech API — built into your browser. We pass Nepali text to your operating system's text-to-speech engine. Nothing is sent over the network.
- Forvo — community pronunciation links. When you click a Forvo link, you leave our site for theirs. Their privacy policy applies from that point on.
- Live Lingua (Peace Corps audio CDN) — a few archival audio clips are hosted by Live Lingua. When the audio loads, your browser contacts their CDN directly. Same caveat: their privacy policy applies.
Cookies
We don't set any first-party cookies ourselves, and our analytics (Plausible) is cookieless. The localStorage keys we use are stored on your device, not transmitted, and are not cookies in the ePrivacy sense.
Our advertising partner Google AdSense, and its third-party vendors, do set cookies to serve and measure ads — as described in Advertising above. You can manage or block these through your browser settings and the opt-out links listed there.
Where your data lives
Your bookmarks, flashcard decks, spaced-repetition schedule, study streaks, anonymous browser ID, and theme preference live in your browser. They're tied to that browser on that device — clearing site data wipes them, switching browsers means starting fresh.
Saved recordings live in Cloudflare R2; their metadata and any community submissions you've sent live in Cloudflare D1. Both are owned by us and accessed via S3-compatible / REST APIs. We don't share R2 or D1 contents with any third party.
The site itself is statically rendered and served from a Hostinger VPS behind Cloudflare. There is still no database of users — only anonymous browser IDs.
GDPR & data subject rights
We hold no personal data on a server, so there is nothing for us to access, export, correct, or delete on your behalf. The local data your browser keeps can be deleted by you at any time: open your browser's site settings, find kidschooler.com, and clear site data. Plausible's aggregate counts contain no identifiers that point to you specifically.
Children
KidSchooler is family-friendly and contains no age-restricted content. Most of the site is written for adult travelers and learners, though a few pages — such as the tracing worksheets — suit children too. We don't collect personal data from anyone, so there is little to special-case under COPPA.
Where ads appear, we configure them so that personalized advertising is not shown to children, and ads on or around clearly child-directed material are limited to non-personalized ones.
Changes
If we change how this works, we'll bump the “Last updated” date at the top of this page. Material changes (introducing accounts, adding a real newsletter, etc.) will be flagged on the homepage for at least 30 days.
Contact
Questions about privacy? Reach us at [email protected]. Because we don't hold user data, we usually have very little to discuss — but we'll always answer.