Open Source Wordle in a bunch of languages
PULL REQUESTS WELCOME!
It would be mega awesome if you could help in any way (especially with language addition/curation).
contact: wordle@hugo0.com
π For developers: See CLAUDE.md for architecture details, key algorithms, and coding guidelines.
How to add a new language:
- Make a folder in webapp/data/languages/ with the language code (e.g. en, de, fr, qya, etc.)
- Add a list of 5-letter words and call it {lang_code}_5words.txt
- (Optional) Add a language_config.json file
- (Optional) Add a keyboard configuration
- (Optional) Add a list of supplemental words (useful to have this for weird/rare words, and only have 'common' words in the main 5words.txt file)
VoilΓ !
If you want to test out your changes, you can run the server locally.
- Python 3.12+ (3.14 recommended)
- pip
- Node.js 22+ and pnpm (for frontend builds)
# Clone the repository
git clone https://github.com/Hugo0/wordle.git
cd wordle
# Install Python dependencies
pip3 install -r requirements.txt
# Install frontend dependencies and build
pnpm install
pnpm buildgunicorn --chdir webapp app:appRun these in two terminals:
# Terminal 1: Flask server (auto-reloads Python changes)
gunicorn --chdir webapp --reload app:app
# Terminal 2: Frontend watcher (auto-rebuilds JS/CSS changes)
pnpm watchNavigate to http://127.0.0.1:8000/
# Python tests (data validation - word lists, configs, daily word algorithm)
source venv/bin/activate # if using venv
python -m pytest tests/
# TypeScript tests (game logic - color algorithm, stats calculation)
pnpm test
# TypeScript tests in watch mode
pnpm test:watchTo test on your phone or other devices, you can use ngrok to expose your local server:
-
Start your local server (see above)
-
In a new terminal, run:
ngrok http 8000
-
ngrok will display a public URL (e.g.,
https://abc123.ngrok.io) β open this on your mobile device
-
Make sure you have Docker installed.
-
Build the image:
docker build . -t wordle -
Run the container:
docker run -d -p 8000:8000 wordle
- Hebrew (he): π¨ (64540 words)
- Serbian (sr): π¨ (17968 words)
- Central Kurdish (ckb): π© (14819 words)
- English (en): π© (12948 words)
- Slovenian (sl): π¨ (11731 words)
- Persian (fa): π¨ (11253 words)
- Norwegian Nynorsk (nn): π¨ (10523 words)
- Slovak (sk): π¨ (10444 words)
- Greek (el): π¨ (10209 words)
- Polish (pl): π¨ (10184 words)
- Arabic (ar): π¨ (10166 words)
- Ukrainian (uk): π¨ (9589 words)
- Danish (da): π¨ (9516 words)
- Estonian (et): π¨ (9459 words)
- Turkish (tr): π¨ (9224 words)
- Catalan (ca): π¨ (9079 words)
- Portuguese (pt): π¨ (9016 words)
- Korean (ko): π¨ (8922 words)
- Georgian (ka): π¨ (8827 words)
- Romanian (ro): π¨ (8618 words)
- Icelandic (is): π¨ (8285 words)
- Czech (cs): π¨ (7544 words)
- Basque (eu): π¨ (7520 words)
- Norwegian BokmΓ₯l (nb): π¨ (7471 words)
- Dutch (nl): π¨ (7441 words)
- Breton (br): π¨ (7143 words)
- Faroese (fo): π¨ (6448 words)
- Western Frisian (fy): π¨ (6095 words)
- Hungarian (hu): π¨ (6047 words)
- Macedonian (mk): π¨ (5998 words)
- Swedish (sv): π¨ (5968 words)
- Turkmen (tk): π¨ (5814 words)
- Latin (la): π¨ (5802 words)
- Irish (ga): π¨ (5082 words)
- Bulgarian (bg): π¨ (4953 words)
- Azerbaijan (az): π© (4873 words)
- Mongolian (mn): π¨ (4830 words)
- Russian (ru): π¨ (4688 words)
- Gaelic (gd): π¨ (4660 words)
- French (fr): π¨ (4482 words)
- Occitan (oc): π¨ (4204 words)
- Armenian (hy): π¨ (3848 words)
- Western Armenian (hyw): π¨ (3748 words)
- Spanish (es): π¨ (3602 words)
- Croatian (hr): π¨ (3591 words)
- Fur (fur): π¨ (3569 words)
- Finnish (fi): π© (3271 words)
- Galician (gl): π¨ (3269 words)
- Italian (it): π¨ (2783 words)
- Latvian (lv): π¨ (2775 words)
- Interlingua (ia): π¨ (2476 words)
- Esperanto (eo): π¨ (2449 words)
- German (de): π¨ (2277 words)
- Nepali (ne): π¨ (2197 words)
- Interlingue (ie): π¨ (2147 words)
- Lithuanian (lt): π¨ (2004 words)
- Luxembourgish (lb): π¨ (1752 words)
- Quenya (qya): π¨ (1327 words)
- Low German (nds): π¨ (1001 words)
- Vietnamese (vi): π§ (739 words)
- Latgalian (ltg): π₯ (388 words)
- Klingon (tlh): π₯ (270 words)
- Maori (mi): π₯ (128 words)
- Kinyarwanda (rw): π₯ (21 words)
- Josh Wardle (original Wordle creator)
- NYT (presumably holds the copyright or some IP rights or something with their $$$ purchase)
- Elizabeth S (inventor of the Wordle grid)
- Nadia H (my lovely beta-tester)
- Daniel Rodriguez (for some inspiration with Tailwind)
- Wordles of the World for a community-sourced list of wordle-derivatives (it's impressive how many actually exist)
- All users, github issue raisers, and PR creators! Thanks so much!
- https://www.nytimes.com/games/wordle/index.html - english word list
- https://kaino.kotus.fi/sanat/nykysuomi/ - Finnish word list
- https://github.com/wooorm/dictionaries - most other word lists (Titus Wormer is an incredible dude)
