Introducing niner.codes
TL;DR
I wrote a NATO phonetic alphabet helper called niner.codes.
Problem
Before we got married, my wife had an unusual last name. It was 16 characters, including a hyphen and a few consonant-pairs not commonly found in our part of the world. It didn’t fit on credit cards, barely fit on standardized tests, and in one incident during Law School a judge chose to address her by her first name rather than risk a mispronunciation.
Things got a bit easier for her when we got married and she took my name, but practicing immigration law added other challenges: many clients had foreign sounding names (because they were), and she would spend hours on the phone advocating for them with various government agencies.
If you’ve ever tried to clarify the spelling of your name over a lossy VoIP line, you may know the struggle: “b as in bay or d as in day?”
Enter the NATO phonetic alphabet. The 26 words in this system were chosen carefully by international treaty to have these attributes:
- Each word starts with the letter it represents.
- Most words have two or more syllables.
- In each word, the entire first syllable is unique among first syllables.
- Oscar is pronounced like a Bostonian.
The 10 words that code for numbers are also given special, unambiguous pronunciation. This is where we get that iconic “nin-er” in military and aeronautic contexts.
I think this is a terribly clever system, a bit like a hamming code designed for humans. I wish more people knew it.
Solution
It takes a bit of training to memorize these 36 words and their pronunciation, so I built an app to make it easier.
niner.codes is a private notepad where everything you write gets translated to NATO codewords. The user can choose to render these as plain English, phonetic spelling with emphasis (default), or as IPA (international phonetic alphabet).
Got a difficult word you need to relay clearly? Write it here and read back the symbols below it.
I want to stress that this is private. No sign in necessary; your notes are saved to your browser’s local storage. I can’t see them.
Source code is available on GitHub: https://github.com/jelder/niner.