Celly is a platform for ad-hoc social networks that is accessible via iPhone, Android, Web, Kindle, and SMS text. Members can join instantly with one text and create alert systems, exchange group messages, send out polls and curate topics. Used by activists, educators, organizers and organizations alike, Celly is for groups of all shapes and sizes.
Celly’s mission is to build a decentralized social network that quickly and flexibly links user to user. In order to build this complex and accessible social network, Celly has to be compatible across as many mobile devices and operating systems as possible. Celly began looking for a real-time messaging and push notifications service for their Android and iOS app. They needed a service that would not only send users a message in real-time, but also provide real-time statistics such as poll results.
Early in the beta stages, Celly had three key concerns. First, they needed cross platform functionality that would allow as many types of devices to connect to the mobile network as possible. To ensure this functionality, Celly needed a real-time service provider that offered a wide variety of real-time SDKs. Second, they needed a push notifications service that would send messages not just to active devices, but also those that are asleep or turned off. Lastly, Celly wanted a real-time service to replace their original custom websockets and long polling to deal with a heavy CPU and database loads.
Celly originally had a custom real-time infrastructure based on long-polling and websockets. They soon found that they didn’t want to incur the database load and CPU load from keeping thousands of concurrent mobile clients up to date. Celly went with the PubNub Real-Time Network when they found it could handle the heavy load of users.
Because the Celly mobile network needs to work on as many devices and operating systems as possible, they needed a service with cross device compatibility. In addition, they needed the ability to add new types of compatible devices easily under one real-time service. PubNub’s large library of languages, along with its compatibility with all devices and operating systems fit the bill.
“The other services/platforms we looked at weren’t really designed for our messaging use case. PubNub is attractive to us because it works with pretty much any language and platform, and is very lightweight to use. We wanted the option to use it for web traffic and with other platforms that we will bring on board in the future,” said Greg Passmore, Co-founder and CTO.
To send messages to a wide variety of devices in real-time, Celly also integrated PubNub Mobile Push Notifications for their Android and iOS applications. These push notifications allow users to alert not only subscribers with active devices, but also devices that are asleep or have been turned off. Those subscribers will then see the alert when they turn on their phone. Using PubNub, Celly can easily use the same messaging system for both Android and iPhone.
Lastly, Celly relies on PubNub Storage/Playback to fetch the last twenty messages every time someone wakes up their phone. This helps Celly keep the messages in sync without hitting their servers, and works around issues that iOS has retrieving messages while the device is inactive.
“The simplicity of sending a simple JSON message and the ability to fetch history easily. It’s convenient that PubNub is device agnostic – we can use the same pubnub channel on one device or many devices. Rather than managing devices, we can manage a channel for each user and make sure they get all messages on all their devices,” said Passmore.
Since Celly began using the PubNub Real-Time Network, they’ve dramatically reduced both the number of web servers needed and the need to the scale their databases. With an expansive library of languages and lightweight to use, Celly can continue to use PubNub to make Celly compatible with a growing number of devices.