Build vs buy - How to Create a Messaging Application Like WhatsApp
What do you need to create a messaging application like WhatsApp?
In April 2018, the monthly active users (MAU) of popular messenger apps exceeded 5.8 billion. Mobile messaging is a global and omnipresent phenomenon. As businesses wish to keep their users within their applications, in-app communication has also become a global trend to rival messenger apps.
Now, the question for industry-leading companies has become "How can our business create a messaging interface in my application that meets consumer expectations? Should we develop it in-house or integrate an off-the-shelf messaging SDK solution?"
Build vs. buy - How to create a messaging application
Mobile messaging is everywhere, and applications increasingly incorporate messaging functionality to meet consumer demand. Many examples exist: some live video streams incorporate large group chats for their audience, e-commerce apps and marketplaces are becoming platforms for conversational commerce, and mobile games and social media alike frequently include in-app messaging as a core part of their application.
When it comes to implementing messaging functionality at the same time that your business develops its app's core competency, all while managing the tight schedule of a project, a common question arises:
Should I build the feature in-house or use an existing solution such as a chat and messaging API and SDK?
While it may seem simple at first glance, it gets increasingly complicated as a business's specific goals get involved, such as associating resources with a particular audience volume to hit significant business milestones. Moreover, it needs thorough investigation evaluating the engineering and design resource invested for messaging in project ROI perspective especially when it happens at the expense of its opportunity cost for core contents. They can be easily understated when tech leaders lack the vision of full cost ownership.
Below are the key requirements to consider and common myths to distance you from when considering the development of an in-app messaging feature.
In-house or 3rd party solutions, which is your fit?
1. Lay out the feature set and scalability-level required for the planned business/ project objectives
First, a project leader should identify the business/ project goals (e.g., unique user experiences followed by increased engagement and retention) clearly and required key features for the messaging service to achieve the goals. Modern messaging service is not only associated with basic features such as 1on1 messaging and group chat but also includes advanced functionalities such as read receipt, structured message, chatbot, big data analysis and integration with other APIs. Moreover, it needs to consider the level of customization as the project grows and if your business can become large to spread the cost of a proprietary system over a large number of customers.
2. Identify technical and architectural requirements
It is vital to understand architectural requirements that your internal team or the 3rd-party solution must support building a messaging service that caters to the business goals and required factors defined above. There is a range of technologies that you need to consider in building a chat and messaging as described below.
- Server operation: Dedicated, IaaS (AWS, Azure, GCE), PaaS (Heroku, GAE)
- Traffic handling: Load Balancing, Auto Scaling, Latency-based DNS routing
- Database: No SQL (HBase, Cassandra, MongoDB), RDB (MySQL, Postgres)
- File storage: Cloud storage, CDN
- Cache: Redis, Memcached
- Chat server: Proprietary, Open source, Commercial solution
- Network layer: WebSocket, HTTP long-polling, TCP socket
- Messaging protocol: Proprietary, XMPP, MQTT
- Required level of encryption due to security policy and internal compliance
- Etc: Logging, Monitoring, Analytics
3. Validate in-house development vs. off-the-shelf solution fits your needs
Before you jump into conclusion on integrating 3rd party solutions or building in-house, validate your appetite in the following areas
- Time-to-market: Timeline of a product being available for markets considering competitors and customers’ need
- Cost and resource efficiency: ROI of in-house solutions and threshold where it generates the economies of scale.
- Human resources: availability of the adequate engineers and designers with the expertises to fulfill all the requirements.
- Execution and communication cost: a proprietary solution that occurs internal communication vs. 3rd party solution with external communication cost.
If responsiveness and speedy innovation guarantee the success of your project, 3rd party messaging SDK will give your team the possibility to be more reactive, a rigorous solution that enables you staying in the game as the first mover with innovative practice.
For most of the startups and tech companies, engineering resource is scarce and very expensive. According to the article, ‘How Much Does It Cost to Develop WhatsApp?’, building a messaging app seems to cost up to $370,000 for two to three months with about six to eight engineers and a product manager to build core features required for an app like WhatsApp. And that assumes that there are no server costs, maintenance costs, or the feature and products updates necessary to keep up with competitors.
Other than mere engineering resources, you also need to consider the cost of running infrastructure and system for app development, and additional resources being invested in maintenance and scalability and feature expansion in the future to apply upcoming trends such as chatbots, data search, and big data analysis.
If a company does not have immediately available engineering to build out the necessary messaging features, it would be more strategic to pass on the opportunity until the company does have a such a team in place. If you cannot hold your engineers and designers accountable for such the project, it will be tough to adhere to the great product in long-term. Besides, a tech leader should not overlook expenses associating with training or recruiting personnel with the necessary skills and experience to implement a project.
Sometimes, it is costly to manage external communication channel to 3rd party partners. You also need to access if the functionality provided by the 3rd party solution can be extended and compatible with the other pieces of the project along with the next three to five years. However, you should also aware that internal communication can be more expensive than external communication sometimes. Even if most of the large companies run internal platform department delivering messaging service as a shared function, but you needs to consider the cost of integrating a solution from the internal department, politics and communication cost, and their availability of customization that fit the project.
4. Examine existing 3rd party messaging SDKs
Even if your companies have a team of experienced personnel, a 3rd party solution will probably provide the better long-term ROI because of the saving levers that are derived from:
- The vendor being responsible for updating the product to advanced and most up-to-date technologies
- The vendor being responsible for isolating and maintain any possible fraud
- The vendor being responsible for scaling up the infrastructure as the usage volume and customer base grow
- The vendor helping data migration that your migration for data and messages from existing solution should be easy and affordable
Several services such as SendBird that helps you integrate in-app messaging features quickly by using their plugins and SDKs. With the easy and quick integrations, you will be able to test advanced features that necessary for your project scenario and iterate quickly via the conversational data and feedback you receive from your users.
Don’t reinvent the wheel
Existing in-app messaging services such as SendBird can help a project to successfully integrate in-app messaging armed with the whole package from the front-end UI to the backend. This way, companies can focus on the core business and reduce the time and cost of developing and maintaining the chat features.
Remember, our core business should come first and enabling technology last. Only then, the long-term impact of build vs. buy decision based on the aforementioned key approaches and considerations will have a positive effect on your business.