EZViet Docs
EZViet helps people understand and use a new language through listening, speaking and real human connection. It supports learning Vietnamese with English guidance and English with Vietnamese guidance.
Release 0.2.66. Updated with every deployment from the same catalog the guide uses.
Download the release knowledge base and code indexHome
A guided next learning step with listening and speaking practice.
Code and sources
- app/page.tsx
- components/today/TodayHome.tsx
Listen
Picture stories, graded readers, videos and listening activities.
Code and sources
- app/nghe/page.tsx
- lib/input/registry.ts
AI teacherBeta
Start a continuous spoken conversation with EZViet. Introduced or confirmed learner names, including name-repair confirmations, label their words in live conversation, transcript and history. Pause, interrupt, practise a phrase and return. Captions remain readable between turns; Overlapping microphone audio is retained and checked through local transcription before it can interrupt the teacher; original overlap recordings and possible speaker echo stay replayable in private history with uncertainty labels; microphone capture remains active during teacher playback, including the start of a learner interruption. Capture timing distinguishes overlap from a fresh response after playback. Available in both courses. Beta: response latency and physical-device audio are still being improved; no certified pronunciation or level assessment. EZViet provides service access. App switching pauses audio capture while retaining a disabled live microphone until the original session expires; Continue talking reuses it when valid, and explicit Pause or End releases it. Operator diagnostics measure timing, playback, overlap and saving with sample counts. An independent local Codex quality-review workflow can review bounded new transcripts only with explicit adult version-2 opt-in; no audio export, automatic training or public examples. Successfully reviewed transcript sections are skipped on later runs.
Code and sources
- app/coach/page.tsx
- components/teacher/LiveTeacher.tsx
- lib/teacher/overlap-input.ts
- lib/teacher/conversation-types.ts
- lib/teacher/live-conversation.ts
- lib/teacher/microphone.ts
- hooks/useTeacher.ts
- lib/teacher/speakers.ts
- components/teacher/HeardPhrase.tsx
- docs/LIVE_TEACHER.md
- docs/teacher/TONE_RITUAL.md
- lib/teacher/telemetry.ts
- lib/teacher/analytics.ts
- components/admin/TeacherQuality.tsx
- app/api/admin/teacher-analytics/route.ts
- scripts/teacher-review.mjs
- docs/teacher/QUALITY_REVIEW.md
- scripts/teacher-review-core.mjs
- scripts/teacher-review-usage.mjs
Books
Read the existing illustrated graded books, listen and look up words. The current reader is live; additional book publishing features are not implied. Available in both courses.
Code and sources
- app/nghe/doc/page.tsx
- app/k/[course]/nghe/doc/page.tsx
Videos
Watch the current Vietnamese film collection with captions. The collection is shared; English-target films remain a content gap.
Code and sources
- app/videos/page.tsx
Meet
Open the shared community event invitation, RSVP and arrival. Event details hold directions and live practice. Neither visiting Meet nor its legacy links changes your learning course.
Code and sources
- app/meet/page.tsx
- docs/i18n/learning-parity.md
Buddy challengesBeta
Try seven short daily listening-and-meaning activities, with optional shared speaking practice in either course. Sign in to save completed days and invite up to three buddies by private QR/link. Invitations require acceptance; buddies see completed days, not recordings, and either can stop sharing. Event challenges begin the next Da Lat calendar day. No prizes, automatic messages or shared-account migration. One pending invitation per sender can be reused until accepted; links expire at the end of the cohort. Solo progress remains available after a buddy leaves; senders can cancel an outstanding invitation. Buddy acceptance and completed days refresh while visible and on return; account changes hide the prior account snapshot. New writes reject a request captured for a different signed-in account. Refresh pauses while a challenge write is in flight. The compact cool-glass event surface leads with one daily activity and seven progress segments. A visible English / Tiếng Việt switch reuses remembered bilingual course options while preserving event and invitation context. Buddy QR/progress/privacy details open on request; incoming accept/decline remains visible. Scoped light/dark tokens cover header, navigation and dialogs without changing other app themes.
Code and sources
- app/challenges/page.tsx
- app/api/challenges/route.ts
- components/challenges/ChallengeHub.tsx
- components/challenges/ChallengeLesson.tsx
- lib/challenges/model.ts
- lib/challenges/server.ts
- docs/buddy-challenges.md
- components/challenges/ChallengeInvite.tsx
- components/challenges/useChallenge.ts
- app/challenges/experience.css
- components/i18n/CourseSwitcher.tsx
Community practice
Record, replay and deliberately share individual attempts for feedback. A short optional sound cues the turn before recording, with a compact localized Your turn invitation that clears after 1.5 seconds. The active microphone remains visible afterward. Speaking practice shows when the microphone is capturing and lets you interrupt the example to speak. A take requires playable audio; saving failures show a retry. History searches older pages and tolerates punctuation and accents. Practice history is private by default; sharing one recording does not publish the whole library.
Code and sources
- app/practice/page.tsx
- components/say/RecordingCue.tsx
- components/say/useLineSayCycle.ts
- components/today/lesson/say/useSayCycle.ts
- components/practice/HistoryDialog.tsx
- lib/practice/types.ts
- docs/i18n/learning-parity.md
- components/practice/SaveFeedback.tsx
- lib/today/turn-cue.ts
- public/audio/speak-now-v1.wav
- design/sound/speak-now-v1.json
Cards
Learn vocabulary with picture cards and audio.
Code and sources
- app/cards/page.tsx
Games
Language games including Word Dash and Munch Dragon. Course content varies by game. Phrase Quest is the first game link in More for both courses: about five minutes of daily sentence choice, word assembly and optional private speaking across three game levels. Each language has 18 phrases; device-local progress and up to 40 local recordings persist across switching. Missed phrases return for practice. Levels and points measure game progress, not certified ability or automatic pronunciation scores. Optional creation notes provide the authored curriculum and source/output fingerprints without exposing the private brief. Answers now react with a check or X, restrained motion, optional sound and target-language spoken praise; bounded warm confetti celebrates correct answers and completed sessions. Grammar explanations and speaking tips open on request. One persisted sound control and reduced-motion support keep both courses equivalent.
Code and sources
- app/games/page.tsx
- public/games/phrase-quest/index.html
- data/phrase-quest.ts
- scripts/build-phrase-quest.ts
- components/more/MoreScreen.tsx
- docs/games/phrase-quest.md
- public/games/phrase-quest/creative-history.json
Karaoke
Sing with time-synced Vietnamese lyrics. Community members can propose timing fixes.
Code and sources
- app/karaoke/page.tsx
Lend your voice
Contribute recordings to the community voice library, with review before publication. Separate from private practice history.
Code and sources
- app/record/page.tsx
Classrooms
Teachers create classes and share join codes; students join at /classroom/join.
Code and sources
- app/classroom/page.tsx
- app/classroom/join/page.tsx
Settings
Choose the learning course, interface preferences, voice, theme and sound effects. The shared sound toggle controls turn cues and reward sounds without muting spoken examples. An explicit course choice is respected; English devices automatically start with Vietnamese learning.
Code and sources
- app/settings/page.tsx
- lib/i18n/routing.ts
- components/input/rewards/SoundEffectsToggle.tsx
- lib/input/preferences.ts
More
Find the teacher, books, practice, games, cards and other tools. Also available through the header menu for guests and signed-in learners.
Code and sources
- app/more/page.tsx
- components/more/MoreScreen.tsx
EZViet Docs
Public feature knowledge and code map generated from this release. The in-app guide uses the same feature catalog. Contributors read and maintain these docs; release checks require a documented review matching current code and catalog content. Review checks also work in deployment source archives without Git metadata.
Code and sources
- app/docs/page.tsx
- lib/guide/kb.ts
- docs/knowledge/features.json
- scripts/generate-knowledge.mjs
- docs/knowledge/README.md
- scripts/check-knowledge.mjs
- scripts/review-knowledge.mjs
- scripts/knowledge-review-state.mjs
- .agents/skills/ezviet-docs/SKILL.md
- AGENTS.md
- .claude/settings.json
- .github/workflows/knowledge.yml