Zum Inhalt springen
Verbaldojo
2026

Verbaldojo

Trainings-App mit Sprachaufnahme und einer KI-Bewertung, die im Code entsteht

Verbaldojo ist eine Trainings-App: Du antwortest unter Zeitdruck laut auf eine Situation und bekommst eine begründete Rückmeldung. Gebaut haben wir die Web-Anwendung mit Übungskatalog, Konto und Bezahlung. Die tragende Entscheidung: Das Sprachmodell vergibt keine Note. Es beantwortet nur Ja/Nein-Prüfungen, die Stufe berechnet der Code.

Verbaldojo — Trainingsansicht mit Countdown-Ring und Aussteuerung

Screenshot der Produktseite, aufgenommen am 10.09.2026.

Herausforderung

Eine Note vom Sprachmodell lässt sich nicht nachprüfen

Eine gesprochene Antwort vom Sprachmodell benoten zu lassen ist schnell gebaut. Nur lässt sich diese Note nicht nachprüfen. Dasselbe Modell begründet hinterher sein eigenes Urteil.

Dazu kommt: An jeder Trainingsrunde hängt Kontingent, also die Zahl der bezahlten Runden. Daran hängt Geld, und der Browser darf darüber nicht entscheiden.

  • Eine Note vom Sprachmodell ist nicht nachprüfbar
  • An jeder Trainingsrunde hängt Kontingent und Geld
  • Der Browser darf über Kontingent nicht entscheiden
Verbaldojo — laufende Aufnahme mit Aussteuerung und Restzeit
TODO: gegen echten Screenshot aus /training ersetzen, sobald ein Test-Konto bereitsteht.
Lösung

Das Sprachmodell prüft nur Ja oder Nein, urteilen darf der Code

Dem Sprachmodell wird nie eine Note abverlangt, sondern nur einzelne Ja/Nein-Prüfungen. 104 davon, verteilt auf 17 Prüfraster, eines je Übung. Stufe, Diagnose und Tipp berechnet danach der Code nach fester Regel.

Alles, woran Kontingent oder Geld hängt, entscheidet die Datenbank statt des Browsers. Ein bezahlter Plan entsteht allein über die geprüfte Rückmeldung des Zahlungsdienstes. Auch welche Übung bewertet wird, kommt aus der Datenbank, nie aus dem Formular.

  • 104 einzelne Ja/Nein-Prüfungen statt einer Note
  • Die Stufe berechnet der Code, nicht das Modell
  • Kontingent, Plan und Übungswahl regelt die Datenbank
Verbaldojo — die drei Schritte Lesen, Sprechen, Urteil
Screenshot der Produktseite.
Ergebnis

Die Bewertungsqualität wird gemessen, nicht behauptet

Ein eigener Prüfstand lässt die Bewertung gegen vorab festgelegte Soll-Urteile laufen. Gezählt wird getrennt, wie oft eine gute Antwort durchfällt und wie oft eine schwache durchgeht. Eine Prüfsumme über die Regeldateien bindet jeden Messlauf an seine Regelversion.

Ausgeliefert ist die Web-Anwendung, 17 von 34 Übungsformaten sind freigeschaltet, eine Gruppe bewusst abgeschaltet. Konto- und Trainingsdaten liegen in Frankfurt, nur der Bewertungsschritt verlässt als Text die EU. Die Handy-App nutzt denselben Server, bleibt aber Prototyp ohne Aufnahmefunktion.

  • Prüfstand gegen vorab festgelegte Soll-Urteile
  • Jeder Messlauf hängt an einer Regelversion
  • Handy-App ist Prototyp ohne Aufnahmefunktion
Verbaldojo — Auswertung mit Stufe, Reaktionszeit, Tipp und Kriterien
TODO: gegen echte Auswertung aus /auswertung ersetzen, sobald ein Test-Konto bereitsteht.
Hinter den Kulissen

Hinter den Kulissen

Web-Anwendung auf Next.js mit Supabase als Datenbank und Anmeldung, dazu ein Flutter-Client am selben Server. Der Trainingsablauf läuft im Browser, die Bewertung auf dem Server, und alles, woran Kontingent oder Geld hängt, entscheidet die Datenbank.

Stand 08.09.2026. Nicht enthalten sind Nutzerzahlen, Trefferquoten der Bewertung, Preise und Kontingente — dafür liegen keine belastbaren Werte vor.

Anwendung
Next.js 16.2.12 · React 19.2.4 · TypeScript
Umfang
16 Seiten · 17 Serverrouten
Übungskatalog
34 Formate · 17 aktiv in 7 Gruppen
Trainingssituationen
1.088 ziehbare Prompts
Bewertung
17 Prüfraster · 104 Ja/Nein-Fragen
Datenbank
13 Tabellen · Row Level Security
Mobile
Flutter-Prototyp · 6.618 Zeilen
Betrieb
Vercel fra1 · Supabase eu-central-1
Web-Anwendung

Landingpage, Training, Auswertung und Konto in einer Codebasis. Der Trainingsteil liegt hinter der Anmeldung.

  • Next.js 16.2.12 (App Router)
  • React 19.2.4 + TypeScript strict
  • Tailwind CSS v4
  • 16 Seiten · 17 Serverrouten
  • 15 Routen mit erzwungener Anmeldung
Aufnahme im Browser

Die Trainingsschleife läuft clientseitig: Lesezeit, automatischer Start, Bewertung im Hintergrund.

  • MediaRecorder + getUserMedia
  • Timer-Ring · 28 Pegelbalken
  • Sprechbeginn ab 3 Frames über RMS 0,035
  • Mikrofon-Freigabe vor dem Ziehen der Aufgabe
  • Steuerung per Leertaste
Bewertungs-Engine

Zweistufig: Das Modell beantwortet nur Ja/Nein-Prüfungen, Stufe und Tipp berechnet der Code.

  • Google Gemini · temperature 0
  • 17 Prüfraster · 104 Prüffragen
  • Stufenlogik deterministisch im Code
  • Coaching-Tipps fest am Raster hinterlegt
  • Ein Kriterium per Regex am Modell vorbei
  • Prompt-Injection-Sperre im Judge-Prompt
  • Transkript wird vor dem Modellaufruf gesichert
Prüfstand für die Bewertung

Misst die Bewertung gegen vorab festgelegte Soll-Urteile. Ohne ihn wäre jede Aussage zur Genauigkeit unbelegt.

  • CLI-Harness (npm run evals)
  • Bis zu 5 Judge-Modelle im Vergleich
  • 3 Quellen für Soll-Urteile
  • Musterantworten vor dem Lauf entfernt
  • Mehrheitsentscheid bei Abweichung
  • SHA-256-Fingerabdruck je Regelversion
  • 6 Kennzahlen + Verwechslungsmatrix
Inhalte & Katalog

Der Übungs- und Prompt-Bestand ist kuratiert, versioniert und bewusst nur teilweise freigeschaltet.

  • 34 Formate definiert · 17 aktiv
  • 1.088 ziehbare Prompts
  • 1.384 Prompts mit Musterantworten
  • 116 Prompts zur Kalibrierung
  • Bestand liegt in der Datenbank
Daten & Zugriffsschutz

Die Absicherung liegt in der Datenbank, nicht in der Anwendung.

  • Supabase PostgreSQL · 13 Tabellen
  • Row Level Security auf allen public-Tabellen
  • 9 Policies über auth.uid()
  • Privates Schema wird nie ausgeliefert
  • 16 Indizes · 5 Trigger
  • Kein DELETE auf sessions und answers
Konto & Bezahlung

Die verbindliche Prüfung sitzt jeweils an der Stelle, die sich nicht umgehen lässt.

  • Supabase Auth · Google-OAuth
  • Stripe Checkout, Portal und Rechnungen
  • Signaturgeprüfter Webhook als einzige Freischaltung
  • pg_advisory_xact_lock gegen Parallelaufrufe
  • Kontingentfenster folgt der Abrechnungsperiode
  • HTTP 402 bei aufgebrauchtem Kontingent
Datenschutz & Betrieb

Audio nur flüchtig, Verarbeitung überwiegend in Frankfurt — mit einer offengelegten Ausnahme.

  • AssemblyAI EU-Endpunkt · language_code de
  • speaker_labels aus — kein Stimmprofil
  • Kein Storage-Upload: Audio nur im Arbeitsspeicher
  • Datenexport nach Art. 15/20 als JSON
  • Kontolöschung mit Kaskade
  • Der Bewertungsschritt geht als Text an Googles weltweite Schnittstelle — der einzige Verarbeitungsschritt außerhalb der EU-Region.
Mobile (Prototyp)

Eigenständiger Client am selben Server. Katalog, Verlauf und Konto laufen, die Aufnahme fehlt.

  • Flutter · 19 Dateien · 6.618 Zeilen
  • 6 Screens · 28 Modellklassen
  • 22 Tests grün
  • Nutzt 8 Routen desselben Servers
  • Kein Mikrofon-Paket eingebunden
  • Nur Debug-Build, keine Store-Veröffentlichung
Nächster Schritt

Du hast ein ähnliches Projekt?
Lass uns sprechen.

Ob App, Plattform oder einzelner Workflow — wir bauen die Software-Ebene, die dein Unternehmen braucht, um ohne mehr Personal zu wachsen.

Weitere Projekte