Language Map: Helping a Friend Learn French Through the Languages He Already Knows
Priyansh had already spent time learning Spanish with Duolingo and wanted to move toward French. The problem was that a new course path treats him like a complete beginner. It does not show which patterns transfer from languages he has already seen, or where French actually differs.
So I built Language Map for him: a small local-first language-learning prototype that compares languages instead of hiding their relationships.
What it does
Language Map currently has three focused views:
- Words: enter a word and compare English, Latin, French, Portuguese, Spanish, and Italian with translations, root clues, prefixes, suffixes, and etymology context.
- Phrases: enter a short sentence and see how translations differ in vocabulary and sentence structure.
- Across time: rewrite a short formal passage into current internet language as a playful bonus feature.
The interface is intentionally simple. It is meant to help a learner ask, “What do I already know, and what changed here?” rather than restart an entire curriculum.
Why Gemma and local inference mattered
The app uses the open-weight Gemma model through a local Ollama server. Prompts and learner text stay on the user's machine, the model can be replaced, and the prototype does not require a paid hosted language API.
That choice also made experimentation practical. I could shape structured JSON responses for word and phrase comparisons, test the interface quickly, and keep the project usable on a laptop without building a cloud service first.
The model is not treated as an authority. Historical etymology is easy for a language model to get confidently wrong, so the app supplies a small reviewed and paraphrased dataset with source links. Gemma explains that evidence, while the UI presents the result as a clue rather than a proven fact.
What I learned
The most important design decision was narrowing the scope. A full language course would have been too large and too easy to fake as a demo. A focused comparison tool made the friend story concrete and made the prototype testable.
I also learned that “similar-looking” is not the same as “same origin.” The project therefore separates model-generated comparisons from the smaller evidence-backed etymology dataset and documents the limitation clearly.
Try it
The app runs locally with FastAPI, Ollama, and the gemma4:e2b model. A GPU is strongly preferred for a responsive interactive experience; CPU-only runs are supported but can be noticeably slower, especially for phrase comparisons and longer requests. The repository includes smoke tests for the page routes and input validation.
Limitations and next steps
This is a prototype, not a complete language-learning product. It currently depends on a local Ollama model, the curated etymology dataset is intentionally small, and model explanations still need human checking. Next I would expand the evidence-backed dataset, improve sentence alignment, and test the tool with Priyansh directly.
I built this for the Hacktoberfest 2026 Build for a Friend challenge because Priyansh's real learning history shaped the feature choices. The goal was not to replace a course; it was to make the knowledge he already has useful when he starts the next language.
AI assistance was used during development and in preparing this write-up.

Top comments (0)