Drop.io Stream

About a year after drop.io launched, I lead the initiative to real-time enable the website. Previously, when using the web application, any change made to a drop would require all viewers to refresh the page to see the updates. The vision was to make all of these changes appear instantly in each user's browser, without the need for a refresh. It would also allow users to chat with each other through their drops, creating a full, collaborative work environment. This feature is common in web applications today (think Google Docs or Slack), but at the time, it was new and unexplored territory.

I spent two months on research and development prototyping custom servers and messaging protocols in C++, and building a working proof-of-concept that could take a message full-cycle from the backend application to the user’s browser and back. After experimenting with various combinations of open-source servers, messaging protocols, and javascript clients, I designed and implemented a solution for drop.io which involved an ejabberd server, the standard XMPP protocol, and the Strophe javascript client.

Related Projects