So you've been tasked with adding a messaging feature in your app and you have two choices- to build chat yourself or to use a chat API and SDK. Now before you take that decision, let's take a step back.

First and foremost, it's really important to understand what your users expect from an in-app chat feature.

Have a look at this chat experience-

Facebook Messenger by Christian Dalonzo

Now unless your users live in a cave, they would have definitely been exposed to at least one of these messaging apps- WhatsApp, Facebook, WeChat, SnapChat or Skype. These apps, with their highly polished chat experiences, are what your users have come to love. And the reality is, if your chat experience is anything less than these, your users will use your chat feature simply to move to these platforms.

In my ten years of chat experience, I've seen this countless number of times. Customers have spent hours building a "good enough" chat feature only to realize their users use their "good enough" chat feature to just exchange Skype IDs (and then move the conversation off their platform).

The bottom line is that these apps have raised the bar tenfold, and you need to seriously take that into consideration when building even a minimum viable chat feature.

With that in mind, here are a few factors you should consider when adding a messaging feature to your app.

Features

The first question you need to ask yourself is what chat features do you want to add to your app?

I spent about 30 minutes building a quick list of features a typical chat experience has-

In-app Chat Features Checklist

Now, the features you need will depend mainly on your use case. For example, an on-demand app like Uber will need only one-on-one text messaging and voice calling but a social app like Facebook will need both one-on-one and group messaging as well as voice & video calling. And I've written about adding a chat feature in marketplace apps at length.

I had a customer tell me once- "I tasked my developer with adding chat to our app. He did his research for few days and then concluded that it's like building a whole new app within our app."

You'll soon come to realize that chat is a product, not a feature.

Cost

The second question you need to ask yourself is do you have the resources to build these chat features?

The cost for building chat will vary depending on the features you need. At the bare minimum, you will need a team of 6 to build even the most basic chat features-

  1. For every platform (web, iOS & Android), you will need a separate developer, so that's 3 developers
  2. To create the API, you will need at least one developer
  3. To handle websockets & WebRTC, you will need at least one developer
  4. To setup your servers, you will need at least one devops engineer

As per Glassdoor, the average salary for a senior engineer in Colorado is $99,900/yr.

Salary: Senior Engineer in Boulder, CO
735 Senior Engineer Salaries in Boulder, CO provided anonymously by employees. What salary does a Senior Engineer earn in Boulder?

So 6 engineers, for a minimum of 6 months will cost you around $300k. This is a highly conservative estimate and definitely won't get you any of the bells and whistles like sentiment analysis or real-time language translation.

Time

The third question you need to ask yourself is, how much time do you want to spend on this?

Here are some questions you can ask -

  1. Is it okay if your users do not communicate on your platform for the next 6 months?
  2. Is there an opportunity cost if you add chat now vs 6 months from now?
  3. Does chat help keep you competitive?
  4. Do you want to invest time in managing a real-time chat service with multiple moving parts?
  5. Do you have the time and knowledge to keep your chat secure?
  6. Do you want to spend the time building a full-fledged chat experience that your users have now come to expect (thanks Facebook) or a basic chat feature?

Summing Up

Whether you choose to build chat on your own or use a chat API like CometChat, be sure to consider the whole picture.

We handle everything mentioned in this article out-of-the-box and you can get started with us for free. If you decide to build chat on your own, let us know your experience. We'd be happy to learn what worked and what didn't.