Built on Cloudflare Workers & Durable Objects

WebSockets without fan-out fees.

Drop-in Pusher Channels replacement built on Cloudflare. Flat broadcast pricing with no fan-out fees — or self-host the open-source edition.

Get started
pusher.ts
import Pusher from "pusher-js";

const pusher = new Pusher("YOUR_APP_KEY", {
  wsHost: "wss.socketo.dev",
  cluster: "socketo",
  forceTLS: true,
});

Works with your existing Pusher code

Keep your frontend and backend code as is. Just change your Pusher config to point to Socketo.

Before · Pusher
PUSHER_APP_ID=<YOUR_PUSHER_APP_ID>
PUSHER_APP_KEY=<YOUR_PUSHER_KEY>
PUSHER_APP_SECRET=<YOUR_PUSHER_SECRET>
PUSHER_HOST=api-<cluster>.pusher.com
After · Socketo
PUSHER_APP_ID=your_socketo_app_key
PUSHER_APP_KEY=your_socketo_app_key
PUSHER_APP_SECRET=your_socketo_secret
PUSHER_HOST=wss.socketo.dev
Migration guide

Pick how you run it

Use our cloud service, host it on your own Cloudflare account, or run it locally while building.

Socketo Cloud
Fully managed. We handle connections and scaling so you can just build.
  • Runs on Cloudflare Workers
  • Dashboard & live analytics
  • Nothing to manage
Self-Hosted OSS
Free and open source (GPLv3). Run on your own Cloudflare account with total control.
  • Public, private, and presence channels
  • Multi-app support
  • Your own Cloudflare account
Local CLI
Run a local server in your terminal for testing. No account needed.
  • Fast local testing
  • Pusher-compatible API
  • No account needed

How the options above compare

Socketo Cloud vs. Self-Hosted
Same protocol, different way to run.
Socketo Cloud vs. self-hosted feature comparison
Socketo CloudSelf-Hosted
Public, private, and presence channels
Multi-app support
Outbound webhooks
Runs on Cloudflare Workers
Dashboard & live analytics
Fully managed (nothing to host)

Simple pricing

Pay for concurrent connections. We never charge you extra for broadcasting to more subscribers.

Starter
1,000 concurrent connections
$10/mo
  • Unlimited apps
  • Unlimited channels
  • Unlimited broadcast
  • Client events
  • Email support
Indie
Popular
3,000 concurrent connections
$20/mo
  • Unlimited apps
  • Unlimited channels
  • Unlimited broadcast
  • Client events
  • Email support
Growth
5,000 concurrent connections
$40/mo
  • Unlimited apps
  • Unlimited channels
  • Unlimited broadcast
  • Client events
  • Email support
  • Discord support
Flat rateSend to 10 or 10,000 for the same price

Every paid plan comes with 1M free broadcasts a month. After that, it's $1 per million—no matter how many people are in the channel.

$1/ million

Frequently asked questions

Can I keep using my Pusher SDKs?
Yes. Socketo supports Pusher Protocol v7. Your existing pusher-js, Laravel Echo, and backend Pusher SDK code works out of the box.
What are fan-out fees?
With Pusher, sending 1 event to 1,000 subscribers uses 1,001 messages from your quota (1 incoming message + 1,000 fan-out deliveries). With Socketo, that same event counts as just 1 broadcast, no matter how many subscribers receive it. Paid plans include 1 million broadcasts every month, and extra broadcasts are $1 per million.
How do I switch from Pusher?
In most apps, you only need to update four environment variables to point your Pusher SDKs to Socketo. Check out our migration guide for details.
Can I self-host for free?
Yes. You can deploy our open-source GPLv3 server to your own Cloudflare account for free, or run npx @socketo/cli locally for development.