Next.jsReactTypeScriptTailwind CSSSupabaseClaude API

Keigo Companion

A hosted Japanese keigo (敬語) study app that teaches which honorific register applies to whom — uchi/soto, hierarchy, setting — not just verb conjugation. Includes a hand-authored scenario bank, a step-by-step reasoning diagnostic, and a tiered explain-on-miss system where a free rule-based diagnoser handles most mistakes and an LLM only fires as a capped fallback.

Screenshot of Keigo Companion

Role

Full-Stack Engineer

Timeline

Personal project, ongoing

Impact & Metrics

  • Shipped a working judgment-first practice flow: verb drills, scenario practice, decision diagnostic, nuance notes, and progress tracking
  • Kept explanations free for the large majority of misses via the rule-based diagnoser, with LLM usage capped as a fallback
  • 100% free, no account required, no ads
Problem
Most keigo (Japanese honorific speech) tools drill verb conjugation, but conjugation isn't where learners actually struggle — knowing which register to use on whom, based on uchi/soto and hierarchy, is the part textbooks skip and the part that causes real social mistakes.
Constraints
  • Needed a judgment-first teaching approach, not another conjugation drill
  • Explanations had to stay free and fast for the common case — an LLM call on every miss wasn't sustainable at zero budget
  • Content (scenarios, nuance notes) had to be hand-authored for accuracy rather than model-generated
Decisions

Tiered explain-on-miss system

Built a rule-based diagnoser as the first line of explanation for wrong answers, with Claude (Haiku 4.5) as a capped fallback only when the rule-based system can't explain the mistake — keeping the app free to run at scale.

Scenario- and decision-first practice modes

Added Scenario Practice and a Decision Diagnostic that walk through the actual social reasoning (who you're speaking to, in/out-group, context) instead of jumping straight to verb forms.

Optional sync without forcing accounts

Used Supabase for auth and cross-device progress sync, but kept the core drills fully usable with no account and no ads.