Live customer chat has become a standard feature for websites. It raises conversions, answers immediate product questions, and resolves customer issues before they escalate. Yet, many software companies hesitate to adopt popular customer support platforms like Intercom, Zendesk, or Drift. Why? Two main reasons: exorbitant pricing tiers as chat volumes scale, and strict privacy and compliance requirements (like HIPAA or GDPR) that prohibit sharing sensitive customer records with third-party SaaS databases.
To solve this, developers are turning to Papercups, an open-source, MIT-licensed live customer support chat application. Built on Elixir and PostgreSQL, Papercups is a highly performant, real-time messaging gateway that you can self-host directly on your own infrastructure.
By hosting Papercups on your own AWS, GCP, or local servers, your customers' chat transcripts, emails, and phone metadata never leave your network. This is critical for businesses operating in healthcare, financial services, or cybersecurity.
The backend of Papercups is engineered in Elixir, leveraging the Phoenix framework. Elixir is designed specifically to run inside the Erlang BEAM virtual machine, allowing a single server node to handle thousands of concurrent WebSocket connections with minimal memory usage and extreme fault tolerance.
Papercups goes beyond a browser widget. It supports omni-channel routing, allowing you to connect various communication lanes:
Papercups offers highly versatile client SDK libraries. Here is how developers can integrate the chat widget into their sites:
For static websites, CMS systems (WordPress, Webflow), or server-rendered layouts, simply paste this script snippet before the closing </body> tag:
<script>
window.Papercups = {
config: {
accountId: "YOUR_ACCOUNT_UUID_HERE",
title: "Welcome to VitableTech",
subtitle: "Ask us anything about our services!",
primaryColor: "#4F46E5",
baseUrl: "https://app.papercups.io" // Change to your local server url if self-hosting
}
};
</script>
<script async defer src="https://app.papercups.io/widget.js"></script>
For modern single-page applications, install the React wrapper and instantiate the component within your layout root:
import React from 'react';
import { ChatWidget } from '@papercups-io/chat-widget';
function App() {
return (
<div className="App">
<h1>VitableTech Application</h1>
<ChatWidget
title="VitableTech Support"
subtitle="We typically reply in under 5 minutes"
primaryColor="#4F46E5"
accountId="YOUR_ACCOUNT_UUID_HERE"
greeting="Hi there! How can we help you today?"
customer={{
name: "John Doe",
email: "john@example.com",
external_id: "user_1085"
}}
/>
</div>
);
}
export default App;
The BEAM VM is built for highly concurrent, real-time messaging processes. Traditional node or python architectures require complex separate queue brokers and cache workers to maintain millions of persistent WebSockets. Elixir handles this process model natively, making Papercups fast, responsive, and incredibly resource-efficient.
Yes, Papercups includes a simple Docker Compose file. You can clone the repository, run docker-compose up, and you will have a complete Papercups Elixir application running alongside a local PostgreSQL instance.
Yes. Beyond standard HTML and React integrations, the community supports native packages for React Native and Flutter, enabling you to deliver a unified customer support dashboard inside your mobile applications.
VitableTech helps companies build, style, deploy, and self-host custom customer interaction utilities, live chat platforms, and communication pipelines.
Discuss with our Integration Team