Labas Lithuanian · personal project

An app with one user

Labas

hello · LAH‑bahs

Lithuanian isn't on Duolingo. So I built my own Duolingo — the app, the teaching method, the learning engine, content, and a desktop handbook.

10 steps 12 exercise types 20 chapters planned
The Labas learning path: chapters, levels and a streak counter
The Labas splash screen
A grammar page inside the app
How it was built, step by step
94
Words written
213
Sentences
92
Lessons live
12
Exercise types
18
Grammar pages
350
Words, target

Chapters 1–5 are finished and playable. The other fifteen are planned, in an order that took a while to get right.

The build

Ten steps, in the order they happened.

Each one had to work before the next one could start. Nothing here was bought or downloaded as a course — it's all data and rules.

01
Research

Take Duolingo apart first.

  • 19 screenshots pulled apart into colours, type, corners, shadows
  • A screen recording turned into a written motion spec — timings, easings
  • 15 exercise types catalogued. Nine kept at first, twelve in the end
  • Decision: no hearts, no lives, no timer. A lesson can't be lost
Primary green#58CC02
Button press4px down
Correct panel#D7FFB8
Tile tap140ms
Wrong#FF4B4B
Answer sheet in220ms
Corner radius16px
Progress bar250–400ms

A sample of what came out of the teardown. The whole thing became a design file the app reads from, so nothing is a guess later on.

02
Design system

One file decides how everything looks.

  • Colours, type, spacing and components live in one document
  • A script turns that document into the app's real stylesheet
  • Change a colour in one place, the whole app changes
  • Chapters get their colour automatically, from a pool of twelve

Chapter colours

Chapter 1 is green, chapter 2 is blue, chapter 3 is orange, and so on. Add a chapter and it picks up the next colour on its own — the path, the banner and the level buttons all follow.

03
Data model

The app stores words and sentences. Not questions.

  • Every word in every sentence is tagged: which word it is, what form it's in
  • From that, the app builds the questions itself — thousands of them
  • Two separate validators check the structure and must always agree
  • Wrong case endings are tolerated. Broken exercises are not
Ji
ji
sg · nom
yra
būti
pres · 3
mano
mano
indecl
draugė
draugė
sg · nom

turns into

Build the sentence Pick the missing word Type the translation Match the pairs What do you hear?

One real sentence from chapter 2 — Ji yra mano draugė. The blue line is the dictionary word, the yellow line is the grammatical form. That tagging is what makes every exercise type possible.

04
Exercise types

Twelve types of exercises, generated live, on the phone.

  • There is no bank of ready-made exercises anywhere — not in the app, not on a server. Every question is assembled the moment it's needed, out of the word list
  • Each type is a recipe that runs on that list
  • Wrong answers are picked from the same chapter and the same word class, so they're never silly
  • Listening questions use the phone's own Lithuanian voice — no audio files, works offline
  • Pictures come from a free pictogram library, matched by a script
Build the sentence from word tiles

Build it

Match the pairs

Match

Pick the right picture

Pictures

Listening exercise

Listen

Translate the sentence into Lithuanian

Translate

Pick the missing word in a sentence

Missing word

Complete the translation

Fill the gap

Type what you hear

Type what you hear

Plus four more: pick the meaning, word → picture, picture → word, and what do you hear.

05
Memory

Every word gets its own clock.

  • One card per word — about 350 of them when the course is finished
  • Answer it right and it comes back later, then later, then much later
  • Get it wrong and it's back tomorrow
  • A sentence answered correctly credits every word in it

Answer draugė correctly five times and it stops asking for two months. Miss it once and the gaps close straight back up.

06
Learning engine

Then I read how this is actually supposed to work, and rebuilt it.

A research pass on how Duolingo's teaching engine is put together, and on what language research says about pace and difficulty. The whole structure of the course changed after it.

The shape of the course

Sectionthe whole course, 20 chapters
Chaptera topic — greetings, questions, food
Levelone circle on the path · 4 lessons
Lesson12 exercises · 2 new words · about 10 minutes
Exercisebuilt on the spot from the word list

Levels and lessons aren't written anywhere — the app works out how many are needed from the number of words in a chapter. Chapters 1–5 come out as 23 levels and 92 lessons. Twenty chapters will be roughly 80 levels and 330 lessons.

Layer 1 · when Spaced repetition

Decides which words come back today. Reviews are weighted towards the ones closest to slipping, not just the overdue ones.

Layer 2 · how hard A ladder, 0 to 4

Recognising a word is easier than producing it. A word climbs the ladder before the app is allowed to ask the hard way.

Layer 3 · which type Aim for 80%

The app keeps a rating for me and one for each exercise type, and picks the type where I should get it right about four times out of five. Hard enough to learn, easy enough to keep going.

2 new words per lesson 12 exercises 3 exposures per new word 4 lessons per level last level of a chapter = revision only

Deliberately gentler than the research suggests. Easier, fewer new things at once, more repetition, more lessons.

07
Feel

Then a pass over every screen, for feel.

  • 56 named animations — nothing moves by accident
  • Word tiles fly between the bank and the answer line
  • Correct answers bounce, spark and stamp a tick
  • Its own splash screen, streak screen and end-of-lesson screen
  • Everything respects the system's "reduce motion" setting

Opening

Before a lesson

After it

Streak

The streak screen only appears on the first lesson of the day. It counts days, not points — there's nothing to buy and nothing to lose.

08
Words & grammar

Second research pass: how grammar should be taught.

  • Every chapter now ships with words, sentences and a grammar page
  • Grammar is short, in plain language, and shows the pattern before the rule
  • Examples are always real sentences from the lessons, never invented for the page
  • Chapters 1–3 were audited and rewritten: 61 words, 146 sentences
Grammar tab inside a chapter

Grammar tab

Word list inside a chapter

Word list

Flashcard in the app

Flashcards

09
Handbook

A desktop handbook, for when the phone isn't enough.

  • Same app, different address — everything the course teaches, written out in full
  • 18 grammar topics, grouped by chapter: the full rule, more examples, contrasts with Polish, common mistakes
  • A dictionary of every word I've unlocked: forms, tags, real example sentences, audio
  • Search works without Lithuanian letters — typing aciu finds ačiū
  • Export to CSV or JSON, including ready-made flashcard decks
A grammar page: the verb to be, with a full table

One topic: the full rule and the table

Dictionary entry with forms and example sentences

Dictionary, one word opened

Flashcards on the desktop

Flashcards, desktop

Flashcards run on the same engine on both — phone and desktop, one chapter at a time, Lithuanian → Polish, Polish → Lithuanian or mixed.

10
Still to come

What's left.

✓ Chapters 1–5 ✓ Learning engine ✓ Grammar + handbook ✓ Dictionary + flashcards ✓ Cloud backup ✓ Installed on the phone, offline Chapters 6 → 20

↻Powtórka
Które z nich to „poranek”?

Try an exercise yourself

Click around the demo on the left, learn some Lithuanian while you're here.

No way to lose

No hearts, no timer. A wrong answer goes back in the queue and returns before the lesson ends.

Hints cost something

Tap a word to see and hear it — the question then comes back at the end of the lesson.

Works offline

All the words, sentences and pictures ship with the app. Speech is the phone's own.

One user

No accounts, no ads, no subscription, no notifications, no owl.

Chapter 6 is next

Aš mokausi lietuvių kalbos.

  • Five chapters finished, fifteen to write
  • Roughly 350 words and 600 sentences when it's done
  • Built at home, on evenings, for one phone

Flip the card. These are real words from chapter 2 — tap the card to turn it over, and the speaker to hear it.

1 / 8