A web-based Wordle-style game inspired by the NYT Wordle, enhanced with themes, a responsive UI, offline installability (PWA), custom word challenges and multi-language support.
This is a playable Wordle-like game built with Next.js and TypeScript. It provides an accessible and polished experience with multiple languages, theme/settings, and offline install support so players can keep playing even without a network connection.
- 🌐 Multi-language support
- 📦 Installable as a Progressive Web App (PWA) with offline fallback (service worker caching)
- 🎨 Themes and accessibility options (high-contrast, reduced motion)
- 🔗 Create and play custom word challenges (shareable via URL)
- 📊 Game statistics and share options
- 📱 Responsive UI
- ✨ Cool animations and transitions
- ⌨️ Keyboard and touch support
- ✅ Unit tests for core game algorithms
- Next.js
- React 19
- TypeScript
- Tailwind CSS
- Next-intl (i18n)
- Serwist (service worker / precaching)
- Zustand (state management)
- Firebase (optional features / services)
- Motion (animations)
- Radix UI primitives
Prerequisites: Node.js 18+ and npm.
- Install dependencies
npm install- Run the development server
npm run dev- Build for production
npm run buildNotes:
- The app uses a service worker (via
serwist) for offline caching and an offline fallback page. Building the app (npm run build) will prepare the service worker precache manifest. - Language files are under
languages/(e.g.languages/en.json,languages/fr.json).
Contributions are welcome. A simple workflow:
- Fork the repository and create a branch for your change
- Make changes and keep them focused (one feature / fix per PR)
- Open a pull request describing the change
Guidelines:
- Keep UI changes responsive and test on mobile and desktop
- If you add new text, add a translation entry in
languages/*.json - For large changes, open an issue first to discuss the approach
Quick steps to add a new locale:
- Create a new JSON file for text translations in
languages/(use an existing file as a template likelanguages/en.json->languages/xx.json) and translate all keys. - Add your language wordlist in src/wordlists
- Add the languge/locale to the project's types and constants:
- add your code to the Languages type (e.g.
types.ts) - add an entry to the
LANGUAGESconstant (e.g.constants.ts) - update LanguagesMenu component.
- add your code to the Languages type (e.g.
- Add keyboard keys (/src/components/keyboard/keys.ts)
- Test locally (
npm run dev) and build (npm run build).
Notes:
- Use a consistent locale code (e.g.
es,fr,de) and keep translation keys identical across files. - Update all language files whenever you add new UI strings.
Repository owner: EL-OUARDY
Contact: contact@wadi3.codes
If you want to report bugs or suggest features, please open an issue in the repo.
Thank you for checking out the project — have fun playing!
