Free, open-source, and cross-platform analysis tool for Scrabble, Super Scrabble & Literaki.
Quickly find top scoring words using given letters and board state.
Available at https://scrabble-solver.org in 8 languages.
![Screencast GIF showing user interface when solving for oxyphenbutazone, which is a top-scoring word in English version of Scrabble](https://raw.githubusercontent.com/kamilmielnik/scrabble-solver/master/screencast.gif)
Language | Word list | Word definitions | Highest-scoring word |
---|---|---|---|
🇬🇧 English | 💾 SOWPODS | Merriam-Webster | oxyphenbutazone (1458) |
🇺🇸 English | 💾 TWL06 | Merriam-Webster | oxyphenbutazone (1458) |
🇫🇷 French | 💾 ODS8 | CNRTL | schizothymiques (1566) |
🇩🇪 German | 💾 hippler/german-wordlist | DWDS | polytoxikomanem (1512) |
🇮🇷 Persian | 💾 MansourM/persian-to-persian-dictionary | واژه یاب | (756) اگزیستانسیالیست |
🇵🇱 Polish | 💾 SJP.PL | SJP.PL | współposiądźmyż (1512) |
🇷🇴 Romanian | 💾 LOC 5 | dexonline | luxemburghezele (1944) |
🇪🇸 Spanish | 💾 FISE-2 | Diccionarios.com | flexibilizabais (1323) |
You can run Scrabble Solver on your machine - all you need is Node.js 20 or later.
npx scrabble-solver@latest
npm install -g scrabble-solver
# and then run anytime with:
scrabble-solver
npm uninstall -g scrabble-solver
# Logs and dictionaries are stored in $HOME/.scrabble-solver
# $HOME location is acquired using os.homedir()
rm -rf $HOME/.scrabble-solver
npm install
npm run build
npm run dev -w @scrabble-solver/scrabble-solver
or
cd packages/scrabble-solver
npm run dev
Note: hot code reload works only for the scrabble-solver
package.
npm run build -w @scrabble-solver/configs
npm run build -w @scrabble-solver/constants
npm run build -w @scrabble-solver/dictionaries
npm run build -w @scrabble-solver/logger
npm run build -w @scrabble-solver/scrabble-solver
npm run build -w @scrabble-solver/solver
npm run build -w @scrabble-solver/types
npm run build -w @scrabble-solver/word-definitions
npm run build -w @scrabble-solver/word-lists
- Find and download a flag representing the locale in an SVG format
- I usually find them at https://commons.wikimedia.org/
- Rename the file to
FlagXX.svg
and put it in packages/scrabble-solver/src/icons - Export the SVG file in packages/scrabble-solver/src/icons/index.ts
- Add IETF language tag for the new locale in packages/types/src/Locale.ts
- Rebuild the types package
npm run build -w @scrabble-solver/types
- Add locale configuration in packages/scrabble-solver/src/i18n/constants.ts
- Update locale-detecting code in packages/scrabble-solver/src/lib/detectLocale.ts
- Add game configs for the new locale in packages/configs/src/languages
- Add an export for these locale configs in packages/configs/src/languages/index.ts
- Add a translation file in packages/scrabble-solver/src/i18n/languages and fill it with translations
- Copy any existing file, e.g.
english.json
and modify it
- Copy any existing file, e.g.
- Add an entry for the translations in packages/scrabble-solver/src/i18n/i18n.ts
- Add a function to fetch the list of words in the new locale in packages/word-lists/src/getWordList.ts
- Add a function to fetch the word definition in the new locale in packages/word-definitions/src/crawl.ts
- Add a function to parse the word definition crawled in the previous step in packages/word-definitions/src/parse.ts
- Bonus points for adding tests in packages/word-definitions/src/parse.test.ts
- TypeScript
- Node.js
- Next.js
- Express
- Workbox
- React
- Redux
- Redux Toolkit
- Redux-Saga
- SCSS
- CSS Modules
- include-media
- Lerna
- Jest
- ESLint
- Prettier
The user interface and source code for the web front end of Lexatious is based on Scrabble Solver.