2.5 KiB
2.5 KiB
Status — 2026-05-15
Last updated: 2026-05-15. Update this file after every deploy or when switching tasks.
What Works Today ✅
- Singleplayer quiz — Duolingo-style, 5 language pairs (en↔it/de/es/fr), 3 or 10 rounds, POS + difficulty filters
- Multiplayer — Create/join lobby by room code, 2–4 players, simultaneous answers, 15s server timer, live scoring, winner screen
- Auth — Google + GitHub via Better Auth, cross-subdomain cookies, session middleware on protected routes
- Deployment — Live at lilastudy.com, Hetzner VPS, Caddy HTTPS, Docker Compose, CI/CD via Forgejo Actions
- Database — PostgreSQL with Drizzle ORM, daily backups, idempotent seeding
What's Broken / Blocked 🚧
- Data quality — Production still uses OpenWordNet/OMW translations. Kaikki pipeline (sense-disambiguated) is in progress but not yet synced to production.
- Guest play — Auth is required for all game routes. No try-before-signup flow.
- Game session store — Still in-memory (
InMemoryGameSessionStore). Valkey container exists in local dev but not wired up. - Rate limiting — Partially implemented on auth endpoints; game endpoints not yet covered.
- React error boundaries — Not implemented; runtime crashes take down the whole app.
- Monitoring — No uptime alerts or centralized logging on the VPS.
What I'm Working On Now 🔄
Primary: Rewriting the Kaikki data pipeline enrich script for sub-stage architecture (round1_gloss → round1_example → round1_translations → round1_cefr).
Secondary: Phase 7 hardening backlog items (see BACKLOG.md next section).
Next 2-Week Goal 🎯
Finish Kaikki Stage 3 (enrich) sub-stage rewrite → run full sample → compare quality → decide on production sync timeline.
The Big Picture
Lila is a deployed, working vocabulary quiz app. The core loop (singleplayer + multiplayer) is solid. The next strategic milestone is media-based practice (learn vocab from a song/TV episode/book chapter), but that depends on:
- Kaikki data pipeline reaching production (fixes translation quality)
- A media ingestion prototype (subtitles/lyrics → text → vocab extraction → quiz)
Until then, the app is a generic vocabulary quiz — functional but not differentiated.
Quick Links
- BACKLOG.md — Prioritized tasks
- DATA_PIPELINE.md — Pipeline stages and current progress
- BACKLOG.md —
now/next/later - DEPLOYMENT.md — Infrastructure ops