MashMeTV is a video chat collaboration tool that allows up to 10 participants to interact and collaborate face-to-face in real-time. When inside the video chat, participants may perform various activities around a series of tools including: watching video, creating and editing documents, presenting slideshows, painting on a collaborative blackboard, browsing the web, and navigating Google Maps, all in a web browser. MashMeTV gives users the ability to synchronize any web app such as Google Docs or YouTube and transform it into an immersive social experience.
The appeal of MashMeTV is that users can interact in real-time using a number of different tools while video chatting. Early in its beta stages, MashMeTV had three concerns. First, low latency was the primary concern because the application is built entirely around real-time interaction and collaboration. Any lag or high latency issues would break the user experience within the app. Secondly, the development team wanted a real-time service that offered a support team with high availability. The last thing the development team wanted was to have to sit around and wait for slow support response. Lastly, MashMeTV needed an highly scalable service that required low maintenance, allowing them to focus on their product, rather than babysitting servers.
When looking to solve their real-time challenges, MashMeTV looked at several alternatives. In the beginning, they experimented with custom websockets servers on nginx and nodejs (based on socket.io). Even though they found that the latency was low enough for real-time functionality, custom websockets required a substantial amount of maintenance and had issues with scaling. Giving up on open source solutions, MashMeTV then tried another real-time provider, however the high latency and dropped messages they experienced affected the real-time functionality of the app.
To lower the latency and reduce backend maintenance, MashMeTV replaced their original real-time service with the PubNub Real-Time Network. To further improve performance MashMeTV uses PubNub’s Channel Multiplexing feature to handle its many simultaneous data streams. This reduces the required network bandwidth, which in turn reduced overall latency.
“When we started with PubNub we were a free-trial sandbox customer. Even with that status, any issue we had were answered by support within minutes or a couple of hours tops. Who does that?” said MashMeTV CEO Víctor Sánchez.
Before implementing the PubNub Real-Time Network, latency was almost double what it is now. While anything under 200 milliseconds is considered real-time, PubNub was even faster, clocking in at 170 milliseconds. In addition to low latency, the quick implementation saved development costs, and MashMeTV is able to focus on their core service rather than maintaining custom servers and websockets.
“I think the really low latency is the key for PubNub to be what it is today. For us, it converted MashMeTV from an idea to a real product. We wanted to focus on providing an experience for the final user, and that was a huge job by itself. We did not want to worry about maintaining scalable websockets infrastructures and our clients at the same time,” said Víctor Sánchez