Building Chat vs Using Third Party Service: Must Know Cost Saving Tricks

Real-time chat feature has become increasingly popular for businesses across a variety of domains. In a short amount of time, it has both superseded traditional voice communications and also overtaken email and social media to become the dominant medium for user-to-user, as well as user-to-provider communications.

Team CometChat • Apr 21, 2020

Real-time chat feature has become increasingly popular for businesses across a variety of domains. In a short amount of time, it has both superseded traditional voice communications and also overtaken email and social media to become the dominant medium for user-to-user, as well as user-to-provider communications.

There are some key reasons behind real-time chat’s growing popularity

  • Firstly, a real-time chat feature allows users to get their enquiries resolved in real-time, by providing a direct one-on-one exchange platform for the members – including both users and providers.

  • Secondly, it allows businesses to collect data, which helps them provide better customer support.

  • Thirdly, users can directly connect with other users to securely exchange information without having to compromise their privacy or give away their personal contact information. This facilitates efficient communication, peace of mind, and faster transactions.

All these benefits combine to greatly enhance the trust factor of a service and consequently increase their traffic and user retention. This means that any business in this day and age wishing to enhance their customer service or boost their brand value should look into implementing a real-time chat feature.

What are your options then?

Now if you are a business owner, who understands that real-time chat can be a powerful tool to increase engagement with users and would like to implement it in your online platform or app, then you are faced with a choice: Should you develop the implementation in-house from scratch, or purchase a solution from a third party service?

Before you go ahead and make the decision, it is important to consider all the factors involved in the development of a real-time chat feature. Although it might seem doable at the first glance, a lot of considerations that come into place as you proceed make it significantly trickier and more time consuming than anticipated.

Factors like chat infrastructure, server costs, team members to build & handle the technology, the time taken for deployment often end up costing you a lot more time than you’d like. Also, you need to ensure that your in-house team has enough coders with all the necessary range of skills required to deal with these challenges.

Additionally, you will have to factor in the significant costs involved in the development and hosting of a real-time chat feature and consider whether or not it meets your budgetary requirements.

We will go through some of the key factors that go into building your own chat implementation should you wish to go down that road.

Things to consider when building a real-time chat feature

1. Chat Infrastructure

Real-time chat infrastructures are quite complex with a lot of working parts and cannot simply be plugged in with minimal effort. There are quite a few complex features that a chat infrastructure must be capable of accommodating:

Firstly, the infrastructure has to afford one-to-one and group messaging in real time. Additionally, a good real-time chat implementation needs to be sophisticated enough to support rich communication capabilities with features including the ability to share documents and multimedia files. These features need to be built on an appropriate messaging protocol and maintained with an update-cycle that anticipates technology updates and user preferences. This is no small feat and can take on the characteristics of product development in itself, resulting, more often than not, in an abandoned or neglected sub-product.

Secondly, your infrastructure must also be able to store chat history along with multiple texts and multimedia attachments shared in it – available for instant access by all parties. Such capabilities are often essential for many platforms or even critical in a customer service context which relies on effectively gathering as much information as they can from a user, and as accurately as possible. As such you need the resources to host and maintain a fully-featured chat server capable of scaling up to handle these demands.

Thirdly, there are additional infrastructural challenges which may crop up according to other specific customizations you may need to implement, such as encryption protocols for better security or chatbots to handle low-level queries and frequently asked questions along with many other such granular features. All of which adds time and complexity to the development process.

If these challenges are not understood properly during development or if your team doesn’t have the specialized expertise necessary to deal with them, then your infrastructure will turn out to be inefficient, buggy, and saddle you with a large overhead in terms of time and resources spent. Even worse, an inadequately designed infrastructure is more likely than not to be vulnerable to security breaches which might compromise your business or the private data of your users. This is a huge risk that you should try to avoid at all costs.

2. Development Costs

Not only is development a costly process that involves spending a lot of money in salary and overheads, the far costlier resource you’ll be spending is time. Time which could be used more efficiently in developing your core services which you already have expertise in or spent on projects for your clients – both of which are responsible for making money for your business.

A development cycle for a robust, secure, full-featured real-time chat for your app or website will require you to consider costs for the following elements along with the time that will go into implementing and maintaining them:

  • Chat server: Proprietary, Open source, Commercial solution

  • Network layer: WebSocket, TCP socket

  • Messaging protocol: Proprietary, XMPP, MQTT

  • Voice over Internet Protocol: WebRTC

  • Hosting and Scaling Solutions: AWS, Microsoft Azure, Google Cloud IBM etc.

  • Client platform: iOS, Android, Web (JavaScript), Xamarin, React Native, Ionic etc.

  • Encryption Protocols: as required by your security policy and internal compliance.

  • Message Archive and Database Management: to store messages, files, images, videos, documents and other multimedia files.

  • Chat Bots: search, payments, to-do, weather, automated FAQ response etc.

  • User Interface/User Experience Design.

  • Cloud Service Synchronisation.

All of these elements are highly complex and demand significant commitment of resources and manpower to engineer and implement properly.

3. Consultation Costs

A diverse pool of highly specialised knowledge is necessary to engineer all the necessary elements of a real-time chat implementation. Some major areas include:

  • User Interface (UI/UX) Design.

  • Building and scaling data networks.

  • Server framework and deployment solutions.

  • Choosing and developing upon appropriate messaging and security protocols.

  • Ensuring cross-platform compatibility and making sure all the necessary SDKs and APIs involved play well with each other.

If your development team isn’t big enough to handle all of these elements or don’t have the necessary depth of knowledge or experience to develop them independently then they will have to resort to using consultants or vendors to compensate for the lack of expertise. These services don’t come cheap and this again adds significant cost to your development and deployment process.

4. Hosting Costs

A real-time chat implementation requires a lot of server memory and features, both to host the application and also to store and transmit all the real-time traffic it generates along with other relevant features such as push notifications, typing indicators, emojis & stickers and so on. A typical hosting solution for a real-time chat feature requires three infrastructural components from the hosting service provider. These are:

(1) Server + (2) Load Balancer + (3) Auto Scaling

The cost incurred by all these required hosting components add up in a dramatic fashion. For example:

  • Amazon CloudWatch Dashboard costs:
    $3.00 per dashboard per month

  • $0.0252 per Application Load Balancer-hour (or partial hour)

  • $0.008 per LCU-hour (or partial hour)

  • Next, there are costs you incur for Network Traffic.
    First 10 TB/month – $0.15/GB
    Next 40 TB/ month – $0.11/GB
    Next 100 TB/ month – $0.09/GB
    Over 150 TB/month – $0.08/GB

  • Then there are Database costs:

(src: https://media.amazonwebservices.com/AWS_TCO_DynamoDB.pdf)

  • File storage costs:
    First 50 TB/month – $0.023 per GB
    Next 450 TB/month – $0.022 per GB
    Over 500 TB/month – $0.021 per GB

  • Cache (needed for real-time chatting and audio/video communication):

(src: https://aws.amazon.com/elasticache/pricing/)

  • Live Notification and Signalling:
    Simultaneous connections: 100k/database
    GB stored : $5/GB
    GB downloaded: $1/GB

  • Monitoring, Logging and Analytics:
    $125.00/month. Based on estimated CU total of 2500 CU

  • SSL certificate: Site Web + Subdomain

As you can see, hosting a real-time chat implementation can become quite costly, not to mention complicated, requiring you to have a thorough understanding of your needs and a precise idea of your scaling requirements to ensure that the feature works without a hitch doing everything that it is intended to do.

Not only is hosting yourself quite expensive, but also quite risky. Unless your deployment and scaling projections are on-point you can be saddled with bills that massively overshoot your predictions, which can cut deep into your cash flow and negate any potential profit which could be generated by adding the feature in the first place.

5. Integrating Costs

Just having fully functioning chat features and the capability to host it isn’t enough. You must find a way to integrate it seamlessly to your existing service. Running a chat feature for your website or application requires additional costs to be incurred as you will need to retool and expand your server capabilities in order to support it. Additionally you will need to rework the UI/UX framework of your app/website to accommodate it, so that customers can locate it and use it with ease.

Even if you choose to outsource the integration process by getting outside vendors to try minimise costs and speed up delivery, many companies may not offer any kind of UI framework. Others may offer very basic UI components necessitating more developmental downtime and resources on your end to fully integrate the feature and customize it to your specific needs. This adds significantly to your overhead and is vital to take into account.

6. Unexpected Costs

Even after having dealt with and accounted for all these costs and challenges which come with trying to build your real-time-chat feature and deploy it, there are other unexpected costs that might manifest themselves indirectly in the process, costing you more on the long run. Here are just some of the issues you might run into in the short and long-term:

  • Vendor lock-in, preventing you from transitioning to another vendor

  • Opportunity costs caused by deployment downtime.

  • Vendors selling data from your users.

  • Vendors going out of business, rendering parts of your implementation vulnerable and obsolete.

  • Lack of flexibility in SDK hindering you from adding important features.

  • Issues with scaling.

These are very real issues that plague in-house development efforts universally, and having to handle these issues not only costs valuable time and money but it can hamstring your business causing you to lose your edge versus competitors in the long run.

Should you buy from a third party provider?

A third party provider develops and maintains a flexible, comprehensive messaging solution which they can host and implement for your business. You will usually be charged on the basis of monthly active users utilising the feature.

There are many beneficial aspects to choosing a third party provider to develop and deploy your real-time chat implementation instead:

  • A third-party provider can provide a tried-and-tested messaging SDK which serves as a solid foundation to develop your specific implementation upon, and can also be readily integrated into the client’s app or website across major platforms with minimal downtime.

  • A third party real-time messaging solution provider will have the necessary range of expertise and dedicated human resources capable of developing a secure and effective real-time chat infrastructure.

  • They can handle deployment and integration of the real-time chatting feature as well as help you with implementing any features you want. They will also be capable of providing constant maintenance for their product and push regular patches and updates meaning that your implementation will always be secure, fully functioning, and up-to-date.

  • Many third party providers – including CometChat – offer dedicated cloud deployment which can be quite valuable in managing the complicated business of hosting and scaling a real-time-chat implementation. And because the hosting comes as a part of a fixed-rate plan from the service provider, costs are not only predictable, but often considerably cheaper than what it would have been for an in-house deployment.

  • A reputable provider will minimise if not completely eliminate any unexpected costs, hosting and scaling headaches and other miscellaneous issues and allow you to focus on your core business with all your resources and manpower without getting sidetracked.

So should you build or buy?

There are many reasons to choose one over the other. Building means you get to have your own home-grown implementation, but it comes with a laundry list of challenges. Buying on the other hand means the solution belongs to the provider but it bypasses all the headache and costs that come with development and deployment. In either case these are a few questions you should ask yourself when you are making the call:

  • Does my team have the kind of expertise required to build chat application?

  • Is my budget enough to accomodate all the latent costs that come in while developing a chat app from scratch?

  • What is the deadline I’m looking at, to get chat live and running on my platform?

  • How will my hosting costs increase as my app/website scales?

  • Will I need to build my own chat UI?

  • How challenging will it be to integrate with the current messaging service in use?

  • Would I be able to migrate users if necessary?

  • Are my users’ data safe at the hands of my hosting company?

  • How flexible do I want the service to be?

  • Will my vendors be around 4-5 years in the future?

  • How much will I have to spend in consulting and licensing?

The final answer depends upon what is more effective and efficient for your business. If you don’t have the large pool of resources, manpower, and expertise necessary to build an effective solution and maintain it, buying might be the more cost-effective choice. Start-ups and small businesses might find it particularly useful to buy rather than build. In either case it is important to do your research and consider all the aspects before making that call.

Team CometChat

We build chat and messaging SDKs that let you quickly code a full-featured chat experience into any mobile or web app.

Share it with everyone!

Try out CometChat in action

Experience CometChat's messaging with this interactive demo built with CometChat's UI kits and SDKs.