An open source alternative to Intercom/Drift/etc

Hi everyone!

A buddy and I recently started working on Papercups with the goal of building an open source Intercom competitor :slight_smile: We’re pretty new to Elixir, but it just seemed like the perfect tool for the job. We’ve been having a lot of fun with it lately, but would love to get feedback from more seasoned Elixir devs!

Here’s a demo of our chat widget if you want to play around with it Papercups

We also have some Github issues set up if you want to contribute :slight_smile:

Excited to be a part of such a great community!


That’s really very interesting, I’ve always thought Elixir would be great for that.


Cool project!

1 Like

Very nice!

Thought about XMPP support? We currently use Olark for live chat and Adium (on Mac) as client software. This way we don’t have to have the chat as a browser window AND we don’t have to live with the (currently) crappy chat software that some of the other provides have created.

We can simply use standardised XMPP clients.

We’re looking to migrate from Olark because of its crappy loading times (PageSpeed/Lighthouse).


Haven’t thought about it yet, but seems like a great idea! I’m honestly not too familiar with XMPP, but I created a new thread in our repo to discuss

Still pretty busy just trying to get all the basic stuff working, but would love to tackle this in the near future if possible! If you have any additional thoughts on it, feel free to post in the issue above :slight_smile:

1 Like

This looks very promising, nice project! Just wanted to mention some features enterprise users might need:

  • assigning a Manager to Customer Support Accounts
  • API/Integrations for existing backends with Customers to automatically display Customer name instead of Anonymous User.

Thanks! We have a way to set customer metadata on the chat widget ( but it could definitely be improved :stuck_out_tongue:

When you say “assigning a manager to customer support account”, do you mean having a manager/admin role in the dashboard to manage your customer support agents, or do you mean assigning an agent to a given customer?

1 Like

The customer metadata is exactly what I meant, perfect!

Yes, I mean having a Manager role to manage customer support agents, because most enterprise use cases would involve tight control over the agent registration and assignment process. You might have different support agent tiers for a Manager to assign and track agents. And, with the customer object available, some customers might have dedicated agents (or tiers) assigned to them based on priority or availability.

Got it, makes a ton of sense! That’s definitely on our roadmap :slight_smile:


If this materialises, we’ll be one of the first to sign up for a yearly support contract!


I was excited then bummed to learn the mobile client is in React Native. Most apps are still native iOS and Android, but more importantly, Flutter is fast becoming the cross-platform choice for greenfield projects.

I know you don’t have a ton of engineering bandwidth and your web client is already written in React. But do consider native and Flutter libraries when expanding your team. All the best!

Definitely! We’re starting off with React Native because we heard a bunch of complaints about how Intercom doesn’t support it, so we figured it was a good place to start :slight_smile:

Certainly would like to add other mobile clients once we have the bandwidth… out of curiosity, what are you currently using? Flutter?

Yes, only using Flutter and not looking back. :slightly_smiling_face:

We just released our Flutter client :slight_smile: would love any feedback


First off just wanna say damn you guys are beasts for learning and releasing the Flutter client so quick. Kudos

Also what does your deployment look like? I noticed a bunch of docker files in the repo

Thanks! The Flutter client came from an open source contributor who has been maintaining it for us. We use heroku for deployment but we’re working on improving our docker/kubernetes deployments.

Sweet! Care to share the thought process on picking Heroku? e.g. vs Render, Gigalixir, or plain Releases?

We mainly used Heroku because we had a startup deal where we didn’t have to pay for it. It was the one we were most comfortable and familiar with which is why we chose it.


After 400 commits +50,000 lines of code we just did a 2.0 launch on product hunt