Developers August 8, 2020

Should I use a chat-API or build the backend myself for a chat/presence feature in my app?

homekasa

We are looking to add chat/presence feature in our web app. While researching this I have found third-party companies that can provide this (e.g. getstream.io an PubNub). However, there is a minimum monthly commit with those companies? What is your experience, should we build basic functionality ourselves? Our tech stack is MERN.

  1. 4

    I believe you should implement an existing service in your web app for the following reasons:

    1)You can start seeing results immediately of this functionality

    2)Compliance with lean methodology(Are users even interested in this feature?, is it integral to your web app?) If the chat app becomes core to your business or sales you could use your own implementation but you should probably stay lean for now.(Just guessing).

    3)Companies that have their expertise in building chat-apps will most likely do a better job than your team(security wise and functionality wise) in the same way your company probably does best what it offers to the customers. That's just the way things are. You should focus on building and improving the core of your app and use great out of the box solutions that will probably be more satisfying to your customers for the time being.

    4)These third-party companies ask for a monthly fee that's true. From what I know for small-medium websites these fees range from 5$-300$/month depending on the company, package and the number of agents you need in the chat app. However the engineering hours required to build and design an appealing chat app also costs money so you need to decide what is worth more to you.

    Just my personal insight on the subject. I didn't try to build my own implementation you should make your calculations and decide if you want to build your own implementation immediately or use a third-party and go solo in the future.

    Good luck! :)

  2. 2

    Is this a core offering of your web app? or are you just looking to add a chat widget for support reasons?

    If so, then you should use something that exists already.

  3. 2

    How much does it cost to use a third-party service versus you and others on the team not building main features on the product because you are working on live chat?

    1. 1

      Free and very poor with the 1 agent limit. It is also insanely expensive given the many other tools out there for live chat.

  4. 1

    Do you have very specific security and privacy requirements where you need to self-host? Do you reward the experience of building your own chat solution over the cost? If the answer is No to both questions, use an API.

  5. 1

    It depends on how critical the functionality is for your specific app. If this is just a side thing users can do then use something that is available and focus your time on your core product. If this is a core functionality of your product you will most likely need to customize it and add more and more to it in the future so better develop your own.

  6. 1

    I would 100% use a third-party provider. Chat isn't easy to build and if you don't have a lot of resources, this should be outsourced. Many successful products (e.g. dating apps like Hinge or Bumble) haven't built their chat functionality themselves but use Twilio or SendBird, etc.

  7. 1

    Have a look at XMPP. It's a well used protocol which might be easier than you think to implement.

    But if a service provider can meet your requirements, then it makes sense if you can offload to them.

  8. 1

    Don't spend time on something which is not your core feature. Outsource!

Recommended Posts