A language learning funnel for adults grinding toward the Italian B1 certification. Read more about it here, including my motivations.
Maintained by @dgrissen2.
Most language tools optimize for recognition — can you pick the right answer? — but the B1 exam, and real life, demand production: the word has to come out of your mouth while a cashier waits. Andiamo was built by someone learning Italian as an adult who does not love learning languages, to close that gap and to fix a second problem: your vocabulary lives scattered across workbooks, PDFs, podcasts, articles, and chat apps, and none of it talks to each other.
The fix is one stubborn idea: every useful word or phrase you meet goes into the same funnel. Not everything deserves a flashcard — most words are tourists — but the ones that matter get captured, enriched, triaged, reviewed, heard in context, and then forced back out of your mouth or fingers until they stick. That funnel is the whole product.
Andiamo is four surfaces over one shared funnel:
- Capture from anywhere. Grab a word or phrase by typing or speaking it in the mobile app, or by selecting text on any web page or PDF with the Chrome extension — articles, worksheets, whatever you are reading.
- Auto-enrich and triage. Each capture is enriched with a translation, example sentence, and verb analysis, then automatically prioritized as Core / Plus / NA by a fast, cheap LLM so you are not drilling the fifth way to say "instead."
- Review for recognition. A familiar SM-2 spaced-repetition flow (Again / Hard / Good / Easy) with examples and hints — plus a lookup-decay penalty so words you keep re-checking don't quietly count as "known."
- Drill conjugation. Production-first conjugation practice for the B1 tenses (yes, the subjunctive) in the web console, generated from your own due words.
- Listen in context. Generate AI-native dialogues between Italian speakers for key B1 scenarios, with synced captions and comprehension quizzes.
- Stay honest. A focus timer tracks time across activities, and a small web console handles batch cleanup and admin.
Audio uses real Italian voices; conjugation is grammatically guaranteed by a local library rather than an LLM. See Architecture for how the funnel and the model routing actually work.
Setup is handled by a guided interactive installer that provisions a server key, deploys the backend to Fly.io, and wires up the app and extension:
cp .env.example .env # add your provider keys
scripts/deploy_andiamo_interactive.shLive features need paid (but low-cost, pay-as-you-go) accounts. You will need keys for:
- OpenAI — lesson + exercise generation, Whisper · sign up
- Groq — cheap, fast word triage / B1 classification · sign up
- ElevenLabs — Italian TTS voices · sign up
- Fly.io — backend hosting (Docker + small volume) · sign up
Cost is a design constraint, not an afterthought: Groq handles the high-volume classification, GPT-4o is reserved for the hard generation, conjugation never calls an LLM, the Fly machine scales to zero when idle, and a daily spend cap is baked into the deploy. The full walkthrough — every installer step, every key, and the cost knobs — is in docs/quickstart.md.
The app uses native modules, so it runs as an Expo dev client, not Expo Go. You don't build it by hand — the installer's Deploy iPhone app step runs the deploy script for you:
app/deploy.sh # or menu item 4 in the installer
app/deploy.sh --device "iPhone 15" --clean-prebuildapp/deploy.sh loads your env, bakes in the remote backend URL and passcode,
and runs the iOS dev-client build. See docs/mobile.md.
- Quickstart — accounts, keys, and the guided installer
- Configuration — environment variables and the server key
- Architecture — how the funnel, models, and storage fit together
- API — backend REST reference
- Mobile app — building and deploying the iOS dev client
This public repository is generated from a private development repo through a sanitized export pipeline. Do not add secrets, personal learner data, real provider dashboards, or maintainer-specific deployment config.
Code is MIT licensed. See LICENSE. Default media assets are covered in NOTICE.



