about

Only words.

One player hides a word. Everyone else guesses. Every guess comes back with a number — its rank against the secret, out of 40,000.

Most word games are about letters. You learn that the third character is an R, and you work the alphabet from there. Only Words throws all of that away. Spelling tells you nothing here. The only thing that counts is meaning.

Guess boat against a hidden lighthouse and you land near the top, because boats and lighthouses live in the same part of the language. Guess light — which shares five letters with the answer — and you land nowhere near it. The game does not care that the letters match. It cares that a lighthouse is a building on a coast, and a light is a thing in your kitchen.

Where the ranking comes from

Every word in the list has a vector — a long row of numbers that describes the company that word keeps. The idea is old and simple: words that show up in similar surroundings tend to mean similar things. Coffee and tea appear next to the same verbs. Coffee and crankshaft do not.

Only Words uses a set of vectors called GloVe, trained on Common Crawl — a very large sample of public web text. When you hide a word, the game measures that word against all 40,000 others and sorts them. The nearest one is rank 1. The furthest is rank 40,000. Your friends are walking up that list without being able to see it.

No AI writes your puzzle

This matters, so it gets its own line: nothing is generated when you create a game. There is no model deciding which words are related to yours. The ranking already exists, baked into an 11 MB table that ships with the site, and the server just reads it. That is why a puzzle appears instantly instead of after thirty seconds, and why the same secret word always produces the same board.

It also means the game is honest with you. Nobody is inventing associations after the fact. The rankings were fixed before you picked your word.

What the numbers actually mean

The gap between ranks is not even. Rank 1 to rank 50 is a small, dense neighbourhood — those are the words a person would list if you asked them to free associate. Rank 5,000 to rank 40,000 is a huge, flat wasteland where almost everything feels equally unrelated.

So a jump from 8,000 to 400 is a real breakthrough, and a jump from 12,000 to 9,000 means nearly nothing. The colour of each reading is scaled to reflect that, which is why the bar stays cold for a long time and then heats up fast.

Some rough edges, stated plainly

The vectors come from web text, and web text is strange. A few results will look wrong to you, and sometimes they are:

How it is built

The site is deliberately small. There is no framework on the page and no build step for the client. The word table is quantised down to one byte per number, which is what gets 40,000 words into 11 MB and lets the whole thing run in half a gigabyte of memory. Guesses reach the host's screen through Firestore, so the board updates live without anybody refreshing.

Offensive words are removed from the list when it is built, so they can never be a secret, a guess, or a hint.