The following is mostly taken from Lexica's readme:
Lexica is a word game available online an don the Android platform. Players are given 3 to 30 minutes to find as many words as possible on a grid of random letters.
Features:
- Several international dictionaries, with a combined total of millions of words
- Multiplayer mode (send challenges to friends via SMS/Email/etc)
- Customisable game modes:
- 4x4, 5x5, and 6x6 sized boards
- Different durations
- Various scoring modes
Features unique to web-lexica:
- Time attack mode (Gain more time for each word guessed)
- Lexicle (A
wordleinspired game-mode) - Cross-platform:
web-lexicais compatible with most reasonably modern browsers withjavascriptenabled.
The goal of this project is to fully replicate everything Lexica can do.
There are still a lot of rough edges with the project, but, all in all, it is in a playable state for both desktop and mobile users.
While it is still in beta, web-lexica is compatible with the core features of Lexica: game modes, languages, and game-play
Here are some things that web-lexica adds to Lexica:
- Visual feedback: When guessing, the letters will flash to show if the guess is correct, incorrect, or a repeat guess
- Time Attack game mode
- Visible game details while in-game. Never forget the minimum word length again
- Cross-platform compatibility. Anyone with a modern browser and a web connection can join in the fun.
Some missing functionality:
- Several poor App layouts/styles/interactions. If you enjoy
web-lexica, but get tripped up by something in the design, please feel free to submit an issue detailing the problem and suggested improvements - When creating a multiplayer game, the QR code leads to the Android App's landing page, with no option for a direct link to a
web-lexicagame (The page's URL does dynamically update though, and can be used to share games) - Board rotation has not been implemented
- A post-game
Shareoption has not been implemented - The post-game summary does not not include dictionary links or a preview board
Some changes to the layout have been made depending on the device being used. If the game is in portrait, it's display is very reminicient of Lexica's layout:
When the game is being played in landscape, it will display like so:
Other similar changes have been made to the results page.
News is organized by most recent news first
It's been a very long time this time! Life has been very busy and I've needed to step back from this project for a while.
Here's some highlights of the bug fixes:
Found Words: The result screen has been usingMissed Wordsfor both theFound WordsandMissed Wordssection :face-palm:QR Code: The QR code has been broken for a while now. Probably in the android refactor. That is now fixed!
Highlights of the tooling modernization:
While yarn is (imo) a bit more ergonomic than npm, we were stuck on a very old version of yarn that just wasn't useful enough to justify its use. npm on the other hand is a good fit for this smaller project and lowers the barrier to entry.
This was a fairly easy change because this is a web-app, so we weren't using node that much except for local development.
Web development is a constant cycle it seems. There's always a new tool, always a new framework. It's enough to make ditching react entirely and just using javascript+html+css an attractive idea. That would require a lot of work tho, so I'll refrain. For now.
Earlier this year, the React Project officially deprecated create-react-app (archived).
This was not a huge concern for this project due to its nature, but switching from create-react-app to vite allowed us to smooth out some of the really clunky aspects of cra like WebWorkers.
Before create-react-app, WebWorkers needed a special loader (at least when they were added) and weren't very recognizable as a standard WebWorker. vite, because it assumes fairly modern browser usage, just loads WebWorkers normally, which is nice.
The migration did require a sweeping change to the project (5k lines of code changed) due to minor differences between cra and vite. Due to limited focus time, a single huge PR was made, which is messy, but quicker.
So far, beyond weblate contributions (which are deeply appreciated), I've (MattRCole) been the principal maintainer of the web-lexica project. I've loved working on web-lexica, but I do feel bad that I can't give this project the amount of care and attention that it deserves. So, I'm interested in being more inviting to community contributions. I think there's a few different reasons for low contributions, but the main one that I can influence is: Complexity.
I built this project w/o a framework making most components "by hand". This, along with some of my design choices have left quite a bit of cruft. I believe that cruft has made it hard for anyone but me to contribute to this project.
With that in mind I will try (no promises) to focus future work on simplifying the project:
- Removing unused files
- Consolidating components
- Following established patterns better
- etc
Something else I'd like to do is also minimize the reliance on outside tools since (especially in web development) these can change much more rapidly than I can feasibly keep up with.
It's been a while, but development has resumed on web-lexica with two new features:
- Android App support
- Language Setting
You can now explicitly set your preferred language in the preferences menu! This is a small update, but I'm sure that it will be helpful for you if your preferred language was not automatically chosen.
Again, many thanks to those who continue to provide translations via Weblate!
This is a minor feature, but if you've been annoyed that your friends continue to send web-lexica game links instead of app links, you will enjoy this: There is now the option to open the Lexica app when you open a shared multiplayer game.
You can also choose to always open shared games in the Lexica app, however, due to safety reasons, most browsers will not allow a web page to open an app without some sort of user input, so, as a good second option, you will now be presented with a big button to open the shared game in the Lexica app.
Sorry for the lack of updates on the locked weblate translations. A few settings needed to be adjusted, and now Weblate translations are truely implemented. We apreciate the community support!
Web Lexica now has translations! This is a new feature and may have some bugs. If you find any, please create an issue.
If you would like to contribute to translations, check out the Web Lexica Weblate Project, and please see these instructions for using Weblate to hlep translate web-lexica.
Many of the current translations have been re-used from Lexica. A deep thank you to all who have previously given there time to help translate lexica.
Love playing Wordle? Try playing with a Lexica twist! Give it a try.
Race against the clock, gaining more time with each word found! Give it a try.
Note, this game mode is not currently compatible with Lexica, but this could change in the future.
Pull requests are appreciated!
Note, since this project is still in beta, it is highly volitile with sweeping changes being made on a regular basis
Please report any issues or suggest features on the issue tracker.
You will need to install NodeJS v24 in order to run and compile this project
This project uses vitea and, after running npm i at the project's root folder, can be spun up by running npm run start for development.
For production-ready builds, npm build can be run.
The app uses lexica.github.io's language API in order to load dictionaries and other language metadata.
For offline development, you can use the populate-mock-api.sh script to populate the mock-api folder with a local copy of Lexica's api retreieved from lexica.github.io. you will then need to host that folder (npx serve ./mock-api for example) and, unfortunately, change the proxy field in vite.config.ts to point to your static server.
The app currently uses the excellent Solarized color scheme, the license to which can be found here

