Why I built Malayalam word games

Building daily word games for Malayalam, where one letter is several Unicode code points: the games, the script problem, where the words come from and how the site is put together.

Malayalam is the language of Kerala in South India. It has its own script and tens of millions of speakers, but very few word games. There is a Malayalam Wordle, and not much else. I wanted the daily word-game habit that English speakers have (group the words, find the hidden words, fill in the blanks) for people who read Malayalam, so over the last few weeks I built zelozuno.com.

It has four daily games:

  • Connection: 16 words, find the 4 hidden groups. You have 4 lives and no time limit; the clock just counts up.
  • Filling: rebuild a word from letter tiles. Each tile is a letter with its vowel sign, and some tiles are decoys. Once a word is done, its English meaning shows underneath when we have a checked one.
  • Letter Grid (അക്ഷര വല): find 10 hidden words in a grid of letter boxes. Every word starts with its first letter shown, and a Reveal button helps when you are stuck.
  • Word Trail (അക്ഷര പാത): trace 10 words through touching letters. Your score is your time.

It is free and has no ads. Every game has a guest sample that needs no login; the daily boards use Google sign-in so your scores can be saved.

The interesting problem: what is a "letter"?

In English, a tile is a character. In Malayalam, what a reader sees as one letter (an akshara) is often a consonant plus a vowel sign, or two consonants joined by a virama plus a vowel sign. That is several Unicode code points for one visual unit. Split a word by code point and you get dangling vowel signs that render as dotted circles.

So every game works on aksharas, not characters:

  • A Filling tile is one akshara (consonant plus vowel sign), and the decoys are plausible aksharas, not random code points.
  • Letter Grid and Word Trail cells hold one akshara each. A Word Trail word is 3 to 6 aksharas long.
  • Word lengths, difficulty and the free first-letter hints are all counted in aksharas.

Where the words come from

The word data starts from the Olam English–Malayalam dictionary (ODbL) and is then filtered and checked by hand. Word Trail uses its own pool of 1,050 checked words, none shared with Letter Grid. It still will not be perfect, so the site has a feedback link and every report gets read.

How it is put together

  • Front end: React, Vite and TypeScript with Tailwind, built as static files on GitHub Pages behind Cloudflare. A build step writes a real HTML page per route, with its own title, description and share image.
  • Back end: one Cloudflare Worker with a few Durable Objects (game rounds, the daily board generator, rate limiting and anonymous visit counts), storing data in Firestore over its REST API.
  • Daily boards are generated on the server one day at a time, from words not used recently, and written once, so two racing requests cannot create two different boards for the same day. A scheduled job prepares tomorrow ahead of time.
  • The browser never gets the answers. Connection guesses are judged by the Worker, and the word-search games send back what you found so the server can check it and time it, so scores cannot simply be posted.

What I would like from you

If you read Malayalam, play a board and tell me which words or groups feel wrong, too obscure or too easy. If you do not, I would still like to hear what you think of the mechanics and how it feels on a phone. There is a "suggest a game" link at the bottom of every page too: what game should come next?

A note on how this was made: I built the site and wrote this post with help from AI tools.

Play the games on zelozuno.com