DEV Community

Cover image for Deutsch mit Gemma! (German with Gemma!)
Vridhi Sachdev
Vridhi Sachdev

Posted on AI-assisted

Deutsch mit Gemma! (German with Gemma!)

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🀝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

Der, die or das Nutella? I built a German tutor so my friend can finally stop second-guessing

What I Built

I wear many hats, and one of them is of a German trainer.

After a while you notice the same thing in almost every learner: they understand far more German than they can use.

They know the word. They've seen it a dozen times. And then they open their mouth and...

"Wait. Is it der , die or das?" πŸ€”

Take the most important word in German life: Nutella.

Die Nutella? Das Nutella? Or, depending on who you ask... der Nutella? πŸ˜…

(Even native speakers argue about this one.)

My student, who is also a friend, has exactly this problem. She wants to speak, and every noun is a tiny roadblock. So I built Deutsch mit Gemma!, a speaking partner whose whole philosophy is this:

Move German from your passive vocabulary into active vocabulary, so the right word comes out without a pause.

What it does

πŸ’¬ Speaking practice Four real-life scenarios (restaurant, bakery, shopping, doctor) plus a free chat. The model plays the character, like the baker or the doctor, and talks to the student
πŸŽ™οΈ Talk, don't type She speaks into the mic, the tutor answers out loud in A1-A2 German, and she can play back her own recording
✏️ Corrections that teach After every turn: what she said, the fix, the sentence formula, and a short English reason
πŸƒ Flashcards Every noun from the conversation becomes a der/die/das card: ___ Brot β†’ pick the article
πŸ“ Session summary Say TschΓΌss and the chat ends with a summary of mistakes, better versions, alternative sentences and tips
πŸ—‚οΈ Sessions Each conversation is its own record, so last week's words never leak into today's

The loop

Speak β†’ make a mistake β†’ see the formula β†’ drill the nouns β†’ speak again
Enter fullscreen mode Exit fullscreen mode

Not another vocabulary app. Not another worksheet. A place to use German, get it wrong, understand why, and try again.

Demo

πŸ”— Live app: https://deutsch-mit-gemma.streamlit.app/

⏱️ Heads-up: replies take a few seconds. Every turn, Gemma works out the answer and a voice is generated, so treat it like a baker who's busy and wants to answer properly. If the app has been idle, it may also need a moment to wake up on first load.

Code

GitHub logo wickedseer / deutsch-mit-gemma

A German speaking partner for A1-A2 learners, built on the open-weight Gemma model.

Deutsch mit Gemma!

A German speaking partner for A1-A2 learners, built on the open-weight Gemma model.

The app starts a short role-play, listens to the student speak, and corrects their German with the exact sentence pattern they got wrong.

Built for the DEV Hacktoberfest "Build for a Friend" challenge, for one real student who wants speaking practice and keeps forgetting sentence structure and der/die/das.

What it does


























Feature Details
Spoken role-play Bakery, doctor, Anmeldung, restaurant, or free chat. Replies are short, in A1-A2 German, and end with an easy question
Voice in and out Tutor replies are read aloud (ElevenLabs TTS). The student speaks through the mic button in the chat box (ElevenLabs speech-to-text). Students' own recording is playable in the chat
Corrections with the formula Every correction shows what she said, the better sentence, the sentence pattern, and the rule
Flashcards A separate tab turns every noun used
…





How I Built It

Stack: Gemma 4 26B A4B (gemma-4-26b-a4b-it) via the Gemini API Β· ElevenLabs (speech-to-text and text-to-speech) Β· Streamlit Β· Python

The trick is a contract, not a chat. Every turn, Gemma answers in JSON, and that one structure drives the spoken reply, the correction, the flashcards and the goodbye detection:

{
  "reply_de": "Ja, gern. Was mΓΆchten Sie trinken?",
  "correction": {
    "said": "kann hier sitzen ich?",
    "better": "Kann ich hier sitzen?",
    "pattern": "Ja/Nein-Frage mit Modalverb: Modalverb + Subjekt + Ort + Infinitiv (Ende) ?",
    "rule_en": "Yes/no questions start with the verb. The second verb goes to the end."
  },
  "nouns": [{"article": "der", "word": "Tisch", "en": "table"}],
  "end": false
}
Enter fullscreen mode Exit fullscreen mode
Prompt design Effect
Four worked examples (modal question, weil, Perfekt, wrong article) Gemma gives the sentence formula, not just the fix
One correction per turn A beginner isn't buried
A role and context per scenario ("you are the baker") The tutor acts the character instead of narrating the scene

Why Does Open Innovation Matter?

A language app holds something personal: how someone speaks and the mistakes they keep making. With an open-weight model, I'm not locked into one provider's black box.

Open Gemma gives me Why it matters here
Control over behavior The tutor's level, tone, role-play and correction format live in one prompt a teacher can edit and test
Choice of model Switching models is one setting, with no change to the app
Downloadable weights Gemma 4 is released under Apache 2.0, so a school can serve it on its own servers and keep students' recordings and mistakes in-house
Low cost A teacher can build and run this for one student without a budget

Prize Categories

  • Best Use of Gemma: Gemma is the brain: character-driven role-play, JSON-structured corrections with sentence formulas, noun extraction for flashcards, goodbye detection and the session summary.
  • Best Use of ElevenLabs: I used ElevenLabs text-to-speech (eleven_multilingual_v2) to voice the tutor and speech-to-text (scribe_v1) to transcribe the student's spoken German, which simulates a real speaking-practice conversation, with her own recording played back in the chat.

Top comments (0)