Your spelling is not a typo
Open any family WhatsApp group and read one line from three people. "kal milte hain". "kl milte h". "kal milte hai". Same sentence, three spellings, and nobody is wrong.
This is how a few hundred million people in India type every day. Hindi words, English words, sometimes both in the same sentence, all written in the English alphabet. And everyone has their own way of spelling it.
When I started building Keygram, this was the one idea everything else came from: your spelling is not a typo.
What keyboards do with it
Most keyboards see romanized Hindi as English with mistakes in it. So they "fix" it. A Hindi word gets swapped for the closest English word, and you end up deleting the correction more often than you type.
The ones that do support Hindi usually offer one of two fixes:
- Normalize it. Turn every version of a word into one "standard" romanization.
- Convert it. Transliterate it into Devanagari.
Both sound reasonable. Both assume there is one right way to write the word, and that the keyboard knows it better than you do.
There is no right spelling
Romanized Hindi has no standard. Nobody learned it in school. We picked it up from SMS, chats and each other, and everyone settled on their own version.
The variation is not random. It follows patterns:
- Dropped vowels: "nahi" becomes "nhi", "kya" becomes "kia" or "ky"
- Nasal sounds: "hain", "hai", "h" can all mean the same thing
- Long vowels: "haan", "haa", "han"
And spelling carries tone. "okay", "ok" and "owky" are not the same message. One is neutral, one is quick, one is playful. Correcting "owky" to "okay" doesn't fix anything. It changes what the person said.
So correcting someone's romanization is a bit like correcting their accent. Technically possible. Mostly annoying. Usually wrong.
What Keygram does instead
Keygram flips the goal. Instead of moving your text toward a standard, it moves its suggestions toward you.
If you write "nhi", it predicts "nhi", not "nahi". If you write "h" for "hai", that's what it suggests next time. The keyboard learns from what you type and which suggestions you accept, and builds a picture of how you spell.
Two rules came with that:
- It stays on your phone. How someone types is personal. That learning never leaves the device or goes to anyone's server.
- No Devanagari unless you ask. If you type in Roman script, you get Roman script back.
The hard part: quirk or typo?
Of course, people also make real mistakes. If I always write "nhi", that's my spelling. If I write "nhu" once, my thumb slipped.
Telling those apart is the actual problem. A few signals help:
- Consistency. A spelling you use again and again is yours. One odd version is probably a slip.
- Key distance. "nhu" is one key away from "nhi". Typos tend to live next door on the keyboard.
- What you do next. If you undo a correction, the keyboard was wrong, and it should remember that.
When it's still unclear, Keygram leaves the word alone. The question it asks first is not "what's the right spelling?" but "did they mean exactly what they typed?" A missed typo costs you a second. A confident wrong correction costs you a second, plus your trust in the keyboard.
The point
A keyboard's job is to type what you meant, the way you write it. Not the way a dictionary writes it.
For English that difference is small. For the way India actually types, it's the whole product.
Next up: how I trained a small language model from scratch to predict Hinglish, spelling quirks and all.