Wordle LOTR is an open-source project and welcomes contributions of all kinds. The most impactful and accessible contribution is expanding the Middle-earth dictionary — every new entry directly enriches the gameplay experience with more of Tolkien’s world. Bug fixes, style improvements, and new features are equally welcome.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/PixelGenetics/Wordle-LOTR-RN/llms.txt
Use this file to discover all available pages before exploring further.
Adding Words to the Dictionary
The dictionary lives in a single file and requires no build tooling to edit. Each entry is a plain TypeScript object.Open Dictionary/dictionary.tsx
Navigate to
Dictionary/dictionary.tsx in the project root. The file exports a wordItem interface and the dictionary array.The wordItem interface is:Add a new wordItem object to the array
Append a new object to the
dictionary array, following the existing format. All four fields are required.dictionary.tsx
Verify canonical spelling
Make sure
nombre matches the exact canonical spelling from Tolkien’s published works (e.g., The Lord of the Rings, The Silmarillion, Unfinished Tales). The game compares player input against this string case-insensitively, so a misspelling in nombre creates an unsolvable puzzle.Write lore-accurate hints in Spanish
Write
explicacion and explicacion2 as in-game clues — in Spanish, lore-accurate, and crafted so they hint at the answer without immediately naming it. The hints should guide a player familiar with Middle-earth toward the answer, not give it away on the first read.Code Style
The project enforces a consistent code style through TypeScript’s strict mode and ESLint. TypeScripttsconfig.json enables "strict": true, which turns on the full suite of TypeScript strict checks including strictNullChecks, strictFunctionTypes, and noImplicitAny. All new code must pass type-checking without errors or @ts-ignore suppressions.
ESLint
ESLint is configured in eslint.config.js using the flat config format with eslint-config-expo:
dist/ directory is excluded from linting automatically.
Project Conventions
Follow these conventions when adding or modifying code so the codebase stays consistent: File naming Use kebab-case for all filenames:components/ directory:
app/ use default exports as required by Expo Router’s file-based routing convention.
Styles
Always use StyleSheet.create() in a dedicated styles file or at the bottom of the component file. Do not use inline style objects in JSX — they create new object references on every render and bypass React Native’s style flattening:
useState hooks. Keep state as close as possible to where it is used — do not lift state unnecessarily.
Reporting Issues
Bug reports, feature requests, and questions are tracked on GitHub: https://github.com/PixelGenetics/Wordle-LOTR-RN When reporting a bug, include:- The platform you are running on (iOS / Android / web)
- The Expo SDK version (found in
package.json) - Steps to reproduce the issue
- The word entry involved, if the bug is dictionary-related