← All work

Live product · Built by Bytesicht

Morgenlese

Learn German by reading one short story a day at your level, A1 to B2. Tap any word you do not know; the words you miss come back for review.

Product design · Frontend & backend · Content pipeline & AI implementation

Visit Morgenlese
Morgenlese story library filtered to level A1: yellow booklet covers with series numbers, photos, topic, reading time, grammar focus and new-word counts
Story library · Live siteView full size

Five minutes of German,
every morning.

Morgenlese teaches German through reading: one short story a day, written for the learner's level, from A1 to B2.

A learner reads one story with a photo that sets the scene, taps any word to see its meaning in English or Serbian, reads a short grammar note from the story, and takes a quiz of four to seven questions. The app tracks which words and grammar they know, schedules reviews, and picks the next story around what they need to practice.

Bytesicht designed and built the product: the reader, the learning model, the content checks, the AI pipeline that drafts new stories, the admin area, and the hosting.

Morgenlese reader on a phone: the word auffiel is highlighted and a sheet shows its dictionary form auffallen, the English meaning and an example sentence
Tapped word in a B1 story · Live siteView full size

How the system is put together

One story shape, from draft to reader.

  1. Story schema

    Hand-written seed files, the admin editor, and the AI all produce the same draft shape, checked with Zod.

  2. Content checks

    Every word has a dictionary entry and every quiz answer is valid, or the story is not published.

  3. Learning rules

    Word and grammar scores, spaced review, streaks, and story picking as pure, tested functions with no database.

  4. Next.js app

    Server-rendered stories from PostgreSQL, installable on a phone, with today's story saved for offline reading.

Stories, translations, and photos are stored in the database, so no AI model or photo service is called when a page loads. This is a component overview, not a deployment topology.

Engineering decisions

AI drafts.
Checks decide.

Every word is tappable.

Each story carries a word list that covers every token in the text, and a content check fails the story if one is missing. German makes this harder than it sounds: in “Er ruft sie an”, the reader decides from the clause whether “an” is a preposition or part of the verb.

AI writes, a gate publishes.

A generated story goes through the same mechanical checks as a hand-written one; small follow-up calls repair gaps in the dictionary or grammar examples. An AI review then checks the German, the level, the translations, and the answers. Only a story that passes both is published automatically. Rejected drafts stay in the admin area for a person to fix, with the model and prompt version stored alongside.

Behavior moves the scores.

Tapping a word lowers its score, reading it without tapping raises it, and quiz answers and review ratings move it further. Reviews follow an SM-2 style schedule. A quiz changes scores at most once a day per story, so retrying it cannot inflate progress.

Guests can do everything but save.

Reading, word lookups, and quizzes work without an account. What a guest did is kept in the browser and replayed once after sign-in. Analytics keep nothing identifying on the device: guests are counted with a daily hash on the server.

Morgenlese quiz result on a phone: German school grade 2 (gut), 6 of 7 right, scores for comprehension, vocabulary and grammar, and the relative clause to revise
Quiz result · Guest session on the live siteView full size

Built with

Next.js / React / TypeScript / PostgreSQL / Prisma / Auth.js / Zod / Vitest / Docker

Current status

Live software, designed and built as a Bytesicht product: 160 stories across four levels, free to read in the browser and installable on a phone. Paid B1 and B2 exam practice packs are built but not on sale yet. No usage figures are claimed.

Build with Bytesicht

Put AI behind a quality gate.

From the learning rules to the content pipeline that feeds them, we can build products where AI does the drafting and checks decide what ships.

Discuss your project