Skip to content(if available)orjump to list(if available)

Show HN: Three Emojis, a daily word puzzle for language learners

Show HN: Three Emojis, a daily word puzzle for language learners

16 comments

·November 7, 2025

I'm in the process of learning German and wanted to play a German version of the NYT’s Spelling Bee. It was awful, I was very bad at it, it was not fun. So I built my own version of Spelling Bee meant for people like me.

Three Emojis is a daily word game designed for language learners. You get seven letters and a list of blanked-out words to find. When you discover shorter words, they automatically fill into longer ones—like a crossword—which turns out to be really useful for languages like German.

Each word also gets three emojis assigned to it as a clue, created by GPT-5 to try and capture the word’s meaning (this works surprisingly well, most of the time). If you get stuck, you can get text/audio hints as well.

It supports German and English, with new puzzles every day. You can flag missing words or suggest additions directly in the game. The word lists include slang, abbreviations, and chat-speak—because those are, in my opinion, a big part of real language learning too (just nothing vulgar, too obscure or obsolete).

Every word you find comes with its definition and pronunciation audio. If you want infinite hints or (coming soon) archive access, you can upgrade to Pro.

Feedback is very welcome, it's my first game and I'm certainly not a frontend guy. Happy spelling!

why_at

Nice work! That was pretty fun.

There were definitely some words in there which I had never heard even as a native English speaker. One suggestion I would make if the intent is to teach people a new language would be to limit the word list based on how commonly used the words are. I don't think it helps non-proficient speakers to learn extremely obscure words that nobody uses.

You could make it so that the X most common words are needed to win and the rest are bonus points or something.

knuckleheads

Thank you! And yes, taming the word list is a constant battle and a matter of taste. I haven't tried to draw such strict lines yet for the entire language as to what definitely will and won't be in there, beyond nothing vulgar, too obscure, or too obsolete. There's a ton of flowers in there for example, which is interesting, but also, eh. I wanted to get it in front of people and hear what they thought, so thank you for this!

oneeyedpigeon

I liked it, but a couple of bits of feedback:

1. I thought there were a few too many clues of various types. The emoji, combined with the word list in alphabetical order, the part-filled words, AND the infinite guesses. I'll admit, I ended up guessing quite a few times, which slightly soured the experience.

2. Some of the words are really weird. I'm not sure all of the onomatopoeic words should be in there. And I don't think the acronyms (e.g NNW) should be in there.

Other than that, though, I thought it was a great version of the NYT equivalent. Loved that there were so many words — it's a shame that #2 would mean fewer, but I still think it would be worth being a bit pickier on balance. My partner didn't quite get the emjoi clues until I explained an example, but I thought a lot of them were quite clever!

knuckleheads

1. This is interesting. It's definitely made with language learners in mind, so there's a copious amount of hints. There's also a ranking system, where you do get penalized if you guess so much. That's not so forward, it used to be up front and friends didn't like it so much. One way of making it harder is taking out the 2 and 3 letter words, which really reduces the number of hints you get via word fill ins. I was thinking of something like Three Emojis++ as a name for that mode, but I haven't gotten around to testing it out so much.

2. I've removed NNW now. I've got a todo list to start playing a day ahead and doing a final pass over such things so that not as much weird stuff gets through. I do like having onomatopoeic words, because in German, it is really interesting to me to see them. I would like to known the German equivalents to Eh, ow, oh, ew and so I leave such things in. But have five different versions of ewwww, yes, that'll get fixed.

I have scripts that tune it to specific numbers of words each day by selecting different letter sets based on my curated word list, so removing words doesn't have such a big impact. And the emojis are hit or miss, but when they hit they are very funny and helpful. I would never ask a human to label 75 words a day with emojis, but GPT-5 will happily do it for a $1 a day.

Thank you for playing!!! And writing this comment!!

zaene

Really crazy seeing this -- I've been working on my own multi-lingual spelling bee clone as a personal project for the last few weeks. You don't have share any trade secrets if you don't want to, but I'm wondering how your experience has been coming up with "playable" sets of letters? For Italian I found that a lot of 7-letter sets have relatively few words you can make with them, and for the ones that do it's been a fun challenge trying to curate the actually "fun" boards by looking through word lists of a language I'm not yet fluent in myself. I'm working on a blog post about it that I was thinking of sharing here sometime soon.

Some feedback on the UI - at least on desktop Chrome, the title part of your scoreboard area is being cut off and the "How to Play" section has the text totally flush with the top, so you might want to look into your margins or padding there to give everything some breathing room. There's also a bug in your shuffle algorithm -- the letter in the top right cell never changes when you shuffle the letters. The cell buttons are also a little unresponsive. It seems like there are some dead zones where the hover animation doesn't get triggered and clicking the cell doesn't actually input the letter.

I like how you've added some features to make it easier for language learners to find words. Are you yourself studying German? And if so have you found it fun/useful?

knuckleheads

Great minds think alike ;) Some rambly thoughts off the top of my head about picking games:

I am still nailing down how many words to put in and therefore how long the game is. Right now somewhere between 30 and 75 feels good, I had it at 100 and friends complained that it was too long. To get a sense of your data, make a histogram of total number of words per letter set. This is different per language and does give you sense of what's up, as well as how good your word universe is. Conjugations/inflections help pad this out a lot as well.

Get the word frequencies for each word, wordfreq is helpful. Then, do a greedy algorithm, start accumulating the list of letter sets, one for each day. For first day, take the letter set that maximizes the sum of the squares of the zipf from wordfreq and has the number of words that you want for that day. For the next day, remove all the previous words from the words for your possible letter sets and repeat the sum of squares of zipfs. Then just keep running that, and it will maximize the most common words that haven't been seen yet.

Additionally, I tried to filter out a lot of words out front before running the game covering algorithm. No vulgar, nothing obscure or too obsolete. It's relatively cheap to run a very large word list through GPT-5 and ask a couple questions about each word. Do that once and you have filtered out a fair portion of the list. Build in a system for ad hoc blocking and it gets you most of the way there.

That is very helpful about the buttons and formatting. Thank you so much! I have that fixed up soon. Big lol on the shuffle algorithm, I hardly ever use it so I hadn't noticed. Thanks! I am in the middle of studying German, yes. What I've found is that it is very helpful for introducing me to new words for sure, that I am not sure I could have seen otherwise. It also helps me see the patterns within how the words are formed, just trying to puzzle out things. I have to take a lot of guesses and I feel like I am getting better at guessing which letters will ended up going where, even if I have never heard the word before.

zaene

Really cool! Thanks for sharing!

knollimar

Doesn't filter out all acronyms.

knuckleheads

Some acronyms a language learner needs to know (i.e. OOO, CEO, COO). The others I am hunting down with extreme prejudice.

knollimar

All cardinal directions need to go unless they're already a word otherwise; I just had WNW

edit: also I'm a native english speaker and I don't know what OOO means.

knuckleheads

Ah, WNW is out now. I've made a note to track all those down, there's a bunch of them hiding out in there. And OOO means Out of Office and it's pretty common in English workplaces, to the point that people learning English in a business context have told me that they had to specifically look that one up.

fwip

Cool idea - I could see playing this daily.

Some of it was a little frustrating, mostly the acronyms. Labeling them as such might help, because I was going mad trying to figure out "NNW" and "WWOOF.". Also, performance was not great on my older Android phone - the app would sometimes miss letters that I was sure I'd clicked.

knuckleheads

Nice, thank you. I have removed both NNW and WWOOF as well now. I have a flagging system, so people can request to have a word removed or added and they get removed/added on the spot. I like some of the acronyms, but I am in the middle of working my way through all 3 letter words in english (many thousands of them) trying to weed out the weirdos. And, damn, I haven't been able to test on older phones. I'll try and pick one up and see what I can do there. Thank you for playing!

oneeyedpigeon

How old's your Android? Performance was fine on my Pixel 3a.

fwip

Good point - I should have specified. Looking it up now, the CPU my phone uses is the Helio P22 - a budget chip released in 2018. So performance might be fine on more reasonable phones. :)

knuckleheads

I do want it to work for everyone though! It might be the emojis falling in the background. I also realized there's no way to turn that off. For a while, I had them piling up at the bottom of the screen which was very cool, but the physics engine would make my recent iPhone overheat. So, I'll make a note to add a setting to turn that off and that might take care of it.