the definitive list of acceptable typos

2026

web,
at itp, nyu.

typographical-errors or 'typos' are, now, inescapable in digital communication. fingers slide; focus wavers; messages get sent without resolving the red wavy lines underneath incorrectly spelled words. but at what point is a typo just too far off to be considered a typo?

this website produces a definitive list of acceptable typos for any given english-word, by considering characters one-position away from the root character on a qwerty-keyboard.

output for 'cat'.

implementation:

you can think of a keyboard as a 2-dimensional space, with each character in a word having atleast 1 neighbour, and a maximum of 8.

neighbours for the character 's'.

every second, my algorithm tries to generate a typo. to do so, it goes over each character & decides whether to replace it with a neighbour or not. initially, the probability to replace a character is very low. therefore, the typos are more believable.

initial typos for the word 'hello'.

however, as time progresses, the probability to change each character grows exponentially. therefore, the typos get wilder (yet acceptable, as they are only one 'hop' away from the character in the original word).

later typos for the word 'hello'.

to make this a 'definitive' list, the algorithm keeps a list of all typos previously produced, and only spits out a typo if it wasn't produced earlier. when it runs out of possible typos, it exits with 'fin'.

'fin' after the program has run out of acceptable typos for 'hello'.

all code is stored in this github repository.


acknowledgements:

lenin compress's brief of making a random walker in nature-of-code, spring 2026; daniel shiffman for writing the textbook; nonsense laboratory by allison parrish, tim szetela & jenny goldstick for the inspiration.