Carnival games are meant to look incredibly easy but are almost always impossible to beat.

Take the “Climb to win” game for example. Fairly straightforward to start with; but as you get further, the difficulty increases exponentially. I asked around and a friend shared this complicated approach-

Anyway, I digress. The point I'm trying to make is there are plenty of tasks that look easy at first and get really difficult as you advance.
At CometChat, we believe chat is exactly one of those tasks. At first, it seems super simple. And honestly, to build a simple one-on-one text chat solution, it is. I can think of at least two ways you could easily build it yourself-
- Use any programming language along with a database to build out a simple chat. A decade ago, I even wrote a tutorial on how you can do this: http://anantgarg.com/2009/05/13/gmail-facebook-style-jquery-chat/
- Use a real-time pub-sub technology like socket.io or ably.io
Only if it were that simple. Times have changed. There are tons of features your users have now come to expect thanks to Facebook Messenger, WhatsApp & Snapchat; features like read & delivery receipts, typing indicators and more. So building a basic one-on-one chat simply won't cut it. Neither will it help to move the needle when it comes to user engagement or monetization.
Tinder, for example, monetizes users not for text chat but for the ability to view read receipts.

But that’s not even the half of it. Here are some more features that are critical for your chat-
- Email Notifications- Sending out an email whenever a user has unread messages. Sending out an email for every single message is simple, but making sure that you don’t spam your users and only email when they haven’t read a message.
- Video & Image Thumbnails- Displaying a preview image whenever a user shares a video or an image.
- Filtering Content- Blocking/censoring messages that contain profanity or excess negativity (especially when building a chat for a live event) as well as evaluating images that are NSFW.
- Human Moderation- Sending filtered content to an interface which allows moderators to manually accept/block messages.
and many more…
Our 10 years of experience enables us to truly understand the business needs around chat. It’s not just sending and receiving messages. It’s more than that. Much more.
And that’s the reason why we are launching our Extensions marketplace- the easiest way to build on top of our core technology. Here are the extensions we are going live within the coming weeks-

In the build vs buy debate, I think you should not ask your developer if they can build a one-on-one text chat; I think you should ask if they can build a full-fledged chat feature with all the bells and whistles required to satisfy your users. Because if they can't, you'll have to begin from scratch when you eventually and inevitably have to add them.
And don’t get me started on voice & video calling. That’s an article for another day...