Release history
What's new on KidSchooler
We ship in public. This is the running record of features, content, and fixes — newest first. RSS-style: drop in once a month to see what's changed.
- release
GDPR data export + transparency surfaces
Closed the data-portability counterpart to the existing account-delete: you can now download a JSON of everything we hold on you straight from your profile. Added a public /changelog (this page) and a /sitemap-html for humans, surfaced from the footer.
- GET /api/auth/account/export — full data export, audit-logged
- Profile → Data & privacy section with Export + Delete buttons
- /changelog — release history rendered server-side
- /sitemap-html — every page on the site, browsable
- release
Final feature batch — 7 surfaces in one push
The 'find all missing and ship it' batch. Six new comparison pages, an iCalendar festival feed, an HTML sitemap, the /admin/learners operator tool, /q expanded to 100+ questions, every audio lesson now has a transcript, and the /q hub renders FAQPage rich-result schema.
- /vs/babbel, /rosetta-stone, /mondly, /memrise, /pimsleur, /mango
- /api/festivals.ics — subscribable 18-event iCal (Apple/Google Calendar compatible)
- /sitemap-html — human-browsable site index, 16 sections
- /admin/learners — search, paginate, hard-delete with 8-table cascade
- /q expanded 65 → 105 questions, FAQPage schema on the hub
- All 25 FSI audio lessons now have rich transcript notes
- release
Master admin command centre
/admin/master is now the single pane of glass operators use. One single-fetch aggregator collapses 18 D1 queries into one wall-clock so the dashboard renders in ~250ms.
- /admin/master — moderation, engagement, infra, audit, quick actions
- /admin/users — full CRUD with last-admin guard
- /admin/push — send broadcasts via web-push npm, marks 410/404 as disabled
- /admin/ops — kill switches, maintenance mode, danger-zone wipe
- release
Web Push notifications wired end-to-end
Real web-push (VAPID) ships in code — service worker, subscribe flow, opt-in card, server send endpoint, admin send UI, failure tracking. Operator needs to provide VAPID env keys to activate.
- release
Cultural quiz + verb conjugation heatmap + drill-weakest
Three pedagogy additions in one. Cultural quiz mode for the 'don't be the rude tourist' content; conjugation heatmap so learners can see exactly which tense form they're shakiest on; drill-weakest mode auto-selects from the bottom 10%.
- release
Streak freeze + Core 500 one-click deck + weekly leaderboard
Closing competitor-parity gaps. Streak freeze lets you take a sick day without losing momentum. Core 500 is a one-tap FSRS deck of the highest-frequency phrases. Weekly leaderboard for friendly competition.
- content
50 SEO blog posts shipped
Long-tail content batch: 50 evergreen blog posts targeting traveler search intent — trekking guides, festival explainers, region-specific etiquette, language deep-dives. All with proper OG images, Article schema, internal cross-linking.
- content
Graded reader stories + kids/family mode
Eight graded reader stories — teahouse, market day, Dashain, bus-to-Pokhara, hospital, losing-the-trail, Holi, grandmother's recipe — each with vocabulary scaffolding. Kids mode with picture quiz for ages 5-10.
- release
Comparison pages + scenario phrasebook + safety surfaces
Three comparison pages (/vs/duolingo, /vs/ling, /vs/utalk), scenario phrasebook (teahouse, trail, medical, taxi), /safety/scams + /safety/solo-female trust pages.
- release
Cloudflare D1 + R2 cloud storage
Cross-device sync via Cloudflare D1 (SQLite at the edge) plus R2 for recordings. Magic-link auth so users can pick up where they left off on any device.
- release
FSRS spaced repetition + 387 phrases + Devanagari pedagogy
Initial feature-complete release. ts-fsrs library powering scheduling, 387 phrases across 33 categories, full Devanagari script pedagogy from stroke order to confusable comparison.
Have a request?
KidSchooler is built in the open. If something feels missing or broken, drop a note via /contact or open an issue on GitHub.