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
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
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
}
| 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)