Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Woordje

woordje

Learn vocabulary that actually sticks.

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.

Platform Built with Expo React Native TypeScript Firebase SRS

📱 App Store · 🌐 Web app · 🧩 Chrome extension

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.


Contents


What is Woordje

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.


Screenshots

Smart daily practice Track your progress Your vocabulary
Home and daily review Statistics and upcoming reviews Vocabulary list with recall strength
Personalized sessions, daily streak, progress at a glance Recall %, estimated CEFR level, and upcoming review load Every word with its live recall strength and status

Features

Capture & import

  • Duolingo sync — the companion Chrome extension captures your vocabulary as you learn and syncs it to your account automatically.
  • Anki import — bring existing .apkg decks 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.

Practice engine

  • 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.

Insight

  • 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.

Make it yours

  • 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.

Own your data

  • 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.


How it works

  ┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
  │  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.


The Duolingo sync extension

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.

What it does

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Install & setup

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.

Good to know

  • 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).

Tech stack

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.


The Woordje ecosystem

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 .colpkg collections are out of scope by design, which is what keeps the reader small, stable, and reusable as a standalone package.


Roadmap

  • FSRS scheduling engine (migrated from a hand-rolled SM-2 variant)
  • Duolingo sync via the Manifest V3 Chrome extension
  • Anki .apkg import 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

Design language

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.


Privacy & data

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.


About

Built and maintained by @BalazsCsutar222855.

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.

About

Spaced-repetition vocabulary trainer for iOS, Android & web — sync from Duolingo, import Anki decks, practice with FSRS.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors