- Sheet
- 03 / 05
- Rev
- 2026.08
- Title
- DeutschlyProduct 01
- Author
- B. BolekFrankfurt/M
- Status
- Shipping · v1.0.10
- Platforms
- iOS · Android
- Price
- Free
- Built with
- React Native · Expo SDK 57 · TypeScript · SQLite
01/What it is
An app that assumes a train tunnel.
Deutschly is the app I wanted while learning German in Frankfurt. Most learning apps assume a connection, an account, and a subscription. This one assumes a train tunnel.
Everything ships inside the binary: an 11,084-word dictionary with 63,507 inflected forms indexed, 873 lessons, 2,496 authored grammar questions, 21 reading texts, and seven games. There is no server behind it, no account to create, and no network call to make. Uninstall it and the only thing that leaves is the app.
The part I care most about is the lookup. Type a form you actually met in the wild — fährt, gemacht, Häuser, hauser without the umlaut — and it resolves to the right headword and tells you which form you typed and why.
02/In the app
Reference depth first, drills second.

Dictionary entry — gehen

Grammar explainer — Akkusativ

Practice — answer and explanation
03/What ships in it
Counted from the database that ships in the binary.
- Headwords
- 11,084
- Indexed word forms
- 63,507
- Senses
- 11,296
- Worked examples
- 3,841
- Grammar questions
- 2,496
- Grammar topics
- 52
- Lessons
- 873
- Lesson units
- 201
- Reading texts
- 21
- Games
- 7 + duel
- Levels
- A1 – C2
- Network calls
- 0
Headwords by level
- A11,008
- A21,588
- B12,584
- B24,007
- C11,711
- C2186
04/Features
Six things it does, and what each one actually means.
A/Dictionary
- Form-aware lookup
- 63,507 inflected forms are indexed against 11,084 headwords. Type fährt and you land on fahren, with a note telling you it is third person singular present.
- Forgiving input
- Missing umlauts resolve anyway — hauser finds Häuser. Search runs in both directions, German to English and back.
- Full tables
- Conjugation and declension tables for every verb and noun, expanded programmatically at build time: strong verbs, separable prefixes, plurals, cases, comparison.
- Context
- 3,841 worked examples, 752 synonym links, and 429 illustrated words.
B/Learning path
- 873 lessons, 201 units
- A1 through C2, each unit a themed set of lessons. Lessons resume where you closed them.
- Placement
- A placement test at the start so you begin somewhere useful rather than at Hallo.
- Reading
- 21 graded texts. Tap any underlined word to open its dictionary entry without losing your place.
C/Practice
- 2,496 grammar questions
- 52 topics from Präsens to Konjunktiv II, in four exercise styles: multiple choice, fill-in-the-blank, tap-to-order sentence building, and case identification. Every answer gets an explanation.
- Spaced repetition
- An Anki-style SM-2 scheduler with Nochmal / Schwer / Gut / Einfach and next-interval previews. Questions you miss come back sooner.
- Seven games
- Wort-Blitz, Bilderrätsel, Der-die-das, Wortpaare, Konjugations-Trainer, Satzbau and Diktat — short timed rounds with streak bonuses.
- Duels
- Head-to-head against another phone on the same Wi-Fi, over a direct TCP socket. No server involved, so it works on a train too.
D/Camera scanner
- Point at German
- Photograph a sign, a menu, a form. On-device ML Kit text recognition boxes every word in the image.
- Tap to look up
- Recognised words are resolved against the bundled dictionary as you scan, so a tap opens the entry. Offline, like the rest of it.
E/Progress
- XP and levels
- An append-only XP ledger drives levels — earning raises them, spending never lowers them.
- Streaks that survive a bad week
- Daily quests and badges, plus streak freezes you earn on level-ups and can spend to repair a missed day.
- Stats
- A 14-day activity chart, per-topic accuracy, and per-game bests.
F/Yours
- No account
- There is nothing to sign up for and nothing to log in to. All state is one SQLite file on the device.
- Backup you control
- Every user table serialises to a single JSON file through the share sheet, and restores in one transaction. It survives an uninstall because you keep it.
- German interface
- The app speaks German at you throughout; explanations are in English. Light, dark, and selectable colour themes.
05/How it is built
The decisions that made the offline part possible.
- Content pipeline
- Vocabulary and grammar are authored as JSON. A build step validates them, expands German inflections programmatically, and emits the SQLite file that ships with the app. Bad content fails the build rather than the user.
- Content updates without a reinstall
- The build stamps a content hash. On launch the app compares it, swaps stale content tables in place, and remaps user rows by natural key — so a new word list reaches existing installs over the air with saved words and progress intact.
- Logic you can test in Node
- The lookup engine, the SM-2 scheduler, and the answer graders are pure functions with no React Native imports and no clock of their own — time is injected. They run under Jest against the real built database.
- Native modules, carefully
- Over-the-air updates land on every binary sharing a version, so any new native dependency bumps the app version and is imported lazily. Older binaries degrade instead of crashing.
06/Get it