Comparing chat solutions

ArrowChat vs. CometChat: Discover the right choice for your use case

A head-to-head comparison between ArrowChat and CometChat for live chat use cases. Learn about their features, pros and cons, similarities, and differences.

Adding chat to your application can help you drive engagement, offset costs, and deliver greater value to your users. But first you need to make a practical choice. How will you implement that chat functionality?

Broadly speaking, there are four ways to build chat into a new or existing app:

  • Build from scratch: Create the services, infrastructure, and DevOps process to implement and maintain your own chat system in-house.

  • Use a drop-in chat service: Add a ready made chat widget from an off-the-shelf chat service, which is great for getting started fast but can be limiting.

  • Build with a chat API: Offering a little more flexibility, a chat API gives you backend functionality and infrastructure while letting you create your own frontend chat experience.

  • Build with a realtime platform as a service (PaaS): Retain the flexibility to build what you need but without having to create and operate complex realtime infrastructure.

Here, we’ll look at two options. One of which falls into the “drop-in chat service” category, namely ArrowChat, and also CometChat, which is a chat API that also offers pre-built UI widgets. To round things out, we’ll dive into how you can build your own chat functionality using the Ably realtime PaaS.

Copy link to clipboard

What is ArrowChat?

ArrowChat is a drop-in chat widget that offers a quick way to add chat to your web apps and also to some mobile apps. It differs from many of its competitors in that it allows you to run the PHP chat backend on your own server if you choose, or alternatively to pay for a hosted service based on WebSocket, named ArrowChat Push. 

The frontend chat functionality on offer varies, too. With the entry-level free version of ArrowChat, you can get basic private and public group chat. For a one-off fee, you can add features such as moderation, file transfer, spam protection, and video chat.

As well as giving you a choice of how to host the backend, you can choose from different levels of chat functionality on the frontend, such as adding such as file sharing and moderation to the basic chat offering, for a one-off fee.

Copy link to clipboard

Pros of ArrowChat

  • Free to get started: Other than paying to self-host the PHP backend, you can get started with ArrowChat for free. It’s worth noting, though, that the free version’s functionality is limited and the scalability of the self-hosted version is very limited.

  • Easy installation: Integrating the chat widget into your app is a simple matter of pasting some lines of JavaScript. Likewise, setting up the PHP backend should be straightforward for most developers.

  • Integrates with common PHP tools: Integrates with the user system and other aspects of tools such as Wordpress and Drupal.

  • Good basic features: Could be well suited to low-traffic scenarios where users have simple demands.

  • Hosted service: If you need to handle more capacity and benefit from lower latency than is available through the self-hosted option, you can upgrade to the hosted WebSocket version.

Copy link to clipboard

Cons of ArrowChat

  • Self-hosted version is inefficient: The self-hosted PHP version of the ArrowChat backend uses manual HTTP polling to get updates from the server, which isn't efficient. It might be suitable for chat services with low traffic - but latency and missing messages will become a problem with even moderately large user numbers (over 1,000 users).

  • Limited scaling potential: Even with the hosted backend, ArrowChat Push, you’re limited to around 2,000 concurrent users.

  • Lack of support: ArrowChat is developed by a solo-developer who manages multiple projects. Given the larger teams behind competing solutions, ArrowChat might lag in feature updates. Some users have also mentioned issues with support.

Copy link to clipboard

What is CometChat?

CometChat takes a different approach. It is a PaaS for chat, meaning that it offers an API as well as pre-built UI widgets. The benefit to that approach is that you can develop your own chat experience on the frontend, while also integrating your backend. This makes it easier to connect chatbots, move data between your app and the chat service, and create more sophisticated custom functionality.

Copy link to clipboard

Pros of CometChat

  • Easy to get started: With sample code, good documentation, SDKs, UI kits, and drop-in widgets, CometChat provides a smooth route to integrating with your application. The free plan provides access to all functionality, albeit with limited user numbers.

  • Relatively flexible: By offering an API, in addition to widgets, CometChat allows you to customize the user experience to some extent. Although it’s not as flexible as building your own solution.

  • Marketplace for integrations: CometChat offers extensions that enable functionality such as replying to chat messages by email, voice transcription, and end-to-end encryption.

Copy link to clipboard

Cons of CometChat

  • Limited to chat and CometChat features: A PaaS dedicated to chat can help you get up and running quickly. However, it does limit what you can build. For example, if you need strong delivery guarantees, CometChat can’t help. Similarly, if you want to build other realtime functionality, such as the ability to broadcast data to your app users, then you’ll need to consider a general purpose realtime PaaS.

  • Email and community support: At the lower end of the paid packages, the only support available is via email or from volunteers in the CometChat community.

  • Frontend focus: CometChat offers a richer developer experience for integrating with its frontend than with the backend. Although there is a backend REST API, there are no SDKs for common backend languages such as C# and Ruby. That could mean more manual development work if you want to integrate CometChat with other aspects of your application infrastructure, such as a large language model or your customer management system.

Copy link to clipboard

ArrowChat vs CometChat: feature comparison

At first glance, ArrowChat and CometChat look quite similar. However, there are fundamental differences in how they operate technically, in how you engage with them, and in the functionality that they deliver.

The stand-out difference is that ArrowChat emphasizes its self-hosted option, with the hosted service as an optional extra. CometChat, on the other hand, is a dedicated chat API platform backed by a larger term and $17m in funding.

Let’s look at what those differences mean in practice.

Copy link to clipboard

Performance, reliability, scalability, and messaging guarantees

Rock solid reliability is the baseline requirement of chat services. Start dropping messages or introduce too much latency and users will quickly lose trust. 

Many providers offer uptime promises and service level guarantees (SLAs). An uptime promise often comes in the form of a percentage, such as 99.999% (known as “five nines”) meaning that the service should be only for that much of the time. An SLA, on the other hand, is usually a stronger commitment. For example, in the event of service degradation, the vendor promises to fix it within a certain timeframe and/or that they’ll pay you a financial penalty if they fail to meet their uptime promise. 

So, how do ArrowChat and CometChat compare on performance and reliability?

Feature/capability

ArrowChat

CometChat

Uptime guarantee

None

99.99%, which is potentially equivalent to almost an hour’s downtime each year. CometChat claims to offer a Service Level Guarantee but provides no details publicly.

Latency

Self-hosted version: Depends on the capacity of your server and other factors such as the bandwidth available to your hosting provider, as well as its location relative to your users. However, latency is likely to be poor due to ArrowChat’s reliance on a mix of short and long polling.

Hosted version: Not published.

Under test conditions, the CometChat team achieved a response time of less than 50 ms. It’s not clear what CometChat’s response times would be across the open internet for globally distributed end users.

Scalability

Self-hosted version: Manual polling is inefficient and so scalability is likely to be poor.

Hosted version: Not published.

Under test conditions, the CometChat team achieved 1 million+ concurrent users.

Infrastructure

Self-hosted version: Depends on your own infrastructure.

Hosted version: Not published.

Regions in EU, US, Aus, India.

Multi-region

No. Regardless of whether you opt for the self-hosted or paid-for hosted backend, ArrowChat cannot scale beyond one server.

No. You choose one datacenter for the lifetime of the app. Should that location suffer an outage, your chat app will go offline. Similarly, latency will increase the further a chat user is from that one location.

Guaranteed message ordering

Unclear

Unclear

Guaranteed message delivery (exactly-once)

Unclear

Unclear

Automatic reconnections with continuity

Self-hosted version: ArrowChat doesn’t maintain an open connection but, instead, frequently polls the service for updates.

Hosted version: unclear.

Yes

Copy link to clipboard

Chat features

At its most basic, a chat service needs to send messages between users. However, thanks to WhatsApp, Slack, Teams, and similar tools, end users expect a richer experience. To what extent do ArrowChat and CometChat meet those expectations?

Feature

ArrowChat

CometChat

1-to-1 chat

Yes

Yes

Group chat

Yes

Yes

Public and private group chat

Yes

Yes

Chat UI components

Embed the chat window using JavaScript for web apps and Onsen (PhoneGap) for mobile.

Yes (iOS, Android, React, React Native).

Push notifications

HTML5 notifications only. No support for native mobile notifications.

Yes

Message history (persisted data)

Yes

Yes

Rewind/load previous messages

Yes

Yes

User presence

Yes

Yes

Advanced chat features

- Typing indicators

- Reactions

- Moderation: word blocking, retrospective deletion, user bans

- File sending

- Multimedia support

- Video chat

- Typing indicators

- Message delivery receipts & read receipts

- Reactions

- User and channel mentions

- Unread message count

- Scheduled and offline messages

- Channel list

- Message and user moderation (e.g. profanity filter, mute user)

- Multimedia support (audio, video, photos)

Copy link to clipboard

Supported languages, integrations, and protocols

Chat functionality is most useful when it integrates into your existing systems and tooling. If you can interact with the chat provider using an SDK built in your preferred language/framework, such as Swift for building apps on iOS or .NET for building backend web applications, that can accelerate your time to market and reduce maintenance costs. Similarly, pre-built integrations with authentication services, database providers, and systems such as CRMs, reduce how much custom integration work your team will need to do.

Feature

ArrowChat

CometChat

SDKs

None. ArrowChat’s developer experience focuses on its frontend JavaScript widget. While the PHP backend does have a simple API, ArrowChat doesn’t offer any SDKs for it.


- JavaScript

- Android

- iOS

- React Native

- Ionic/Cordova (partial support)

- Flutter (partial support)

UI widgets

ArrowChat offers a drop-in widget for JavaScript.


- CometChat offers drop-in UI kits/widgets for:

- iOS

- Android

- React Native

- JavaScript (web)

- Ionic/Cordova

3rd party integrations

ArrowChat has several integrations but they tend to be with older PHP scripts, forum software, and PHP content management systems such as Wordpress and Drupal.

CometChat’s extensions marketplace offers integrations with third-party services such as Intercom.

However, there aren’t integrations for databases, data streaming services, or serverless platforms.

Protocols

Self-hosted version: short and long HTTP polling.

Hosted: WebSocket.

CometChat uses XMPP to send messages over WebSocket connections.

CometChat doesn’t appear to fallback to other protocols, where WebSocket is unavailable, which could be an issue with older client software.

Copy link to clipboard

Security and compliance

Chat is a primary channel for customer service, internal company communication, and other situations where data privacy and compliance with regulations are essential. So, how do CometChat and ArrowChat shape up when it comes to guarding your company’s and users’ security?

Feature

ArrowChat

CometChat

Encryption

ArrowChat does not provide any information on encryption, either for the hosted or self-hosted version.

In-transit: SSL/TLS.

At rest: AES 256 encryption.

Authentication

ArrowChat uses basic PHP user authentication.

Auth tokens

Configurable chat roles & permissions

Yes

Yes

Compliance

None

ISO 27001, HIPAA, GDPR, SOC 2

Copy link to clipboard

Pricing and support

Comparing pricing between vendors can be tricky as different companies package their offerings differently. And what happens when something goes wrong?

Feature

ArrowChat

CometChat

Free plan

Self-hosted edition offers a basic free plan but functionality is very limited.

Hosted version has a 14-day free trial.

Free plan suitable for proofs of concept:

25 monthly active users.

Access to “Pro” plan features.

Pricing model

Pricing of the hosted version depends on number of concurrent users and the number of messaging events within the month.

There are four paid packages:

- Basic: 100 concurrent users, 200,000 events, $10 per month.

- Advanced: 500 concurrent users, 1 million events, $25 per month.

- Pro: 1,000 concurrent users, 5 million events, $50 per month.

- Enterprise: 2,000 concurrent users, 20 million events, $100 per month.

Pricing depends on number of monthly active users.

Essentials, Pro, and Custom plans offer different levels of functionality, each of which charges differently for the number of active users.

For example, at the time of writing, the Essentials plan is $379 per month for up to 10,000 MAU, whereas the Pro plan is $799 for up to 10,000 MAU.

Support offering

ArrowChat offers a forum, where the solo developer often answers support requests.

Reviews of ArrowChat suggest that customers are dissatisfied with the support offered.

CometChat offers email and community support for Essentials and Pro plans, with hands-on implementation assistance available to Custom plan customers.

Copy link to clipboard

ArrowChat vs CometChat: Summary of differences and similarities

Having compared their feature sets in a head to head, let’s summarise where ArrowChat and CometChat differ and where they overlap.

Copy link to clipboard

Differences between ArrowChat and CometChat

  • ArrowChat is not a chat API: ArrowChat is first and foremost an open source project that allows you to drop a chat window into an existing application. Unless you are prepared to fork and maintain the open source project, ArrowChat offers very little in the way of customization. Most importantly, perhaps, the ArrowChat API has very limited functionality compared to CometChat, which allows you to build your own chat experience.

  • ArrowChat offers a self-hosted version, CometChat does not: While the self-hosted version of ArrowChat is suitable only for low traffic chat scenarios, where reliability and low latency are not important, the self-hosted version might be useful where budgets are very tight. CometChat does not offer a self-hosted or free version for production.

  • ArrowChat’s quotas are quite low, CometChat is designed for higher usage: The hosted version of ArrowChat has pricing and quotas that appear to be aimed at hobbyists, whereas CometChat’s plans are likely to scale to support more demanding chat requirements.

  • Different types of company: CometChat offers professional support, backed by a funded company with multiple people. ArrowChat is a project maintained by a single developer.

Copy link to clipboard

Similarities between ArrowChat and CometChat

  • Both offerings are weak on user authentication: Neither ArrowChat nor CometChat has out of the box support for integration with third-party authentication services such as Okta, which means you’ll either need to write custom integrations or choose a different chat provider.

  • Poor support for encryption: While CometChat offers integrations with third-party services to enable encryption, built-in encryption support appears to be limited. ArrowChat doesn’t support encryption.

Copy link to clipboard

ArrowChat vs CometChat: which platform has the best chat API?

If you have a very limited budget and equally limited requirements, ArrowChat might offer a low-cost solution. However, when comparing ArrowChat and CometChat as chat APIs, CometChat is the overwhelming winner. 

So, what makes CometChat the better solution out of the two? There are three main factors:

  • As a chat API rather than only a drop-in widget, CometChat offers greater flexibility than ArrowChat when it comes to building the right chat experience for your users and also for integration with your existing systems.

  • CometChat is better suited to business use cases, where encryption, the ability to scale, and the support of a multi-person company are important.

  • As a fully hosted service, CometChat will continue to evolve without the need for your ops team to install new versions of the server backend as would be the case with ArrowChat.

However, both CometChat and ArrowChat have their shortcomings. Not only are there concerns around encryption and integrations with existing tooling, but it’s likely that you’ll quickly hit up against the limitations of both tools, especially when you need to build something that doesn’t fit precisely into their respective feature sets. Rather than bending a chat API or chat widget to your needs, building your own chat functionality on top of Ably’s realtime platform as a service (PaaS) gives you the reliability, elasticity, and scalability of a fully managed service with the flexibility of a homegrown solution.

Copy link to clipboard

Deliver reliable, flexible realtime chat experiences that scale seamlessly with Ably

Ably’s realtime PaaS combines open ended versatility with functionality created specifically for chat use cases. Here are just some of the reasons why brands including Hubspot, Webflow, and Toyota trust Ably to deliver realtime experiences worldwide:

  • Globally distributed, multi-region network: Unrivalled performance, data integrity, reliability, and scaling guarantees thanks to your global network of more than 205 locations.

  • <65 ms median latency: Ably’s minimal latencies enable you to deliver realtime chat experiences, without awkward delays.

  • Strong guarantees: Messages are guaranteed to be delivered in order and exactly-once delivery, even in unstable network conditions.

  • 99.999% uptime SLA: Our expert team keeps the Ably platform running round the clock at peak performance, allowing your ops to sleep soundly.

  • Enormous scalability: Send billions of messages to millions of channels and chat users without worrying how.

We’ve built a developer experience that’s designed to accelerate your product's time-to-market. Specifically, Ably seamlessly meshes with your current tools, systems, and languages of choice. Choose from SDKs supporting languages and frameworks such as PHP, Flutter, Clojure, tvOS, and NodeJS. You’ll also find effortless integration options with cloud services, data streaming solutions, and provisioning tools to help you smooth introducing Ably into your existing tech stack.

If you’re considering building chat functionality, then Ably is especially well suited to creating immersive chat experiences. Using Ably’s realtime functionality, as well as our in-depth documentation and library of demo code, you can quickly build features including:

  • Online/offline status

  • Last seen indicators

  • Edit/delete messages

  • Threads

  • Emoji reactions

  • Typing indicators

  • Read receipts

  • Chat admin privileges

  • User avatar

  • Push notifications

Read how Ably can help you build realtime chat experiences into your applications with global reach, massive scalability, and a developer experience designed for productivity.