I've decided to spend more time on morsecode.me in the upcoming months. I refactored the app's code to be easier to work with, and also fixed something that's been bugging me: replay accuracy especially on bad internet connections.

It's very important to me to make sure that what you're hearing is an accurate representation of what the person on the other end played. Unfortunately, laggy internet connections get in the way of that, so I rebuilt the system to support more accurate playback.

In the past, your keystrokes were individually sent to everyone listening. This made morsecode.me really real-time (lag measured in tens or hundreds of milliseconds), but also made it fragile to poor connections.

I've made a sacrifice, and now morsecode.me records each line you play and then broadcasts the recording. This ensures totally accurate replay of what was played, but also requires waiting until the end of the line before the message can be sent. This introduces a lag of a couple of seconds, depending on how long you spend keying.

But it's the right move for morsecode.me. I'll soon be building an Android app, and using morsecode.me over cellular connections will absolutely require the buffered recording approach. The new approach also lets me do other interesting things, like saving common phrases for playback later, or allowing you to re-try a message before sending it.

Stay tuned for more.

Upcoming features: Android app, registration, member-only rooms, Draft mode.