Language learning platform with image analysis and spaced repetition

Playing in German, you often understand only half the dialogue, and looking things up interrupts the game. A screenshot is enough: the rest happens on its own.

Features

  • Screenshot to a Telegram bot, processed through a queue
  • OpenAI Vision reads the text from the image and translates it with grammar notes
  • The web interface shows the result as it arrives (server-sent events)
  • Phrases are extracted and collected in a database of their own
  • Review follows the SM-2 algorithm: whatever is hard comes back more often

Result

  • 51 commits
  • Self-hosted, no third-party service between the user and their data

From the same foundation

Two further tools grew on the same chain of capture, queue, model call and own database.

  • Understanding voice messages: Baileys reads WhatsApp along, German voice notes run through speech recognition, every message is translated, and a Telegram bot returns transcript, translation, summary and open tasks.
  • Interview trainer: questions and answers spoken aloud and timed, built on a real career rather than invented examples.

The second and third tool each cost a fraction of the first, because the queue, the storage and the bot connection were already in place.

Stack: Node.js 22, TypeScript, OpenAI Vision, Telegram Bot API, SQLite, SSE