Woordje is a spaced-repetition vocabulary trainer for iOS and the web. Sync words straight from Duolingo with a companion Chrome extension, import your existing Anki decks, and practice with an FSRS-powered review engine — the same memory model Anki uses.
Note
This is a public showcase repository. It presents the project and its capabilities — the application source code is kept private. Everything below describes the shipping product.
- What is Woordje
- Screenshots
- Features
- How it works
- The Duolingo sync extension
- Tech stack
- The Woordje ecosystem
- Roadmap
- Design language
- Privacy & data
- About
Most people collect words faster than they can memorize them — a word from a Duolingo lesson here, a phrase from a show there, a stack of Anki cards they never finished. Woordje pulls all of that into one calm, study-first place and schedules exactly what you should review today, so nothing slips through the cracks.
Under the hood it runs FSRS — the same spaced-repetition algorithm trusted by millions of Anki users. FSRS predicts the moment you're about to forget a word and surfaces it right then: words you struggle with come back sooner, words you know well space out further. You spend less time reviewing and remember more.
The design goal is a trainer that feels focused, fast, and encouraging: one clear action per screen, generous whitespace, immediate feedback, and vocabulary always as the hero.
- Duolingo sync — the companion Chrome extension captures your vocabulary as you learn and syncs it to your account automatically.
- Anki import — bring existing
.apkgdecks in with a field-mapping preview, powered by a purpose-built reader (see ecosystem). - Manual add — drop in your own words for any language through the same sync pipeline.
- FSRS scheduling — review timing is driven by FSRS (
ts-fsrs, Scheduler v6), which models memory with stability, difficulty, and retrievability instead of a single fragile ease factor. - Three exercise types — multiple-choice quiz, tap-to-reveal flashcard, and type-from-memory, with a mixed mode.
- Both directions — recognize the word or produce it from memory.
- Smart sessions — per-deck daily limits for new and review cards, a learning queue with a learn-ahead timer, and an "Again / Hard / Good / Easy" grading UI.
- Statistics — word breakdown (learning / familiar / mastered), estimated CEFR level, vocabulary-recall percentage, and a weekly activity grid.
- Upcoming reviews — see your review load for the days ahead so nothing piles up.
- Progress that reads clearly — status categories and recall strength instead of raw numbers.
- Themes & accents — accent colors across full light and dark modes.
- Lock Screen widgets — pin your next word to your Lock Screen and choose which deck feeds it.
- Reminders & haptics — daily practice notifications and native tap feedback.
- Works offline — practice after the initial sync, anywhere.
- Export — download all your words and progress as JSON at any time.
- Full account controls — reset progress, delete account, and manage your subscription in-app.
Widgets, custom decks, Anki import, and themes are part of Woordje Pro.
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Duolingo │ │ Anki .apkg │ │ Manual entry │
│ extension │ │ import │ │ │
└──────┬──────┘ └──────┬───────┘ └────────┬────────┘
│ │ │
└───────────────────┼──────────────────────┘
▼
┌──────────────────┐
│ Global word │ normalized, de-duplicated
│ bank (Firestore)│ vocabulary per account
└────────┬─────────┘
▼
┌──────────────────┐
│ FSRS scheduler │ decides what's due, when
└────────┬─────────┘
▼
┌──────────────────────────────┐
│ Practice · Stats · Sync │ across iOS · Web
└──────────────────────────────┘
Every capture source converges into a single normalized word bank, the scheduler decides what surfaces today, and your progress stays in sync across every device signed into the same account.
woordje Vocabulary Sync is a free, Manifest V3 Chrome extension that bridges Duolingo and Woordje. Instead of retyping every word you meet in a lesson, the extension captures it and syncs it to your account, ready to practice.
- Sign in — open the extension and log in with the same email or Google account you use in the Woordje app, so captured words land in the right place.
- Learn on Duolingo as usual — while you work through lessons in your browser, the extension reads the vocabulary Duolingo surfaces (the word and its translation) directly from the page.
- One-way sync to your word bank — captured words are normalized and de-duplicated against your existing vocabulary, then written to your Woordje account. Words you already have aren't added twice.
- Practice immediately — open the Woordje app or web app and the new words are already in your list, entering the FSRS schedule as fresh cards.
1. Open the Chrome Web Store listing (link above) and click "Add to Chrome".
2. Pin the woordje icon to your toolbar for easy access.
3. Click the icon and sign in with your Woordje account.
4. Head to Duolingo and start (or continue) a lesson.
5. Open the Woordje app — your words are waiting.
- Scope is intentionally narrow. The extension captures vocabulary content — the word and its meaning — and lets those words start fresh in Woordje's own scheduler. It does not try to import Duolingo's internal progress or streak state.
- Sync direction is one-way, from Duolingo → Woordje. Your Woordje practice history is never pushed back to Duolingo.
- Same account, everywhere. Because the extension and the apps share one Firebase-backed account, anything you capture in the browser shows up on your phone automatically.
- Not affiliated with Duolingo. Woordje is an independent project (see the trademark note at the bottom).
| Layer | Technology |
|---|---|
| Mobile | Expo · React Native · TypeScript |
| Web | React · TypeScript (shared data model) |
| Backend | Firebase Auth · Cloud Firestore · Cloud Functions |
| Scheduling | FSRS via ts-fsrs (Scheduler v6) |
| Subscriptions | RevenueCat |
| Capture | Chrome extension (Manifest V3) |
| Design | Custom theme-aware design system (see DESIGN_LANGUAGE.md) |
The codebase is organized around small, reusable pieces: UI primitives, word components, practice cards, and stats widgets, with screens handling composition only and services owning all Firestore reads and writes.
Woordje is more than one app. Several projects share the same Firebase project and global-word-bank data model:
| Project | What it is | Status |
|---|---|---|
| woordje-mobile (this repo) | The iOS app (built with Expo / React Native) | Shipping |
| woordje web | Companion web app on the same data model, at woordje.eu | Shipping |
| woordje browser extension | Manifest V3 Chrome extension that captures Duolingo vocabulary and syncs it to your account (email & Google sign-in) | Shipping |
| Anki reader | An npm package that parses .apkg decks — unzips the archive, reads the embedded SQLite collection, splits notes.flds on the \x1f unit separator, strips HTML, and normalizes each note into Woordje's import shape. This is what powers the in-app Anki import feature. |
Published — npm |
| woordje-conversation | An AI speaking-practice tool built around Dutch NT2 exam topics. Every word in the conversation is tappable — open a word sheet and add it to your vocabulary. Uses spaCy + wordfreq for token analysis. | In development → see roadmap |
Cross-reference — the Anki reader: the import flow deliberately keeps scope minimal. It imports content (words + translations) and lets those words enter the FSRS schedule fresh, rather than trying to translate Anki's own scheduler state across versions. Media, cloze deletions, and full
.colpkgcollections are out of scope by design, which is what keeps the reader small, stable, and reusable as a standalone package.
- FSRS scheduling engine (migrated from a hand-rolled SM-2 variant)
- Duolingo sync via the Manifest V3 Chrome extension
- Anki
.apkgimport via the standalone reader package - Lock Screen widgets, themes, and accents
- Statistics with recall %, CEFR level, and upcoming-review forecasting
- woordje-conversation integration — fold the AI speaking-practice tool into the core product so words you discover mid-conversation flow straight into your word bank and onto the FSRS schedule. This closes the loop: encounter a word in a real Dutch conversation → tap it → practice it tomorrow.
- Custom decks with per-deck daily limits
- Per-user FSRS parameter optimization (personalized weights trained from review history)
- Android release
Woordje follows a documented, theme-aware design system — semantic color tokens, a compact type scale, a small spacing scale, rounded-but-not-bubbly shapes, and subtle depth that prefers borders over heavy shadows. The full reference lives in DESIGN_LANGUAGE.md.
Woordje is a learning tool, not an ad product. It doesn't sell personal data and doesn't use private vocabulary or learning history for third-party advertising. Passwords are handled by Firebase Authentication, learning data syncs to your account, and you can export or delete everything from within the app. Full details are in the Privacy Policy and the in-app Terms.
Built and maintained by @BalazsCsutar222855.
- Website — woordje.eu
- App Store — Woordje – Vocabulary Trainer
- Chrome extension — woordje Vocabulary Sync
Questions, feedback, or press: nodescraper.dovco@passmail.com
© 2026 Woordje. All rights reserved.
This showcase repository presents the product; application source is private. Woordje is not affiliated with, endorsed by, or connected to Duolingo, Anki, or Google. Third-party names and marks belong to their respective owners.


