Cloudsteading
realtime channels
$499/mo
realtime fallback target
varies
Same loadout
realtime fallback target
varies
Same loadout
$499/mo of rented services mapped

How it works

The shape of The WebSocket Sower on Cloudflare, and how it stacks up against the rented tools it replaces.

Architecture

Public interface
Clients 3
browser dashboard
mobile app
server event producer
Routes 4
WS
/ws/:channel
socket upgrade
POST
/events/publish
fan-out a message
POST
/channels/:id/auth
channel auth
GET
/presence/:channel
who is online
App
Edge router Worker
entry
Workers HTTP + WebSocket upgrade
authrate limitroute eventpick channel actor
delegates to
Channel Durable Object
backing
one actor owns one channel room
attach sessionbroadcast eventtrack presence

Feature comparison

The WebSocket Sower vs Pusher Channels

Same realtime model, a fraction of the cost

Pusher Channels target →
Pusher Channels pricing

Sandbox plan is free (capped at 200 concurrent connections and 200k messages/day). Paid plans start at the Startup tier; larger workloads move to Pro and Premium tiers. Verify current numbers on Pusher's pricing page — limits and dollar amounts shift.

Verify on Pusher Channels's pricing page ↗
The WebSocket Sower pricing

Workers Paid base ($5/mo) plus per-million-request Durable Object usage and D1 reads/writes for the audit log. Small-to-mid workloads sit in the low single digits per month; pricing stays linear with usage.

Snapshot last verified 2025-01. Vendor pricing changes frequently — confirm on their pricing page before relying on these numbers.
Feature Pusher Channels The WebSocket Sower
WebSocket pub/sub channels
Same publish/subscribe semantics; clients connect to a named channel.
supported parity
Presence (who is in a channel)
Per-channel presence inside the Durable Object. No global presence index.
supported ~ partial
Channel auth tokens
HMAC-signed token endpoint, same shape as Pusher's auth endpoint.
supported parity
Encrypted channels
Bring your own end-to-end encryption — not provided out of the box.
supported missing
Push notifications
Use a dedicated push service (APNS/FCM); not part of the build.
supported missing
Replays / message history
D1 stores recent messages; no infinite-scroll history out of the box.
supported ~ partial
Webhooks for backend events
Easy to bolt on with a Worker route — not bundled.
supported ~ partial
Hosted dashboard / debug console
Cloudflare logs + a small admin route; no polished console.
supported missing
SDK ecosystem
Use any WS client. No drop-in Pusher SDK shim yet.
supported ~ partial
Vendor lock-in
Source is yours. Move off Cloudflare with a port to any WS-capable runtime.
supported better
ChannelsClient eventsMessage historyPresencePrivate channelsWebSockets

The WebSocket Sower

We were paying hundreds a month for Pusher to fan out WebSocket messages to browsers. We replaced it in an afternoon with a Worker that accepts WS upgrades and a single Durable Object class that owns each channel.

Architecture

  • Worker — terminates the WS upgrade, authenticates the client, routes to the channel DO.
  • Durable Object (ChannelDO) — one instance per channel slug; holds the connection set and fans out.
  • Presence — the DO keeps a Map<userId, meta>; broadcasts join/leave on state change.
  • Hibernation API — WS sessions hibernate when idle, so memory cost is zero between messages.

What it gives you

Channels, presence, private channels (HMAC-signed), client events, message history via D1.

What it does not give you

A hosted dashboard. You read logs via wrangler tail. That is the trade.

Frequently asked about The WebSocket Sower

What is The WebSocket Sower? +

The WebSocket Sower is an open-source Ably/PubNub alternative built on the Cloudflare developer platform. Realtime WebSocket channels with presence, built on a single Worker + one Durable Object class.

What does The WebSocket Sower replace? +

The WebSocket Sower replaces Ably, PubNub, Pusher Channels. Replacing the SaaS saves approximately $499/month at the listed self-host cost.

What Cloudflare primitives does The WebSocket Sower use? +

The WebSocket Sower is built on D1, Durable Objects, WebSockets, Workers.

How much does The WebSocket Sower cost to run? +

The WebSocket Sower runs at approximately $0.04/month self-hosted on Cloudflare. Equivalent SaaS pricing is around $499/month.

Is The WebSocket Sower open source? +

Yes. The WebSocket Sower is open source under the MIT license. Source code is at https://github.com/cloudsteading/websocket-sower.

Discussion · 0

sign in to comment →
No comments yet — be the first.