HSD OS AI Platform — Project Story

"You're not bad at English. You were just never taught to speak it."

What Inspired This Project

Japan produces more English test-takers than almost any nation on Earth. Walk into a high school exam hall and you will find students parsing complex grammatical structures, translating dense prose, and identifying the correct preposition in sentences constructed expressly to defeat them. These students have studied English for six years, often longer.

Step outside and ask one of them a question in English. The words don't come.

This is not a failure of intelligence or effort. It is the predictable outcome of a system built almost entirely around input — reading, grammar, translation — with almost no room for output. Speaking English in Japan is treated as a rare performance event: something you do in a special class, once a week, in sentences you've already rehearsed. The gap between comprehension and production is never closed because the system never asks students to close it.

Years spent around English education in Japan surfaced the same pattern again and again: learners who had passed every written exam froze the moment spontaneous speech was required — not because they couldn't form a sentence, but because the system had never given them room to practise imperfect English without consequence.

The question that launched HSD OS was not "how do we teach English? " It was: what if every Japanese learner had a patient, always-available speaking partner who never judges, never tires, and always shows up?** AI made that economically possible — a tireless, warm, non-judgmental speaking partner is no longer expensive or rare, it's a software problem. HSD OS was built to solve that software problem.

What We Learned

Voice is not optional. Jona's spoken replies run through a real ElevenLabs TTS pipeline, not a decorative add-on. When the AI sounded encouraging rather than merely outputting encouraging words, the interaction stopped feeling like a quiz and started feeling like a conversation.

Specificity in praise is not optional either. Generic encouragement ("Good job!") doesn't reinforce the behavior that produced it. Every coaching prompt is written to name a real strength before coaching what to improve — Jona is instructed never to say "wrong."

Kids and adults are not the same design problem. Monkey Yoga Phonics needs kinetic feedback and immediate reward signals; university and adult learners need to feel the stakes are real and the feedback carries authority. Building one platform that genuinely serves both, under one identity and subscription, forced real discipline about what each cohort actually needs.

Sustainability has to be a constraint from day one, and it's cheaper to verify than to assume. Every AI conversation has a real infrastructure cost behind it, so we treated per-session cost the way a hardware engineer treats battery life. Auditing our own real vendor receipts against the running platform (rather than estimating) surfaced something we didn't expect: total infrastructure spend for the hackathon period, sourced entirely from vendor payment confirmations, comes to

$$ \text{Total COGS} = \underbrace{287.98}{\text{Netlify}} + \underbrace{88.00}{\text{Replit}} + \underbrace{26.40}{\text{ElevenLabs}} + \underbrace{22.00}{\text{Anthropic}} + \underbrace{13.30}{\text{Firebase/GCP}} + \underbrace{12.00}{\text{GitHub}} = \$449.68 $$

with the Gemini API itself costing $0, still comfortably inside Google's free tier, confirmed directly against Google AI Studio's own usage dashboard rather than assumed.

How We Built It

HSD OS is a unified platform — one account, one subscription, many apps, one AI coach (Jona) present everywhere.

Technology stack

Layer Technology Notes
Frontend React 18 + Vite SPA deployed on Netlify
Auth + Data Firebase Auth + Firestore
AI Conversation Gemini 2.5 Flash (Google) Serverless Netlify Functions; Claude as automatic fallback
Voice ElevenLabs Text-to-speech synthesis
Payments Stripe Subscriptions + webhooks
Speech Input Web Speech API Native browser recording

Applications

  • Kids — Monkey Yoga Phonics™ (phonics through movement, SSO sub-app), Eiken AI Monkey (adaptive EIKEN prep, Grades 5–Pre-1), Wondercamp (adventure storytelling)

  • Family — HSD Family (shared dashboard, per-member profiles), Monkeys Unlock™: Monkey Escape (speaking-gated puzzle game)

  • Adult — Speak & Sweat, Sip & Switch™, Sip, Speak,Learn, The Inner Key Blueprint™ (mindset and confidence work)

  • University — Career Ready, Global Ready, Speak Ready (interview, study-abroad, and speaking-confidence practice)

The placement engine

EIKEN placement is a deliberately simple, explainable adaptive staircase, not a black-box model: a learner climbs a grade after two correct answers in a row, and eases back a grade after two misses in a row, drawing questions live from the real content banks at whatever level they're currently on. Speaking items have no "correct" answer, so client-timed hesitation does the same job a wrong answer does on multiple-choice items. Across listening, reading, and speaking, a learner reaches a placement in under ten questions — deterministic and auditable, not a probabilistic guess.

Proof it's actually running

Rather than asserting the AI is "live in production," we checked. Our own Firestore-logged usage record shows 12 real Gemini calls, 9,451 tokens, across 4 separate days, and — independently — Google's own AI Studio usage dashboard shows a matching request/token pattern over the same window, with a 100% success rate and zero errors. Two independently sourced datasets agreeing with each other is stronger evidence than either alone.

Challenges We Faced

Trust in an AI speaking partner. Japanese learners — adults especially — carry real anxiety about speaking English imperfectly. Every design decision, from character-led kids' apps to the "never say wrong" instruction to the warm voice, exists to lower that threshold. You cannot force someone to speak by improving the technology alone; you can only make the space feel safe enough that they choose to.

A real production bug, caught and fixed during this process. While gathering usage evidence for this submission, we found the admin dashboard's aggregate "AI Messages" counter was stuck at zero — not because no one was using Jona, but because a Firestore security rule was silently rejecting the counter's increment write (allow write: if false on the analytics collection, versus the create/update: if true carve-out used correctly elsewhere in the same rules file for other server-side counters). The chat itself worked fine for users the whole time; only the metric was broken. We traced it to root cause and shipped the fix live — a small but honest example of actively operating and debugging a system in production, not just launching it and walking away.

Subscription architecture for a multi-app world. One payment unlocking multiple apps, different plans unlocking different subsets, webhooks propagating reliably to Firestore, current and legacy plans coexisting without conflict — this took real iteration, and real users subscribe, cancel, and change plans in ways the first design never fully anticipated.

Speaking on mobile. The Web Speech API behaves inconsistently across browsers and operating systems. Getting a reliable speaking-response recording across iOS Safari, Android Chrome, and desktop remains one of the hardest, least-glamorous parts of the stack — and the part that most reminds us how far browser standards still have to go before speaking practice is as reliable as reading.

None of the hardest problems were the ones we expected going in. The technical architecture came together faster than the human insight about why a learner needs to feel safe before they'll speak — and even the financial and usage reporting for this submission surfaced a real bug worth fixing. That's still the core of how we build: verify, don't assume. The AI is just the tool we built to solve the original problem.

HSD OS AI Platform · app.hsdos.ai · Hear See Do™

Built With

  • and-technologies-used**-javascript
  • anthropic-claude-api-(claude-sonnet-4-6)
  • apis
  • claude-code
  • cloud-firestore
  • cloud-services
  • databases
  • elevenlabs-api
  • firebase-authentication
  • frameworks
  • github
  • google-ai-studio
  • google-gemini-api-(gemini-2.5-flash)
  • manus-ai
  • netlify
  • netlify-functions
  • node.js
  • platforms
  • postmessage
  • react-18
  • react-router-v6
  • replit
  • stripe
  • vite
  • web-audio-api
Share this project:

Updates

posted an update

HSD OS AI — Dev Log: Monkey Yoga Phonics V2 is live and connected

Monkey Yoga Phonics V2 — our rebuilt phonics app (Hear → See → Do, for early readers) — is now fully migrated into the main HSD OS platform. The "Monkey Yoga Phonics" app card in HSD OS now opens the new build, replacing the old V1 hosted version.

What shipped:

Full curriculum: all 57 lessons across Book 1 (Letter Sounds, 13), Book 2 (Remaining Letters, 13), Book 3 (Digraphs, 13), and Book 4 (Sight Words, 18 lessons / 90 words) — verified against the original source books. Automated data-integrity sweep across all 57 lessons: 0 missing file references, 0 duplicate lesson IDs. Manual walkthroughs across every lesson type — letter, digraph, sight-word — including both mini-games, mobile and tablet layouts, and progress persistence. 156 vocabulary images and audio clips (Books 1–3), plus 90 sight words with example-sentence audio (Book 4). Two real bugs found and fixed during QA: an image-overflow layout bug (a CSS grid/aspect-ratio conflict) and a "Next Lesson" bug where React was reusing a stale component instance across lessons instead of resetting. Same-shape progress writes as the existing app — no database schema changes, no backfill, existing users' historical phonics progress carries over untouched.

Log in or sign up for Devpost to join the conversation.

posted an update

HSD OS AI — Dev Log: Living Blueprint, a real AI coach, and finding our own bugs

We've spent the last stretch rebuilding HSD OS around one idea: one AI companion (Jona), one learning journey, many "Worlds" — instead of a scattered set of separate apps.

What's new:

Jona Coach is live and running on Gemini 2.5 Flash, with an automatic Claude fallback if Gemini is ever unavailable. Not a demo — we verified this two independent ways: our own Firestore-logged usage record, and Google's own AI Studio usage dashboard, both showing the same real request/token pattern over the same days. EIKEN AI placement — a deliberately simple, auditable adaptive staircase (climb a grade after two correct answers, ease back after two misses) rather than a black-box model, so a learner reaches a placement in under ten questions. Full Japanese localization, including Jona's own voice — English and Japanese now use distinct ElevenLabs voices, not just translated text. A guided interactive demo (app.hsdos.ai/demo) — walk through a full learner journey (assessment → AI decision → practice → progress) without needing an account.

Bugs we found and fixed while building this — logged here on purpose, because we think "we test our own stuff" matters:

Caught a Firestore security rule silently blocking our own usage-analytics counter — the AI coach worked fine for users the whole time, but our own dashboard was undercounting. Traced it, fixed it, verified the fix live. Found and fixed two cases where our demo's AI narrator was firing two voice lines at once on the same screen — split them into separate steps so Jona never talks over herself. Fixed a browser-autoplay issue where our demo's opening greeting was being silently blocked by the browser, then cut off by an eager page transition.

Where we're honest about limits: we're pre-revenue on the platform itself right now (a separate, pre-existing offline tutoring business under the same brand has its own real revenue, kept clearly out of this project's numbers). The engineering and AI systems are genuinely live in production; monetization of this specific rebuild hasn't started yet.

More soon.

Log in or sign up for Devpost to join the conversation.

posted an update

Sunday build session. No new feature today — just one bug that finally made sense after staring at it all week. Turns out patience is a transferable skill. If you've ever watched a kid sound out a word for the 50th time and then nail it — you know the feeling. Follow the build.

HSD OS · Build Log — June 21, 2026

The bug: The Japanese language toggle was only translating the left sidebar. Every other panel — assessment, learning path, daily missions, confidence card, warm-up modal, settings — stayed in English. For an app built for Japanese families learning English, that's the whole app staying in English.

The fix: The translation hook (useLang) was available everywhere, but most components never called it. Went through every component one by one — Assessment, LearningPath, ProgressJourney, WarmUp, and all the Dashboard sub-cards — and wired each one to the i18n string table. One toggle now switches the entire platform. ~150 string pairs, both directions.

The detail that mattered: The onboarding questions display translated labels in Japanese, but still send the original English values to the AI API. Small thing. Means Gemini keeps generating accurate learning paths regardless of which language the user is reading in.

Also: Cleaned up the admin dashboard. The warning engine was checking for an ElevenLabs key with a VITE_ prefix that can never exist — it's a server-side key. Fixed the check, corrected the domain references from the old Cloudflare URL to hsdos.ai, and updated the Platform Health card to reflect 15 completed items instead of 7.

There's a moment when a kid sounds out a word for the 50th time and something clicks. The word becomes theirs. That's what this build is for. Today's fix means that moment can happen in their language first.

57 days to XPRIZE submission. 

Log in or sign up for Devpost to join the conversation.