How our encoder is implemented
The core is src/lib/morse.ts in the open-source repo — a pure TypeScript function with no dependencies. The function is unit-tested against every letter of the ITU alphabet, every digit, and the full punctuation set. The same engine powers every other translator on Morsify, so output from this page is byte-identical to what you'd get anywhere else on the site.
If you're a developer: the logic is under an MIT-compatible licence on GitHub. It's about 40 lines and easy to drop into any JS/TS project without the overhead of a library.
Output format contract
- Dots are
., dashes are-. No Unicode middle-dots or em-dashes. - Inter-letter separator: single space.
- Inter-word separator:
/(space, slash, space). Standard convention from the ITU-R M.1677 recommendation. - No trailing whitespace. A trimmed output, safe to paste anywhere.
- Case-insensitive input — everything is uppercased before the lookup, so
morseandMORSEreturn identical output.
Common use cases
- Puzzle and game design. Encoding a clue into morse for escape rooms, ARGs, or geocaching.
- Art and print projects. Generating the pattern to typeset a morse-code poster or merchandise.
- Ham radio study aids. Producing drill text at a target WPM to train against.
- Software integrations. Fetching an encoded string for a chatbot, CLI, or sensor demo.