# TypeWords: Open-Source English Vocabulary Practice Through Active Typing

> TypeWords is an open-source browser-based vocabulary learning application built on Nuxt that requires learners to type each word rather than recognize it passively. It ships with ten built-in exam wordlists covering CET-4, CET-6, GRE, IELTS, TOEFL, and others, uses the FSRS spaced repetition algorithm for scheduling, and stores all progress locally without requiring an account.

**zyronon/TypeWords** — Practice English, one strike, one step forward; 练习英语，一次敲击，一点进步；

- Repository: https://github.com/zyronon/TypeWords
- Website: https://typewords.cc
- Stars: 10,315 · Forks: 1,237
- Language: Vue
- License: GPL-3.0
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/zyronon-typewords

## What TypeWords Does and Who It Is Built For

TypeWords is an open-source vocabulary learning application that requires active typing as its core practice method. Rather than showing a word and asking the learner to click a confidence rating as flashcard apps do, TypeWords requires producing the correct spelling through keyboard input. The README positions this as more effective for retention than passive recognition, though it does not cite research to support that claim.

The target audience is learners preparing for Chinese college English tests (CET-4 and CET-6), international English proficiency tests (IELTS, TOEFL), graduate admissions tests (GRE, GMAT), the US SAT, and advanced English major examinations (TEM-4, TEM-8). The ten built-in wordlists map directly to these exam categories.

The online hosted version at typewords.cc is accessible without any installation and without creating an account. Learners who want to self-host, modify the application, or contribute to development can run the full Nuxt application locally. The README explicitly describes it as ad-free with no forced subscription to any platform.

## Four Practice Modes and the Smart Mode Overlay

TypeWords offers four practice modes for individual words. Follow-along displays the word and requires the learner to type what they see; this builds familiarity with spelling through repetition and is the most accessible starting point for an unfamiliar word set. Dictation plays audio pronunciation and the learner types the word without seeing it; this trains the audio-to-spelling connection and is particularly relevant for IELTS and TOEFL listening preparation. Self-test prompts the learner to type the word based on a cue without a visual or audio aid. Spelling from memory requires producing the correct spelling with no prompts.

All four modes are available for word practice. For article memorization, the README describes follow-along and dictation modes that operate sentence by sentence, with automatic pronunciation played after each input.

Smart mode cuts across all four practice modes by applying a spaced repetition algorithm to the word scheduling. Instead of presenting words in a fixed order, smart mode uses the learner's error history to calculate when each word should next appear. The README describes it as "automatically calculating learning words based on memory curves, deepening memory through dictation."

When a learner types a word incorrectly during any mode, TypeWords automatically adds it to the wrong word book for later review. Learners can also explicitly add words to favorites for targeted consolidation, or mark them as mastered to remove them from future sessions. These three categories (wrong words, favorites, mastered) create a graduated word management system rather than a binary learned-or-not structure.

## Running TypeWords Locally

TypeWords is built on the Nuxt framework (version 4.2.1 in the package.json) and requires Node.js. The README recommends pnpm for dependency management and specifically calls out using a shallow clone to reduce download size:

```bash
git clone --depth 1 https://github.com/zyronon/TypeWords.git
```

After cloning, install dependencies and start the development server:

```bash
pnpm install
pnpm run dev
```

The default development server address is `http://localhost:5567`. To build static files for deployment:

```bash
pnpm run generate
```

The README warns that GitHub's Download ZIP feature does not work properly for this project and recommends git clone instead. The repository is large, and the shallow clone with `--depth 1` is the README's recommended approach to reduce the download to only the latest commit's files.

Data is stored locally in the browser's storage (the `idb-keyval` dependency in package.json confirms IndexedDB is used). No backend server or database is required beyond the Nuxt development or preview server.

## Ten Built-In Exam and Test Prep Vocabulary Sets

TypeWords ships with ten vocabulary sets covering the main English proficiency and admissions test categories:

CET-4 and CET-6 (College English Test Band 4 and 6) cover the standard vocabulary requirements for Chinese university English examinations. TEM-4 and TEM-8 (Test for English Majors Levels 4 and 8) target higher-level university English major requirements. IELTS and TOEFL cover international English language proficiency tests used for study and immigration abroad. GRE (Graduate Record Examinations) and GMAT (Graduate Management Admission Test) cover vocabulary common in US graduate school admissions. SAT covers US university admissions vocabulary. Graduate English covers vocabulary for Chinese postgraduate entrance examinations.

The README notes that community contributions of additional wordlists are welcome. Custom lists can be added manually or imported. A one-click translation feature supports adding article content with bilingual display. Users focused on domain-specific vocabulary (medical, legal, technical) would need to create or import their own lists, since the ten built-in sets are exam-preparation oriented rather than domain-specific.

## Smart Mode and the Spaced Repetition Implementation

The spaced repetition algorithm in smart mode uses the FSRS (Free Spaced Repetition Scheduler) system, implemented through the `ts-fsrs` dependency (version 5.2.3 in the package.json). FSRS is an open-source algorithm that schedules review intervals based on memory stability estimates for each item. Items with higher error rates and shorter memory stability receive shorter review intervals. Items recalled reliably over successive sessions are scheduled further into the future.

TypeWords integrates FSRS at the word level. The wrong word book, populated automatically during any practice session, feeds directly into smart mode's scheduling decisions. A word that was typed incorrectly three times this week will appear in the next smart mode session sooner than a word that was typed correctly each time.

The favorites category adds a second level of active curation. Rather than waiting for FSRS to schedule a word based on error history alone, learners can pin any word to favorites for deliberate consolidation review without fully removing it from the active learning queue. Marking a word as mastered removes it from all future sessions including smart mode.

The three-tier word management (wrong words, favorites, mastered) combined with FSRS scheduling makes TypeWords more granular than apps that only track binary learned-or-not state. The scheduling happens in the browser with no server-side component, so practice sessions work fully offline after the initial page load.

## Local Data Storage and the Backup Limitation

All user data in TypeWords is stored locally. The README states this explicitly: the project runs standalone with data saved locally, and manual backup is required when switching devices. The `idb-keyval` library in the package.json confirms that IndexedDB is used for storage, meaning word lists, progress tracking, wrong word books, favorites, and mastered sets are all stored in the browser's local storage.

This design has real advantages: no account creation required, no subscription fees for data access, no sync traffic that could reveal vocabulary study patterns, and the application works offline once loaded. The README lists "no forced subscription to any platform" as a feature.

The practical constraint is equally real. If a learner accumulates months of wrong-word history and spaced repetition scheduling data, and then switches to a different browser, reinstalls the operating system, or moves to a new device, all of that data is lost unless it was exported first. The README does not document the export and import format in the visible portion of the README, so users should test the export functionality early in their use of the application rather than after significant history has accumulated.

The presence of `@supabase/supabase-js` in the package.json suggests optional cloud sync may exist in the codebase, but the README does not document this as a user-facing feature and the standalone local operation is the documented default.

## Monkeytype and the Difference in Learning Objective

Monkeytype is the most visible tool in the English typing practice space. It is a typing speed and accuracy measurement tool: users type a provided text passage as quickly and accurately as possible, and the tool reports words per minute and error rate. Its word selection prioritizes common words that flow naturally for speed measurement rather than words selected for vocabulary expansion. A user who achieves a high WPM score on Monkeytype has demonstrated fast and accurate typing but has not necessarily encountered rare or exam-specific vocabulary.

TypeWords has a different goal. Words are selected from standardized test wordlists, not for typing flow. The practice modes include audio pronunciation, phonetics, example sentences, synonyms, root words, and etymology, none of which appear in a pure typing speed tool. The active recall and spaced repetition scheduling are oriented toward long-term vocabulary retention rather than short-term speed improvement.

The overlap between the two tools is narrow: both require accurate keyboard input of English words. Monkeytype measures how fast a learner can type familiar text. TypeWords builds a learner's ability to recall and spell unfamiliar vocabulary under exam-style conditions. A learner preparing for GRE vocabulary sections would find TypeWords directly applicable and Monkeytype largely irrelevant to that specific goal.

## Conclusion

Learners preparing for CET-4, CET-6, IELTS, GRE, or TOEFL should try the online version at typewords.cc before committing to a local setup. The ten built-in wordlists cover the main exam categories, and the spaced repetition smart mode handles scheduling automatically. Before relying on the local install for serious study, verify that the browser's data export works correctly so that accumulated wrong-word history is not lost when switching devices or reinstalling. The GPL-3.0 licence permits self-hosting and modification but requires derivative distributions to remain open-source.

## FAQ

### Does TypeWords require an account to save vocabulary progress?

No. TypeWords runs entirely in the browser with all data stored locally using IndexedDB. No account, login, or server is required for normal use. The README notes that manual backup is needed when switching devices, since progress data does not sync across browsers or installations.

### What vocabulary sets come built into TypeWords?

TypeWords includes ten built-in wordlists: CET-4, CET-6, GMAT, GRE, IELTS, SAT, TOEFL, Graduate English, TEM-4, and TEM-8. These cover the main Chinese college English tests, international proficiency tests, and US graduate admissions examinations. The README also supports custom and imported word lists.

### Can TypeWords be used offline after the initial setup?

Yes. Once the Nuxt application has been installed and dependencies have been downloaded with `pnpm install`, running `pnpm run dev` starts a local server that serves the application from the local machine. All data is stored in the browser's IndexedDB and no external server requests are needed during a practice session.

## Sources

- [Issues](https://github.com/zyronon/TypeWords/issues)
- [License: GPL-3.0](https://github.com/zyronon/TypeWords/blob/master/LICENSE)
- [Project website](https://typewords.cc)
- [README](https://github.com/zyronon/TypeWords/blob/master/README.md)
- [zyronon/TypeWords on GitHub](https://github.com/zyronon/TypeWords)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/zyronon-typewords
