Italian Learning App - Current State
Development italian features development recapOver the past several weeks I've been building out the Italian language learning section of this site, and I wanted to document the major features that have shipped so far.
๐ Deploy Pipeline Stability
The production server was experiencing random crashes - traced to a race condition in the GitHub Actions deploy script. The old flow was:
pm2 stop md-blogfuser -k 5000/tcp(force-kill anything on the port)pm2 start server.js
The problem: after the stop command, pm2's built-in auto-restart would sometimes grab port 5000 before step 3 could bind to it, causing an EADDRINUSE crash loop.
Fix: replaced the three-step sequence with a single atomic restart:
pm2 restart md-blog --update-env || pm2 start server.js --name "md-blog"
No more crashing.
๐ Gufo AI Voice Tutor - VAD Tuning
Gufo is the in-app Italian conversation partner powered by ElevenLabs. One issue: in environments with ambient noise (a fan, background conversation, etc.), the voice activity detection (VAD) would keep the microphone "open" indefinitely โ Gufo would never think you'd stopped talking.
Fix: passed explicit VAD overrides when starting the ElevenLabs session:
overrides: {
agent: {
turn: {
turn_detection: {
mode: 'server_vad',
silence_duration_ms: 700,
threshold: 0.55,
prefix_padding_ms: 300,
}
}
}
}
The default ElevenLabs threshold is around 0.3 - too sensitive for any real room. Bumping it to 0.55 with a 700ms silence window means Gufo reliably detects end-of-turn without being triggered constantly by background noise.
๐ฑ Mobile Navigation - Leaderboard & Review
The sidebar navigation (with all sections: Vocab, Verbs, Grammar Quiz, Sentences, Reading, Idioms, Reference, Speak, Review, Leaderboard) is hidden on mobile screens. Mobile users were relying on a bottom navigation bar that only had six items - and Leaderboard and Review weren't among them.
Fix: replaced the least-used bottom nav item ("Reference", rarely accessed on mobile) with dedicated entries for Review and Leaderboard:
| Before | After |
|---|---|
| Home ยท Vocab ยท Verbs ยท Quiz ยท Read ยท Ref | Home ยท Vocab ยท Verbs ยท Quiz ยท Read ยท Review ยท Board |
Each new item also got its own active-state colour โ purple for Review, gold for Leaderboard โ consistent with the rest of the hybrid theme.
What's Been Built Overall
For anyone catching up, here's the full feature set currently live:
- Vocabulary SRS โ 800+ words across 12 categories, flashcard review with SM-2 spaced repetition
- Verb Conjugation Drills โ present, past, future tenses; irregular verbs flagged
- Grammar Quiz โ multiple-choice grammar questions with topic filtering
- Sentence Exercises โ fill-in-the-blank and translation practice
- Reading Passages โ graded Italian texts with comprehension questions
- Idiom Explorer โ common Italian idioms with usage examples
- Grammar Reference โ quick-reference conjugation tables and rules
- Gufo AI Tutor โ real-time Italian conversation via ElevenLabs voice AI
- SRS Review System โ due-card queue across vocab and grammar, SM-2 scheduling
- XP + Levels + Streaks โ gamified progress tracking persisted to the database
- Achievements โ unlockable badges for milestones
- Daily Goals โ configurable XP targets with progress bars
- Leaderboard โ weekly XP rankings across all users
All of this lives at /italian.