← Back to work
Our ProductLanguage Learning

LexGrip

An AI language-learning platform we designed and built end to end. It generates vocabulary on demand, keeps your deck clean with a lemmatization pipeline, schedules reviews with a house-built FSRS engine, and runs a tutor that learns from your mistakes and drills them until they stick.

Visit lexgrip.com →
The Learning Loop

From a word you don't know to one you won't forget.

01

Generate

You describe a scenario, ordering at a restaurant, passport control, a lease negotiation, and an LLM generates vocabulary cards scoped to that situation, each with a translation, a usage example, and pronunciation audio.

02

Deduplicate

Every generated term passes through a spaCy lemmatization pipeline that reduces it to its canonical lemma and links it to an existing card if one already exists, so your deck never fills up with conjugations and inflections of words you already know.

03

Review with FSRS

Cards enter a house-built FSRS scheduler that models memory decay per card and surfaces each one at the moment you're about to forget it. Your day-to-day flashcard reviews run here, advancing words through the new, learning, and review states as they stick.

04

Practice with the tutor

The AI tutor is a separate activity you reach once your FSRS reviews are done. It pulls in only the words that have reached the review state, words you already mostly know, and generates fresh sentences that use them in context. Because the word set is known rather than guessed at, practice reinforces real production instead of testing words you've never seen.

05

Correct & resurface

Every mistake in the tutor is captured into a personal error profile. The system reserves your weak spots and keeps resurfacing them in new contexts until your accuracy recovers, so practice time concentrates exactly where you're struggling.

Under The Hood

The parts that make it work.

Canonical lemma graph

Cards are not stored as raw strings. A spaCy pipeline lemmatizes each generated term and resolves it against a canonical lemma store, so 'corriendo', 'corrió', and 'corre' all collapse onto the same underlying lemma node. Deduplication happens at the lemma level, which keeps decks clean and lets review history follow the word rather than the surface form.

spaCyLemmatizationDedup

House-built FSRS engine

Scheduling runs on an in-house implementation of FSRS (Free Spaced Repetition Scheduler), the current state of the art in retention modeling. Each card carries its own difficulty and stability parameters that update on every review, and due-date selection is driven by predicted recall probability rather than fixed intervals.

FSRSSpaced RepetitionRetention Modeling

Scenario-grounded generation

Card and sentence generation are prompt-engineered around real-world scenarios instead of frequency lists, so the vocabulary you build maps to situations you'll actually be in. Generation is constrained and validated before anything is persisted.

LLMPrompt EngineeringLangChain

Mistake-driven tutor loop

Running separately from FSRS review, the tutor draws only on words already in the review state, generates contextual sentences from them, evaluates your answers, and writes errors into a structured mistake profile keyed by lemma and error type. That profile drives which words and patterns the tutor resurfaces, so it concentrates on the specific things you keep getting wrong.

AI TutorError ProfilingAdaptive Review
Stack
Backend
Spring Boot (Java)
Frontend
Vike + React
Database
PostgreSQL
NLP
spaCy lemmatization
AI
LLM generation via LangChain
Scheduling
In-house FSRS

Want something like this built?

LexGrip is the kind of system we build for ourselves. We can build one for you too.